From: Attila Lendvai <attila.lendvai@gm...> - 2007-07-20 09:32:06
> > fyi, i'm getting notes like this since your change:
> > "note: unable to optimize because: Slot name is not constant."
> > even though i belive the optimization levels are on normal. shouldn't
> > this note only appear when i ask for higher optimization levels?
> I made the new deftransform "important", meaning it takes gives the
> note when it fails no matter what policy. That can be changed, of
> course, but since the difference is something like 5x, it seemed
> a sensible thing to do.
> -- Nikodemus
> PS. The SBCL lists are the right place for these questions and suggestions.
> No problem, but better there.
i thought it's only due to a small mistake, so i'm replying to the
list now if you don't mind.
i personally like my code loading/compiling without warnings and i
keep a sharp eye for new compiler messages at each recompile. from
this point of view, that note is a noise on normal optimization levels
which make it harder to catch new notes.
not to mention those unused .ARG42. warnings coming from PCL. but i
should cut that out in antoher mail.
"Attila Lendvai" <attila.lendvai@...> writes:
> i thought it's only due to a small mistake, so i'm replying to the
> list now if you don't mind.
> i personally like my code loading/compiling without warnings and i
> keep a sharp eye for new compiler messages at each recompile. from
> this point of view, that note is a noise on normal optimization levels
> which make it harder to catch new notes.
For what it's worth, I think I agree with you here: the only
:important transforms prior to this were those involving running the
compiler at runtime -- which is still a judgment call -- but also only
in one subsystem (the alien FFI), so that people writing ordinary lisp
code without any particular optimization settings don't get compiler
notes. I think that's a reasonable default, and I don't see a 5x
speedup for one operator being a desperately good reason to bother the
user at default settings. (If it were something like "unless you fix
this, you can't dump a compilerless core", or something similarly
qualitatively different, then I think that would be a sufficiently
good reason to notify the user at default settings, but not just for a
speedup: after all, the user might in the end prefer space savings).
(I should say that I'm not completely wild about having both the
compiler macro and the transforms, at least in source form -- I don't
mind how it's implemented under the hood if having both leads to a
measureable speedup in compile time, but the duplication of logic (and
";; see comment in the compiler-macro" :-) suggest that the transform
and the compiler macros should really be only implemented once in the
> not to mention those unused .ARG42. warnings coming from PCL. but i
> should cut that out in antoher mail.