freenode/#clasp - IRC Chatlog
Search
19:27:49
drmeister
cracauer: No - clasp_gc.cc is generated by running clasp-analyzer.lisp using iclasp-boehm
19:28:04
Bike
"Unhandled SIMPLE-ERROR in thread A nested errorwithin --disable-debugger error handling prevents displaying the original error" aaaaah
19:30:16
drmeister
Do you want me to look at it and give some pointers on how to debug these worst kinds of errors? I have a menu of approaches and techniques.
19:33:29
Bike
this is pretty weird though, it's complaining about a nested error but i'm pretty sure there's only one error
19:35:02
drmeister
You can use ./waf build_iboehm -v and get the Python list for each command and then run the offending one on the command line
19:35:18
drmeister
You have to fix it up though - to transform it from a Python list to a command line command.
19:53:37
drmeister
What I mean is the llvm folks haven't gotten lld to work on macOS. It says it does on the lld webpage - but the Apple engineers tell me not to touch it.
19:54:18
cracauer
configured to support archs: i386 x86_64 x86_64h armv6 armv7 armv7s armv7m armv7k arm64 (tvOS)
19:58:20
drmeister
I found some changes in my local copy that I haven't pushed to github yet. I'm committing and building and then I'll try merging dev
20:01:30
drmeister
It's slow because we toss together all of the C++ code and the CL code as bitcode - and it tries to inline everything into everything. If we approached it a little more intelligently and linked/inlined just the stuff that makes sense to inline it would probably have a lot less work to do.
20:09:36
drmeister
Now that I say that about linking - I tried some experiments - it's a bit more complicated.
20:13:39
drmeister
If you run ./waf build_cboehm -v it will dump the Python lists that make up the build commands. I'd like to experiment with the linking stage and rather than link together all of the CL code and all of the C++ code at the same time, link subsets in two stages.
20:14:39
drmeister
There are a subset of C++ generated bitcode files that must be inlined into Common Lisp code.
20:15:42
drmeister
boehm-builtins-cxx.bc needs to be inlined into cclasp-boehm-common-lisp.bc(ll) and boehm-intrinsics-cxx.bc should probably also be inlined.
20:16:10
drmeister
I'm running some experiments right now - but they don't look like they are running much faster.
20:17:57
drmeister
rm cclasp-boehm --- that's the final executable that takes the longest to link together
20:19:59
drmeister
I think attila changed the wscript file to make things a bit easier to work with.
20:20:29
drmeister
I get the following - but it's a bit jumbled together so I have to cut things out...
20:21:53
drmeister
That links together the cando/build/boehm/fasl/cclasp-boehm-image.fasl file --- that is a dynamically loadable library that can be loaded into iclasp-boehm and gives you the full Common Lisp environment
20:23:11
drmeister
That links together the cando/build/boehm/cclasp-boehm executable - that is a standalone executable where all of the C++ code and CL code are LTO linked together - that takes the longest to link.
20:24:52
drmeister
We may not be able to speed up lto linking - it may just be the cost of doing business with lto that linking is slow.
20:25:24
drmeister
On Linux, if you set USE_LLD=True, then you use lld. If you don't set USE_LLD (or set if False) - then it uses ld
20:25:54
drmeister
lld is supposed to be faster than ld - but I haven't timed it. It seems faster - but they are both slow.
20:27:04
drmeister
There is another option: you can set LTO_OPTION = 'obj' in your wscript.config file
20:28:06
drmeister
The problem with that is lately (the past couple of months) it crashes the ld linker. I'll say that again - because it's a bit hard to believe - it crashes the linker.
20:28:59
drmeister
I've tracked it down to a problem with the DWARF metadata crashing the linker - but I don't see what's wrong with the DWARF metadata - it appears fine.
20:41:29
drmeister
What was that quote someone mentioned at ELS? Something about Lisp being the best language to use when you don't know what you are doing?
20:53:25
drmeister
Anyway, I haven't had a clear idea of how I'm going to use Cando to design molecular Lego based molecules for the past couple of years. I figured I'd sort it out when I got Cando to the point where I could do some exploratory programming.
20:53:50
drmeister
While working with the DNA origami in the past two weeks - a clear path forward is starting to gel.
21:27:36
drmeister
(ERROR "Mismatch in store function vs target function - you are attempting to store a value in a target where the store instruction is in a different LLVM function(~a) from the target value(~a)" "LAMBDA^COMMON-LISP^FN^^.3" "LAMBDA^COMMON-LISP^FN^^.1")
21:28:26
drmeister
I'm wondering if I'm looking at a different problem - or if it's the problem you saw an you have the fix in your branch
21:28:44
Bike
https://github.com/clasp-developers/clasp/blob/cst/src/lisp/kernel/cleavir/translate.lisp#L1216 this means no inlining is happening
21:31:56
drmeister
ACTION notes how this is very much like protein biochemistry, with inhibitors of inhibitors of inhibitors.
21:36:50
drmeister
Bike: That did the trick - cclasp is compiling now in cst. Once that finishes I'll try a merge of 'dev' into 'cst'.
23:02:13
scymtym
drmeister: if you have to/want to present source locations in a similar style from lisp, take a look at https://github.com/scymtym/text.source-location/tree/master
23:48:08
drmeister
Where do merge conflicts like this come from? I'm trying to merge 'dev' into 'cst'
23:48:45
drmeister
The one on the left is 'cst' - which should have been in 'dev' some time in the past.
23:49:17
drmeister
I thought merge conflicts only happen when both branches have changes in a range of source lines.
23:51:05
Bike
https://github.com/clasp-developers/clasp/commit/3be7458765bc201824d56aa2c1f99976852c071a#diff-39773bdc3e441809476e26f4f2f98c0b here.
23:54:40
drmeister
Here is a list of the files that still have merge conflicts - to give you a sense of the scale
23:55:42
drmeister
Hmm, there is a bit of a problem - it looks like there are folds and the contents of the folds are being copied.
0:05:35
drmeister
A lot of the differences make sense and I can pick which one to keep - but some are mysterious.
0:26:02
drmeister
I am making those changes by hand. Maybe tomorrow you can show me how to cherry pick without blowing everything up.
0:28:16
Bike
https://github.com/clasp-developers/clasp/commit/88b07f27bb306ec3a3feb500eb717eb0480cc9e2 probably this one
0:57:44
drmeister
This suggests we could run FreeBSD on AWS - this would help with debugging on Unix - because we can use dtrace
0:59:43
cracauer
Yes, dtrace and a bunch of other things. And I have FreeBSD on bigger boxes than my Macbook.