freenode/#clasp - IRC Chatlog
Search
20:52:12
drmeister
Can we use a combination of digging the stackframe size out of the DWARF info and frame pointers?
20:55:44
kpoeck
Bike : don't know if this is still interesting, or you already know this one, from the currently free from acm library another article about ilog/talk https://dl.acm.org/doi/abs/10.1145/182409.156777
20:57:49
Bike
i also dug up the source code, that's right, but it was a restricted version and didn't have anything interesting i could find
20:58:09
Bike
drmeister: maybe? here's the thing though - the exception handling doesn't work. like, we make our Unwind exception, and throw it, and it's not caught. so even the C++ runtime can't recover the frame i guess
20:58:30
Bike
i tried turning off my libunwind frame check to see if it was just that failing, but no, the underlying exceptions aren't working either
21:35:55
drmeister
They are a bit ugly but lots of information. Function names, arguments, source info when available.
22:12:38
drmeister
It's a problem with the C++ __repr__() method - strings don't print their quotes.
22:13:23
drmeister
I'm thinking for strings we just add quotes around them to the __repr__() method.
22:14:06
Bike
repr is presumably based on python repr, and repr is more or less the readable one, so sure
22:14:22
drmeister
Otherwise I special case strings when printing backtraces and put quotes around them when printing string arguments.
22:15:01
Bike
i don't want repr to exist, really, but if it's restrained to something like backtraces whatever i guess
22:54:02
drmeister
Another idea is to put the return addresses in the backtrace and also dump a list of every object file and where the runnable code is in memory.
6:32:55
drmeister
::notify kpoeck We hit a problem with the eclector reader - when it reads in structures it appears to want a value for every slot. If a slot is unbound this code will fail... https://github.com/clasp-developers/Eclector/blob/master/code/reader/fixup.lisp#L28
6:35:45
drmeister
https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/lsp/sharpmacros.lsp#L68
8:13:22
Colleen
kpoeck: drmeister said 1 hour, 40 minutes ago: We hit a problem with the eclector reader - when it reads in structures it appears to want a value for every slot. If a slot is unbound this code will fail... https://github.com/clasp-developers/Eclector/blob/master/code/reader/fixup.lisp#L28
8:23:11
phoe
https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/lsp/sharpmacros.lsp#L68 describes classes, not structures
8:37:12
phoe
for actual structures, the reader at https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/lsp/sharpmacros.lsp#L61 wants to seem to read exactly N key-value pairs where N is the number of structure slots
8:38:03
phoe
hmmm, grepping http://clhs.lisp.se/Body/m_defstr.htm for "bound" gives me no good results
8:38:51
phoe
it must follow the part that reads "If no slot-initform is supplied, the consequences are undefined if an attempt is later made to read the slot's value before a value is explicitly assigned."
8:39:52
kpoeck
But it would have been nice if drmeister left us a concrete case, so that I could fix it, while he sleeps
8:49:06
kpoeck
the example with an unbound slot is (defstruct (bar (:constructor make-bar (a))) a b)