freenode/#clasp - IRC Chatlog
Search
20:54:19
drmeister
https://www.dropbox.com/s/ef9byer6t88c7ip/Screen%20Recording%202020-08-01%20at%204.52.03%20PM.mov?dl=0
20:58:50
drmeister
After making that last change (declare (notinline make-instance)) it is now building through to asdf.
21:05:51
drmeister
I hacked them locally to (declare (notinline make-instance)) and now asdf is building.
21:10:50
drmeister
Yeah - and it seems intermittent but from the compiler side. Like sometimes it compiles code that works but in the last day my experience is it compiles code that tries to invoke bclasp-compile at load-time and then craps out.
21:13:01
drmeister
I'll find out. I added code to print a message when bclasp-compile is invoked during startup.
21:13:35
Bike
make-instance expands into something with a (load-time-value (ensure-constructor-cell ...))
21:15:17
drmeister
Why (declare (notinline make-instance)) then? I know you explained it yesterday but when you did I assumed we did not want (load-time-value (ensure-constructor-cell ...)) at load-time, ever.
21:15:37
Bike
if we didn't ever write it why would i have written it to expand into that in the first place?
21:16:11
Bike
it's just that because of the way we build we have to worry about it trying to evaluate that ensure constructor cell stuff before static-gfs is actually loaded.
21:18:42
drmeister
Ok, but this is happening in Acclimation and Concrete-Syntax-Tree - AFTER static-gfs is loaded. So it should be using the (load-time-value (ensure-constructor-cell ...)) expansion at after static-gfs are loaded and it should work - right?
21:20:38
drmeister
I didn't think I was looking at the right problem - now I know that there type error is related to the real problem and not some mis-compilation.
21:23:56
drmeister
I'm playing with udb and adding my common lisp object inspection extension to it.
21:24:39
Bike
for context, the idea here is to avoid all the overhead of calling the make-instance, initialize-instance, allocate-instance generic functions and checking keywords and stuff, by computing a function tailored to deal with the particular class and keywords at the call site
21:25:13
Bike
this function can't be permanent since the class can be redefined and stuff, so load-time is about as early as we can compute it
21:25:59
drmeister
Understood - and you intended that the compilation of these optimized functions happen at load time - but only after static-gfs is fully loaded.
21:26:47
drmeister
Ok, so I'll remove the changes I made to Acclimation and Concrete-Syntax-Tree and let them crash the way that they were and try to get some info on why they are crashing.
21:28:52
Bike
if we don't get this figured out by monday i'll probably disable it locally so i can focus on bignums
0:45:49
drmeister
This is frustrating. I've built a version of clasp that should fail with this problem but it does not.