SRFI sample implementation repository layout Marc Feeley (15 Oct 2022 11:19 UTC)
Re: SRFI sample implementation repository layout John Cowan (15 Oct 2022 15:00 UTC)
Re: SRFI sample implementation repository layout Lassi Kortela (15 Oct 2022 15:59 UTC)
Re: SRFI sample implementation repository layout Lassi Kortela (15 Oct 2022 16:16 UTC)
Re: SRFI sample implementation repository layout Marc Nieper-Wißkirchen (15 Oct 2022 22:18 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (16 Oct 2022 04:52 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (16 Oct 2022 05:05 UTC)
Re: SRFI sample implementation repository layout Lassi Kortela (16 Oct 2022 08:57 UTC)
Re: SRFI sample implementation repository layout Marc Feeley (16 Oct 2022 12:08 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (18 Oct 2022 21:23 UTC)
Re: SRFI sample implementation repository layout Marc Nieper-Wißkirchen (19 Oct 2022 14:53 UTC)
Re: SRFI sample implementation repository layout Marc Feeley (19 Oct 2022 15:33 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (19 Oct 2022 18:21 UTC)
Re: SRFI sample implementation repository layout Göran Weinholt (19 Oct 2022 19:35 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (19 Oct 2022 21:50 UTC)
Re: SRFI sample implementation repository layout Marc Feeley (19 Oct 2022 22:11 UTC)
Re: SRFI sample implementation repository layout Göran Weinholt (26 Oct 2022 08:44 UTC)
Re: SRFI sample implementation repository layout Marc Feeley (19 Oct 2022 21:12 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (22 Oct 2022 22:59 UTC)
Re: SRFI sample implementation repository layout Lassi Kortela (19 Oct 2022 21:37 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (22 Oct 2022 22:54 UTC)
Re: SRFI sample implementation repository layout Marc Nieper-Wißkirchen (23 Oct 2022 08:34 UTC)
Re: SRFI sample implementation repository layout Marc Feeley (23 Oct 2022 13:47 UTC)
Re: SRFI sample implementation repository layout Marc Nieper-Wißkirchen (23 Oct 2022 14:35 UTC)
Re: SRFI sample implementation repository layout Marc Feeley (25 Oct 2022 12:17 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (25 Oct 2022 15:24 UTC)
Re: SRFI sample implementation repository layout Marc Feeley (25 Oct 2022 17:26 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (25 Oct 2022 18:10 UTC)
Re: SRFI sample implementation repository layout Marc Feeley (25 Oct 2022 18:37 UTC)
Re: SRFI sample implementation repository layout Marc Nieper-Wißkirchen (25 Oct 2022 19:50 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (25 Oct 2022 20:18 UTC)
Re: SRFI sample implementation repository layout Marc Nieper-Wißkirchen (25 Oct 2022 19:22 UTC)
Re: SRFI sample implementation repository layout Marc Feeley (25 Oct 2022 20:57 UTC)
Re: SRFI sample implementation repository layout Marc Nieper-Wißkirchen (26 Oct 2022 09:03 UTC)
Re: SRFI sample implementation repository layout Marc Nieper-Wißkirchen (26 Oct 2022 15:30 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (26 Oct 2022 15:33 UTC)
Re: SRFI sample implementation repository layout Jakub T. Jankiewicz (26 Oct 2022 16:03 UTC)
Re: SRFI sample implementation repository layout Per Bothner (26 Oct 2022 16:18 UTC)
Re: SRFI sample implementation repository layout Lassi Kortela (26 Oct 2022 16:02 UTC)
Re: SRFI sample implementation repository layout Marc Feeley (26 Oct 2022 16:11 UTC)
Re: SRFI sample implementation repository layout Marc Nieper-Wißkirchen (26 Oct 2022 16:34 UTC)
Re: SRFI sample implementation repository layout Lassi Kortela (26 Oct 2022 16:59 UTC)
Re: SRFI sample implementation repository layout Lassi Kortela (26 Oct 2022 16:37 UTC)
Re: SRFI sample implementation repository layout Marc Nieper-Wißkirchen (29 Oct 2022 11:12 UTC)
Re: SRFI sample implementation repository layout Daphne Preston-Kendal (16 Oct 2022 07:10 UTC)
Re: SRFI sample implementation repository layout Lassi Kortela (16 Oct 2022 08:34 UTC)
Re: SRFI sample implementation repository layout John Cowan (24 Oct 2022 19:00 UTC)
Re: SRFI sample implementation repository layout Marc Nieper-Wißkirchen (24 Oct 2022 20:25 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (24 Oct 2022 21:17 UTC)
Re: SRFI sample implementation repository layout Arthur A. Gleckler (24 Oct 2022 21:14 UTC)

Re: SRFI sample implementation repository layout Marc Nieper-Wißkirchen 25 Oct 2022 19:22 UTC

Am Di., 25. Okt. 2022 um 14:17 Uhr schrieb Marc Feeley - feeley at
iro.umontreal.ca (via srfi-discuss list)
<xxxxxx@srfi.schemers.org>:

[...]

> > I was using SRFIs as a particular example.  In general, the layout I
> > propose would be
> > "repository/lib/library-name-part1/.../library-name-partN.sld".  Only
> > library definitions must reside under the "lib/" path.
> >
>
> Why the “lib” part which seems redundant?

Assume the following layout for a repo

README.org
/mnieper/foo.sld
/documentation/foo.tex
/documentation/example.sld

If the repo's top-level directory were the search path, a Scheme
system's loader could also pick up the library definition in the
documentation directory, although it has not been meant to be part of
the package (and may even generate an error when loaded because it
contains just demonstration code being referred to by the TeX
documentation).

On the other hand, with a distinguished subdirectory that must only
contain library definitions that are part of the package, the problem
is solved cleanly in universally:

README.org
/lib/mnieper/foo.sld
/documentation/foo.tex
/documentation/example.sld

That said, I wonder whether a manifest file (containing Scheme datums)
should be standardized instead.  This is more flexible (and would be
easy to write an manifest file generator), which may be needed when
not only library definitions but also other resource files make up a
package.

[...]

> > In the case of the second option, "A/B/C/C.sld", would a file
> > "A/B/C.sld" be ignored?
>
> The spec would probably say “it is an error” to have both.

Ok.

[...]

> > Agreed.  I don't propose this sister project to SRFIs as the only
> > place or process for publishing libraries.  It is intended to be just
> > one of the many decentralized places.  But it is intended to be a
> > well-known one with an active community and with some rules (based on
> > the experience with SRFIs) to have a certain level of quality, also
> > when it comes to documentation.
> >
>
> The library design process should not be centralized (“centralized” in the sense of having a single body of experts saying what is good and bad).  Good design should be determined by the community using the libraries once they are implemented.  There needs to be a place for competing designs so that the best ones can emerge after some experience using them.  For this approach to become a reality there is a need for a common distribution format for libraries so that they can be experimented with by any Scheme user in any compatible Scheme system.

People seem to like the SRFI system also because it is a well-known
address, it attracts people with very different backgrounds, leading
to lively discussions, which help shape proposals.  Building a second
library repository under its roof would be just an offer to the Scheme
community.  It does not and should not preclude other places from
developing and publishing libraries.

[...]

> Please do not use email addresses for identification in source code because this will be an open invitation for spammers that scan Scheme source code.  Moreover, there’s a growing consensus (in programming languages in general) that “@“ is used in library names to indicate versions, so it should be reserved for that purpose if ever used.

I didn't think of spammers.

> I would suggest this format for “hosted” libraries:
>
>    (<internet-host>/<rest> <other-part>...)
>
> Where <internet-host> would have to contain a period and <rest> is anything valid in a symbol.  So the combination of at least one “.” and at least one following “/” would indicate a hosted library.  For example (github.com/feeley/roman demo) .
>
> By the way this library name syntax is currently supported by try.scheme.org if you want to try it out.  For example you can type at the REPL:
>
>     (import (github.com/gambit/hello demo))
>
> and the interpreter will fetch the library directly from that github repository.  Read the tutorial on try.scheme.org to know more about how to write and use hosted libraries.

This looks neat. But how is security handled? Scheme code can wipe my
hard drive. If my Scheme system loads and executes code automatically
from the internet, I think I should feel frightened.

Another question is which hosting protocol should be supported and
which authority decides about it.  Or will this be a question of each
Scheme implementation, so that some will support automatic downloading
from some addresses while others need their awesome installer?

> > Alternatively, one can think of what a non-normative appendix of R6RS
> > proposes, namely a Java-style naming: (import (org gambitscheme
> > compiler)). Or (import (com github mnieper)).
> >
>
> One important advantage of the syntax I propose is that it puts in the code the URL that can be used to visit the library’s repository.  Many tools (code editors, mail readers, etc) will detect URLs and create a hyperlink for them.  For example, in this email I see “github.com/gambit/hello” highlighted with a hyperlink.

At least in Emacs, you can tell the editor/mailer/... to parse
sequences of Scheme symbols similarly.

I find a sequence of symbols more Scheme-like but I see this point of you.

> >> Using the author’s account URL can also serve as a place to store the library’s source code so that tools can easily download the source code, for example:
> >>
> >>   awesome-scheme-install github.com/feeley/bonjour
> >>
> >> to install the library (github.com/feeley bonjour) .
> >>
> >> So the name assignment and decentralization issues can be solved together.
> >
> > I am not so convinced that the library name and the repository address
> > are or should be in one-to-one correspondence.  It is a *package* (not
> > formally defined (yet?)) that is stored in a repository.  A package
> > can consist of more than one library.
> >
>
> I agree that the URL part will typically designate a repository which can contain more than one library.  That’s why the other parts of the library name are used to pinpoint which library is to be imported if there is more than one in the repository.

Understood! :)

> > I would leave the question how to resolve a package location from a
> > library name to the awesome-scheme-install program, which can use some
> > configuration file.
>
> What if you want automation to avoid fiddling with configuration files and installers?  Please read the following paper to see a context where this is useful:

There can be a default configuration file.

>    An R7RS Compatible Module System for Termite Scheme (ELS 2020): https://www.iro.umontreal.ca/~feeley/papers/HamelFeeleyELS20.pdf

I am going to read the paper soon. Thanks for the link.

> Marc

Ditto