freenode/#clasp - IRC Chatlog
Search
15:00:48
Bike
you should keep doing what you're doing, i'll tell you if i get something that can be coherently examined
15:08:53
Bike
any chance i can get lisp arguments from lldb? or does all the underlying C++ functions having "<unavailable>" mean they're really gone
15:43:31
drmeister
But if you attach __attribute__((optnone)) to the function - then they will be there for you.
15:43:57
drmeister
You can also try crawling up and down the stack - sometimes I get lucky and I find the value available somewhere.
15:44:55
drmeister
Or if you are truly brave 'register read' will dump the registers - if they end in 'f' or not '0' and they look like a pointer - then you may have a tagged pointer that you can examine.
15:45:23
beach
You can start testing it by replacing Generate-AST by CST-to-AST provided you call cst:cst-from-expression before feeding a form to CST-to-AST.
15:45:47
drmeister
beach: Wonderful! We were talking about modifying our reader to generate CST's today.
15:48:07
beach
How do you plan to modify the reader? I mean, a reader macro can do some arbitrary shuffling of its recursive read result. Or do you plan to "cheat" by having your reader macros do something other than "standard"? If so, what happens if there is a custom reader macro that does not know about CSTs?
15:49:17
drmeister
Clasp's reader has kept track of source information from day 1 - we just don't use it. I haven't thought about reader macro issues.
15:51:18
beach
Suppose your input is (say) [(a) (b) (c)], and the result of invoking the reader is ((c) (c b) (c b a)), how do you identify the origins of all those expressions.
15:51:29
drmeister
Streams keep track of the file offset, line number and column. It used to bundle this info up in a C++ class that is exposed to Common Lisp called a core:source-pos-info object.
15:52:53
drmeister
Right - it didn't do anything with atoms. But in the reader, where the atoms are generated - the source information is available. We can generate CST nodes that associate the atoms with their source info.
15:53:17
beach
What if you have (#1=(a) (b) #1#), what is the origin of the expression marked as #1#?
15:53:28
drmeister
When you say [(a) (b) (c)] you are talking about a reader macro for #\[ - correct?