[r6rs-discuss] Case sensitivity
shiro at lava.net
Sun Feb 22 23:48:03 EST 2009
From: "Aaron W. Hsu" <arcfide at sacrideo.us>
Subject: Re: [r6rs-discuss] Case sensitivity
Date: Sun, 22 Feb 2009 21:55:28 -0500 (EST)
> compatibility. I hold backwards compatibility pretty strongly, and while
> I am not opposed to breaking it for good reason, I am not sure there is
> really a good reason here.
I think I've said enough (maybe too much) on case-sensitivity
for now so I shut up about it, but backward-compatibility
issue raised by Aaron is a good point.
As an implementor I care about backward-compatibility a lot.
But for the language spec I value consistency and simplicity
more. I've seen too many systems suffering historical crufts
they can't get rid of because of backward compatibility.
I agree that you need a good reason (and I second for Ray
Dillinger on giving rationale in the document), but another
important factor is whether a reasonable upgrade path is
provided or not. If there's an easier way for legacy code and
new code can coexist, barrier of breaking backward compatibiliy
For that regard, default case sensitivity is actually almost
free from the barrier. Although R6RS didn't make #!case-fold
directive in spec, it is very easy for implementations to
support it. Yes, you have to add one line to the source,
but you have to add a bunch of lines to the legacy scheme code
to wrap it into R6RS library syntax anyways.
Some spec in R6RS are incompatible with existing SRFIs in a
way that single implementation mode cannot support both. E.g.,
'condition' procedure conflicts with SRFI-35 'condition' syntax,
and 'error' procedure conflicts with SRFI-23.
Although R6RS does allow different versions of 'condition' or
'error' can coexist by tweaking imports, being these constructs
so fundamental, I'd say it is far more confusing to read and
modify the code using these identifiers than case sensitivity.
(I don't quite remember how this issue was discussed in R6RS
process, but for R7RS I try to look at incompatibilities more
More information about the r6rs-discuss