Skip to content

Releases: fosskers/transducers

1.5.1

12 Nov 21:35
76c182d

Choose a tag to compare

Fixed

  • from-csv now accounts for quotes, which ignore internal commas. Example: Foo,"10,000",Bar.

1.5.0

15 Aug 23:25
3ebde29

Choose a tag to compare

Added

  • Transducer: sexp for interpretting streams of chars or strings as separate
    SEXP strings.
  • Transducer: safe for handling conditions within individual transducers.
  • Reducer: quantities for counting unique occurrences of streamed items.
  • Reducer: partition for splitting the stream results.
  • Reducer: base-string for reducing into a simple-base-string.
  • Reducer: bit-vector for reducing into a bit-vector.
  • Can now transduce over a bit-vector (e.g. #*0101).
  • Can now transduce specially over simple-string and simple-bit-vector,
    but only with certain compilers.

Changed

  • Reducer: vector and average are now faster and use less memory.
  • Reducer: string is now more efficient and yields the specialized
    (simple-array character (*)) type.
  • comp is now a macro and uses less memory for long composition chains.
  • All iterations are no longer implicitly wrapped in a restart-case. Doing so
    improves performance (2x in the case of SBCL, 10x in the case of ECL, etc.)
    and drastically reduces memory usage. As mentioned above, if you know that
    specific transducers may fail, you can now wrap them in safe.

Fixed

  • A forgotten all? export.

1.4.0

15 Feb 10:00
5546435

Choose a tag to compare

Added

  • unique-by for more control over how uniqueness is determined.
  • for as a better pattern for doing something effectful over the stream.
  • any?, all?, and reduced? as modern aliases.

Deprecated

  • for-each: use for instead.

1.3.1

13 Jan 08:45
6de8348

Choose a tag to compare

Added

  • reduced as a better wrapper than calling the constructor make-reduced manually.

Fixed

  • Purged usage of uiop which was causing problems downstream.
  • once handles a nil argument better.
  • Apply (optimize (speed 3)) on all *-reduce functions.

1.3.0

01 Nov 23:35
9b424bd

Choose a tag to compare

Added

  • lib: The median reducer.
  • lib: The reversed source to iterate from the end of a vector.

Changed

  • concatenate and flatten now support vectors/strings.
  • Dropped dependency on fset within the main lib.
  • Licenses further relaxed to MPL.

1.2.0

20 Jul 04:32

Choose a tag to compare

Added

  • lib: The find reducer now accepts an optional :default value for when
    nothing could be found in the transduction that matched the predicate.
  • fset: transduce implementations for set, map, seq, and bag.
  • fset: Reducers for set, map, seq, and bag.

Changed

  • lib: Conditions signalled somewhere in the transduction chain can now be
    caught per-item, with various restarts available to rehandle or skip the
    problematic item.
  • jzon: plists now write as JS objects.

1.1.1

08 Feb 06:03

Choose a tag to compare

Fixed

  • allp and anyp now yield t in the case of success, and not just "non-nil".

1.1.0

02 Feb 00:40

Choose a tag to compare

Added

  • New condition: no-transduce-implementation

Changed

  • If transduce is called on a type which has no defmethod for it, a custom
    condition is thrown with a more helpful error message.
  • The JSON support system/package is now named transducers/jzon to avoid
    compiler warnings.

1.0.1

25 Dec 11:43

Choose a tag to compare

Merry Christmas! I am jetlagged and writing this at 3:30 in the morning.

Fixed

  • for-each now yields t instead of nil, since nil can interact poorly with various control structures.

0.1.0

04 Mar 09:08

Choose a tag to compare

Initial release. See the README!