[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,
~
--