>From Aaron: -------- Forwarded Message -------- From: Aaron W. Hsu <[email protected]> To: Eduardo Cavazos <[email protected]> Subject: Re: Publishing library information Date: Sat, 16 Jan 2010 00:30:53 -0500
Hey Ed, I just thought I would let you know that I am already working on something like this. You can already see the core technology in Descot, of which I am attaching a paper. It provides all the technological underpinnings for library sharing and distribution, at the heart of which is a Meta language that allows this sort of information to be specified in a variety of formats. I am in the process of providing a simple packaging format for the exact use that you mention, which will be essentially compatible with the R6RS library form. Additionally, you'll get the benefits of all the other things related to Descot, including one shot repository distribution, searching, and mirroring, as well as an open interface for integration of a variety of third-party tools. I am not subscribed to the Ikarus mailing list, but I follow it on occassion, and I have been having trouble posting to it, so if you would like, you can forward this on. I hope to have time to finish this in the coming weeks, but you are welcome to take on some stuff like this if you would like. I can send you more details about the overal structure of Descot, as I am making some major changes to clean it up and make it more user friendly. Descot is also independent of the distribution mechanism of the libraries, and can support everything from simple FTP distribution all the way up to version control. You host the library files wherever you want, and then put the meta data and descot library files onto a repository server, and client tools can then grab this stuff. I'm trying to get this all done soon, so that people like you can take advantage of it, but I must admit that I'm somewhat slow. :-) I have attached the paper (Scheme Workshop '09) that discusses this, and you can find some out-dated information on the Descot web site: http://descot.sacrideo.us. Aaron W. Hsu On Fri, 15 Jan 2010 21:36:48 -0500, Eduardo Cavazos <[email protected]> wrote: > Hello, > > I put together a quick and dirty list of libraries in my '~/scheme' > directory (with the help of Emacs, org-mode, and some macros): > > http://proteus.freeshell.org/r6rs-public-libraries.html > > Finding the 'sls' files is easy: > > $ find ~/scheme -name '*.sls > > And extracting the library name is also easy: > > ---------------------------------------------------------------------- > (import (rnrs)) > > (let ((file-name (list-ref (command-line) 1))) > > (let ((port (open-input-file file-name))) > > (let ((library-form (read port))) > > (close-input-port port) > > (display (list-ref library-form 1)) > > (newline)))) > ---------------------------------------------------------------------- > > But information like author, a one line summary, a detailed description, > etc. are not stored in a standard way. > > Here's one method I experimented with... A library form has the > structure: > > (library NAME EXPORT-FORM IMPORT-FORM ...) > > After the IMPORT-FORM I have an alist: > > '((author . "Billy Meier") > (summary . "Pleiadean communications protocol") > (description . "... long description goes here") > (license . ...) > (project-page . ...) > (repository . "git://...")) > > If we included such information in our libraries, it would be > straighforward to have a generated list of the communities libraries. > Also, it would be of use for library browsing utilities intended for use > on the local workstation. > > A quoted alist after IMPORT-FORM is harmless. Maybe someday if something > like this becomes a "best practice", the real library form could support > subforms like (author ...), (summary ...), etc. > > Some folks will prefer to keep such meta-data in an associated file > (e.g. orgone.sls and orgone.meta). This shouldn't be a problem; scripts > which read the metadata can check for the info in the library form first > and fall back to other places. > > Anyways, I'm bringing this up because, it would be nice publish a list > of the libraries created by the R6RS community. > > There are various views into the R6RS community's libraries. One list > could be the "library collections". For example: > > http://proteus.freeshell.org/r6rs-library-collections.html > > I.e. items which correspond to the "top level" of various library > collections. There isn't really an analogue on the Scheme side of things > for such a collection so for these, some sort of meta-data file > describing the collection would be needed. I think Rotty has thought > about this area a bit. :-) > > Finally, a user might ask to see a list of all libraries, or just > libraries which are "public"; i.e. those which have a published API > which is intended for use by others, as opposed to "private" libraries > that support the package itself. > > As far as publishing a list on the net goes, a server could periodically > 'git pull / bzr update / ...' the library repositories it knows about, > and generate a nice page from the extracted meta data. If someone wants > their libraries on the list, just submit your repository address... > > Just throwin ideas out there. :-) > > Ed > > -- A professor is one who talks in someone else's sleep.
