New egg: srfi-115 regular expressions

2023-02-21 Thread Wolfgang Corcoran-Mathe
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

2022-09-16 Thread Wolfgang Corcoran-Mathe
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

2022-09-09 Thread Wolfgang Corcoran-Mathe
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

2022-07-09 Thread Wolfgang Corcoran-Mathe
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

2022-05-25 Thread Wolfgang Corcoran-Mathe
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

2022-05-25 Thread Wolfgang Corcoran-Mathe
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

2022-05-11 Thread Wolfgang Corcoran-Mathe
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

2022-04-30 Thread Wolfgang Corcoran-Mathe
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

2021-04-23 Thread Wolfgang Corcoran-Mathe
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

2021-03-06 Thread Wolfgang Corcoran-Mathe
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

2021-03-04 Thread Wolfgang Corcoran-Mathe
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

2021-02-25 Thread Wolfgang Corcoran-Mathe
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

2020-12-19 Thread Wolfgang Corcoran-Mathe
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

2020-11-30 Thread Wolfgang Corcoran-Mathe
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

2020-11-30 Thread Wolfgang Corcoran-Mathe
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

2020-11-21 Thread Wolfgang Corcoran-Mathe
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

2020-11-20 Thread Wolfgang Corcoran-Mathe
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

2020-11-20 Thread Wolfgang Corcoran-Mathe
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

2020-11-12 Thread Wolfgang Corcoran-Mathe
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

2020-11-12 Thread Wolfgang Corcoran-Mathe
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