From: David A. Wheeler <dwheeler@dw...> - 2008-01-16 03:05:57
One challenge of reader-based approaches, like I-expressions and my own, is=
that loading needs to automatically use the "right" loader. Ideally, it s=
hould also be possible to use makefiles (etc.) to translate files to straig=
ht s-expressions, in case someone doesn't want to muck with a loader.
Which leads to the need for filename extension conventions. If there's a "=
normal" set of filename extensions, then it's easy for a loader (like "load=
") to determine what reader to use, and it's easy to create makefiles that =
"do the right thing".
Here's my proposal: New filenames would be "reader-extension-letter" +
"traditional-format-extension", where "reader-extension-letter" is:
i =3D I-expressions
m =3D modern-expressions
s =3D sweet-expressions
So a Scheme file with sweet-expressions would be ".sscm". If you use ".cl"
for Common Lisp, an I-expression file would be ".icl" (or ".ilisp"). In ma=
this means that it's more than 3 chars, but even if you have to use an 8+3 =
the first 3 characters are distinctive. But I think 8+3 only formats are g=
You wouldn't HAVE to use such conventions, but having conventions would mak=
e it possible to load files automagically... and that's helpful. E.G., I'd=
like to be able to run "guile blah.sscm" and have it work correctly.
If there are no objections, I plan to modify sugar, etc., to recognize thes=
e extensions. That will make "load" more compatible with existing files, w=
hich should make it easier to
convince people to use them.
--- David A. Wheeler