freenode/#clasp - IRC Chatlog
Search
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.
23:12:00
drmeister
Bike: We don't have arguments in backtraces in cclasp at the moment - I think the shadow stack isn't being generated.
23:13:31
Bike
there's a way to tell if the shadow stack exists or not, right? i sort of remember this happening
23:13:45
Bike
but backtraces were screwed up in general and you figured it would be better to wait for the merge to look at it
23:21:33
Bike
oh by the way did i tell you i think i figured out what was going on with defclass docstrings
23:43:41
Bike
oh. well documentation has a defsetf, so that (setf (documentation ...) ...) expands into a call to core::set-documentation
1:00:47
attila_lendvai
Bike: is there a general coding style to define a compiler macro for FOO that then calls EXPAND-FOO? i.e. even when it's a single-use function?
1:28:15
karlosz
the expander that cleavir generates is probably missing something to accept :allow-other-keys
1:28:30
Bike
https://github.com/robert-strandh/SICL/blob/master/Code/Cleavir/Code-utilities/destructuring.lisp#L247-L260
1:42:35
attila_lendvai
Bike: can you please take a quick look at my comments at https://github.com/clasp-developers/clasp/commit/3349dabaca4870b4b67114b5d2906361e41cb1f8 ? I'm wondering why checking the environment is important there... if there's a reference to #'foo, and that functions extracts the name foo, and a macro uses it as (foo ...), then it will refer for the possible local foo... or am I missing something?
1:45:56
Bike
so if you had :test 'quatro and that bit wasn't commented out, you'd end up with (quatro ...)
1:47:24
Bike
so if it is like 'eql, it falls back to doing (funcall 'eql ...) which does use the global definition
1:48:31
attila_lendvai
Bike: I have a patch pending, I can put the comment. also, I deleted my noise from the commit on github.
1:50:33
Bike
also i suppose by right we should check the environment for local bindings, and if there aren't any it can be used as if it was #'eql
2:05:59
attila_lendvai
Bike: I have a hard time finding out how to query the env and the compiler policy in cleavir... is it ready? does this make sense? (cleavir-env:function-dynamic-extent env (cleavir-env:function-info env 'foo))
2:08:05
attila_lendvai
I was grepping around with hopes of finding examples, but I couldn't find any. I also welcome pointers to examples
2:09:36
Bike
https://github.com/robert-strandh/SICL/blob/master/Code/Cleavir/Documentation/chap-environment.tex#L131-L213
2:43:55
attila_lendvai
Bike: (cleavir-env:dynamic-extent (cleavir-env:function-info env name)) seems to return nil, even though I have an flet there. building the SICL docs is just a stream of headache, but I'm unable read them in latex format. I guess I should just go to sleep now, I'll look into this more tomorrow...
2:45:45
attila_lendvai
Bike: because I'm clueless and sleepy I guess... :) I was just picking whatever seemed the closest in the fuzzy completion
2:47:55
attila_lendvai
shall I just (typep (cleavir-env:function-info env name) 'cleavir-env:local-function-info) ?
3:32:32
attila_lendvai
beach: I'm looking for an easy'n'short way to get an optimize policy given an environment... but I can't seem to find any. cleavir-policy:optimize-value is a good candidate, but it's not a generic that dispatches on an env...
3:34:00
attila_lendvai
this is the shortest I have found: (cleavir-policy:optimize-value (cleavir-env:optimize (cleavir-env:optimize-info nil)) 'space)