Revision history for ParaSeq
0.2.7 2024-08-21T15:20:25+02:00
- Make sure the block that is being cued is cloned: this is what
appears to be done by start { }, so it's probably good practice
0.2.6 2024-08-19T21:28:27+02:00
- Make sure we don't crash on trying to resume an unresumable
exception. This hopefully will help finding some race conditions
in clients such as "rak"
0.2.5 2024-07-26T23:58:45+02:00
- Make sure that dynamic variables in the current scope are visible
by the code that is being hyperized or racified.
- Create seperate buttons for the CI results
- Add sponsor button
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