[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

why change the file name extension

This page is part of the web mail archives of SRFI 103 from before July 7th, 2015. The new archives for SRFI 103 contain all messages, not just those from before July 7th, 2015.



Thank you for the feedback.

On Fri, 2009-12-25 at 20:11 +0100, GÃran Weinholt wrote:
> Derick Eddington <derick.eddington@xxxxxxxxx> writes:
>
> > The new revision of SRFI 103 changes the file name extension for R6RS
> > library files from .sls and .IMPL.sls to .r6rs-lib and .IMPL-r6rs-lib.
>
> Why did you make this change,

To support multiple Scheme dialects; and to support system-specific
files via a more useful general facility instead of a limited odd one;
and to not encode the #\. character; and to have the R6RS extension name
fit its purpose.

For multiple dialects to use the same "SCHEME"-named environment
variable, they must use different extensions to avoid same-named files
of one dialect shadowing those of another. [1]

The previous design for system-specific files was odd because it was
limited to extending the file name extension with a system's name and it
did so by using the #\. character which made an extension seem like
nested extensions (like .tar.gz) and which required encoding the #\.
character (to avoid a rare corner case name conflict).  A
system-specific extension is not nested extensions, it's not, e.g.,
an .ikarus file format nested in a .sls file format, it's a single
extension and single format.  Redesigning to support configurable
extensions (which is a useful addition by itself and is already
supported by some systems but the old design did not support it) and
using it to support system-specific files solves all the above issues --
a general-purpose facility is used, the #\. character is freed from
encoding, and system-specific extensions have the form of a single
extension.

.sls isn't good because it's too vague and susceptible to conflict with
some other organizations' desire to use it.  "S.L.S." meant "Scheme
library source", but that's too vague because the extension needs to
describe what file format and Scheme dialect because the nature of
Scheme is multiple dialects and formats.  I think I'm the person who
popularized .sls, and I did so because I want an extension which
describes the format/type of a file, but .sls fails to adequately do
that so I redesigned to have an extension which does.

> and does it mean that I'll be discouraged
> From keeping my filenames as they are?

Yes.  That's one of the reasons why I made the renaming utility program.
Files with .IMPL.sls extensions are no longer usable with SRFI 103
because they contain the #\. character.  Files with .sls extension are
still usable if you set the SCHEME_LIB_EXT environment variable to
include it.

I acknowledge this change is an inconvenience (but the renaming program
lessens it).  I think the new design is significantly better.  I want
this SRFI to support multiple dialects and to be useful for at least the
next 15 years.  I don't think avoiding the one-time inconvenience of
file renaming is worth not having the better design.

I just used the renaming program on your Industria collection.  I
started from nothing and followed the instructions at [2] and it took me
15 minutes (I also modified the renaming program to do .sps
to .r6rs-prog and then ran your tests).  (You can use the renamed files
with a Scheme system supporting SRFI 103 such as my [3].)

[1] http://srfi.schemers.org/srfi-103/mail-archive/msg00085.html
[2] http://srfi.schemers.org/srfi-103/mail-archive/msg00083.html
[3] https://code.launchpad.net/~derick-eddington/ikarus/ikarus.dev--SRFI-104

Merry solstice and praise the sun by feeding reindeer psychotropic
red-and-white mushrooms and then consuming their urine :-)

--
: Derick
----------------------------------------------------------------