Changeset 31278 in project

08/24/14 10:22:56 (5 years ago)

Anonymous wiki edit for IP []: Lots of comments from John Cowan.

1 edited


  • wiki/chicken-5-roadmap

    r31277 r31278  
    3434"scheme" module to import all of the underlying submodules.
     36* As I've posted to the mailing list, I think using hyphen makes more sense than using dot.  --John Cowan
    3638==== Replacing SRFI-14 with cset implementation from irregex?
    4143different characters), whereas most other CHICKEN components and eggs
    4244assume UTF-8.
     46* Strong +1.  --John Cowan
    4448==== Refactoring the CHICKEN test suite to use a core library?
    8387; srfi-10 : define-reader-ctor
     89* I'm planning to propose some of these (2, 8, 31, 26, 17) in a single R7RS-large library, probably called (scheme control) or (scheme control simple).  SRFI 15 is a ''very'' bad idea, and shouldn't have been implemented, as it breaks horribly in the presence of multiple threads.  Parameters are a satisfactory replacement and part of both Chicken and R7RS-small.  --John Cowan
    8591Also, is it {{srfi-2}} or {{srfi.2}}?  The latter would match up with
    8692{{(srfi 2)}} usage which is reserved by R7RS for SRFIs.
     93 *
    8895The list below is just a proposal, can be changed at any time.  We
    102109; chicken.format : {{[fs]?printf}}, format (do we need this?), pp, pretty-print, pretty-print-width
     111 * If you put {{use}} in a module, how do you get access to that module?  I favor the R7RS solution, in which {{import}} does what Chicken {{use}} does, and is special-cased in terms of the module system so that it is always available.  --John Cowan
     113 * There will be R7RS (scheme fixnum) and (scheme flonum) modules.  I'm currently proposing to base the fixnums on R6RS and the flonums on {{math.h}} (not the egg of that name, but the whole C interface).  --John Cowan
    104116==== Proposed removal from core
    115127Proposal already accepted in CR #1142.
     129* I'm proposing a queue library for R7RS-large.  --John Cowan
    117131===== combinators
    120134only a handful of them are actually useful.  There is no technical
    121135reason to keep them in core, they might fit better in an egg.
     137* I'm proposing a similar library for R7RS-large.  --John Cowan
    123139===== Various ill-conceived POSIX things
    146162into an egg.
     164 * +1 for an egg.  I'm going to propose this for R7RS-large.  --John Cowan
    149167=== Reworking the way libraries are loaded
    151169Right now there are just too many confusing things, like require, require-extension, use, import, load, load-library, require-library.
     171 * Import (with the function of use) should be the main API.  Load is necessary because it can load things whose names are determined at run time.  It should be able to load either source or binaries.   Include also belongs here.  --John Cowan
    153173Units and modules are confusing also.  This could just be a
    154174documentation issue.
     176 * Units should IMO be deprecated, with a compiler switch to turn off deprecation when compiling Chicken itself.  --John Cowan
    156178=== Refactoring the scheduler
    172194rewound.  This makes sense at least for file-backed ports and string
     197 * Well, not all file-backed ports are seekable.  --John Cowan
    175199This is also a good opportunity to look at why I/O is so slow.
    200224lookup tables, string-ref?
     226 * Go full Unicode.  If Chibi can do it, so can we.  R7RS is factored to push the big Unicode tables into (scheme char).  However, IMO the NUL character is completely worthless as a character: it has no semantics worth mentioning.  We can forbid it in strings, as R7RS-small allows.  --John Cowan
    202228If we go full Unicode, the SRFI-4/blob types might need some
    203229attention, because strings can no longer be (ab)used as byte vectors.
     231Why are there both u8vectors and blobs?  IMO they should be the same thing, and should be R7RS bytevectors.  I'm working on a R7RS-large numeric vector library that allows either SRFI 4 style (separate data types for different kinds) or the style used in later SRFIs and R6RS (everything is just a view on top of bytevectors).  --John Cowan
    205233=== Rewrite chicken-install and make setup-files declarative
    209237systems.  It will also mean that setup-files won't be running
    210238arbitrary Scheme code as root, which means it's more trustworthy.
     240 * A possible approach would be to create a module that exports only the list of things we want to support in setup-files.  Then they will begin with {{(module () (use setup-files)}} and can still be executed, but only the whitelisted operations will be permitted.  --John Cowan
    212242Another thing we need is to make files installed by eggs more
    284314same file.  This might make maintenance a little easier, but requires
    285315a small change in henrietta-cache.
     317 * IMO the brains should be in henrietta.  --John Cowan
Note: See TracChangeset for help on using the changeset viewer.