freenode/#clasp - IRC Chatlog
Search
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.
23:08:39
drmeister
I started implementing the problem detection and resolution part of the paper and i can't get the regular algorithm to fail.
4:39:36
Kevslinger
Xeus (what we were calling Xenon or Xeon or whatever today) seems to be a new, lightweight IpyKernel. They have a python and C++ implementation currently
4:42:17
Kevslinger
Here's the base: https://github.com/QuantStack/xeus and then there's also a C++: https://github.com/QuantStack/xeus-cling