freenode/#clasp - IRC Chatlog
Search
3:55:49
drmeister
robink: I don't see the overlay file that you posted above: https://raw.githubusercontent.com/Haifen/robinkverlay/master/dev-lisp/clasp/clasp-9999.ebuild https://raw.githubusercontent.com/Haifen/robinkverlay/master/overlay.xml
4:37:57
drmeister
Argh - there is still a problem with the build - now it's faulting when compiling this method... https://github.com/drmeister/clasp/blob/dev/src/lisp/kernel/lsp/pprint.lsp#L115
5:12:32
robink
drmeister: Hm, interesting. The overlay file is at https://raw.githubusercontent.com/Haifen/robinkverlay/master/overlay.xml
5:15:53
drmeister
robink: I have to head to bed - I restarted the build here with debugging turned on to see if I can figure out from the debugging output what is going on with that print-object-method that is causing the build to fail. I'll check it out in the morning and push a fix once I figure it out.
5:22:20
drmeister
Hi beach - I got fastgf working with cclasp - although there appears to be some kind of satiation problem with print-object at the moment.
5:26:19
beach
From stassats' remarks, I can tell that he is skeptical about it, but I can't tell the reason for his skepticism.
5:30:10
drmeister
We still have some speed bumps in gf calls that will mask the effect of fastgf - we will get rid of those next.
5:32:24
drmeister
I think my current problem is the printer invoking PRINT-OBJECT somewhere in the fastgf compiler. It's going into a recursive loop when it compiles a certain PRINT-OBJECT method and that overflows the stack.
5:32:56
drmeister
I say I think because I can't think of anything else at the moment. I was very, very careful to avoid generic function calls.
14:21:05
drmeister
I discovered that my dispatch functions drop one call history entry under some yet unknown circumstances
14:21:37
Shinmera
That sounds like it might be a bad push somewhere, or forgetting to increase the fill-pointer.
14:39:56
drmeister
There's no concurrency - and yeah - it's a corner case somewhere. It has an optimization step that coalesces ranges of stamps. I'm turning off fastgf and rebuilding so that I can experiment with the dispatcher compilation
14:40:10
scymtym
drmeister: i had a decision tree generator (from working on a pattern matcher/parser) and wrote my own code using that
14:42:33
drmeister
The method requires that objects contain unique integer stamp values and that classes write this stamp into newly allocated objects.
14:43:08
scymtym
instance objects reference layout objects. i use the layout object as whole as a replacement for the stamp
14:43:57
scymtym
the immobile-space variant of sbcl keeps layouts at fixed address, so the respective layout address can be that integer
14:45:18
drmeister
So - instances point to their layout object? You can identify obsolete instances in that the layout object they point to is different from the layout object for their class?
14:46:34
scymtym
i haven't tried that, but i think i would remove obsolete layouts from call histories so that the corresponding instances get trapped
14:51:03
scymtym
btw, an initial version of the code is at https://github.com/scymtym/dispatch-experiment . since then if have added and not yet pushed dispatch on "lowtags" and "widetags"
15:00:44
drmeister
I'd need more context - the only reason I can see that it can't parse bitcode is if somehow you used the system clang when it should have used the externals-clasp one.
15:02:10
drmeister
Bitcode with errors often can't be read by anything - they aren't fault tolerant at all.
15:02:38
drmeister
At that point I set things up to write the .ll files for the module as they are generated - that's a bit involved
15:03:08
drmeister
Ok, then there is bad llvm-ir in there and we need to generate the .ll file instead of the bitcode to figure out what it is.
15:06:06
Bike
so, i could have generated bad code that still passes whatever and is output to a file, but then the loader refuses it?
15:07:10
drmeister
I've run into this several times. The only way I've found out is to write .ll files. We can read those and run them through llc and opt on the command line.