Hello Jürgen,
It doesn't on Fedora 25 as evidenced by following transcript: )host pwd/home/fred/Sandbox/APL/GaussianIntegers/McDonnellCode 0 )host ls -d ../../{workspaces,wslib?} ../../workspaces../../wslib1../../wslib2../../wslib6../../wslib7../../w slib8../../wslib9 0 )host ls -l ../../workspaces/plotsincos.xml -rw-r--r-- 1 fred fred 21284 Jun 21 11:47 ../../workspaces/plotsincos.xml 0 )load 0 plotsincos )LOAD plotsincos (file /home/fred/Sandbox/APL/GaussianIntegers/McDonnellCode/workspaces/plotsi ncos) failed: No such file or directory )libs Library root: /home/fred/Sandbox/APL/GaussianIntegers/McDonnellCode Library reference number mapping: --------------------------------------------------------------------- ------ Ref Conf Path State Err --------------------------------------------------------------------- ------ 0 BIN /home/fred/Sandbox/APL/GaussianIntegers/McDonnellCode/workspaces missing (2) 1 BIN /home/fred/Sandbox/APL/GaussianIntegers/McDonnellCode/wslib1 missing (2) 2 BIN /home/fred/Sandbox/APL/GaussianIntegers/McDonnellCode/wslib2 missing (2) 3 PSYS /usr/local/lib/apl/wslib3 present 4 PSYS /usr/local/lib/apl/wslib4 present 5 PSYS /usr/local/lib/apl/wslib5 present 6 BIN /home/fred/Sandbox/APL/GaussianIntegers/McDonnellCode/wslib6 missing (2) 7 BIN /home/fred/Sandbox/APL/GaussianIntegers/McDonnellCode/wslib7 missing (2) 8 BIN /home/fred/Sandbox/APL/GaussianIntegers/McDonnellCode/wslib8 missing (2) 9 BIN /home/fred/Sandbox/APL/GaussianIntegers/McDonnellCode/wslib9 missing (2) ======================================================================= ==== APL_LIB_ROOT is not set and there are no override entries in the preference files other than for library 3, 4 and 5 in thesystem preference file. Regards, Fred On Mon, 2017-06-26 at 18:05 +0200, Juergen Sauermann wrote: > Hi Fred, > > > > correct. In APL_LIB_ROOT is not set and no preferences > override any library paths, then > > the first library above ./ that contains two files or sub-dirs > named workspaces and wslib1 is > > chosen as the library root. > > > > The code is in file LibPaths.cc function > LibPaths::search_APL_lib_root() > > > > Hope it works, > > /// Jürgen > > > > > > On 06/26/2017 05:27 PM, Frederick Pitts > wrote: > > > > > > > Hello Jürgen, > > > > > > > > My > > bad. In my original post, I should have typed `)load' > > where I > > typed ')lib'. Thanks for the detailed reply. I can > > )save and )load workspaces now. > > > > > > > > But I'm still confused about the following three sentences > > from `apl.html': > > > > > > > > If an environment variable APL_LIB_ROOT is defined, then its > > value is used as library-root. Otherwise the path from the > > current directory (".") up to the root directory ("/") is > > searched until a directory containing two files > > ’workspaces’ and > > ’wslib1’ is found. Normally ’workspaces’ and ’wslib1’are > > directories, but for the computation of library-root files > > suffice. > > > > > > > > This passage plus your explanation implies to me that if > > APL_LIB_ROOT is unset and there are no overrides in the > > preference > > files, an attempt is made to determine the library-root by > > searching from the current directory '.' up to the root > > directory '/', stopping when the two directories or files > > `workspaces' and `wslib1' are found in the same directory. > > If > > this mechanism were to work the way I interpret the > > passage, as > > long as one works in subdirectories below one's library- > > root > > directory, the 0 .. 9 library numbers are meaningful > > without > > having to set APL_LIB_ROOT or preference override entries. > > And > > one would not have to use paths on the )lib and )load > > commands. > > > > > > > > Regards, > > > > > > > > Fred > > > > > > > > On Mon, 2017-06-26 at 12:11 +0200, Juergen Sauermann wrote: > > > > > Hi Fred, > > > > > > > > > > > > conceptually the )libs command shows the directories > > > that will be used > > > > > > for the different library numbers (ranging from 0-9 > > > with 0 > > > being the default > > > > > > library number of none is given). > > > > > > > > > > > > The other (non-library number) argument of the lib > > > command is > > > a directory, and > > > > > > to be distinguished from a library reference number it > > > should > > > contain a /. > > > > > > > > > > > > I suppose the first thing going wrong in your examples > > > below > > > is that the )lib argument > > > > > > seems to be a workspace name while the )lib command > > > expects either a library reference > > > > > > number like 0..9 or the path to a directory. > > > > > > > > > > > > So if ../workspaces/ > > > contains workspace plotsincos.xml then the > > > command > > > > > > > > > > > > )lib > > > ../workspaces > > > > > > > > > > > > should display it. For example: > > > > > > > > > > > > )host > > > pwd > > > > > > /home/eedjsa/projects/juergen/apl-1.7/src > > > > > > > > > > > > 0 > > > > > > > > > > > > )lib ../ > > > > > > autom4te.cache/ debian/ debian_tmp/ > > > devel_doc/ > > > > > > doc/ erlang/ ftp-upload/ > > > gnu-apl.d/ > > > > > > html/ m4/ rpm/ src/ > > > > > > support-files/ tools/ web-home/ > > > workspaces/ > > > > > > wslib1/ wslib2/ wslib3/ > > > wslib4/ > > > > > > wslib5/ > > > > > > )lib ../workspaces > > > > > > APL_CGI LSQRL RU1 RU2 > > > RUBIK SCRIPT > > > > > > ScalarBenchmark XSudoku sudoku sudoku_DLX > > > test tt > > > > > > > > > > > > > > > > > > Now the locations of library directories can be > > > specified in > > > different ways. The library root mechanism > > > > > > assumes a single directory that contains (at least) two > > > subdirectories named workspaces and wslib1. > > > > > > These names come from the IBM APL2 interpreter which is > > > using > > > a similar scheme (but without giving > > > > > > any rules for it). > > > > > > > > > > > > GNU APL starts with this library root scheme, but each > > > directory can be overridden by either the system's > > > > > > preference file and/or the user's preference file. the > > > )LIBS > > > command then tells how the library paths for > > > > > > the different library reference numbers were computed. > > > For > > > example: > > > > > > ------------------------------------------------------- > > > -------------------- > > > > > > Ref Conf > > > Path > > > State Err > > > > > > ----------------------------------------------------- > > > ---------------------- > > > > > > 0 BIN > > > /home/eedjsa/projects/juergen/apl- > > > 1.7/src/workspaces > > > present > > > > > > 1 BIN > > > /home/eedjsa/projects/juergen/apl- > > > 1.7/src/wslib1 > > > present > > > > > > 2 BIN > > > /home/eedjsa/projects/juergen/apl- > > > 1.7/src/wslib2 > > > missing (2) > > > > > > 3 PSYS > > > /usr/local/lib/apl/wslib3 > > > > > > present > > > > > > 4 PSYS > > > /usr/local/lib/apl/wslib4 > > > > > > present > > > > > > 5 PSYS > > > /usr/local/lib/apl/wslib5 > > > > > > present > > > > > > 6 BIN > > > /home/eedjsa/projects/juergen/apl- > > > 1.7/src/wslib6 > > > missing (2) > > > > > > 7 BIN > > > /home/eedjsa/projects/juergen/apl- > > > 1.7/src/wslib7 > > > missing (2) > > > > > > 8 BIN > > > /home/eedjsa/projects/juergen/apl- > > > 1.7/src/wslib8 > > > missing (2) > > > > > > 9 BIN > > > /home/eedjsa/projects/juergen/apl- > > > 1.7/src/wslib9 > > > missing (2) > > > > > > ===================================================== > > > ====================== > > > > > > > > > > > > This tells us that libraries 3, 4, and 5 were specified > > > by > > > PSYS (system preferences file, e.g. > > > > > > /usr/local/etc/gnu-apl.d/preferences) while the others > > > are computed from the current directory (BIN). > > > > > > The State and Err columns tell if the directory is > > > accessible > > > and the errno if not. > > > > > > > > > > > > If I remember correctly then the )lib command wants > > > either a > > > library reference number (0-9) or a > > > > > > path, but not both. If it fails, then )more tells which > > > directory was tried (I fixed the spelling mistake) > > > > > > and the strerror(errno) of the failed operation: > > > > > > > > > > > > )lib xxx > > > > > > IMPROPER LIBRARY REFERENCE 'xxx': No such file or > > > directory > > > > > > )more > > > > > > path 'xxx' could not be openend as directory: No such > > > file or directory > > > > > > > > > > > > Best Regards, > > > > > > /// Jürgen > > > > > > > > > > > > > > > > > > On 06/26/2017 06:07 AM, Frederick > > > Pitts wrote: > > > > > > > > > > > > > Hello Jürgen, > > > > > > > > The apl.html doc indicates that if environment variable > > > > APL_LIB_ROOT is not defined, the subject search path will be > > > > from the > > > > current directory '.' up to the root directory '/' stopping > > > > when a > > > > directory containing two directories ’workspaces’ and ’wslib1’ > > > > is > > > > found. > > > > > > > > The above does not work on my platform, Fedora 25. For > > > > instance, 'plotsincos.xml' is in ../workspaces relative the > > > > current > > > > directory. > > > > > > > > )lib plotsincos > > > > > > > > yields > > > > > > > > IMPROPER LIBRARY REFERENCE 'plotsincos': No such file or > > > > directory > > > > > > > > and > > > > > > > > )lib 0 plotsincos > > > > > > > > yields > > > > > > > > IMPROPER LIBRARY REFERENCE '0': No such file or directory. > > > > > > > > Is this a bug or has the feature been removed and the > > > > documentation is > > > > out of date. > > > > > > > > A related question is if the feature were to work > > > > correctly, > > > > would the )libs command use the feature so its output reflects > > > > the > > > > location of the library directory paths that will be used by > > > > the )lib > > > > command. Currently, it does not. > > > > > > > > Regards, > > > > > > > > Fred > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >