freenode/#sbcl - IRC Chatlog
Search
14:10:44
luis
lukego: we use (proclaim '(optimize (debug 3))) early on in the compilation (saving a core resets that so you'll need to re-proclaim in that case).
14:11:40
lukego
oh, I see, I think I have been using DECLAIM and thinking it had the same scope as PROCLAIM.
14:11:51
luis
the main rationale was to disable TCO which really messes up debugging and production backtraces for us.
14:20:19
luis
lukego: regarding declaim/proclaim, what happens IIRC is that compile-file reverts the optimization settings back to what they were before it was invoked. So if you want a default, you need to set it outside the context of compile-file.
14:22:52
lukego
hm right so I see DECLAIM is just a macro that expands into a series of %PROCLAIM calls. So then doesn't that mean I can just put a (DECLAIM (OPTIMIZE (DEBUG 3))) in a file that's compiled/loaded early and it should apply to my whole application? or does neither DECLAIM nor PROCLAIM do that?
14:24:55
phoe
this actually is a SBCL question because AFAIR whether and how DECLAIM leaks from a file into a global environment is undefined by the specification
14:34:23
lukego
do you normally compile SBCL itself with more debug etc when hacking on it? e.g. it seems annoying that running `who-sets' on *POLICY* has no hits, maybe an SBCL recompile is the solution?
15:00:38
lukego
ACTION recompiles sbcl with all the luxurious and experimental looking features he can find
15:12:27
luis
Apparently LOAD also resets the optimization policy, which means we've only actually been using (debug 3) for stuff compiled interactively. That's funny. So I don't actually know whether (debug 3) affects our run times, d'oh.
15:24:41
lukego
Maybe I'll put a #.(myapp:standard-declaimer) at the top of my source files to establish a default for "my" code. I guess I'll have to eventually "do science" on the dependencies to see whether I can compile them with more debug/safety without impacting my own application perf
17:45:52
_death
Krystof: I've already reverted the change, but it was something about dump-fop+operands expecting an (unsigned-byte 64) where something else was passed (a symbol EVENT-DATA in the case of clx).. all I had was to try to load that system.. the same kind of error when I tried to compile sbcl (with this change reverted) so I had to copy sbcl.old to sbcl etc.. I guess anyone who'll try it is likely to stumble on it, so it's basically a
17:52:02
luis
stassats: perhaps "reset" is not the best choice of words. What I mean is that echo "(proclaim '(optimize (debug 3)))" > test-problem.lisp; sbcl --load test-proclaim.lisp --eval '(sb-ext:describe-compiler-policy)' --quit | grep "DEBUG =" # yields DEBUG = 1
18:10:24
luis
Right, but not by LOADing a file. What I meant is that changes to optimization policy within LOAD are restored when LOAD finishes. (I assume there's a dynamic variable or whatever.)
18:47:13
karlosz
probably the issue is that the second arg just needs to be fopcompiled or something but that seems less worth it
23:56:16
Aurora_v_kosmose
Did this patch ever actually get submitted to the mailing list by its author? https://github.com/sbcl/sbcl/pull/37
0:42:38
Theseus
I had a bug in a situation without any debugging so had to write a lot of print statements to file to spot this
0:50:06
Theseus
handling this is not a problem, I think, but :unspecific was unintuitive and completely unexpected