Releases: liflab/beepbeep-3
Version 3.13
Major modifications in this release:
- Versioning switched to 3.x instead of 0.x. This is to reflect both that this is version 3 of BeepBeep, and that the API is mature and stable enough not to be considered as an alpha release.
- Artifact ID changed from
beepbeep-3tobeepbeep, since the "3" is now already included in the version number - Dropped support for processor serialization. This feature was not even completely implemented, and not mentioned in any official documentation (except the auto-generated Javadoc). This simplification removes any remaining dependencies BeepBeep had on external libraries, and reduces its file size to under 300 kb.
Version 0.12
Major modifications:
- Dropped legacy provenance support and removed the Petit Poucet dependency. Related APIs remain for compatibility but are deprecated and behave as no-ops.
- Minimum required Java version is now JDK 11.
- Simplified Processor internals by removing global input/output counters.
- Fixed GroupProcessor.out() behavior when used from Groovy scripts.
- Fixed integer division behavior in Numbers.Division.
- Minor refactorings, Javadoc fixes, and build/IDE improvements.
NOTE: Support for Java 8 was dropped in v0.12 following deprecation warnings in recent JDKs; BeepBeep now targets Java 11 as its minimum supported version.
Version 0.11.3
- New methods in
GroupProcessorto shorten Groovy scripts - Additional map, bags and lists utility functions
- Bugfix to
Bags.ApplyToAll
Version 0.11.2
Cumulates the fixes and updates of the last 10 months.
- Optional default value to
Maps.get - New functions:
Lists.Sort,Lists.SortOn,Strings.FindRegexOnce,Strings.ReplaceAll,Numbers.Modulo,Booleans.BooleanCast - Refactoring of
ReadLines - Processors can output the content of their internal queues
- Fix to behavior of
Insertin pull mode, bugfix inQueueSource
Version 0.11.1
Changes in this release:
- Added the
Integrateprocessor - Added the
ReadTokensprocessor - I/O processors now correctly handle named pipes in addition to finite sources
- Changed constructor visibility of utility classes
Version 0.11
This release incorporates modifications of the last six months.
Important changes
- Clarification to the contract of
SynchronousProcessor.compute. A call that returns false is now interpreted as the promise not to produce any new output events in future calls to the method. The current call is allowed to produce output events. - Support for
Pushable.pushFastis dropped. Its implementation was not very robust, not used in any known project, and for most processors,pushFastsimply contained a call topush. As an upside, the removal of this non-blocking mode might provide a slight performance boost for blocking (i.e. normal) mode, due to a simpler management in some processors, such as Slice. - For the same reason,
CompoundFuturehas been deleted and support forFunction.evaluateFastis dropped.
Additions to the API
- The constructor for
Cumulateaccepts aFunctionobject directly, instead of wrapping it into aCumulativeFunction(the old syntax is still accepted) - Utility methods added to
Processor: these methods make it easier to pipe processors using Groovy with syntactical shortcuts - Changed visibility of
GroupProcessor's no-args constructor SinkLastcan be queried for the end of the traceRunOnhas an optional default value for empty collections- Functions in
ToCollectioncan have variant arguments - Added
Println, which is a special case ofPrint - Added
DetectEnd
Other
- Update to dependencies on Azrael and Petit Poucet
- Fix to end of trace signaling in
SynchronousProcessor: it could send this signal multiple times to downstream processors - Fix to deserialization of
GroupProcessor Printno longer prints a dangling separator after the last token- Version numbering no longer uses the
-alphasuffix - Better description of library in the JAR file's manifest
Version 0.10.9
This is a pre-release of what will actually become version 0.11. It is put online because other ongoing projects rely on this up-to-date version of the library to compile.
If you don't know what I am talking about, you should stick with 0.10.8 and wait for the official 0.11 some time in the future. ;-)
Version 0.10.8
This version only contains bugfixes related to provenance tracking.
Version 0.10.7
Integrates additions and bug fixes since 9/30/2021:
- Added the
PubliclyStatefulinterface, where processors can (optionally) publicly expose an object that represents their internal state; core processors now all implement this interface - Fix to end of trace signal
- Multiple fixes to provenance tracking for GroupProcessors
- Refactoring of EventTracker
- Equals.equalsTo works for MathSet
- Multiple other fixes at the source level (thanks @mernst)