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
20:37:25
drmeister
https://backlog.com/git-tutorial/using-branches/git-switch-branches/#:~:text=Git%20HEAD,relative%20to%20a%20specific%20commit.
21:42:01
drmeister
I changed the printf calls to the macro DBG_printf - so we can turn them off and on.