Email list hosting service & mailing list manager

scheme-script organization created Lassi Kortela (26 Jun 2021 11:15 UTC)
Re: scheme-script organization created Vladimir Nikishkin (26 Jun 2021 11:20 UTC)
Re: scheme-script organization created Lassi Kortela (26 Jun 2021 11:26 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (26 Jun 2021 11:54 UTC)
Re: scheme-script organization created Lassi Kortela (26 Jun 2021 12:03 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (26 Jun 2021 12:18 UTC)
Re: scheme-script organization created Lassi Kortela (26 Jun 2021 12:32 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (26 Jun 2021 12:41 UTC)
Re: scheme-script organization created Lassi Kortela (26 Jun 2021 13:28 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (26 Jun 2021 13:40 UTC)
Re: scheme-script organization created Lassi Kortela (26 Jun 2021 14:16 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (26 Jun 2021 14:30 UTC)
Re: scheme-script organization created Lassi Kortela (26 Jun 2021 14:44 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (26 Jun 2021 15:50 UTC)
Re: scheme-script organization created Marc Feeley (26 Jun 2021 12:42 UTC)
Re: scheme-script organization created Lassi Kortela (26 Jun 2021 12:46 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (26 Jun 2021 13:05 UTC)
Re: scheme-script organization created Lassi Kortela (26 Jun 2021 13:36 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (26 Jun 2021 13:45 UTC)
Re: scheme-script organization created Lassi Kortela (26 Jun 2021 13:58 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (26 Jun 2021 14:20 UTC)
Re: scheme-script organization created Vladimir Nikishkin (26 Jun 2021 14:23 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (26 Jun 2021 14:31 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (26 Jun 2021 13:07 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (26 Jun 2021 19:07 UTC)
Re: scheme-script organization created Lassi Kortela (26 Jun 2021 19:26 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (27 Jun 2021 08:02 UTC)
Re: scheme-script organization created Lassi Kortela (28 Jun 2021 06:47 UTC)
Re: scheme-script organization created Marc Feeley (27 Jun 2021 16:36 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (27 Jun 2021 19:45 UTC)
Re: scheme-script organization created Marc Feeley (27 Jun 2021 21:02 UTC)
Re: scheme-script organization created Marc Nieper-Wißkirchen (28 Jun 2021 06:20 UTC)
Script semantics and declarations Lassi Kortela (28 Jun 2021 06:59 UTC)
Re: Script semantics and declarations Lassi Kortela (28 Jun 2021 07:09 UTC)
Re: Script semantics and declarations Marc Nieper-Wißkirchen (28 Jun 2021 07:20 UTC)
Re: Script semantics and declarations Lassi Kortela (28 Jun 2021 07:49 UTC)
Re: Script semantics and declarations Marc Nieper-Wißkirchen (28 Jun 2021 08:05 UTC)
Re: Script semantics and declarations Lassi Kortela (28 Jun 2021 09:16 UTC)
Re: Script semantics and declarations Marc Nieper-Wißkirchen (28 Jun 2021 09:32 UTC)
Proposed implementation Lassi Kortela (28 Jun 2021 10:28 UTC)
Re: Proposed implementation Marc Nieper-Wißkirchen (28 Jun 2021 12:10 UTC)
Re: Proposed implementation Marc Feeley (28 Jun 2021 12:15 UTC)
Re: Proposed implementation Marc Nieper-Wißkirchen (28 Jun 2021 12:21 UTC)
Re: Script semantics and declarations Marc Nieper-Wißkirchen (28 Jun 2021 20:42 UTC)
Text substitution macros and multi-file archives Lassi Kortela (28 Jun 2021 07:24 UTC)
Re: Text substitution macros and multi-file archives Marc Nieper-Wißkirchen (28 Jun 2021 07:35 UTC)
Re: Text substitution macros and multi-file archives Lassi Kortela (28 Jun 2021 08:07 UTC)
Re: Text substitution macros and multi-file archives Marc Nieper-Wißkirchen (28 Jun 2021 08:23 UTC)
Re: Text substitution macros and multi-file archives Lassi Kortela (28 Jun 2021 08:38 UTC)
Re: Text substitution macros and multi-file archives Marc Nieper-Wißkirchen (28 Jun 2021 08:52 UTC)

Script semantics and declarations Lassi Kortela 28 Jun 2021 06:59 UTC

Two suggestions:

1. I think we need a particular mindset shift to keep the complexity
under control, and that shift is to let go of the idea of shipping the
launcher with any Scheme implementation. It should be a separate program
(a very light and portable C program that is trivial to install from
`apt-get` and the like).

To be sure, we can and should specify the semantics of the launcher in a
SRFI in case people want to make alternative implementations of it, but
I wouldn't really encourage that each Scheme have its own.

2. Instead of fixing precise semantics for the execution a script, I
would suggest the following approach:

- Parse declarations from an S-expression in a standard format.

- Those could look like this (all details subject to debate):

(declare-file
   (language r7rs))

in which case the launcher passes the script to any R7RS implementation
it can find (adding the right command line flags, e.g. `gsi-script
-:r7rs` for Gambit, and `gosh -r 7` for Gauche).

Similarly, one can write:

(declare-file
   (language r6rs))

in which case the launcher could use `sagittarius -r 6` or `larceny
-r6rs` or `mosh` for example.

If the script is only known to work in particular Scheme
implementation(s), one could use:

(declare-file
   (language scheme)
   (implementation gambit gauche))

in which case the launcher runs `gsi-script` with no `-:r7rs` flag, or
`gosh` with no `-r 7` flag.

Or:

(declare-file
   (language r7rs)
   (implementation chibi gauche gambit))

in which case it runs `chibi` or `gosh -r 7` or `gsi-script -:r7rs`. In
case none of those implementations are installed, it gives up, since the
script hasn't given it permission to try other implementations.

These declarations can be extended outside of Scheme, to also work with
other Lisp dialects and implementations. I have working code to use it
with Common Lisp, Emacs Lisp, and Clojure. For example:

(declare-file
   (language common-lisp)
   (implementations sbcl ccl clisp))

Examples here: https://github.com/lispunion/lila/tree/master/examples