Scott Olsen
Scott Olsen
The emitted names for some core library C types can conflict with definitions in other headers. For example, I'm trying to use some generated Carp C along with Apple framework...
If you name a file the same as a core file, and execute `carp` within the directory that defines it, you'll get errors because of dependency cycles. To reproduce: -...
In some cases, registered types should have generated getters but not setters, e.g.: ```c struct foo { MyStruct data[1]; }; ``` If you `register-type foo [data MyStruct]` you'll get an...
Sometimes, I'd like to write wrapper functions for struct access in carp, either because there's some additional behavior involved or because I simply want to refer to fields by a...
This PR does two things: 1. Add a new Resolver abstraction. Resolvers dictate the *order* in which lookups should be performed. They're a new layer between the Environment lookup functions...
Indicates we might have hotspots when dealing with certain functions tested in this file.
Currently, we can traverse environments in the compiler using three different schemes, each represented by a different function naming convention: - `get*` looks for a binding in the given environment...
Currently, memory management in Carp is determined at the type level. If there's some type `T` that implements `delete`, all values of `T` are subject to memory management. In rare...
to reproduce: `(register 1Foo Int "1Foo")`
`carp-header-parse` doesn't yet support typedefs, but we can support it, and generate corresponding `register-type` calls. For basic typedefs e.g. `typedef int Foo;` we can generate an "opaque" `register-type` call `(register-type...