Subject: RE: bug#40088: 27.0.90; Symbol?s value as variable is void: debugger-outer-match-data

From: Drew Adams <[email-masked]>
Date: Tue, 17 Mar 2020 17:12:48 -0700 (PDT)

> > It doesn't look like this bug should be solved this way. Having
> > "... is unbound" is better because it points at some function
> > forgetting to let-bind this variable (someone should find out which
> > and to which values).
> >
> > Whereas if it had an init value, that would mask such problems because
> > nil is a somewhat valid value.
> 
> If there are lots of cases like this under the cited thousands then I
> guess we need a way to declare a variable special without assigning an
> init value.
> 
> I don't like the (defvar var) syntax we have now.  It's different than
> the (defvar var value) syntax in more than one way, and it's too
> easily overseeable that it doesn't make a variable special.

FWIW, I agree with this.

I was going to say something similar a
while back, but chickened out. ;-)

Not sure what a good alternative would be,
or whether it would be considered too late.

Common Lisp handles it differently, but its
approach can also be complicated, as Stefan
knows.