freenode/#clasp - IRC Chatlog
Search
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
13:39:36
drmeister
This is the relevant part of the backtrace - generated with (core:safe-backtrace)
13:40:38
drmeister
This is something I thought we could never do - segfault - catch it - unwind - do it again.
13:41:26
drmeister
Dereferencing NULL is a pretty common way that I segfault because in C++ I sometimes use variables that I haven't set up yet.
13:45:25
Bike
i might be able to have it find the address that caused the problem as well, if that would help
13:47:41
drmeister
This is going to help tremendously with debugging once other people start hitting these.
13:48:15
drmeister
I should use (core:safe-backtrace) when we get a SEGMENTATION-VIOLATION in jupyter notebooks - then it would show the C++ functions as well.
13:51:10
davidlovemore
In one ARM JIT I worked on, we used to regularly BL (Branch and link) to 0 conditionally to generate an error as part of debugging. Brings back memories.
13:54:16
selwyn
drmeister: do your collaborators prefer to develop with jupyter notebooks over emacs?
13:54:43
davidlovemore
The address should be on the stack. You can definitely get at the registers after a fault. The MPS code does this. The return address should be in [rsp].
13:55:26
drmeister
selwyn: They will - yes. I also prefer it because I use it to interactively debug complex things like geometry optimization.
13:55:45
drmeister
selwyn: We connect a slime session into the jupyter notebook - so we get the best of both worlds.
13:56:07
Bike
well i was wondering if we could get the address in memory that was improperly accessed, like 0 in this case
14:03:10
Bike
"For some implementations, the value of si_addr may be inaccurate." good old standards.
14:05:41
drmeister
By implementation they mean operating system - right? Since we only support Linux, FreeBSD and macOS - maybe we will get lucky?
14:13:53
drmeister
I should be able to do this - right? (make-array 2 :element-type 'single-float :initial-contents #( 1.0d0 2.0d0))
14:14:20
drmeister
Initialize a single-float specialized vector with a simple vector of double-floats?
14:15:46
drmeister
No -apparently not. "Each leaf of the nested structure must be of the type given by element-type. "
14:22:39
drmeister
The compiler warnings we are getting now in slime are fantastic! Programming is very zippy.
14:28:56
davidlovemore
Bike: si_addr seems to work on intel linux. You can get at the regs via the u_context_t structure passed to the third argument of the sigaction callback.