Arrow Version 0.1 Release

Brian Rice
Sat Jun 16 14:18:02 2001

Wow, guys. :)

That's all I can say. Check out the new protocols, cleaned up code, 
bug fixes, neatly laid-out class hierarchy (select 'ArrowStub' and 
hit alt-h for a browser on the class hierarchy for the large majority 
of the architecture's classes), and some new cool operators.

It's at the usual place:

Please ignore the project file until I put together one with the 
updated code and some more useful code views. This actually can 
probably wait for the more important work on the architecture.

This also means that any further changes to the system I will list 
explicitly and track subversions. I'll write out what the road map is 
for reaching 1.0 either tomorrow or when I return home on this coming 
Thursday. I'll say for now that between now and v1.0, Slate will be 
implemented as a subset of Arrow. :)

The new ArrowTests.text has a new operator >> at the end, and arrows 
and graphs respond to +, |, & appropriately. Everything is lazy, with 
the exception of #anyOne, the existential quantifier, because it 
needs re-writing in an intension system and self-hosted pattern 
matcher that I am cooking up at the moment. Also coming is a 
SEXP-eating REPL and a basic transcript app. Arrow frames are still 
not done, but functional, and SmalltalkMOP is usable right now.

If something doesn't work, let me know immediately so I can address 
it. There are a few bugs I know of, but I don't want to have to 
bother you with them unless you run into them yourself. Most of them 
have to do with #anyOne and its usage.

There is also an ArrowIntro.text in progress (and on line), made from 
some of the Tests file and with lots of explanations. I suggest 
reading that and then diving into class comments after that, and then 
method comments (there are a hell of a lot of them) after that. 
You'll notice that the Arrows package is pretty big now, mostly due 
to features, because I have actually been *shortening* methods left 
and right!! :)

I know a lot of the things I've promised in the Arrow Philosophy 
paper sound like hype and not much substance, but I have been working 
this long on expressing these things *properly* and getting the ideas 
matched up to known hard science, so bear with me as I get everything 
worked out, and look into some of those features, like >>, and the 
self-hosting of the symbol-tables and such that are going to be 
included soon.

Does everyone agree with this direction? Do you feel the need for 
more definitive documentation or maybe CVS entries? Smalltalk code 
really doesn't lend well to CVS; change-sets are really where it 
works best so far, although Squeak should have a good module system 
in a few months.

Comments, complaints, suggestions invited.