[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DECLARE SPECIAL Considered Confusing

I think it's hard to say whether the current situation causes serious
trouble for code writers, or will cause such trouble.  I agree with you
that the policy question of whether we should consider the question open
or not is not completely clear.  However, I find the current situation
confusing and counterintuitive.  Confusing behavior in a peripheral part
of the language definition is one thing, but here we're talking about
confusing in the basic semantics of how variables work.  I definitely do
not like the current definition.  It seems arbitrary, inconsistent, and
overly complex that the evaluation of certain forms, like optional init
forms, should see the declarations from the body inside while they do
not see the variables being bound.  I fully expect to have bugs in my
code because of this surprise, and I don't know if I'll ever get used to
it.  I would be happier if we decided to fix the definition in some way
(Pavel's proposal looks like it's basically the right thing, but I have
not thought hard about all the details yet).