Well, I guess I have the most boring and irrelevant candidate statement 
there is.  Sorry about that, it's due to a misunderstanding.  I thought
that the 250-word statement was supposed to be about why I'm qualified 
to be on the steering committee, and everybody else apparently wanted to
use it to explain what direction they wanted to give the process.  

I've been an outspoken critic of R6RS, on the following grounds: 

  1) It is unrealistic (or performance killing) to require detection 
     and signalling of many of the specific errors for which R6RS 
     requires detection and signalling.  Even those implementors 
     who have conformed with this requirement have refused to make 
     it the default behavior.  

  2) R6RS makes it impossible to usefully implement scheme on 
     any machine whose native character set is not Unicode.
     Unicode, in turn, requires either OS support or large tables, 
     either of which makes Scheme unsuitable for embedded systems
     and both of which are utterly irrelevant for code that is 
     supposed to run on systems that, like most embedded systems, 
     do not use text.

  3) There is no separation of libraries in R6RS.  This makes 
     libraries as such pretty darn useless and restricts the 
     module system spec'd in R6RS to being useful for user code 
     only.  There is no way to branch on library availability.
     This makes it impossible to write code that configures itself 
     to what's available in a given environment.  And there is no
     way to *NOT* load large sets of functionality which may be 
     irrelevant to the task or system at hand (as in the above 
     example of an embedded system which does not use text). 
     Finally, if we have libraries at all, there are *many*
     functions (I/O functions for starters) that should have 
     been moved from the core language into them but which were 
     not.

  4) R6RS requires whole-program analysis before any code can 
     run.  This is performance-killing and makes REPLs illegal.
     It is reasonable to require a way to *invoke* whole-program 
     analysis, but it is not reasonable to require that it be 
     done all the time every time.

>From the perspective of the steering committee, I'd say the module 
and library system needs a major overhaul in order to give scheme 
programmers ways to specify programs that run with only subsets of 
the standard libraries and to put functions into libraries that 
properly belong there.  

Otherwise, the job of the standard is to carefully eliminate
requirements that stop implementors from making implementations 
adapted to their environments and requirements.  

                        Bear


_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to