axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] RE: [Gcl-devel] Re: serveral bugs in codebase


From: Juergen Weiss
Subject: [Axiom-developer] RE: [Gcl-devel] Re: serveral bugs in codebase
Date: Mon, 28 Jul 2003 17:21:31 +0200

Hi,

the data in compCapsuleItems is obviously wrong. $myFunctorBody
should be bound to nil. It's in my list and Tim will take care
of it. 

The function output is defined in i-output.boot and you really
need that file. So I'm a bit suprised, that the function is not
found. 

Juergen Weiss

Juergen Weiss     | Universitaet Mainz, Zentrum fuer Datenverarbeitung,
address@hidden| 55099 Mainz, Tel: +49(6131)39-26361, FAX:
+49(6131)39-26407


> -----Original Message-----
> From: Camm Maguire [mailto:address@hidden 
> Sent: Monday, July 28, 2003 5:05 PM
> To: address@hidden
> Cc: address@hidden; Juergen Weiss; address@hidden
> Subject: Re: [Gcl-devel] Re: serveral bugs in codebase
> 
> 
> Hello again!
> 
> root <address@hidden> writes:
> 
> > Camm,
> > 
> > The duplicate set issue test is:
> > 
> > dom:=MonoidRing(Polynomial PrimeField 5, Permutation Integer)
> > p:dom:=1
> > set [p,p] ==> {1,1}
> > 
> >   but should be
> >           
> >           ==> {1}
> > 
> > the other test is:
> > 
> >   one? p  ==> false
> > 
> > but should be
> >        
> >           ==> true
> > 
> 
> OK, I think this has to do with the |output| in recordAndPrint in
> i-toplevel being unbound.  In the default non-safety compile mode,
> this is not checked for.  I replaced the form
> 
> (|output| |x'| |md'|))
> 
> with 
> 
> (format t "output replace ~S ~S ~%" |x'| |md'|))
> 
> in i-toplevel.clisp, managed to compile the needed algebra files from
> Juergen's tree by hand, and then get what I think is the proper
> behavior, with reformatted output of course:
> 
> ==============================================================
> ===============
> (1) -> dom:=MonoidRing(Polynomial PrimeField 5, Permutation Integer)
> 
> output replace (|MonoidRing| (|Polynomial| (|PrimeField| 5)) 
> (|Permutation| (|Integer|))) (|Domain|) 
>                                                               
>    Type: Domain
> (2) -> p:dom:=1
>    Loading 
> /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/PF.o for 
>       domain PrimeField 
>    Loading 
> /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/PRIMES.o 
>       for package IntegerPrimesPackage 
>    Loading 
> /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/SET.o for
>       domain Set 
>    Loading /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/POLY.o 
>       for domain Polynomial 
>    Loading /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/ALIST.o 
>       for domain AssociationList 
>    Loading /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/PERM.o 
>       for domain Permutation 
>    Loading /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/MRING.o 
>       for domain MonoidRing 
>    Loading 
> /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/SMP.o for
>       domain SparseMultivariatePolynomial 
>    Loading 
> /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/SUP.o for
>       domain SparseUnivariatePolynomial 
>    Loading /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/SAOS.o 
>       for domain SingletonAsOrderedSet 
>    Loading /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/UPMP.o 
>       for package UnivariatePolynomialMultiplicationPackage 
>    Loading 
> /fix/t1/camm/axiom/axiom/new/new/int/algebra/IPF.NRLIB/code 
>       for domain InnerPrimeField 
>    Loading /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/TABLE.o 
>       for domain Table 
>    Loading 
> /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/HASHTBL.o
>       for domain HashTable 
>    Loading 
> /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/INTABL.o 
>       for domain InnerTable 
>    Loading /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/ZMOD.o 
>       for domain IntegerMod 
> 
> output replace (((0 . 1) . #<vector 0998e32c>)) (|MonoidRing| 
> (|Polynomial| (|PrimeField| 5)) (|Permutation| (|Integer|))) 
>                 Type: MonoidRing(Polynomial PrimeField 
> 5,Permutation Integer)
> (3) -> set [p,p]
>    Loading 
> /fix/t1/camm/axiom/axiom/new/new/mnt/linux/algebra/FSAGG-.o 
>       for domain FiniteSetAggregate& 
> 
> output replace #<vector 09fc0efc> (|Set| (|MonoidRing| 
> (|Polynomial| (|PrimeField| 5)) (|Permutation| (|Integer|)))) 
>             Type: Set MonoidRing(Polynomial PrimeField 
> 5,Permutation Integer)
> (4) -> one? p
> 
> output replace T (|Boolean|) 
>                                                               
>   Type: Boolean
> (5) -> 
> ==============================================================
> ===============
> 
> I can't yet see where |output| is supposed to be initialized.  All
> occurrences I've found treat this symbol as a 'let-initialized'
> local.  A similar situation appears to exist with the |data| variable
> in define.boot.pamphlet.  Tim, what is the idea in these code
> fragments?
> 
> ==============================================================
> ===============
> i-toplevel.boot.pamphlet
> ==============================================================
> ===============
> --% Result Output Printing
> 
> recordAndPrint(x,md) ==
>   --  Prints out the value x which is of type m, and records 
> the changes
>   --  in environment $e into $InteractiveFrame
>   --  $printAnyIfTrue  is documented in setvart.boot. 
> controlled with )se me any
>   if md = '(Any) and $printAnyIfTrue  then
>     md' := first  x
>     x' := rest x
>   else
>     x' := x
>     md' := md
>   $outputMode: local := md   --used by DEMO BOOT
>   mode:= (md=$EmptyMode => quadSch(); md)
>   if (md ^= $Void) or $printVoidIfTrue then
>     if null $collectOutput then TERPRI $algebraOutputStream
>     if $QuietCommand = false then
>       output(x',md')
> 
>       ^^^^^^  unbound function
> 
>   putHist('%,'value,objNewWrap(x,md),$e)
>   if $printTimeIfTrue or $printTypeIfTrue then 
> printTypeAndTime(x',md')
>   if $printStorageIfTrue then printStorage()
>   if $printStatisticsSummaryIfTrue then printStatisticsSummary()
>   if FIXP $HTCompanionWindowID then mkCompanionPage md
>   $mkTestFlag = true => recordAndPrintTest md
>   $runTestFlag =>
>     $mkTestOutputType := md
>     'done
>   'done
> 
> ==============================================================
> ===============
> define.boot.pamphlet
> ==============================================================
> ===============
> compCapsuleItems(itemlist,$predl,$e) ==
>   $TOP__LEVEL: local
>   $myFunctorBody :local  := data    ---needed for translator
> 
>                             ^^^^  unbound variable
>        
>   $signatureOfForm: local
>   $suffix: local:= 0
>   for item in itemlist repeat $e:= 
> compSingleCapsuleItem(item,$predl,$e)
>   $e
>  
> ==============================================================
> ===============
> 
> Take care,
> 
> 
> > As mentioned in a previous email Axiom stores its variable bindings
> > in a "frame" which, internally is an alist stored in the variable
> > |$InteractiveFrame|
> > 
> > If you create the 'dom' variable above you can see it by doing:
> > 
> > )lisp (pprint |$InteractiveFrame|)
> > 
> > 
> > btw, you can type
> > 
> > )lisp (setq $DALYMODE t)
> > 
> > and then any line that begins with an open-paren at the Axiom
> > prompt will be given directly to the lisp. e.g. after setting
> > $dalymode above you can type:
> > 
> > (pprint |$InteractiveFrame|)
> > 
> > directly to the Axiom prompt. It makes lisp debugging easier.
> > 
> > Tim
> > address@hidden
> > address@hidden
> > 
> > 
> > 
> > _______________________________________________
> > Gcl-devel mailing list
> > address@hidden
> > http://mail.gnu.org/mailman/listinfo/gcl-devel
> > 
> > 
> > 
> 
> -- 
> Camm Maguire                                          
> address@hidden
> ==============================================================
> ============
> "The earth is but one country, and mankind its citizens."  -- 
>  Baha'u'llah
> 




reply via email to

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