freenode/clasp - IRC Chatlog
Search
4:20:17
drmeister
Bike: I added a make_list initializer - it should reduce the depth of recursion when compiling lists in fasl files.
4:24:17
drmeister
It doesn't immediately generate code anymore. It generates a list of run-all-xxxx objects.
4:24:42
drmeister
They get compiled into code after the top level function and all the little functions that it spawns are compiled.
4:26:22
Bike
yeah, i mean it's in there as (length cons) rather than (load-time-reference-literal (length cons) t)
4:27:58
drmeister
Features to note - values aren't written to or loaded from a vector anymore everything is done with llvm registers.
4:29:03
drmeister
The literals and load-time-values are written into a block of memory called [VALUES-TABLE].xxx - entries are accessed with RIP-relative addressing from the code.
4:30:01
drmeister
The cc_register_roots does that work. All of the values that need to be written into the VALUES-TABLE are passed on the stack to cc_register_roots, it writes them into the memory and then makes them GC roots.
4:31:01
drmeister
With Boehm it will simply copy the values into a block of Boehm managed UNCOLLECTABLE memory - it's a bit of duplication but there is no way to declare roots outside of boehm managed memory.
4:43:30
drmeister
Shoot - I don't have the reader macros in place yet. I'm running in the interpreter.
6:16:47
drmeister
loke: clasp boots through a few stages. aclasp is the second stage. It's got some of Common Lisp but lacks CLOS and FORMAT and LOOP