freenode/#clasp - IRC Chatlog
Search
17:26:59
drmeister
Bike: If swank-compile-file is now getting the line/column information - how do I pass that to compile-file?
17:27:32
Bike
a keyword parameter in compile-file, like we have now for the source-debug-filename and -offset
17:30:06
drmeister
I know - but luis mentioned that it was there and so if we are adding line we should add column. If they are NIL then we ignore them.
17:36:46
Bike
if we specify an llvm function to call from lisp can we get it to keep the optional parameters instead of making them all required?
17:40:55
drmeister
Bike: Yeah - that's typically how I've done it. You can add a CL_LAMBDA and provide defaults.
17:42:05
Bike
i see. i'm not sure how to even make one of the defaults normally so maybe i'll hold off
17:43:14
Bike
https://github.com/clasp-developers/clasp/blob/dev/src/core/lispStream.cc#L5456-L5467 as you can see, when you get the SPI from the stream, you pass in the file offset and it adds
17:43:28
Bike
(alternately we could make the SPI in lisp based on a bunch of values returned by this function)
17:43:47
Bike
and that would just be a special variable bound by compile-file, same as source-debug-offset
17:47:30
drmeister
I just submitted a pull request to the github slime repo. It's being looked at now.
17:48:30
Bike
but i forgot that at the moment most of our variables aren't actually allocas, so i'll have to work through that
17:51:55
Bike
line numbers for variables don't actually even show up in the debug info in files, not sure what's up with that
17:54:15
drmeister
Are you interested in learning how to access it... implementing the code that will pull it out of the runtime?
17:56:02
drmeister
We can sit down and take a look at it together - I've spend a bit of time with it. We start with an IP address and call some functions and (I think) provide callbacks that get called with handles to the information we want.
17:57:06
drmeister
I'd say we write a bespoke function to interrogate everything, line tables, variables etc and then populate some Lisp structs that we return to the caller.
17:58:02
drmeister
On the other hand we could expose the DWARF API to Common Lisp and pass C++ lambda's that funcall Common Lisp functions that accumulate the data.
17:58:48
drmeister
I've done that before and it's perfectly safe because we use C++ exception handling for stack unwinding.
18:06:36
Bike
exposing the dwarf api sounds better for actually unnderstanding the dwarf api, honestly
18:52:53
drmeister
Whatever you want to do. It's straightforward to pass Common Lisp functions to C++ code by wrapping them in C++ lambda's that invoke core::eval::funcall(fn,...)
19:28:16
pnp
drmeister: that's interesting for sure. i'm sadly watching videos to do simple postprocessing with pandas. basically is a waste of time but i have to do it :-/
19:35:54
drmeister
It's like doing stuff with tables with a library because iterating in Python is too slow?
19:43:12
pnp
ok... i have csv files from NX and don't want to spend too much time on it. the advantage is to have few lines of code basically to accomplish the same task
20:43:22
drmeister
Bike: Why does this error not tell us the function that was called? An error occurred of type: WRONG-NUMBER-OF-ARGUMENTS: Got 1 arguments, but expected at least 2