Rand Stats

ParaSeq

zef:lizmat
Revision history for ParaSeq

0.2.4  2024-06-22T16:33:08+02:00
    - Make ParaSeq a subclass of Seq, rather than a consumer of the
      Sequence role.  This makes ParaSeq an Iterable, so easier to
      use in the same way as a Seq.  As a result, some code could
      be removed
    - Added ParaIterator.sink-all for those hypering cases where only
      the side-effects are interesting
    - Added ParaSeq.sink to keep proper sinking semantics
    - Added logic to catch and keep any exceptions occurring during
      parallel execution, and display them at END time.
    - Added :catch named argument to &hyperize/&racify/.hyper to indicate
      whether any exceptions should be caught.  Defaults to True
    - Added .exceptions method that will return a Bag of exceptions that
      were caught so far
    - Removed some dead code

0.2.3  2024-06-20T19:44:33+02:00
    - Make .default-batch and .default.degree left values, so you
      can set these by just assigning to them

0.2.2  2024-06-18T21:51:17+02:00
    - Removed the .auto mutator, much clearer to use .hyper for that
    - Re-implemented the &racify functionality
    - Add support for :racing named argument to .hyper method
    - Added ParaStats.smoothed-nsecs method for timings corrected for
      GC interference

0.2.1  2024-06-15T13:49:33+02:00
    - Removed the :stop-after functionality: it was more trouble
      than it was worth
    - Removed the .stop / .discarded functionality: it was more
      trouble than it was worth

0.2.0  2024-06-14T13:14:48+02:00
    - Re-imagined infectiousness which makes chaining methods
      acually work reliably
    - Added tests for chaining several API methods

0.1.2  2024-06-08T13:03:48+02:00
    - Reverted temporary fix
    - Sadly needed to remove the "call Paraseq::last" instead of
      imported "last" due to some as yet not understood interaction
      between "uint" and "our"

0.1.1  2024-06-08T12:14:22+02:00
    - Temporary fix for inclusion in precomped modules

0.1.0  2024-06-07T21:36:23+02:00
    - Updated status of ".squish" and added tests
    - Fixed an edge case in the slow batcher
    - Updated status of ".repeated" and added tests
    - Updated status of ".grep" and added tests

0.0.10  2024-06-06T16:14:31+02:00
    - Re-imagine the handling of "last", by exporting a "last"
      subroutine.  Added Caveat as to the limitations this brings.
    - Updated status of ".deepmap" and added tests
    - Updated status of ".duckmap" and added tests
    - Updated status of ".nodemap" and added tests
    - Updated status of ".flatmap"

0.0.9  2024-06-04T14:40:13+02:00
    - Updated status of ".map", added support for
      phasers and added many more tests

0.0.8  2024-06-01T14:49:20+02:00
    - Added Theory of operation section in documentation
    - Updated status of ".sort" and added tests
    - Updated status of ".collate" and added tests
    - Updated status of ".combinations" and added tests
    - Updated status of ".flat" and added tests
    - Updated status of ".invert" and added tests
    - Updated status of ".permutations" and added tests
    - Updated status of ".produce" and added tests
    - Updated status of ".slice" and added tests
    - Updated status of ".snip" and added tests
    - Updated status of ".skip" and added more tests
    - Updated status of ".snitch" and added tests
    - Updated status of ".toggle" and added tests

0.0.7  2024-05-30T14:24:50+02:00
    - Added optimized ".batch" and tests
    - Added partially optimized ".rotor" and tests
    - Updated status of ".eager" and added tests
    - Updated status of ".serial" and added tests
    - Updated status of ".rotate" and added tests
    - Updated status of ".values" and added tests
    - Added partially optimized ".max" and tests
    - Added partially optimized ".min" and tests
    - Added partially optimized ".maxpairs" and tests
    - Added partially optimized ".minpairs" and tests
    - Added optimized ".minmax" and tests
    - Removed "Status" from all of the endpoint methods
      as they now all have their final implmentation

0.0.6  2024-05-28T20:46:35+02:00
    - Added ".list" coercer
    - Updated status of ".keys" and added tests
    - Added optimized ".kv" and tests
    - Added optimized ".pairs" and tests
    - Added optimized ".antipairs" and tests
    - Only optimize .unique(:with) where op is not ===
    - Updated status of ".pick" and added tests
    - Updated status of ".roll" and added tests

0.0.5  2024-05-27T17:23:14+02:00
    - Added a *lot* of methods, at least as stubs for now
    - Added documentation about all methods supported, and their status
    - Added optimized ".unique" and tests

0.0.4  2024-05-25T19:49:54+02:00
    - Refined BufferIterator logic with dedicated "skip-at-least"
    - Made "racify" synonym for "hyperize": there was no point in
      keeping separate code paths: this also meant removing the
      "racing" attributes and methods
    - Fixed an issue with ParaSeq.skip-at-least when it was possible
      to skip the entire current buffer, and there was no next buffer
    - Made ParaSeq.push-all a multi again, optimized for the case when
      pushing to an IterationBuffer
    - Added tests for BufferIterator and ParaIterator classes

0.0.3  2024-05-24T22:07:44+02:00
    - Added bespoke support for .reduce, .sum and .join

0.0.2  2024-05-24T19:15:21+02:00
    - Added proper batch adjustment logic
    - Added :auto named arg, switch off batch adjustment with :!auto
    - Added :stop-after(N) to limit number of values delivered
    - Added ParaSeq introspection methods: .auto, .batch-sizes,
      .default-batch, .default-degree, .racing, .stats, .stop-after,
      .stopped, .threads
    - Added ParaStats .ordinal and .threadid introspection methods
    - Added a lot of documentation

0.0.1  2024-05-20T16:15:32+02:00
    - Initial version