libera/#clasp - IRC Chatlog
Search
13:44:09
drmeister
Then, once we are done, we can bind *implicit-compile-hook* to the bytecode compiler and away we go.
13:46:18
drmeister
And once we have the C++ bytecode compiler, fix compiler__implicit_compile_hook_default to call that compiler and create bytecode closures.
13:47:51
drmeister
Does the bytecode compiler support compiling in anything other than the toplevel environment?
13:49:24
drmeister
The interpreter, aclasp, bclasp environments are the old Environment_O things. cclasp is different.
13:50:56
Bike
well, depends. we need some kind of environments for the compiler to work with - not runtime environments, but still
13:51:12
Bike
and if we want the bytecode compiler to eventually work with C++ they will need to be available in C++
13:52:09
Bike
https://github.com/clasp-developers/cvm/blob/main/compile.lisp#L206-L220 here's the environment class
13:54:06
Bike
this is simpler than what i originally had. karlosz has been trying to make the compiler amenable to c++ translation.
13:54:40
Bike
there are several other structures used by the compiler, of course, like cfunctions, cmodules, contexts, all this assembler stuff i haven't looked at yet
13:56:08
drmeister
The interpreter/aclasp/bclasp Environment_O classes are a single linked list of the different kinds of environment info interleaved.
13:57:35
drmeister
And they are more "chunky". A single LET generates a single ValueEnvironment_O instance.
13:58:51
drmeister
The ValueEnvironment_O is a compile-time environment. It points to a ValueFrame_sp _ActivationFrame - that's the runtime environment.
17:03:34
karlosz
drmeister: cvm is also ahead of the clasp vm branch - it will only work with cvm HEAD^1