On 1/9/19 8:13 AM, oldk1331 wrote:
> But in a fresh session, after you issue ")lib FOOCAT", you can't get
> information about FooCat&:
> 
> (1) -> )lib FOOCAT
>    FooCat is now explicitly exposed in frame frame1
>    FooCat will be automatically loaded when needed from
>       /home/oldk/tmp/FOOCAT.NRLIB/FOOCAT
> (1) -> )lisp (getdatabase '|FooCat| 'constructorkind)
> 
> Value = |category|
> (1) -> )lisp (getdatabase '|FooCat&| 'object)
> 
> Value = NIL

Arrrrhhhh... Thank you, very much!

Qian, now I am on your side, meaning the following.

If ")lib FOOCAT" happens, then
  (1) load FOOCAT as is done now.
  (2) find the location of FOOCAT.NRLIB
      (2.1) find the long name |FooCat| corresponding to abbrev FOOCAT.
            (How?)
      (2.2) Issue GETDATABASE('|FooCat|, 'object') to get the full path
            of FOOCAT.NRLIB

   (3) check existence of FOOCAT-.NRLIB in the path of (2.2)
   (4) If possible, then load FOOCAT-.NRLIB.

One problem I see with this approach is in (2.1). I currently don't know
how to extract the long name.

The second problem is that a developer might have compiled a category
FooCat with a default package at some point in the development of a
bigger software package. Later he decides to delete the default package
in foocat.spad. If FOOCAT-.NRLIB then still lies in his filesystem then
the new ")lib FOOCAT" will find it and load it. In order to prevent this
from happening, it must be checked that FOOCAT-.NRLIB is not older than
FOOCAT.NRLIB.

We can ignore the Aldor part as shown in my last mail.

Ralf

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fricas-devel+unsubscr...@googlegroups.com.
To post to this group, send email to fricas-devel@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/384b1d7e-bf8c-cd2d-9680-16297a8c57f8%40hemmecke.org.
For more options, visit https://groups.google.com/d/optout.

Reply via email to