libera/#clasp - IRC Chatlog
Search
2:14:36
Colleen
drmeister: kpoeck said 9 hours, 24 minutes ago: do i need to install libffi to get ffi.h now used in primitives.cc?
2:15:56
drmeister
Bike: Did you change the single dispatch generic functions? snapshot save load hit a problem.
2:31:20
Bike
so far it works for + - * / negate (but not reciprocal) cos sin exp expt abs sqrt log where all arguments are floats
2:33:46
Bike
next i'll do reciprocal, comparisons, truncate et all, and then watch it fail every ansi test before merging
2:37:18
Bike
i have some ideas for how to make that work, but it would be way more involved than what i'm doing here, which basically works with regular call sites only (should cover most things though)
2:38:23
Bike
like, what i was imagining was you'd say the type of #'sin has info like that if it gets a single it outputs a single
2:38:49
Bike
so instead what this does is look for calls to sin that get a single as input, and adds a declaration that the output is a single
2:41:28
drmeister
So we only specify what the function accepts and the type system fills in what it returns?
2:42:03
Bike
well there's some special logic. something needs to understand that if sin specifically is given a single it returns a single. that's not a type you can specify in CL
2:42:57
Bike
https://github.com/clasp-developers/clasp/blob/unboxed-floats/src/lisp/kernel/cleavir/transform.lisp#L340-L359 that's done here
2:43:17
Bike
this says: if sin (or whatever unary op) is given a single, replace it with the single float sin primop and mark it was returning a single, and ditto double
2:44:23
drmeister
Ok - can I ask a different question? I've got to get to bed but something is broken.
2:46:48
drmeister
I've got some objects that have the stamp for BuiltinClosure_O - and they aren't implementing fixupInternalsForSnapshotSaveLoad.
2:47:50
drmeister
I'm pretty sure this is my fault - I fixed some clbind code in the last couple of days I'm still shaking out bugs.
2:48:51
Bike
which it was before i messed around, but with some of the weird caveats we talked about before
2:59:57
drmeister
I think I may just need to remove the method - because all it does is raise an error. It may be code from before EntryPoint_O objects