freenode/#clasp - IRC Chatlog
Search
22:42:00
drmeister
Bike: I had a short conversation with David at Ravenbrook about loading compiled objects into the MPS - that is starting to look like the biggest problem that we have.
22:43:04
drmeister
Would you agree? If we had a way to compile data into fasls and then access it like regular MPS objects when the code is loaded - then we wouldn't have all these optimization problems.
22:46:32
drmeister
I need some clarity here - is there any to be had? Imagine you take all the ltvc_xxx functions and run them before any other code is evaluated and generate all of the data structures at once. Now get rid of all that and just restore the data structures. Can we then have inlined asts for all functios that we want inlined?
23:51:36
drmeister
(1) How do other lisps handle data like this? (2) beach had a scheme to use the linker to resolve pointers - how did that approach deal with tagging?
23:57:04
drmeister
Martin is picking me up soon - I'll talk with him about it. I want an excellent way out of this problem.
2:14:11
Bike
you can't use it for multiple-value-setq directly since it doesn't handle specials or symbol macros
2:16:43
Bike
but you can just expand (m-v-b (x y) form ...) into (let-uninitialized (w z) (primop:m-v-setq (w z) form) (let ((x w) (z y)) ...))
2:17:23
Bike
actually, if you just do that, and then have m-v-setq expand into setf values, that'll probably handle it, since setf values expands into multiple value binds unless clisp is extremely weird
2:23:05
Bike
https://github.com/robert-strandh/SICL/blob/master/Code/Cleavir/Intermediate-representation/HIR/multiple-value-related-instructions.lisp#L48-L67
2:24:54
Bike
the primop is definitely converted into the ast/instruction https://github.com/robert-strandh/SICL/blob/master/Code/Cleavir/Generate-AST/convert-primop.lisp#L319-L338
2:37:01
karlosz
thats just for defining the function in the first place, kind of like call-with-variable-bound
2:38:09
karlosz
the point is that the host compiler knows how to compile m-v-l so you can compile code with m-v-c in the new compiler
8:38:35
nmz787
so I'm not sure whether to use the clasp latest, or the clas 0.5 instructions here https://github.com/clasp-developers/clasp/wiki/Build-Instructions