freenode/#clasp - IRC Chatlog
Search
15:56:44
Bike
then have a funcallable standard class that incorporates source info and a name and whatnot. have generic functions be a subclass of that, and regular functions be a different subclass. have a closure subclass of regular functions
16:35:01
drmeister
Ah yes. All of the wrapper functions for C++ functions share a common base class TemplatedFunctionBase_O.
16:36:49
drmeister
I did that because I needed a common base class that has all the essential properties of a wrapper function class - which are all specialized C++ template classes
17:14:33
drmeister
Yeah - but the specialized C++ template classes for wrapper functions need a common base class.
17:14:34
drmeister
https://github.com/clasp-developers/clasp/blob/dev/src/core/header-templates/wrappers_functoids.pmp#L28
17:15:42
Bike
we should lose the bclasp closure class, using the stretchy closure class with the one slot being the environment
17:18:02
Bike
anyway, type inference with numbering doesn't seem to fit well into the kildall abstraction i have, so i'm contemplating rewriting it, again
17:19:36
drmeister
I think the entry point for an interpreted closure is a static function that calls the interpreter.
17:20:16
Bike
so it's passed the closure like normal, and it gets the form and environment out of it, and calls the interpreter with those? that's what i'd expect, then
17:37:37
drmeister
This is that entry function: https://github.com/clasp-developers/clasp/blob/dev/src/core/functor.cc#L264
17:38:39
drmeister
And yes - it works exactly as you describe other than the extra step of binding the arguments according to the interpreted closures lambda-list.
17:51:05
Bike
the thing amounts to a traverse of the CFG interlinked with a mapping of nodes onto Somethings, but nothing else is defined. the traverse directions, what the somethings are, nothin
18:48:59
drmeister
It makes loads of sense to get rid of InterpretedClosure_O and CompiledClosure_O - I'm ripping them out now.