axiom-mail
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Axiom-mail] Equivalence between named domain and %


From: Page, Bill
Subject: RE: [Axiom-mail] Equivalence between named domain and %
Date: Tue, 17 Oct 2006 10:34:32 -0400

On Tuesday, October 17, 2006 9:52 AM Waldek Hebisch wrote:

> 
> Bill Page wrote:
> > Even more exciting is the fact that using the $bootStrapMode flag
> > discovered by Waldek the same code is compiled by SPAD without
> > complaint!
> > 
> > -------
> > )lisp (setq |$bootStrapMode| t)
> > )abbrev domain T T
> > 
> > Decl == Record(name: Symbol, type: T)
> > 
> > T(): Public == Private where
> >   Public ==> with
> >     type: Symbol -> %
> >     decl: (Symbol, %) -> Decl
> >   Private ==> add
> >     decl(n:Symbol,t:%):Decl == [n,t]
> >     type(x:Symbol):% == x pretend %
> > 
> > -------
> > 
> > I wonder why '$bootStrapMode t' is not the normal default mode of
> > operation for SPAD? Is the generated code less efficient?
> > 
> 
> '$bootStrapMode t' means there is no "real" code. You need to compile
> second time in normal mode to compile executable part.
>

That is interesting.

See for example:

 http://wiki.axiom-developer.org/SandBoxBootStrap2

and in particular the Lisp code at:

  http://wiki.axiom-developer.org/images/T.NRLIB/code.lsp

> Concerning the example above, I tried to get executable code from it,
> but I already have problems at first declaration. More precisely,
> consider:
> 
> )abbrev domain DECL Decl
> 
> Decl == Record(name: Symbol, type: Symbol)
> 
> I get:
> 
>    >> System error:
>    Caught fatal error [memory may be damaged]
> 
> regardless of $bootStrapMode.

You are right. I did not notice last night that *if* I do
this SPAD compile in the same Axiom session in which I have
previously done some other compiles, then we get this error
message. See:

 http://wiki.axiom-developer.org/SandBoxBootStrap

where I did the SPAD compile after the Aldor compile. However the
compile does work if it is the only thing compiled during a session
(on the same page). See

 http://wiki.axiom-developer.org/SandBoxBootStrap2

This seems to be a serious bug.

> The same if change the above to:
> 
> )abbrev category DECL Decl
> 
> Decl == Record(name: Symbol, type: Symbol)
> 
> If I try:
> 
> )abbrev category DECL Decl
> 
> Decl: Category == Record(name: Symbol, type: Symbol)
> 
> I get:
> 
>    Internal Error
>    Error while instantiating type Category
> 
> protected-symbol-warn called with (NIL)
> 

Why would you expect to be able to tell the database via
)abbrev that Decl is a category?

Regards,
Bill Page.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]