# Transducers Changelog ## 0.7.0 - 2024-11-18 ### Changed - Argument / type checks are now done using SRFI-253 instead of the `check-errors` egg. This makes the egg fully portable across different R7RS implementations. ## 0.6.0 - 2024-10-07 ### Added - Added `once`, a procedure which performs a transducer / collector on exactly one item. ### Fixed - Added the export files to the source-deps of the transducers meta module. Previously these were not tracked as source dependencies of the meta module and as such the meta module would not be rebuilt if they were modified whatsoever. ## 0.5.5 - 2024-04-22 ### Added - Added SRFI-143 v1.0.0 back in over `(chicken fixnum)`. The problems with that egg have now been resolved, and as of version 1.0.0 performance (and the function signatures) are basically re-exports of `(chicken fixnum)` now. This is done to make it easier to port the R7RS egg without having to make more edits to the code. ## 0.5.4 - 2023-11-10 ### Fixed - Changed the prefixing used in the `(transducers mapping)` module to `srfi-146%` from `srfi-146#` because of a bug in how identifiers are resolved. This shouldn't change any downstream code or APIs, but should play nicer with e.g. salmonella and bugs.call-cc.org ## 0.5.3 - 2023-11-10 ### Removed - Dependency on SRFI-143, in favour of using `(chicken fixnum)`. SRFI-143 is fairly unoptimized to the point that I see it frequently as a hotspot when running chicken-profile on e.g. fixnum-range-fold. If you want to port transducers to another Scheme, I've kept the API consistent by renaming procedures from `(chicken fixnum)` for ease of porting. ## 0.5.2 - 2023-11-09 ### Changed - Default debug level is now -d2. This was done for the sake of instrumenting / tracing transducers better. If this causes a significant performance hit for you please file an issue! ### Fixed - A bug in `collect-reverse-list` where the sentinel value was ignored. ## 0.5.1 - 2023-08-22 ### Fixed - Exported transducible type-class procedures / types from (transducers) meta library. ## 0.5.0 - 2023-08-22 ### Added - Added `` type-classes to library. ## 0.4.2 - 2023-08-16 ### Fixed - Fixed a bug in the implementations of `zip-range` and `interleave-range` that would cause them to exit the transduction early. ## 0.4.1 - 2023-07-19 ### Fixed - Adds r7rs to dependencies, which should make the egg build by default. Previously this wasn't part of the dependencies so one had to install r7rs first, and then this egg. ## 0.4.0 - 2023-04-16 ### Added - Adds support for using SRFI 146 mappings / hashmaps with transducers. ## 0.3.1 - 2023-04-02 ### Changed - Replaced `#!optional` declarations in defines with use of case-lambda, since R7RS does not have an `#!optional` keyword / extension syntax. ## 0.3.0 - 2023-04-02 ### Changed - Egg is now provided as an R7RS module. ## 0.2.0 - 2023-01-13 ### Added - `collect-sum` and `collect-product` collectors ### Changed - `any` / `all` / `count` / `first` / `last` have been renamed to be `collect-{any,all,count,first,last}`. All collector procedures start with the word `collect-` now. - All collectors accept an optional sentinel argument now. - All collectors should now be wrapped in parenthesis. For example: ```scheme (import transducers) ;; Previously (transduce list-fold values collect-list (list 1 2 3)) ;; Now (transduce list-fold values (collect-list) (list 1 2 3)) ``` ## 0.1.0 - 2023-01-04 ### Added - First version of transducers! - Adds all base / lists / vectors / ports libraries - Documentation - Tests