freenode/#clasp - IRC Chatlog
Search
16:18:16
Bike
signal handlers can be per thread, so that's nice, except since mps uses sigsegv we can't just control the handler ourselves, probably
16:26:08
Bike
sbcl also makes it seem like posix systems are kind of all over the place with important details, so that's pretty unfortunate
20:40:59
karlosz
wouild i have to resort to adding new instruction types on the MIR level to take advantage of specializing?
20:43:38
karlosz
as in system provided functions don't need to go through fdefinition and computed funcall
20:44:15
karlosz
ie. clisp compiles (lambda (x) (funcall (fdefinition '1+) x)) the same as cleavir compiles (llambda (x) (1+ x)) right now
20:44:44
karlosz
whereas (lambda (x) (1+ x)) in clisp compiles to a shorter instruction sequence since 1+ is in a specialized 'funtab'
20:50:18
karlosz
does clasp just lookup C++ functions in a table to determine whether to produce the C++ all ast node?
20:52:15
Bike
Like, the function-info for 1+ or whatever has an AST, and that AST is the foreign call thing.
20:54:31
Bike
So I guess you'd write a definition like (declaim (inline 1+)) (defun 1+ (n) (system-call 177 n))
20:56:22
karlosz
clisp already has a function that queries whether a function is 'system'. so i could just ask the function and convert the appropriate ast node during cst to ast conversion, right?
20:57:54
karlosz
i.e. convert function calls differently to ast depending on whether they are system or not during cst->ast
21:02:11
Bike
if you want it to generate typeq you'll need to provide a definition for typep that uses typeq.
21:04:03
Bike
so the ast doesn't have a function call, just the eq ast, which is converted into the eq instruction.