libera/#clasp - IRC Chatlog
Search
2:34:21
drmeister
So, safe-canonical-type is disturbingly close to where the load-time-value value was. Are you sure what I added is correct?
2:35:15
Bike
it should be. how is compile-load-time-value called? does it account for the read-only-p argument (by ignoring it)?
2:37:01
Bike
ok yeah i see, the bytecode compiler generates catch instructions (also throw, progv) which i didn't implement
2:37:42
Bike
replacing compile-catch with uh, (compile-form `(core:catch-function ...) ...) should do it?
2:38:26
Bike
I did not bother about implementing these yet because I figured we'd have enough bugs with the instructions we have so far
2:41:09
drmeister
Are you interested/available to implement these or should I quit for the time being?
2:41:56
drmeister
there's a 'loader.lisp' file with all these load commands and a `run` script that runs everything
3:01:13
drmeister
CMPINTRINSICS.LISP is the next problem. I'll investigate and if I can't fix it I'll stop for the night.
3:17:56
Bike
oh, symbol macros aren't fine, actually. compile-symbol doesn't know about global symbol macros
3:19:14
Bike
the var-info function should have a clause like ((ext:symbol-macro symbol) (values :symbol-macro (ext:symbol-macro symbol))) i think
3:35:12
drmeister
TYPE-ERROR (KEYWORD::DATUM 256 KEYWORD::EXPECTED-TYPE (COMMON-LISP::INTEGER 0 255 )
3:55:35
karlosz
yeah its specifically happening because the bytecode compiler can't yet compile more than 256 distinct literals in a function
4:32:10
karlosz
are we sure that everything is getting bytecode compiled? i see a lot of interps happening when i do time
5:51:57
karlosz
Bike: i made some nlx changes to the vm. i think GO was leaking stack by not reloading the Vm state on unwind so i fixed that. basically it looks like what the lisp vm does now
7:35:22
karlosz
drmeister: i tried making it so that referencing the literal vector in C++ doesn't go through aref. it seems to build and everything fine but then when i run it i get some bizarro error about not enough arguments somehow... i'm worried i just did something dumb and messed up some smart pointer or raw pointer rleated array coercion thing
7:35:26
karlosz
what i have is here: https://github.com/karlosz/clasp/commit/717957d03e5ec8ee08a603d184cc43e044866d36
13:28:54
drmeister
::notify karlos I don't see anything wrong with your literals optimization in your branch. I also don't see that long has been implemented in the stuff I pulled. I'll run some tests to see if I can get LONG to compile and run.
13:41:21
drmeister
Could you guys rearrange things so that disassemble for bytecode is available in clasp early?
13:46:23
drmeister
Pull the vm instruction declarations into a separate file and declare them with their length as in (defcodes (+ref+ 2) ...). Then everything is in one place. You can use those lengths as sanity checks.
14:21:07
drmeister
The problem I'm hitting isn't that LONG was missing - it's that we are trying to stick the decimal value 288 into a vector of bytes