| Commit message (Collapse) | Author | Age |
|
|
|
| |
It's a bit shorter and more direct.
|
|
|
|
|
| |
Instead of having the projection data in the constant data we have it
independently in the environment.
|
|
|
|
|
| |
We eta-expand cofixpoints when needed, so that their call-by-need
evaluation is correctly implemented by VM and native_compute.
|
|
|
|
|
| |
We now have only two notions of environments in the kernel: env and
safe_env.
|
| |
|
|
|
|
|
|
|
|
| |
Recent commits introduced global flags, but these should be
module-specific so relocating.
Global flags are deprecated, and for 8.9 `Lib.Flags` will be reduced
to the truly global stuff.
|
|
|
|
|
|
|
| |
We simply treat them as as an application of an atom to its instance,
and in the decompilation phase we reconstruct the instance from the stack.
This grants wish BZ#5659.
|
|
This intermediate representation serves two purposes:
1- It is a preliminary step for primitive machine integers, as iterators
will be compiled to Clambda.
2- It makes the VM compilation passes closer to the ones of
native_compute. Once we unifiy the representation of values, we should
be able to factorize the lambda-code generation between the two
compilers, as well as the reification code.
This code was written by Benjamin Grégoire and myself.
|