freenode/#clasp - IRC Chatlog
Search
16:41:50
Bike
just so you know, that won't work on linux - not for any major reason, but because it's conditionalized on a USE_LIBUNWIND preprocessor flag
16:47:33
drmeister
Ok, but if we did have libunwind as a dependency on linux - would you be able to use it to catch this problem?
16:49:09
drmeister
I'm hitting this problem everytime I run (start-swank) in the jupyter notebook. Grrr.
16:49:26
drmeister
Is it possible that this has been a problem all this time and only now we are catching it?
17:12:37
Bike
an out of extent returnw ithout this code would crash clasp entirely, so there are probably no lurking cases
17:14:09
drmeister
Our profiling is great! This is profiling of our new algorithm. It clearly shows the bottlenecks.
17:37:34
drmeister
And I'd left in an unneeded allocation in the velocity-verlet step that I just took out.
17:52:19
drmeister
Huh - that actually slows it down. Maybe conversions from double to float and back to double.
18:49:08
Bike
drmeister: do we have a way to clone a source pos info? so i can make a new one with an inlined-at, basically.
19:03:59
drmeister
This is a general thing I want the documentation to lay out - how do we discover this method in Cando?
20:07:17
Colleen
kpoeck: drmeister said 19 hours, 17 minutes ago: Those dockerfiles may be a bit out of date. We have a separate project that we use to make docker images. Chat with me tomorrow and I'll add you to that project.
20:11:54
drmeister
Ok, I'll add you to the "deploy" github project if you like. It has scripts for creating docker images that work.
20:56:46
Bike
so about the function scopes, what restrictions are there on how well they match functions
20:57:07
Bike
asking because if we have like, (defun foo (x) (let ((y x)) ...)), the let gets its own function, and that function won't actually exist after inlining
21:01:49
drmeister
Re function scopes. An llvm-ir instruction will be in a function - the function scope has to be the function scope for that function.
21:02:49
Bike
or was i going to only introduce function scopes at the end? that might make more sense
21:05:22
drmeister
I think it should be the function scope of the DEFUN. The LET functions are transient - right?
21:25:09
Bike
the llvm function we use is marked "FIXME: Remove this" so i guess i should change that as well
21:29:11
Bike
anyway this is actually kind of weird because we actually make the debug info in the set-current-debug-location-to-line-column-scope function, rather than when it comes into scope
21:31:41
drmeister
I hope it avoids duplication. llvm functions that are named 'get' usually avoid duplication.
21:34:45
Bike
https://llvm.org/doxygen/classllvm_1_1DebugLoc.html#a6286bc405b70a496bc53ff922a632591 anyway, the thing is i need an existing MDNode* here, apparently
21:35:06
Bike
it would be more convenient to just pass that around, like we already do with the function scope
21:37:22
Bike
i guess i could define a wrapper function to do get() more directly from lisp, then change the set function to use that
21:39:01
drmeister
You need MDNode* for function scopes. I thought a function that created MDNode*'s for function scopes as you need them and it caches them in a hash table.
21:39:27
Bike
i don't care about the function scopes right now, i'm just doing the inlinedAts like we were talking about.
21:40:45
drmeister
SetCurrentDebugLocationToLineColumnScope sets up the source information that is applied to every new llvm-ir instruction until you invoke SetCurrentDebugLocationToLineColumnScope again.
22:01:20
Shinmera
drmeister: I pushed an example of how to use Staple for your purposes to a new branch called "staple". Check out clasp/src/docs/ there.
22:01:48
Shinmera
It needs to do a bit more than I'd like it to need to do right now, so I'll make some changes to Staple later.