libera/#clasp - IRC Chatlog
Search
23:09:59
drmeister
Yesterday I switched the code to use fmt::fprintf(std::iostream ...) - it WORKED on zeus and I thought "great - the fmt people made fprintf work with iostreams". Now you tell me it doesn't work with iostreams. How is all of our code working???
23:12:40
drmeister
I am in effing version hell right now. fmt just changed from 9.0 to 9.1 - did they drop support for ostreams in just the last couple of days?
23:13:01
drmeister
Did I change all of our code to use ostreams within a few hours of fmt dropping support for it?
23:13:38
Colleen
Bike: drmeister said 58 minutes, 36 seconds ago: Ping me when you are online about CL_DEFUN - I have some questions and might clear up some things.
23:36:45
yitzi
Actually I think the issue might be that fprintf is exclusively for FILE, whereas print is for ostreams.
23:41:33
yitzi
Nope, they completely removed them in 9.1.0 .... wow I guess they consider a point release to be a "major" release. Amazing.
23:46:03
Bike
tracing the vm, i can see it going through a function, hitting return, and then somehow ending up at a previous instruction, with the same frame pointer
23:46:13
Bike
this function shouldn't be recursive and in any case the previous instruction isn't after a call
23:53:03
Bike
what it specifically does is special-bind, then some save-sp's, then bla bla bla return
0:01:22
Bike
i see... because all returns have been nonlocal so far... so it'll just escape from any number of interposed special-bind frames
0:06:04
Bike
::notify karlosz save-sp/restore-sp is broken with respect to unbinding special variables, for now
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