freenode/#clasp - IRC Chatlog
Search
13:08:23
drmeister
It may be messed up on Ubuntu - in which case it will take me a while to test it out. I'm a bit busy with preparing for things next week.
13:13:21
rustyv
I will keep looking into things on my own, thank you. Is there perhaps something I should look into next? Might it be some issue with llvm versions or clang versions?
13:16:55
drmeister
echo __ZTH9my_thread | c++filt --> thread-local initialization routine for my_thread
13:18:09
drmeister
It's the clang compiler that is supposed to generate that symbol - it suggests an OS dependent change in how thread-local memory is handled.
13:18:39
drmeister
Thread local memory is handled differently on different operating systems and it isn't as worked out as other aspects of the compiler.
13:20:14
rustyv
drmeister, that is certainly no issue. Thanks for your help so far! For what it's worth, I can spin up different VMs with different OSes and test things out that way
13:31:33
drmeister
Well, I would like it to work by next week because I'm going to mention it in a talk.
13:32:34
drmeister
We added multithreading to clasp recently and this has brought up some problems with thread-local storage - and of course the problems are different on different operating systems. (sigh)
13:38:49
rustyv
is there something you would like me to try out this weekend, perhaps? Maybe I can help in some way
13:54:12
drmeister
rustyv: For this demo that missing symbol on Ubuntu (and probably other linuxes) is a non-starter. You could try it on Debian 10
13:54:47
drmeister
If you have access to a Mac - you could try it on there as well - I tested it a few weeks ago and it was fine on macOS.
13:58:22
drmeister
This is after fixing about 100 bad implicit casts that are caught now by my new Inherit<T1,T2> template code.
13:59:11
drmeister
None of them looked really bad - but maybe I really can't spot the problem and it's better to let the compiler do it.
14:00:11
drmeister
This catches things like an object of type Foo ->(cast-to) T ->(cast-to) Bar and then treated like an object of type Bar.
14:11:48
rustyv
drmeister: I'll set up a Debian machine this weekend and see what I can learn :). No access to a Mac, unfortunately
14:13:18
drmeister
I used Ubuntu up until about 4 months ago and then we switched to Debian 10 as our reference Linux system.
14:13:45
drmeister
I'm pretty sure you will see the same problem - but if you don't that will be very helpful.
14:14:19
drmeister
We are spinning up a continuous integration system and we will be adding these demos as tests at some point - just not this week.
14:14:43
rustyv
Yea, I expect the same. Regardless, it's worth a look. And Debian as a reference OS makes more sense than Ubuntu, in my opinion
14:18:39
rustyv
mhmm. Anyway, drmeister, I should be going now. I'll pop back on IRC with the same nickname and let you know what I discover with Debian. (perhaps I'll even make a proper IRC account)
19:30:00
drmeister
Also, I've been delinquent in accepting pull requests - if there are any holding you back - tell me which ones and I'll accelerate those.
19:31:10
drmeister
kpoeck: Right - we saw that when you first tried. Then we turned on DEBUG_GUARDS and the problem appeared to go away.
19:31:46
kpoeck
I get recursive messages like In clos::dispatch-miss with generic function COMPUTE-APPLICABLE-METHODS-USING-CLASSES In clos::dispatch-miss with generic function COMPUTE-APPLICABLE-METHODS-USING-CLASSES
19:31:57
drmeister
Here's some hopeful news. I figured out how to tell the C++ compiler how clasp's hierarchy of tagged pointers inherit from each other.
19:33:36
drmeister
Inside the Clasp C++ code there are a lot of situations where smart_ptr<Foo_O> is cast to smart_ptr<Bar_O>. They are valid if Foo_O inherits from Bar_O but not the other way around.
19:34:19
drmeister
As of yesterday the scraper puts together a big block of template code that tells clang what inherits from what and so now the compiler catches bad casts.
19:35:07
drmeister
Once I'm done with this (I'm still fixing bad casts) I'll push it and we can try Mcclim again.
19:35:39
drmeister
One observation is that after fixing about half of the bad casts I was able to compile ASDF using the MPS garbage collector in Clasp for the first time.
19:36:30
drmeister
But the crash in Mcclim smells like a memory corruption problem. When I run with MPS memory corruption surfaces very fast.
19:37:45
drmeister
If there is a memory corruption problem it will be in the Boehm version as well - its just that since the MPS version moves memory around it is very, very sensitive to memory problems.
21:33:51
drmeister
Ok - I just pushed a whole lot of changes with the new smart_ptr cast validation.