Hello, dear Chicken friends!

I  don't clearly remember how I came to Chicken, but I know now I'm in love
with the project and the community. Although I try to improve my
understanding of the language and its implementation, I frequently advocate
from a newbie perspective, specially due to a personal interest in making
Chicken accessible to everyone (my heart bleeds not only for
self-evaluating vectors in R7RS, but also when I hear great people here
telling they can't use Chicken in their jobs).

Reading more about Chicken internals I understood Units. But even
considering that SRFIs are a Scheme standard and that after some time
playing with them I can recall their content by their numbers, IMHO it
would be good to see Chicken with more informative names for Units (and
more comprehensible Units).

It is clear that Scheme/Chicken values informative names for procedures
(call-with-current-continuation, call-with-values, with-input-from-file,
etc.). Wouldn't it be more informative to (use lists) instead of (use
srfi-1) or (use hash-table) instead of (use srfi-69)?

I suggest a change from this:

   - Unit srfi-1: List Library
   - Unit srfi-4: Homogeneous numeric vectors
   - Unit srfi-13: String library
   - Unit srfi-14: Character set library
   - Unit srfi-18: multithreading
   - Unit srfi-69: Hashtable Library

to this (with links to the SRFIs):

   - Unit lists : Implements SRFI-1
   - Unit homogeneous-vectors: Implements SRFI-4
   - Unit strings: Implements SRFI-13
   - Unit charsets: Implements SRFI-14
   - Unit multithreading: Implements SRFI-18
   - Unit hash-table: Implements SRFI-69

These SRFIs could provided as eggs. The data-structures unit could be
dissolved and its procedures spread according to the new specified unit. So
these new units could contain the SRFI and more. Calling old units could
also be valid to avoid breaking code and they could be deprecated on
Chicken's version 10.0 for example :)

Well, ideally it would be better if we could convert units to modules and
if possible nest them like data.lists, data.hash-table,
data.homogeneous-vectors, data.strings, etc, but I don't know if this is
allowed in R5RS. It would also be good to 'clean' some other units (ex.:
move read-all from utils to extras, etc.), but this is enough for this long
post.

Do you believe it would be useful and feasible?

Best wishes,
Arthur
_______________________________________________
Chicken-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to