General Development Notes
-------------------------

I'd like something like subversion plus cvs plus wiki. Being able to browse edit, get, and put source easily either online or via console. Changelog and diffs should be accessible. Code syntax hilighted. All this integrated with bug tracking and general chat. Regression test integration. A main web page with latest changes in the code or wiki or general chat. Keywords: Source Control Management

World Scheme Development Wiki
-----------------------------

NETWORK I/O

REQUIREMENTS

Internet socket support is sought for World Scheme. The functionality should mirror the behavior of scheme file I/O and little should be added to World Scheme's primitive set.

SPECIFICATION

  1. Network connections will be modeled like R5RS file I/O. Thus network connections, like files, will be represented by the 'port' object.
  2. Opening a local and remote connections will be done with the 'open-socket' primitive. It will accept an optional remote machine name and port number argument.
  3. Specifiying a machine name and port number argument to open-socket implies a connection to a remote machine be established. IE: (open-socket dv8.org 80)
  4. Specifiying a port only implies a local connection be opend for incomming internet connections. IE: (open-socket 8000)
  5. Opening a network connection will never block and always return immediately with a port or #f. A port object implies success and #f failure to connect.
  6. Reading and writing bytes from a port will be implemented by recv and send.
  7. Reading and writing bytes over network ports will block the thread until all specified bytes have been dealt with.
  8. Recv will return one of three objects. A null string implies nothing was read. A non-null string is the string read. An #eof implies the port will no longer sending bytes.
  9. Send will return one of two objects: The string passed if successfull and #eof if the port is no longer accepting bytes.
  10. The char-ready? primitive take a port and returns #t or #f. If #t is returned then a subsequent recv/send call on the port is guaranteed to not block on at most one byte. If #f is returned recv/send could block the running thread.

DESIGN

See World Scheme development binder (Tuesday March 15, 2005).

MEMORY MODULE

REQUIREMENTS

This will be a C library that implements garbage collected memory on three basic types. Arrays of bytes, vector of pointers and fixed length stacks can be created and manipulated. The array and vector classes will be allowed multiple types values. All objects must be mutated using specified functions to faciliate bounds checking and GC optimization such as for a generational collector that might need to keep track of old-heap mutations. A garbage collection can occur anytime an object is created if memory needs to be compacted. 16 variables will represent the root set of all 'live' objects resulting in the inability to use anything but these 16 variables to reference objects such as formal arguments or local variables. Exhaustive heap validation, debugging facilities and performance statistics will be provided.

SPECIFICATION

  1. test

DESIGN

See World Scheme development binder (? 15, 2005).

(wiki 'css 'html) (validate 'xhtml-1.0 'css-2)