[ANN] Arrows v0.1.2 Released

Brian Rice water@tunes.org
Sat Feb 9 13:05:02 2002


Hey folks,
I've been quiet on the list while trying to get up-to-date on all the 
happenings and research I've missed.

But without further ado, here is the 0.1.2 release, containing the 
effects of change-sets through 22, which are also hereby announced. 
Everything has been posted to http://tunes.org/~water/arrow/. The 
change-sets can be viewed individually if you'd like some insight 
into how they work.

Also, http://tunes.org/~water/arrow/Arrows-current will now point to 
the current release as I make each one.

What follows are the preambles for each change-set since 0.1.1.
--------------------------------

Change Set:		7Intensions-btr
Date:			17 September 2001
Author:			Brian T. Rice

Preliminary changes for support of intensions, aka existential 
quantification basis by example.

Change Set:		8ExtendedCleanUps-btr
Date:			17 September 2001
Author:			Brian T. Rice

Various clean-ups and additions, mostly minor, towards version 0.2.

Change Set:		11MetaToInclusion
Date:			17 September 2001
Author:			Brian T. Rice

Changes the name of MetaGraph and its relatives to use the more 
specific and descriptive term InclusionGraph.

Change Set:		9Projections-btr
Date:			17 September 2001
Author:			Brian T. Rice

Adds direct support for one-to-one projections.

Change Set:		10DomainCodomain-btr
Date:			17 September 2001
Author:			Brian T. Rice

Adds support for accessing domain and codomain of any 
graph-as-relation in a safe and lazy manner, as well as type-checking 
in the appropriate places.

Change Set:		12TypeSafeApply-btr
Date:			17 September 2001
Author:			Brian T. Rice

Ensures that each and every method for graph application and inverse 
application always returns another graph, even singletons, bottom, 
and top types for particular cases.

Change Set:		13MoreCleanUps-btr
Date:			23 September 2001
Author:			Brian T. Rice

Additional clean-ups: sugaring for SingletonGraphs, method category 
structure clean ups, provision for lazy predicate evaluation for set 
operation results. & and | turned into /\ and \/ for clarity. Also 
simplified set operations' #anyOne and #add:. Finally, a series of 
major bugs was removed surrounding un-initialized graph caches.

Change Set:		14TransitiveClosures-btr
Date:			23 September 2001
Author:			Brian T. Rice

Adds support for reflexive and transitive closures for graphs as 
relations, and completes support for self-compositions.

Change Set:		15ImprovedFiltering-btr
Date:			12 October 2001
Author:			Brian T. Rice

Filters were updated to take advantage of the latest semantics and protocols.

Change Set:		16ImprovedCompositions-btr
Date:			26 September 2001
Author:			Brian T. Rice

Added support for relational quotient operators and cleaned up 
inclusion testing for compositions.

Change Set:		17AdditionCleanUps-btr
Date:			12 October 2001
Author:			Brian T. Rice

Factored add: to include exception block support and mapping support 
through addAll: and addImmutableAll:.

Change Set:		18ModesProjections-btr
Date:			12 October 2001
Author:			Brian T. Rice

Various modes and projections as morphisms between predicates and 
programs (see Exploring Logical Dynamics by Johan van Benthem) were 
implemented.

Change Set:		19Frames-btr
Date:			12 October 2001
Author:			Brian T. Rice

Some belated improvements were implemented in the Frame-related 
classes, as well as some re-works toward a different frame 
architecture.

Change Set:		20MOPFeatures-btr
Date:			12 October 2001
Author:			Brian T. Rice

The MOP was extended with various features to make it more useful. 
Also duplicate checking was removed in ObjectGraph>>add:.

Change Set:		21ImprovedApplications-btr
Date:			12 October 2001
Author:			Brian T. Rice

Some improvement was made on the robustness of graph application results.

Change Set:		22Product&DisjointSum-btr
Date:			17 October 2001
Author:			Brian T. Rice

Adds safe implementations of set- and relational products and disjoint sums.

--------------------------------

As always, all of this code is released according to the GNU General 
Public License, version 2.

MAJOR RELEASE NOTES:
This code only implements a small subset of full intended Arrow 
semantics. Sub-sub-version numbers indicate enhancements and 
bug-fixes, but no overall change in scope. Version 0.1 is entirely 
about 3 things: the lazy binary relational algebra engine, the basic 
set/topos mechanism supported by graphs, and the basic calculus of 
arrows. The frame system at this point is a minimal skeleton just to 
support these things, but it is entirely unnecessary. All arrow 
operations can be carried out in the basic Smalltalk environment with 
little or no knowledge of the frame apparatus.

VERSION 0.2 OUTLOOK:
As of the moment, it appears that 0.2 will comprise the work on the 
frame system (turning into a kind of module), equational rewrite, and 
a system for building evaluators. All of the code for this is very 
sketchy, so it has not been released for the intent of minimizing 
confusion.

Comments, requests, and suggestions are much welcome.

Thanks,
~

--