freenode/#clasp - IRC Chatlog
Search
17:41:14
drmeister
Other things that you may need are also stored in the Atom_O object. Only some of it is copied into the AtomTable_O structure.
18:05:51
Bike
i should make a script that finds functions that aren't exported or called because god do we have a lot of them
21:13:22
Bike
hey. shiho ran into some kind of problem on boot. and i have a question, where are C++ files in the build system? I want to try removing some
21:15:56
Bike
i'm removing the standard-optimized-reader/writer-method things as a prelude to removing the ECL dispatch system
21:16:08
drmeister
It really should just build - when I stopped by the CL code was building. The C++ is done at that point.
21:18:16
drmeister
Crap - it's not like I haven't removed a hundred C++ files. I'm kind of drawing a blank. Ask me tomorrow - I'll probably remember when I stop trying.
21:21:52
shiho
then I got Condition of type: SIMPLE-ERROR Constructing call to intrinsic cc_dispatch_slot_reader - mismatch of arg#0 value[((PREPARE-OP COMPILE-OP))], expected type #<POINTER-TYPE {}*> - received type COMMON-LISP::CONS Available restarts: (use :r1 to invoke restart 1)
21:23:29
drmeister
Bike: So you are removing ECL dispatch? There are a few functions in genericFunction.cc that are needed by fastgf.
21:24:59
Bike
the one in particular that i'm worried about is that there's a "CompiledDispatchFunction_sp" which is treated differently from a general function
21:26:09
Bike
I was hoping I could have set-funcallable-instance-function just work the same for all functions, but i suppose it's okay if it just differentiates that
21:26:25
Bike
hopefully i can just pass invalidated-dispatch-function as a function instead of a symbol, though
21:27:13
drmeister
Here's why - the first entry point takes the arguments from the calling convention and creates a Vaslist and rewinds it - it passes that to the second entry point.
21:29:12
Bike
I think I can remove ECL independently, and just leavea test for the compiled dispatch function type
21:37:10
drmeister
I already have the instance (and the value for the slot-writer) from the dispatch function - I don't need to read them out of the va_list again.
3:28:48
beach
I have started some serious thinking about determining control flow of an arbitrary function with nested functions.
3:31:12
beach
Bike: But, you are right. It is sufficiently complicated that you should leave this to me.
3:32:32
beach
Initial goal: Handle enough cases that the result of simple LETs and things like CAR and CDR can be inlined.
3:34:22
beach
In terms of research, I should figure out examples (that I am convinced exist) where determining precise control flow requires knowing the precise control flow. Hence the difficulty here.
3:59:32
drmeister
Is there a way to get at the value of a :class allocation slot from the class of an object?
4:37:08
beach
Inlining global functions such as CAR is not as trivial as we might have thought. For good reasons, in Common Lisp, you are not allowed to shadow CAR in an FLET, so we must give it a different name, and make sure that references to it in the form of direct function calls are renamed. References like #'CAR should not be affected.
4:38:52
beach
Though I guess we could translate each call, like (car x) becomes (flet ((car (x)) <copy-of-ast>) (car x))
4:43:06
beach
In that case, it is fairly simple. Just replace (car x) by (flet ((<gensym> (x) <copy-of-ast>)) (<gensym> x)).