								-*-outline-*-

This file lists all the things I would like to add in the future.
Bugs are not listed here, for a list of all known bugs (fixed and
unfixed) have a look at the file BUGS.


* Outstanding tasks

** Programming tasks

*** Make sure all listtraversing functions can handle circular lists.
    (mgrabmue/2000-05-30)

*** Add test cases for the procedures of SRFI-1.
    (mgrabmue/2000-05-10)

*** Enhance C API: Conversion functions, accessor functions.

*** Check Posix function implementation against Guile's API

** Documentation

*** Portability and Availability
    (mgrabmue/2000-12-2)
    Document which procedures are available under which system,
    configuration or module setup.  Check for non-posix, non-regexp,
    non-uvector, non-list-lib, Windoze etc. setup.

*** Safe environments
    (mgrabmue/2000-08-10)
    Enhance documentation and add a tutorial.

*** Document macro functions and add a tutorial about writing macros.

*** Proof-read the manual.  
    (mgrabmue/2000-04-14)

*** Add more cross-references where appropriate.  
    (mgrabmue/2000-04-14)

*** Enhance the tutorial in the Reference manual and the example program. 
    (mgrabmue/2000-04-14)


* Neverending tasks...

** Programming tasks

*** Fix bugs from the BUGS file.

*** Make sure the PO files are up to date.

*** Add tests for new primitives.

*** Search for FIXMEs and eliminate them.


** Documentation

*** Update the Reference Manual.

*** Update the Embedding Manual.

*** Search for FIXMEs and eliminate them.


* Completed tasks

** Programming tasks

*** Add checks for user interrupt to all list traversing functions.

    + Done. (mgrabmue/2000-12-2)

*** Make user-defined syntax hygienic.
    (mgrabmue/2000-05-10)

    - Removed `define-syntax' support. (mgrabmue/2000-12-2)

*** Let sizzle-gen-if respect modules.
    (mgrabmue/2000-09-28)

    + Done. (mgrabmue/2000-10-11)

*** Make error messages produces line numbers!

    + Done. (mgrabmue/2000-07-27)

*** Move all docstrings from the docstrings.txt.in file to the source files.
    (mgrabmue/2000-06-27)

    + Done. (mgrabmue/2000-07-27)

*** Add docstrings to all missing primitives.
    (mgrabmue/2000-06-27)

    + Done. (mgrabmue/2000-07-27)

*** Smarter prompt which displays open parentheses level.

    + Done. (mgrabmue/2000-05-30)

*** Add all (reasonable) examples from R5RS to the tests.
    
    + Done. (mgrabmue/2000-05-30)

*** Implement more (maybe all?) of Guile's command line options.

    + Done, except `-ds', `--emacs' and `\'. (mgrabmue/2000-05-30)

*** Add tests for uniform vector procedures from SRFI-4.
    (mgrabmue/2000-05-26)
    
    + Done. (mgrabmue/2000-05-29)

*** Investigate all errors in test/r4rstest.scm
    (mgrabmue/2000-05-18)
    
    + Done.  Last remaining error filed as bug #17 in BUGS.

*** Implement more of Guile's port functions (port-column etc.). 

    + Added `port-column', `set-port-column!', `port-line',
    `set-port-line!', `port-filename', `set-port-filename!'.

*** Add more examples from `Scheme and the Art of Programming' to the tests.

    + Deprecated.  (mgrabmue/2000-04-28)

*** Implement `system' function.  (mgrabmue/2000-04-18)

    + Done. (mgrabmue/2000-04-25)

*** Add tests for the hash table functions.  (mgrabmue/2000-04-18)

    + Done. (mgrabmue/2000-04-18)

*** Implement hash functions.

    + Done. (mgrabmue/2000-04-18)

*** Add tests for `quote' and `quasiquote'.

    + Done. (mgrabmue/2000-04-18)

*** Move remq/remv/remove functions from Scheme to C. (mgrabmue/2000-04-14)

    + Done. (mgrabmue/2000-04-18)

*** Add tests for the Posix functions.

    + Done. (mgrabmue/2000-04-13)

*** Make `load' not only search `%load-path%', but also the current directory.
    (Maybe simply add `.' to `%load-path%'?)

    +Done in system init file. (mgrabmue/2000-04-10)

*** Cleanup catch and throw.  
    Maybe arbitrary value for exception tag
    which is tested using eq?, so we can create unique tags with (cons
    () ()).

    + Solved by simply using Guile's semantics. (mgrabmue/2000-03-8)

*** Implement `location'-values, both for speeding up evaluation and for binding C variables of cell type.

    + Implemented locations (for binding C variables of type cell_t), lloc
    (local variables) and glocs (globals). (mgrabmue/2000-03-28)

*** Make all library functions name-space clean (prefix them with zzz_).

    + Did it.  (mgrabmue/2000-04-05)

*** Implement user visible function for registering primitives.

    + Did it.  (mgrabmue/2000-04-05)

*** Build a test suite.

    + Did it.  (mgrabmue/2000-04-05)

*** Implement proper handling of startup files, both system global and user specific.

    + System init file is loaded from
    $prefix/share/sizzle/$(VERSION)/init.scm, user init file is loaded
    from system init file.  (mgrabmue/2000-04-05)

*** Implement method for registering variables to save from GC.

    + Did it.  (mgrabmue/2000-04-05)

** Documentation

*** Add uniform vector data type description and function documentation.
    (mgrabmue/2000-05-26)

    + Done. (mgrabmue/2000-05-30)

*** Split up Embedding and Reference manual.  
    (mgrabmue/2000-05-17)

    + Did it.

*** Complete documentation for the Scheme-value accessor cpp macros and the type predicates.  Also add documentation for all Scheme object constructor functions. 
    (mgrabmue/2000-05-15)

    + Did it.  (mgrabmue/2000-05-17)

*** Complete `Usage' section of the Reference Manual.

    - Too general.  (mgrabmue/2000-05-10)

*** Add keyword data type description to reference manual.

    + Did it.  (mgrabmue/2000-05-10)

*** Document the concept of errors and exceptions.

    + Did it.  (mgrabmue/2000-05-10)

*** Add `C Sizzle extension' section to Reference Manual.

    + Did it under the name `Embedding API'.  (mgrabmue/2000-04-14)

*** Add Posix functions to the Reference Manual.

    + Did it.  (mgrabmue/2000-04-14)


* Features unlikely to be implemented


** None (yet)


* Postponed tasks

** Programming tasks

*** Design and implement Scheme level library.

*** Add overflow checks to all arithmetic operations.

*** Implement bignums.

*** Implement rational numbers.

*** Implement complex numbers.

