freenode/#clasp - IRC Chatlog
Search
13:08:18
Bike
drmeister: i think i'm still not fully understanding multiple values operations. when you call a function, does it store all its values (including the primary) in the MultipleValues vector, AND set the "Size" of it, AND return a T_mv?
14:42:23
drmeister
I don’t think quite that. It stores everything after the first value and returns the first value and the number of values in registers
14:43:32
drmeister
The multiple values storage has a slot for the first value and the number of values and that is used when I need to store the return values for any reason. But it’s just to save and load
14:44:42
drmeister
Multiple value return should be thought of as two registers and the vector for storing the second and higher multiple return values.
15:51:16
Bike
drmeister: wrinkle: C++ doesn't have VLAs, so for interpreter functions we can either have a large fixed-size array of values on the stack, or a correctly sized one on the heap
16:06:36
Bike
sp_unwindProtect tries to save return values in the case where the protected form exits abnormally... don't think we need that
16:41:37
karlosz
very unscientific, but it took 12 hours on a serial build to go from the start of cclasp to failing at inline.o [439 out of 445] without the patches