Hello Jürgen,
        Thank you.  It works great.  But did you intend to leave output
statements in the code that on start up produces outputlike
APL_lib_root:        '/home/fred/Sandbox/APL/MathUtils' at
LibPaths.cc:184APL_lib_root:        '/home/fred/Sandbox/APL/MathUtils'
at LibPaths.cc:187is_lib_root(APL_lib_root): '0' at
LibPaths.cc:188APL_lib_root:        '/home/fred/Sandbox/APL' at
LibPaths.cc:187is_lib_root(APL_lib_root): '1' at LibPaths.cc:188
Regards,
Fred
On Mon, 2017-06-26 at 21:03 +0200, Juergen Sauermann wrote:
>     Hi Fred,
> 
>       
> 
>       thanks, fixed in SVN 973.
> 
>       
> 
>       I appears as if realpath() does not like it if the input
>       buffer is the same as the
> 
>       output buffer.
> 
>       
> 
>       /// Jürgen
> 
>       
> 
>       
> 
>     
> 
>     On 06/26/2017 06:28 PM, Frederick Pitts
>       wrote:
> 
>     
>     
> >       
> >       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../../w
> > slib7../../wslib8../../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/pl
> > otsincos)
> >             failed: No such file or directory
> >          
> >                )libs
> >         Library
> >             root:
> > /home/fred/Sandbox/APL/GaussianIntegers/McDonnellCode
> > 
> >           Library reference number mapping:
> > 
> >           ---------------------------------------------------------
> > ------------------
> >         Ref
> > Conf  Path                                                State   E
> > rr
> >         -----------------------------------------------------------
> > ----------------
> >          0
> > BIN   /home/fred/Sandbox/APL/GaussianIntegers/McDonnellCode/workspa
> > ces
> >             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
> >             the
> >           system 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
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > >                 
> > > > > 
> > > > >                 
> > > > > 
> > > > >               
> > > > 
> > > >             
> > > 
> > >             
> > > 
> > >           
> > 
> >         
> >       
> >     
> 
>     
> 
>   
> 

Reply via email to