/[fset]/trunk
ViewVC logotype

Log of /trunk

View Directory Listing Directory Listing


Sticky Revision:

Revision 32 - Directory Listing
Modified Sun Jan 6 03:19:51 2013 UTC (15 months, 1 week ago) by sburson
Merging 'fset.asd' patch from Fare.


Revision 29 - Directory Listing
Modified Thu Nov 17 05:20:52 2011 UTC (2 years, 5 months ago) by sburson
Adding description, version, and licence.


Revision 28 - Directory Listing
Modified Sun Nov 13 21:30:36 2011 UTC (2 years, 5 months ago) by sburson
A few more goodies for 1.3.0:

* Functional deep update; see `update'.

* New `split-from', `split-above', `split-below', and `split-through'
operations on sets.  These take a value and return all elements of the set
>= (from), > (above), < (below), or <= (through) the value.

* `split' renamed to `partition' to forestall confusion with `split-from' etc.

* ABCL port, thanks to Alessio Stalla.

* Works on SBCL 1.0.53.


Revision 27 - Directory Listing
Modified Sun Nov 13 05:21:18 2011 UTC (2 years, 5 months ago) by sburson
Merging lots of stuff in from development branch for 1.3.0 release.

Highlights:

* Added `:default' feature to `map' constructor macro.

* Some new modify macros: `includef' (replaces `adjoinf'), `excludef'
  (replaces `removef'), `intersectf', `imagef', `composef'.  `reduce' now
  works on maps.

* Added operations:
  
  () `split' (two-valued `filter')
  () `splice' (splice a seq into another seq)
  () `appendf' and `prependf' (seq concat-and-assign)
  () `tuple-key-name' (new export)
  
  Also, changed `concat' from binary to n-ary.

* Made the methods for `sort' and `stable-sort' on CL sequences copy the
  sequence first, so these are now functional operations -- consistent with
  FSet semantics, but not with their CL definitions.  (In practice the
  sequence usually has to be copied anyway; and you can always call `cl:sort'
  explicitly if you don't want it to be copied.)

* Made (convert 'vector seq) always return a simple-vector, instead of
  figuring out dynamically whether to return a string (which fails on the
  empty seq, duh).  Added (convert 'string seq) that always returns a string
  (errors if it can't).

* New, experimental type `list-relation'.  Various other improvements to
  relations.


Revision 25 - Directory Listing
Modified Mon Nov 10 05:44:30 2008 UTC (5 years, 5 months ago) by sburson
Some minor fixes:
  
() `domain-contains' and `range-contains' were not exported.
() Some `deflex' variables in `testing.lisp' needed +earmuffs+ on Scieneer.
() A case error showed up in case-sensitive Lisps.


Revision 23 - Directory Listing
Modified Tue Nov 4 05:36:20 2008 UTC (5 years, 5 months ago) by sburson
Oops -- error in port interface for threaded SBCL.


Revision 21 - Directory Listing
Modified Mon Nov 3 05:10:55 2008 UTC (5 years, 5 months ago) by sburson
Update `fset.asd' for new files.


Revision 20 - Directory Listing
Modified Mon Nov 3 05:08:58 2008 UTC (5 years, 5 months ago) by sburson
Some final tweaks for the 1.2 release.


Revision 19 - Directory Listing
Modified Mon Oct 27 04:44:52 2008 UTC (5 years, 5 months ago) by sburson
Whoops, forgot to export `set-size'.


Revision 18 - Directory Listing
Modified Sun Oct 26 05:34:03 2008 UTC (5 years, 5 months ago) by sburson
Lots and lots of changes for 1.2.


Revision 16 - Directory Listing
Modified Sun Jul 15 23:27:07 2007 UTC (6 years, 9 months ago) by sburson
Many changes for 1.1.

() Added stateful iterators.  These aren't really any faster than converting
to a list, but they do cons less on large collections.  GMap arg types now
use the stateful iterators.  Added GMap arg- and result-types `:map' and
`:bag-pairs', using the multiple-value features in GMap 3.3 (Misc-Extensions
1.1).  Added GMap arg-type `:sequence' for completely generic iteration.

() Incompatible change: the macro `do-bag', which does map-style iteration,
has been renamed to `do-bag-pairs'; the new `do-bag' does set-style
iteration.

() Incompatible change: `map-merge' has been renamed to `map-union'.

() Implemented `some' and friends; added `nonempty' and `map-intersection'.

() Added historically-related-trees optimization for some set, bag, and map
operations.  Now, if you take one of these collections, perform a small
number of point changes on it (adding or removing a single element or pair),
and apply an operation that supports this optimization to the original
collection and the result, the operation will run in log time rather than
linear time.  Currently, the supported operations are: `subset?', `union',
`intersection', `set-difference', `map-union', and `map-intersection'; and
`compare' on sets, bags, maps, and seqs.

Fixed bugs:

() The print methods didn't support `*print-level*' portably.

() The `compare' methods for lists and vectors were wrong in the presence of
equivalent-but-unequal elements.  Also, for lists, we no longer compare
lengths first, because `length' on a list takes linear time, and because we
now support dotted lists.

() `pop-first' and `pop-last' were very wrong (they did not return the value
popped).

() `insert' wasn't sufficiently validating its arguments; also, the
implementation had a bug.

() There was a bug in `compare' on seqs.


Revision 14 - Directory Listing
Modified Mon Jun 11 01:34:38 2007 UTC (6 years, 10 months ago) by sburson
Added historically-related set/bag/map optimization.

This optimization applies to `union', `intersection', `set-difference',
`set-difference-2', `bag-difference', and `map-merge'; and `compare' on
sets, bags, and maps.  (Of these, the difference operations are probably the
ones on which it is most useful.)  It very cheaply detects cases where the
two operands share some of their subtrees, and takes the appropriate
shortcut.  (For example, the set-difference of a subtree and itself is the
empty set.)  The two operands are likely to share some subtrees if they are
historically related; e.g., if one is the result of performing a small
number of `with' and/or `less' operations on the other, or if both of them
are related in this way to a third collection.  In such cases, these
algorithms can now run in log time rather than linear time, making this a
potentially quite significant optimization.


Revision 13 - Directory Listing
Modified Mon Jun 11 01:31:10 2007 UTC (6 years, 10 months ago) by sburson
Fixed a minor bug in the bag printer.  Also, added `fset-user' package for
convenient experimentation with FSet.


Revision 12 - Directory Listing
Modified Mon May 28 03:10:45 2007 UTC (6 years, 10 months ago) by sburson
Changed ASDF system definition to use `:serial t' to work around a bug in the
version of ASDF-Install distributed with SBCL.


Revision 11 - Directory Listing
Modified Sun May 27 01:06:50 2007 UTC (6 years, 10 months ago) by sburson
Gaah, third try on `fset.asd'.

Revision 9 - Directory Listing
Modified Sun May 27 00:56:40 2007 UTC (6 years, 10 months ago) by sburson
Fix reference to "gmap" in `fset.asd'.


Revision 7 - Directory Listing
Modified Sat May 26 23:01:08 2007 UTC (6 years, 10 months ago) by sburson
Removing file of notes I didn't intend to publish.

Revision 6 - Directory Listing
Modified Sat May 26 06:37:22 2007 UTC (6 years, 10 months ago) by sburson
Fix `.asd' file (having moved it).

Revision 5 - Directory Listing
Modified Sat May 26 06:34:37 2007 UTC (6 years, 10 months ago) by sburson
Minor fixes for CMUCL, LispWorks, case-sensitive-lower mode.

Revision 4 - Directory Listing
Modified Tue May 22 05:32:57 2007 UTC (6 years, 10 months ago) by sburson
Oops, fixing structure of initial import.

Revision 3 - Directory Listing
Added Tue May 22 05:29:23 2007 UTC (6 years, 10 months ago) by sburson


  ViewVC Help
Powered by ViewVC 1.1.5