libera/#clasp - IRC Chatlog
Search
2:03:39
drmeister
Bike: Other than boostrapping issues I'm not having any problems installing the bytecode compiler as the implicit compiler.
2:08:48
drmeister
If you turn that on in configure_clasp.h then it turns on the bytecode compiler right from the start.
2:32:41
drmeister
The OUT-OF-EXTENT-UNWIND was me - I removed whatever caused it by unwinding some changes I made to the early code to allow bytecompile to work.
2:57:19
Bike
do is defined... really early. i don't think it depends on anything except some other simple macros like when and dolist
3:08:06
drmeister
I moved a bunch of macros into `export.lisp` and I load that before `jit-setup.lisp` in `init.lisp` - I get a lot farther.
3:09:59
drmeister
It's surprising how tangled this all is. I implemented some macros in the interpreter long ago to allow us to bootstrap.
3:11:33
drmeister
That's so you can see everything load and you see what the context is when it crashes.
3:20:06
drmeister
There were two hooks that need to be defined - one hook was starting up the interpreter and that fed a ValueEnvironment_O into the system
3:30:06
drmeister
https://github.com/clasp-developers/clasp/blob/vm/src/lisp/kernel/lsp/seqlib.lisp#L881
3:30:37
drmeister
You have: https://github.com/clasp-developers/clasp/blob/vm/src/lisp/kernel/lsp/seqlib.lisp#L885
3:48:24
drmeister
Actually, that's not the original - that's the defmacro for PROG and I hacked it to move the DECL variable out of the lambda list into alet.
3:48:40
drmeister
The problem remains. I don't know what I'm doing and I'm too tired to figure it out.
9:41:36
Colleen
karlosz: Bike said 9 hours, 35 minutes ago: save-sp/restore-sp is broken with respect to unbinding special variables, for now
9:41:51
karlosz
::notify Bike I see the issue you're talking about with special bind. i don't think there's a good way to solve it generally
9:43:36
karlosz
::notify Bike the main problem is we can't unbind multiple frames in one instruction like clisp because the binding stack is implicit on the C++ stack and not explicit. so i see two things we could do to still get most of the benefit: eliminate dynenv consing by using a 0 marker to explicitly invalidate dynenvs, and also to just restrict savesp and restoresp to contexts where no special binding has been lexically done. this is easy
10:40:14
yitzi
::notify drmeister I replaced the offending fmt::fprintf calls with fmt::print https://github.com/clasp-developers/clasp/commit/aaeedd079551ff27fa02aa508067326c4fd81761
10:55:54
yitzi
karlosz: I probably won't be able to fix that until we dump the old [abc]clasp build methods. compile-kernel-file currently doesn't know that the order of compiling files is not the same the order files in the image so I've had to trick it a bit.