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

Reply via email to