Changeset 32685 in project


Ignore:
Timestamp:
08/09/15 13:23:30 (5 years ago)
Author:
sjamaan
Message:

Update roadmap with completion statuses

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wiki/chicken-5-roadmap

    r32460 r32685  
    88editing flamewars here!
    99
    10 === Modularising the compiler
     10=== Modularising the compiler [done]
    1111
    1212This work has been completed: the compiler now is composed of modules
     
    1919** Some standard way to determine the current source file (ideally this would be a library procedure which works the same way in compiled and evaluated code).  Used for things like the {{s48-modules}} egg.
    2020** Perhaps a way to define new compilation stages.
     21
     22These should be considered after CHICKEN 5 is released.  Of course, if
     23you want to tackle one of these before, feel free to submit a patch.
    2124
    2225=== Reworking the core modules ("units")
     
    3639** I think we're pretty much resolved to using dots, for various reasons appearing on the list (and because there's momentum in the other direction with e.g. the compiler modules). -- eh
    3740
    38 ==== Replacing SRFI-14 with cset implementation from irregex?
     41==== Replacing SRFI-14 with cset implementation from irregex? [irrelevant]
    3942
    4043This has been discussed ages ago.  It might be more memory-friendly
     
    4750* Note that in the "Proposed removal from core" section below, srfi-14 is proposed to be removed from the core. --mario
    4851
    49 
    50 ==== Refactoring the CHICKEN test suite to use a core library?
     52This is not needed, because SRFI-14 is no longer part of core.  The
     53egg could still benefit from it, but it's not something that will hold
     54up the CHICKEN 5 release.
     55
     56
     57==== Refactoring the CHICKEN test suite to use a core library? [status uncertain]
    5158
    5259As we remove a lot of cruft from core which it doesn't need, it may be
     
    6067* That could even be done for CHICKEN 4, since it wouldn't break anything. -- mario
    6168
    62 ==== Proposed libraries
     69==== Proposed libraries [incomplete]
    6370
    6471Let's follow R7RS for these:
     
    131138The list below is just one hacker's idea of what could go.  Please add more.
    132139
    133 ===== SRFIs
     140===== SRFIs [done]
    134141
    135142SRFI-1, SRFI-13, SRFI-14, SRFI-18 might be removed. SRFI-69 will be
     
    145152egg.
    146153
    147 ===== queue datatype (data-structures), binary-search (data-structures), mmapped files (posix), object-evict (lolevel)
     154===== queue datatype (data-structures), binary-search (data-structures), mmapped files (posix), object-evict (lolevel) [done]
    148155
    149156Proposal already accepted in CR #1142.
     
    152159** It would be great if it could be inspired by CHICKEN's, but that's not strictly necessary, as there is plenty of room for multiple queue eggs --Peter Bex
    153160
    154 ===== combinators
     161===== combinators [status uncertain]
    155162
    156163Some of the combinators from data-structures are very nice, but there
     
    161168** Maybe we can rip it out of core and wait for R7RS before implementing the egg. --Peter Bex
    162169
    163 ===== Various ill-conceived POSIX things
     170===== Various ill-conceived POSIX things [status uncertain]
    164171
    165172These things I don't like, but doesn't mean it *has* to go.  It may
     
    176183* The process-stuff.  There are too many procedures which is confusing.  Boil it down to just one or two essential ones.  Possibly make a "fork&exec" implementation, which maps better to the Windows model, and still works fine on UNIX.
    177184
    178 ===== Better API for continuations
     185===== Better API for continuations [status uncertain]
    179186
    180187Nobody seems to use the "better API for continuations" by Feeley:
     
    190197* FWIW this seems to be pretty deeply-seated in core/runtime.c (to me at least!) -- eh
    191198
    192 === Reworking the way libraries are loaded
     199=== Reworking the way libraries are loaded [incomplete]
    193200
    194201Right now there are just too many confusing things, like require, require-extension, use, import, load, load-library, require-library.
     
    204211* I disagree that units should be deprecated at all. I agree that import should be the primary API, with an alternative form for importing just identifiers (perhaps even {{(import-identifiers (foo bar))}}). -- eh
    205212
    206 ==== Make the library load path a search path
     213==== Make the library load path a search path [incomplete]
    207214
    208215This keeps cropping up on IRC: people expect to be able to load libraries from their eggs using a search path containing multiple entries. This would allow you to {{(use ...)}} a module from your application without installing it as an egg.
     
    210217This is rather tricky: what happens when you compile it and install the whole program into some other location? Also, changing the way it's implemented is nontrivial, as it has been attempted before (see [[http://bugs.call-cc.org/ticket/736|#736]]).
    211218
    212 === Refactoring the scheduler
     219=== Refactoring the scheduler [incomplete]
    213220
    214221One missing ability in the scheduler is for threads to block on more
     
    216223ports.
    217224
    218 === Refactoring the I/O (ports) system
     225=== Refactoring the I/O (ports) system [incomplete]
    219226
    220227Currently, ports are somewhat ill-defined: they're a hand-coded record
     
    244251(but incompatible) modification.
    245252
    246 === Integrating the full numeric tower
     253=== Integrating the full numeric tower [done]
    247254
    248255This work has been completed: full support for the complete numeric
     
    251258FFI.
    252259
    253 === String encoding
    254 
    255 == Reject all NUL bytes
     260=== String encoding [status uncertain]
     261
     262==== Reject all NUL bytes
    256263
    257264If we reject all NUL bytes inside strings, we can encode strings more conveniently
     
    265272* Possibly the operations we support on blobs need to be extended, so that all current abuse cases for strings can be handled by blobs.
    266273
    267 == Unicode
     274==== Unicode
    268275
    269276This at least needs some additional thought.  Do we want to make UTF-8
     
    282289** u8vectors are less "core" than blobs (which is a consequence of the low-level representation).  In fact, we might be able to take srfi-4 out of core. --Peter Bex
    283290
    284 === Improve the egg system
     291=== Improve the egg system [incomplete]
    285292
    286293Since this is a rather comprehensive point, there is now a
    287294[[chicken-5-roadmap-egg-system|separate document for it]].
    288295
    289 === Make set!'ing of unbound variables an error
     296=== Make set!'ing of unbound variables an error [incomplete]
    290297
    291298R7RS recommends making this an error for modules but allowing it in the REPL.
     
    293300* We already check for renaming already bound identifiers, maybe that's not so hard after all. I will investigate this --Christian Kellermann
    294301
    295 === Determine how to make CHICKEN 4 eggs live alongside CHICKEN 5 eggs
     302=== Determine how to make CHICKEN 4 eggs live alongside CHICKEN 5 eggs [incomplete]
    296303
    297304Currently, "THE SYSTEM" does not have any special considerations for
Note: See TracChangeset for help on using the changeset viewer.