Agreed, it's a problem of adding runtime support. Sadly, it would have to fit the current mechanism for domain lookup.
The detail of how domain lookup and extensions interact is fairly complicated, and I don't recall it exactly - basically there's a couple of functions that need to exist in the axiom domain vector, and I don't know if they are implemented (it'll be somewhere in interop.boot), nor do I know exactly what they should do (see runtime.as for the aldor implementation). Once the extend "works" in the aldor world (ie. you can use an extended axiom domain in aldor code), it should work in axiom (worst case is that you'd need to force all the exports somehow). All that said, I have very little time to look at this at the moment. If you take a look at the generated lisp you might be able to see how domains are currently given to axiom. Peter On 3 March 2015 at 21:59, Waldek Hebisch <[email protected]> wrote: > Peter Broadbery wrote: >> >> Did this ever work? I can't remember to be honest. > > AFAIK 'extend' never worked on Axiom/FriCAS domains. > >> In either case it's not going to be an easy fix. > > It seems to be problem of adding runtime support. Basically, > each domain needs to be represented by a chain of extensions. > Most of real work probably could be delegated to existing support of > inheritance (add domain). Of course the 'interp' code would > need enhancement to understand Aldor 'extend'. In > Axiom/FriCAS there is extra difficulty: > > )lib INT > > is supposed to wipe old version of INT and replace it by a new > version. In case of Aldor style 'extend' semantics is not clear: > do the user want to load _new_ extenstion on top of old one? > Or is the intent to wipe old extension and repleace it by > new version. The problem is because extensions are > effectively anonymous, so one way would be to require names > for extensions (but that would be incompatible with current > Aldor). Alternatively, we could have some protocol, for > example that reloading INT wipes all extensions. Or maybe > extra command to unload extensions. But without way to identify > extensions this looks clumsy. Maybe produce some machine > generated identifier during load which user could use to unload > specific extension? > > -- > Waldek Hebisch > [email protected] > > -- > 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/fricas-devel. > For more options, visit https://groups.google.com/d/optout. -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/fricas-devel. For more options, visit https://groups.google.com/d/optout.
