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
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > >
> >
> >
>
>
>
>
>