libera/#sicl - IRC Chatlog
Search
16:22:49
beach
I am asking because, if that's the case, I wonder what happens if some argument object becomes unreachable and is reclaimed by the garbage collector. I am also considering whether Clasp could benefit from the new-ish idea for SICL, namely to pass a pointer to the call-site descriptor so that the backtrace inspector can find the arguments in the frame of the caller.
16:23:53
beach
But now I have to go fix dinner for my (admittedly small) family. I'll be back tomorrow.
16:42:04
Bike
it saves them to the stack for general calls, like for mv calls to unknown functions, or when there's a lot of arguments. the garbage collector treats the entire stack as a root so no argument can be collected until the function returns
17:08:19
Bike
find the arguments in the frame of the caller so that you can get the original values, not the local variables which might have been modified? that would be interesitng
17:08:48
Bike
but they wouldn't always be there, right? some could just be in registers, and not saved since they're only needed for the call
21:18:44
moon-child
it occurs to me that, for a given function, there will be some arguments that the caller will almost invariably want, and others that it almost invariably won't. This can be handled using call-site optimisation
21:19:34
moon-child
if a caller wants some value to be preserved, the call snippet can coordinate with the callee to have the callee save it (if it's amenable), or else the call snippet can just spill and restore