[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] (use foo) versus (declare (uses foo)), csi versus cs
Re: [Chicken-users] (use foo) versus (declare (uses foo)), csi versus csc
Sun, 21 Oct 2007 20:05:55 +0200
On 10/21/07, Peter Bex <address@hidden> wrote:
> Why is the difference between compiled and interpreted mode there?
> The meaning of these things isn't fundamentally different between the two
> modes, is it? Can't (declare) statements be parsed by the interpreter as
> I understand that dynamic (use) calls (within if or cond, for example)
> can't be compiled, but surely the interpreter can pick up the compiler hints..
If you think all the different ways of declare'ing, use'ing and require'ing are
confusing, then you are right. No discussion here.
But "declare" is an ugly wart anyway. It exclusively deals with compilation-
related things and it would just be a pathetical copy of Common LISP[*]s
"declare", which is mostly ignored, but for the "special" declaration.
I recommend not to use it at all, and use compiler options instead. Or better,
use dynamically loadable code. But sometimes one needs plain old
object files, or a statically linked executable, and sometimes "declare"
simply does the job (a bit like "eval-when").
[*] Note the uppercase way of writing it - it drives them mad! ;-)