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.