[Types-sig] Syntax

Greg Stein gstein@lyra.org
Sat, 18 Dec 1999 13:31:23 -0800 (PST)

On Sat, 18 Dec 1999, Paul Prescod wrote:
> Tim Peters wrote:
> > 
> > [Martijn Faassen]
> > > While my agenda is to kill the syntax discussions for the moment,
> > > ...
> > 
> > Martijn, in that case you should stop feeding the syntax meta-discussion and
> > just view all the other notations as virtual spellings for masses of obscure
> > nested dicts <wink>.
> Let me point out that it was the masses of obscure nested dicts that I
> was objecting to when I told Greg that the syntax cannot be restricted
> to Python (by which I meant Python 1.5). Obviously, by definition any
> syntax that we use for Python 2 becomes "Python". In fact, I don't see a

I'll reiterate: I think our goal is for 1.6. We should assume that 2.0
does not and will not exist. It is too far out to defer any of our goals
to that version.

Yes, we'll have V1, V2, V3 goals, but I think we ought to shoot for their
inclusion into 1.6. Only when Guido says "no, I don't want to put that
into 1.6," *then* we start to lobby for Python 2.0 changes."

> lot of difference between the widely embraced Tim-syntax and the syntax
> I posted a few days ago (based on the Tim-syntax). But if putting the
> keyword "decl:" in front makes it feel better then I'm all for that!

Sorry. I won't let you rewrite history :-). You were suggesting a new,
alternative syntax, rather than adding new syntax to Python. Tim and I
(and some others) have lobbied for adding new syntax. In particular, I
don't want to see Yet Another Language and Yet Another Parser to deal with
a distinct language/syntax for type specifications.

> I'm still thinking that it should go in another file because I want to
> be able to experiment with this stuff WITHOUT maintaining a new Python
> interpreter binary.

This will be quite possible. My current development proposal specifies the
static, compile-time checker as a separate tool. That tool could easily
use a separate file for its input.

Regardless: I'd hope that the first step to any implementation is to
update the Python grammar and allow us to annotate existing Python
programs (i.e. to use inline syntax). Updating the grammar is not super
difficult, but I hear you about wanting to not use another binary. But
I'll just shrug that off and say that's your problem :-)


Greg Stein, http://www.lyra.org/