New egg: srfi-115 regular expressions
Hi all, I’d like to announce my (srfi 115) egg and add it to the coop. It provides the SRFI 115 regular expression library. While SRFI 115 and irregex are by the same author and have similar interfaces, the different names and SRE language extensions make them incompatible. I hope this egg will reduce the difficulty of running SRFI 115 code on CHICKEN. A few forms and SRE elements—mainly those related to Unicode—are currently unsupported. See the wiki page for details. Suggestions and fixes are welcome. Regards, Wolfgang Release info: https://raw.githubusercontent.com/Zipheir/srfi-115-chicken/main/release-info Wiki page: http://wiki.call-cc.org/eggref/5/srfi-115 -- Wolfgang Corcoran-Mathe
Re: Egg release: matrico 0.3
Hi Christian, On 2022-09-17 00:52 +0200, Christian Himpe wrote: > I released version 0.3 of the "matrico" egg Nice work! I spent some time playing with it today, though I’ve barely scratched the surface. Thanks for continuing to improve this egg. It’s a little pedantic for ‘mx’ to reject an exact-integer val argument: (mx 2 2 0) ; error -- 0 isn’t a flonum The conversion is easy. -- Wolfgang Corcoran-Mathe
srfi-130 2.0.1: An improved CHICKEN string library
Hi all, I’ve just released version 2.0.1 of the srfi-130 egg[0], which is my quixotic attempt at a better string library for CHICKEN. It’s a new, fully Unicode-aware, opaque-cursor implementation of John Cowan’s SRFI 130[1] built on top of the utf8[2] egg. Some benefits: * String cursors, which encapsulate byte offsets, provide faster indexing and substring operations on Unicode strings than codepoint indices. For example, srfi-130’s ‘string-ref/cursor’ runs in (notional) constant time when given a cursor, while utf8’s ‘string-ref’ requires O(n) time. * All srfi-130 procedures that take cursors can also take (codepoint) indices, so porting between srfi-13/srfi-152/utf8 and srfi-130 should be relatively easy. * Cursors are type-safe, and you can only create valid cursors (but see “Caveats” below). Low-level functional programmers may consider this decadent, but I believe it encourages better programming. Passing hand-computed offsets to CHICKEN’s byte-oriented string operations is asking for trouble, and cursors are a more disciplined way to achieve the same goals with similar efficiency. * Better error reporting. The srfi-130 egg tries to provide useful exceptions with correct locations which follow CHICKEN’s internal condition protocol (e.g. type errors raise (exn type) conditions, etc.) This is in contrast to the utf8 egg’s errors, which are often hard to trace (“where exactly did string-ref get that invalid index?”). * More rigorous, randomized testing using the test-generative egg. # Caveats Cursors are very useful, but they don’t play well with string mutation. Mutating a string invalidates all cursors into it, but it’s a hard problem to catch these situations efficiently. It’s also possible to use a cursor on a different string than the one it refers to, which is also an (uncaught) error. This could be averted with an ‘eqv?’ check, if it annoys enough people. In sum, I think that the new srfi-130 egg has some important benefits while mostly maintaining backwards compatibility with srfi-13 and the other CHICKEN string libraries. I hope that some CHICKEN programmers will consider it. Suggestions and patches are welcome. Best regards, Wolf [0] https://wiki.call-cc.org/eggref/5/srfi-130 [1] https://srfi.schemers.org/srfi-130/ [2] https://wiki.call-cc.org/eggref/5/utf8 Thanks to John and to Will Clinger for creating SRFI 130. -- Wolfgang Corcoran-Mathe
Re: Egg release: matrico 0.2
On 2022-07-08 09:11 +0200, Christian Himpe wrote: > I released version 0.2 of the "matrico" egg I just installed matrico 0.2 and ran all tests successfully. Thanks for your work. I'm a little surprised that you use -O4. This uses the -unsafe flag, which disables runtime checks. I see why you want maximum optimization for this library, but I'd be happier with -O3. (Maximum "safe" optimization.) Regards, Wolf -- Wolfgang Corcoran-Mathe
Re: New egg: (slib wt-tree) weight-balanced trees
I'm renaming the above egg to slib-wt-tree, since Henrietta doesn't like the embedded dot in slib.wt-tree. Note that the name of the module hasn't changed: it's still (slib wt-tree) or slib.wt-tree. So, to install this egg, run chicken-install slib-wt-tree Sorry for the confusion. All of the URLs mentioned in the previous email are still current, and the wiki page will not move. -- Wolfgang Corcoran-Mathe
New egg: (slib wt-tree) weight-balanced trees
Hi all, I'd like to announce a new egg, (slib wt-tree), which is a port of the slib version of MIT Scheme's weight-balanced tree library. For library description and documentation, see the wiki page[1], as well as the (rather stuffy) MIT Scheme docs.[2] I hope this library proves useful to someone. It's a nice, clear implementation. (Thanks to the original author, Stephen Adams, and to Peter Lane, who adapted it for slib.) Best regards, Wolfgang Coop info: The raw release-info file is at https://raw.githubusercontent.com/Zipheir/wt-tree-chicken/main/release-info test-new-egg says "Egg looks good!" [1] https://wiki.call-cc.org/eggref/5/slib.wt-tree [2] https://people.csail.mit.edu/jaffer/slib/Weight_002dBalanced-Trees.html -- Wolfgang Corcoran-Mathe
New egg: (srfi 232) flexible curried procedures
Hi all, I'd like to announce a new egg for SRFI 232: Flexible curried procedures. It provides a lambda-like 'curried' form for creating procedures that can be applied to arguments one by one or all at once. See the wiki page for examples: https://wiki.call-cc.org/eggref/5/srfi-232 The only dependency is (srfi 1); the included tests use the 'test' egg, as usual. Please send me any bug reports or suggestions. Coop information: The release info file is at https://raw.githubusercontent.com/Zipheir/srfi-232-chicken/0.1/release-info test-new-egg says "Egg looks good!". -- Wolfgang Corcoran-Mathe
Re: New Egg: matrico
Hi Christian, On 2022-04-30 15:10 +0200, Christian Himpe wrote: > I would appreciate if somebody could verify that "matrico" can be > fetched and installed. Here is the `.release-info`: I was able to download tarballs for both rc1 and rc2 releases by pasting the release names into the targz URL in release-info (as expected). I was also able to install the egg using chicken-install in the egg repo. I noticed that the .egg file specifies both -O2 and -O4 (and -C twice) under csc-options. Otherwise, everything looks good, and all tests pass. Thanks for the new library! -- Wolfgang Corcoran-Mathe
New egg: srfi-217
Hi all, I'd like to announce (and add to the coop) a new egg, srfi-217, which provides an (alternate) implementation of integer sets based on big-endian radix trees. The documentation is at https://wiki.call-cc.org/eggref/5/srfi-217 The raw release-info file is found at https://raw.githubusercontent.com/Zipheir/srfi-217-chicken/main/release-info test-new-egg says "Egg looks ok!". Best regards, -- Wolfgang Corcoran-Mathe "Conventional programming is precise only about 'how', not about 'what'." --Conal Elliott
New egg: integer-map
Hi all, I'd like to announce (and add to the coop) a new egg, integer-map, which provides immutable mapping structures optimized for fixnum keys. The documentation is at https://wiki.call-cc.org/eggref/5/integer-map The interface is subject to change, and feedback is appreciated. The raw release-info file is found at https://raw.githubusercontent.com/Zipheir/integer-map/main/integer-map.release-info test-new-egg says "Egg looks ok!". Best regards, -- Wolfgang Corcoran-Mathe "I have discovered a truly marvelous implementation of this function which this 80-column limit is too narrow to contain." --fishythefish
Re: Orphan SRFI eggs and maintainership changes
I'd also like to pick up maintenance of srfi-132, which is another orphan. The new release-info is at https://raw.githubusercontent.com/Zipheir/srfi-132/main/release-info Thanks, -- Wolfgang Corcoran-Mathe "It is better to forget time altogether. Time plays no role at the fundamental level of physics." --Carlo Rovelli
Orphan SRFI eggs and maintainership changes
Hi all, I've been in touch with Sergey Goldgaber, who created a number of eggs for various SRFIs late last year. He's no longer maintaining these eggs: > Sorry, I have been pulled away from the chicken world for the foreseeable > future. The maintainership of these eggs is open for the taking. Feel > free to do what you think best. > > --Sergey There are 25 eggs listed on Sergey's wiki page: https://wiki.call-cc.org/users/sergey-goldgaber I'm appealing to anyone who has the inclination and time to take over some of these. I'd like to take over maintainership for the following eggs. Each egg name is followed by the updated release-info URL: * srfi-78 https://raw.githubusercontent.com/Zipheir/srfi-78/main/release-info * srfi-130 https://raw.githubusercontent.com/Zipheir/srfi-130/main/release-info * srfi-152 https://raw.githubusercontent.com/Zipheir/srfi-152/main/release-info * srfi-196 https://raw.githubusercontent.com/Zipheir/srfi-196-chicken/main/release-info * srfi-207 https://raw.githubusercontent.com/Zipheir/srfi-207-chicken/main/release-info Best regards, -- Wolfgang Corcoran-Mathe "The Algol compiler was so poorly implemented that we dared not rely on it, and working with assembler code was considered dishonorable. There remained only Fortran." --Niklaus Wirth
New egg: srfi-209
Hi all, I'd like to add a new egg to the coop. It provides SRFI 209's enums and enum types in CHICKEN 5. test-new-egg says "Egg looks ok!" The repository is here: https://github.com/Zipheir/srfi-209-chicken The wiki documentation is here: https://wiki.call-cc.org/eggref/5/srfi-209 And, for convenience, the URI of the release-info file: https://raw.githubusercontent.com/Zipheir/srfi-209-chicken/main/srfi-209.release-info Thanks! I hope someone finds this egg useful. -- Wolfgang Corcoran-Mathe "When are lurking loop instructions struck from structural inductions?" --Conor McBride
Re: New egg: unveil
On 2020-11-29 22:03 +1300, Evan Hanson wrote: > On 2020-11-21 13:27, Lassi Kortela wrote: > > > I'd like to add the following new egg, which provides unveil(2) > > > support for CHICKENs running under OpenBSD > > > > Nice feature! > > > > unveil() works together with pledge(). There already seems to be a pledge > > egg at <http://wiki.call-cc.org/eggref/5/pledge>. Any chance the two eggs > > could be merged? > > That makes sense to me. I'm not sure what name would be best to use for > this, but as the author of the pledge egg I think it makes sense to > bundle these procedures in one way or another. They could be bundled as an `openbsd' egg, perhaps providing modules (openbsd pledge) and (openbsd unveil)? -- Wolfgang Corcoran-Mathe "The difference between theory and practice is, uh, larger in practice than in theory." --Olin Shivers
New egg: SRFI 134: Immutable deques
Hi all, I'd like to submit a new CHICKEN 5 egg to the coop. It provides SRFI 134 immutable deques (https://srfi.schemers.org/srfi-134/). test-new-egg says "Egg looks good!". The repo is here: https://github.com/Zipheir/srfi-134 And the wiki page is here: https://wiki.call-cc.org/eggref/5/srfi-134 For convenience, the raw release-info URI: https://raw.githubusercontent.com/Zipheir/srfi-134/main/srfi-134.release-info Best regards, -- Wolfgang Corcoran-Mathe "Not all programming languages have a way to write definitions, but most do. Those that do not are for wimps." --The Great Quux
Re: New egg: unveil
On 2020-11-21 12:21 +0100, Mario Domenech Goulart wrote: > Assuming this egg is OpenBSD-specific, please consider adding > > (platform openbsd) > > to the .egg file. Thanks, I missed this and will add it shortly. Best regards, -- Wolfgang Corcoran-Mathe "In the presence of the unknown all have an equal right to think." --Robert G. Ingersoll, "Individuality"
New egg: unveil
Hi all, I'd like to add the following new egg, which provides unveil(2) support for CHICKENs running under OpenBSD. test-new-egg says "Egg looks good!". The repository is here: https://github.com/Zipheir/unveil-chicken The wiki page: https://wiki.call-cc.org/eggref/5/unveil For convenience, the raw release-info URI: https://raw.githubusercontent.com/Zipheir/unveil-chicken/master/unveil.release-info Thanks! -- Wolfgang Corcoran-Mathe "Conquering the galaxy is what bacteria with spaceships would do--knowing no better, having no choice." --Greg Egan, _Disapora_
New egg: SRFI 178: Bitvector library
Hi all, I'd like to add the following new egg, which provides the SRFI 178 (https://srfi.schemers.org/srfi-178/srfi-178.html) bitvector library. test-new-egg says "Egg looks good!". The repository is here: https://github.com/Zipheir/srfi-178-chicken The wiki page: https://wiki.call-cc.org/eggref/5/srfi-178 For convenience, the raw release-info URI: https://raw.githubusercontent.com/Zipheir/srfi-178-chicken/0.1/srfi-178.release-info Thanks! -- Wolfgang Corcoran-Mathe "What's our game? We have the ways of making things, but things are evidence. Perhaps, one day, the thing we'll make is sense." --Conor McBride
New egg: srfi-189
Hi, I'd like to submit a new egg which provides SRFI 189: Maybe and Either for CHICKEN. I've run it past test-new-egg, which found no issues. The egg source can be found at: https://github.com/Zipheir/srfi-189-chicken The documentation is at: https://wiki.call-cc.org/eggref/5/srfi-189 And the release-info URI, for convenience: https://raw.githubusercontent.com/Zipheir/srfi-189-chicken/main/srfi-189.release-info Thanks! -- Wolfgang Corcoran-Mathe "Some folks think Postmodernism means little more than the Empowerment of the Vulgar. Some folks think the same about Perl." --Larry Wall
New egg: srfi-135
Hi all, I'd like to submit a new egg, srfi-135, which provides SRFI 135 immutable texts. I've run it past test-new-egg, which says "Egg looks ok!". The egg source can be found at: https://github.com/Zipheir/srfi-135 The wiki page is: https://wiki.call-cc.org/eggref/5/srfi-135 The raw release-info file URI, for convenience: https://raw.githubusercontent.com/Zipheir/srfi-135/main/srfi-135.release-info Thanks. -- Wolfgang Corcoran-Mathe "The difference between theory and practice is, uh, larger in practice than in theory." --Olin Shivers