libera/#clasp - IRC Chatlog
Search
11:16:23
yitzi
Looks like the nightly builds failed. Appears that the static analyzer needs to be run. Doing so on zeus now.
14:48:49
Bike
and the compiler will do inline fixnum or float arithmetic a lot of the time for them when it can
15:06:39
yitzi
Would be nice if the analyzer was parallel. Seems to do the clang stuff all in series.
15:14:55
yitzi
Bike: Did you change anything that needs the static analyzer in your pushes today? Looks like we walked on top each other.
15:17:11
Bike
The compiler stuff I usually do doesn't usually involve adding or removing c++ class definitions
15:25:13
Bike
depends on your perspective, i guess. my girlfriend says she'd go crazy if she had to work on all this compiler stuff. but her job involves sifting through rotten meat, so who's to say who's worse off
15:28:01
yitzi
Definitely. I worked the dairy section in grocery store for a while. Expired dairy products, not fun.
15:38:52
Bike
oh, yikes. yeah i've done some food service too, not my favorite thing. and whenever i go into her lab it's like wow this is viscerally unpleasant
15:39:03
Bike
better than that time i held a cage wrong and spent the next week covered in bites, at least
15:39:25
Bike
aaaaanywho, yitzi, do you know where sbcl is from on zeus? like, the distro or what, i mean. i'm wondering about installing the sbcl sources somewhere
16:00:37
drmeister
Bike, karlosz - we can rearrange the Function_O, FunctionDescription_O, Closure_O classes to look like the plan in https://broadpharm.com/product-categories/click-chemistry-reagents/dbco?gclid=CjwKCAjwlqOXBhBqEiwA-hhitPaqV-MOsPIYqXva0nHL5lqbfFD5iWWtXL7xrkseTvFCM4bDTqnckBoC-aEQAvD_BwE#amine-reactive
16:00:47
drmeister
https://github.com/clasp-developers/clasp/wiki/Virtual-machine-design#vm-struct-definitions
18:01:48
Bike
well, that's the error you'd get from the etypecase in the definition of disassemble failing
18:04:34
Bike
is (typep #'make-instance 'compiled-function) on whatever system is running this? it is here, but i think this commit is a little old
18:14:26
yitzi
This is not on a github runner since I can't run interactive code there. It is clasp compiled from the same commit on my machine.
18:15:29
Bike
cl__compiled_function_p looks pretty obviously defined (predicates.cc#L332) to return T on a funcallable instance
18:19:04
karlosz
Bike: do you have any insight to the representation of catch and throw? sbcl just emulates catch and throw with lexical exits, which would also work well with the interfacing between bytecode and native code, since that lexical exit just acts as the trampoline
18:19:22
karlosz
however that scheme does require a bit of coordination with the dynamic search of catch tags
18:19:37
karlosz
so im not sure if clasp would be amenable to that, or if that scheme is even what we want
18:23:52
Bike
karlosz: we punt to thunks even in cclasp, so i'm not that worried about it. but if we did want to get into it, we do have catch dynenvs analogous to the block/tagbody ones, so something analogous to the entry-open instruction could work
18:28:33
karlosz
i thought you meant something like (block catch-tag (%catch (lambda () (return-from %catch-tag (multiple-values)))))
18:29:14
karlosz
the reason i think that's more convenient is that the instruction pointer is already manifest in the exit instruction, so the vm will just do the right thing even if you are throwing to the tag from native code
18:44:48
karlosz
since we're going with the single side stack, i think its possible to change the prototype lisp vm to match that without compromising on allowing intervening native frames
18:47:15
drmeister
karlosz: Question - what slots of the bytecode_function slot will a bytecode function need to access when it is entered? Any of them?
18:48:31
drmeister
When you enter a bytecode function - do you need to lookup the bytecode_function::required value?
18:49:59
karlosz
it could be put in the bytecode directly, but then you'd need to encode the required value multiple times
18:50:06
drmeister
You have a function (defun foo (x y z) ...). On entry I have to lookup 3 in the bytecode_function `required` slot. I don't have 3 in the bytecode as a constant.