Progress Report: Revised ToDos, Multi-file programming, Regular expressions
Wed, 27 Jan 1999 13:29:17 -0700
Markm, I have two more things I'd suggest putting on the list of "must
haves" before advertising. One is a complete review of the book after you've
completed the specified chapters by a fresh set of eyes to ensure it is
The other is an improvement to the parsing process that we discussed before,
a "weak type check" as in Smalltalk, that gives you early warning that you
are using a variable that is not defined in scope. Although in principal one
can blame the programmer for these kinds of mistakes, and certainly I am
wildly more careful about it now than I used to be, it is quite suprising to
find a language in this day and age that embodies E's FORTRAN-style perfect
lack of awareness. I believe that other people will have the same amount of
trouble I have had--somewhere deep in my subconscious, I just believe that
the machinery will warn me if I have an undeclared variable (which in
practice means a misspelling of a variable name). It has been very hard for
me to re-learn to be compulsively careful about this (I did, after all, once
use FORTRAN :-), it can cost you days of effort trying to figure out what
you did wrong, and will dramatically reduce the pleasure of working with the
language for people who share the expectation of a warning with me.
If this improvement is too hard to make, the system should at least come
with a warning about just how much suffering you will encounter in this
release if you are not ultra careful spelling your variable names.
We have talked about 2 different purposes for "releasing" the language, one
is to get people like cypherpunks using it, the other is to go forth and
make another try to find a little funding. The variable scope-check is
necessary in my opinion before seeking users; it is not necessary for
Once you accept a break between these two different goals, there are a
couple of things you don't need for the funding purpose. I'd have said you
don't need multiple files, and you don't need build/installation on Unix.
The rest, I reluctantly suspect, you do want.
From: Mark S. Miller <email@example.com>
To: E Language Discussions <firstname.lastname@example.org>
Date: Tuesday, January 26, 1999 7:02 PM
Subject: Progress Report: Revised ToDos, Multi-file programming, Regular
>>At what point should we announce E on slashdot or freshmeat? When should
>>we promote to the cypherpunks? I think we're getting close. We shouldn't
>>promote until people can have a rewarding experience with the download.
>>VLSs are important, but they aren't crucial until we've revived the
>>persistence logic or are trying to cross firewalls.
>> The unix build and install issues need to be fixed
>> (volunteers appreciated!)
>> I need to write my long delayed concurrency chapter
>> MarcS needs to post Secure EChat.
>MarcS & I talked about this and concluded that several more chapters were
>necessary before someone would find E a nice usable programming language,
>and therefore necessary before promotion. Specifically:
> Our ol' (E vs Flex vs Const) x (List vs Map)
> (plus String, which is already written)
> QuasiLiteral expressions and patterns
>In addition, until you can break up your program into multiple files, you
>can't really program. So add to this list
> Multi-file programming
>MarcS didn't catch it from the above text, so let me emphasize: I'm
>proposing dropping the VLS from the prerequisites for promotion, since 1)
>it isn't needed until you wanna persist or cross firewalls, and 2) we've
>done it before, so it's no longer purple, and we can credibly explain the
>I currently have multi-file programming working well enough to be usable.
>It even correctly resolves import cycles. More later in the upcoming draft
>chapter on Multi-file programming.
>Using this, I wrapped "http://www.oroinc.com/products/OROMatcher1.1.html",
>a Perl5 compatible pure java regular expression engine. It's freely
>redistributable, but unfortunately isn't open source, so E makes use of it
>if it's there, but doesn't break if it isn't. If it is, my wrapping turns
>it into a quasi-pattern parser named "rx". Again, it needs some work, but
>it's already working well enough to be usable. More later in the upcoming
>draft chapter on QuasiLiteral expressions and patterns.
>I'd love to have someone else take the lead on the unix build and install
>issues so I can just focus on the rest. Volunteers?? Thanks(!!) in