[Top][All Lists]
[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
>