Interlisp / medley

The main repo for the Medley Interlisp project. Wiki, Issues are here. Other repositories include maiko (the VM implementation) and Interlisp.github.io (web site sources)
https://Interlisp.org
MIT License
376 stars 19 forks source link

LOADLOOPS expects loops source directory to be named .../SOURCES not .../SRC #732

Closed nbriggs closed 2 years ago

nbriggs commented 2 years ago

We should either rename the loops/src directory to loops/sources or fix the LOADLOOPS code to expect src.

masinter commented 2 years ago

Should we merge Loops and Notecards (back) into the medley (or make them GitHub subprojects so they get (optionally) cloned? I'd like to see it set up so (FILESLOAD LOOPS) (FILESLOAD LOOPS-RULES) would work. Under library/loops directory?

rmkaplan commented 2 years ago

Well, I don’t want to stumble across Loops, Rooms, Notecards in the middle of just working on or with plain Medley, so I definitely don’t want to see these anywhere under library.

I wouldn’t mind if they are in optional directories parallel to the medley sources/ library/.., as subprojects under the main repo.

If you want to use FILESLOAD as a simple interface for projects as well as just files, then I think it has a current heuristic that it will map from a name like LOOPS to the value of LOOPSDIRECTORIES, if it exists. So if LOOPSDIRECTORIES is defined in a site greeting file, you could say

(FILESLOAD (FROM LOOPS) LOAD-LOOPS)

where LOAD-LOOPS would set up whatever relative directory variables it needs to find its own files.

Perhaps a little simpler would be to extend DOFILESLOAD with a little table, typically specified in a site or personal greeting file, that maps symbols like LOOPS, ROOMS, to particular loader files. E.g., an entry like (LOOPS (MEDLEYDIR “..>LOAD-LOOPS”) Then (FILESLOAD LOOPS) would do the right thing.

We could also make that implicit with another heuristic: (FILESLOAD XXX) always looks for a file (MEDLEYDIR “..>LOAD-XXX”).

Or make it explicit in a different way. If the greeting file defines pseudohost {MEDLEY} for the git repository, then LOOPS could map to “{MEDLEY}..>LOAD-LOOPS”. LOOPS also could be defined separately as a more specific pseudohost pointing to some arbitrarily related location, in which case you could map LOOPS to “{LOOPS}LOAD-LOOPS”.

The point is that it is relatively easy to set up one or more simple loading conventions that don't depend on how files are laid out in the local file system, or even how they are set up in the repo.

On Apr 29, 2022, at 9:23 PM, Larry Masinter @.***> wrote:

Should we merge Loops and Notecards (back) into the medley (or make them GitHub subprojects so they get (optionally) cloned? I'd like to see it set up so (FILESLOAD LOOPS) (FILESLOAD LOOPS-RULES) would work. Under library/loops directory?

— Reply to this email directly, view it on GitHub https://github.com/Interlisp/medley/issues/732#issuecomment-1113912526, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQSTUJMQDH37PSNONL2SA4LVHSYVBANCNFSM5QFCUCMA. You are receiving this because you are subscribed to this thread.

nbriggs commented 2 years ago

Per Ron’s comment I wouldn’t merge them either. Loops is really a separate system. Loops has its LOOPSDIRECTORIES, and has its loadLoops fn, and the initial setup tries to intuit the right subdirectories based in where the initial load is from. Other than the src vs sources I don’t see there’s a lot to do here, but if anything is done, the source needs to be looked at very carefully first.

masinter commented 2 years ago

I merged the source with the compiled files because that is how it was originally before Envos) so the original complaint ha been resolved -- no loops/src no loops/sources, sources for loops are in loops/system (and sources for truckin are in truckin, not truckin-src etc.)