freenode/#clasp - IRC Chatlog
Search
10:47:15
Colleen
drmeister: attila_lendvai said 7 minutes, 17 seconds ago: hrm, I could reproduce the waf jobs issue locally. a note: it's better to record the reason for the change right into the wscript file in a comment. I've seen that diff long ago, versus just saw this ephemeral note here on irc. code comments also remain near the change for long if someone later on wonders about it. I've pushed a commit to record it there.
10:47:15
Colleen
drmeister: attila_lendvai said 4 minutes, 4 seconds ago: re that linker issue: reading the bug reports it look to me a legit error that happens due to not doing something properly, and it may not cause any issues when linking in a more permissive environment (macos?). but it's just a vague impression...
12:31:39
drmeister
Bike: davidlovemore May have questions. Can you help him with questions about how to create and access functions that are accessible from the repl?
12:32:32
davidlovemore
I am really asking how to write a finalizer and provoke finalization, so processMpsMessages(size_t &finalizations) gets called.
13:18:55
Colleen
Bike: drmeister said 7 hours, 36 minutes ago: In the new dev - can you give me a switch where I can compile with cst but not inlining? I need to debug %defcallback because just as I suspected - when I try to compile cando with the new dev it fails in the worst place possible. While compiling the pzmq system. Source tracking could help me debug it.
13:18:55
Colleen
Bike: drmeister said 7 hours, 25 minutes ago: What happened to compile-lambda-form-to-llvm-function? I need it to make defcallback work - can revivify it https://github.com/clasp-developers/clasp/blob/mps/src/lisp/kernel/cleavir/translate.lisp#L1176
13:18:59
Bike
drmeister: building with cst is broken for a reason i'm not clear on. that's why i was trying to use bclasp+cleavir yesterday.
13:19:15
Bike
drmeister: i removed compile-lambda-form-to-llvm-function because I couldn't find anything that was using it. I'll put it back.
14:38:50
Bike
drmeister: unrelatedly- the cmp:function-info has all the source information, right? but enclose still stores the source information as parameters- we can get rid of that now, right?
15:07:23
drmeister
I have to get on my laptop to give you more info. I look it up with find-symbol. Yeah - I know - bad.
15:08:33
Bike
it says "lambda form", but i figured you meant "lambda expression", something like (lambda (x) x)
15:18:55
Bike
translate-lambda-expression-to-llvm-function. it does take a lambda expression like i said,though, right? i'll fixitin defcallbackaswell.
15:20:55
drmeister
It's ok if you stomp on it - I just want it to work again and then we can deal with making it work with the cst changes.
15:27:34
Bike
For reasons I'm not clear on, and I'm not sure where to begin debugging because i can't use bclasp+cleavir
15:30:18
drmeister
What do you think about another system and generic functions to switch between the compilers at runtime. It might make debugging easier.
15:38:01
drmeister
Or we change the package of the function to :CMP and I export it early on so that the symbol is known.
15:38:41
drmeister
Calling out to Cleavir from code in clasp/src/lisp/kernel/lsp or clasp/src/lisp/kernel/cmp is always problematic
18:03:57
Bike
drmeister: i just tried to build cmps and hit an error 'no member named '_Class' in 'ForeignData_O'. does the mps branch have fixes in it?
18:45:41
kpoeck
I could build with the merged dev (good), the regression-tests work as good as before, but more ansi-tests (at least one) are crashing clasp
20:16:51
attila_lendvai
cracauer: hi! what do you mean by repackage waf? you need to use a newer version of waf and update the ./waf file in the git repo?
20:18:08
attila_lendvai
cracauer: for that there is ./tools-for-build/build-waf.sh (target waf version is hardcoded in the sh file)
20:19:12
cracauer
I want to fix a couple of things where the author misunderstands how the Unix api works. I am not optimistic to push them upstream anytime soon.
20:21:07
attila_lendvai
cracauer: oh, I see. then maybe you can modify that .sh file to apply a few patches that you check in into the clasp repo, maybe into ./tools-for-build/waf-patches?
20:21:45
attila_lendvai
cracauer: if you send me the diffs then I can take care of the rest. attila@lendvai.name
20:24:25
attila_lendvai
cracauer: I'm afraid I don't follow you. my understanding: you have fixes for waf, and you are worried that they won't be included any time soon in waf upstream, but you do want to have them meanwhile while building clasp. is that right?
20:30:46
attila_lendvai
if my assumptions are correct, then my proposed solution would work. the result of the waf build is checked into the clasp repo, so everyone would get the patched waf with ./waf ...
20:39:26
cracauer
Oh it would work of course. But it is confusing to people building clasp and wondering why waf behaves differently. If you had a direct git diff for your own fixes they wouldn't have to realize there is a patch-inside-git situation going on.
20:41:40
cracauer
branch dev just built, with cando, on Linux. I thought that is the one broken by cst?
20:48:10
attila_lendvai
cracauer: then we can fork waf into github/clasp-developers, create a branch, record the fixes, and point the build-waf.sh script to that repo. would that be better?
20:50:30
cracauer
I have seen the upstream project. I am surprised that other people don't have lots of problems around symlinked build dirs and shellscript frontends for interpreters with waf.
20:51:43
cracauer
Let me think about it. I want everything going smoothly before I try to correct upstream.
20:53:03
attila_lendvai
cracauer: I assumed that your patches are not just "behave differently" but clearly fixing waf. if you're expecting a long and bumpy road with this, then I think the best approach is to create the fork on github, and push -f as needed, and then rebuild waf and check it into the clasp repo. and eventually create a PR to waf upstream.
20:54:01
drmeister
ita (the developer of waf) hangs out in #waf on freenode - he has always gotten back to me within 24 hours and he has fixed bugs for me. That being said - his advice to me is often "Read the wafbook manual" and often he was right.
20:56:14
drmeister
Bike: What do you need from me right now? Is there still an issue with the workbench?
20:58:01
attila_lendvai
random venting: waf is the most surprise-ridden software that i tolerated for such a long time... and for me, even having an excellent manual cannot compensate that.
21:11:09
drmeister
Bike: I have a fix for you - I'm changing the code but if you want to just get going it's a simple change in the workbench.
21:15:25
Bike
by the way, did you fix the parallel build thing? i set the configure variable to True but it still builds serially
21:15:33
drmeister
Bike: If you ever come in to work and there is a iMacPro shaped hole in the stuff on your desk - I probably have it.
21:16:12
drmeister
Uh - I hacked something - maybe attila_lendvai fixed it? I haven't read back into the logs.
21:48:07
kpoeck
I am getting a ../../src/main/main.cc:269 There was an unhandled exception - do something about it.
21:51:13
drmeister
Run under the debugger and check the backtrace. An unhandled exception should leave you where the exception was thrown because it couldn't find a matching catch.
21:52:01
drmeister
You can try to break right before the error triggers and put a break on __cxa_throw
21:56:20
drmeister
kpoeck: There is something strange about your observation though - it's a message from handle_unhandled_exception(); but the only place that is called from is https://github.com/clasp-developers/clasp/blob/dev/src/main/main.cc#L442 which is commented out code.
21:57:34
drmeister
Did you uncomment that code? If so, comment it back out again and try again. I commented out that code when I realized it was a really bad idea to catch exceptions with catch (...) because it unwinds the stack and you can't find the throw that caused the problem.
21:58:47
drmeister
boost::format will throw exceptions that aren't caught if you don't have the right number of arguments to a boost::format statement.
22:01:59
drmeister
Bike: Can this happen if there is a return-from or a go from an escaped function if out lives its destination?
22:03:48
Bike
it smells like bad unwinding, but i'm pretty sure cc_landingpadUnwindMatchFrameElseRethrow should be caught immediately if it signals
22:04:53
drmeister
Argh - right - it's easy to generate this error message - never mind what I said above about uncommented code.
22:06:48
drmeister
This is because we don't currently have a way to detect this situation that wouldn't slow down stack unwinding even more.
22:07:30
Bike
well, i mean,conceptually it isn't very difficult. the unwinder already goes through the stack twice like we'd have to.
22:07:50
Bike
I suggest that because the throw from cc_landingpadUnwindMatchFrameElseRethrow god i hate that name should immediately be caught
22:08:31
Bike
i'd rather break it up into two steps that just return values, but i figured, why fix what ain't broken
22:18:23
kpoeck
Load the code and than (with-package-iterator-internal (list (find-package "COMMON-LISP-USER")))
22:40:48
drmeister
One thing that isn't broken is Cando! I can build Cando now with the new 'dev' branch. Yay! Medal's all around.