[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gcl-devel] Re: GCL error in simple-vector (fixed?)
From: |
Camm Maguire |
Subject: |
[Gcl-devel] Re: GCL error in simple-vector (fixed?) |
Date: |
25 Feb 2006 09:45:14 -0500 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
Greetings!
Matt Kaufmann <address@hidden> writes:
> Hi, Camm --
>
> Thanks for the fixes.
>
> >> Lastly, if anyone has a moment to describe the new mv strategy in
> >> acl2, that would be helpful.
>
> If #+acl2-mv-as-values, then mv is just values and mv-let is just
> multiple-value-bind. If #-acl2-mv-as-values, which is the default, then mv
> and
> mv-let work as before.
>
Thanks! I guess what I really meant was -- is there an easy summary
of how it worked before?
Take care,
> -- Matt
> cc: address@hidden, address@hidden
> From: Camm Maguire <address@hidden>
> Date: 24 Feb 2006 17:03:12 -0500
> X-SpamAssassin-Status: No, hits=-2.5 required=5.0
> X-UTCS-Spam-Status: No, hits=-130 required=180
>
> Greetings!
>
> Matt Kaufmann <address@hidden> writes:
>
> > Hi, Camm --
> >
> > FYI:
> >
> > The following error still occurs in a version of GCL 2.6.8pre I happen
> to have
> > lying around on a Mac, probably from Feb. 5. But it's fixed in a recent
> > (Feb. 14 or earlier) GCL 2.7.0 (/p/bin/xg at UT CS), so maybe it's fixed
> in
> > 2.6.8pre by now too; I figured you probably have a recent 2.6.8pre build
> handy
> > and can check in an instant.
> >
>
> OK, this should be fixed now. Also just committed:
>
> 1) nthcdr/binum fix to 2.6.8 and head
> 2) atanh branch cut fix to 2.6.8 and head
> 3) subtypep support for partially unknown types defined with saftisfies,
> e.g. si::proper-list,
> input-stream, etc. (to HEAD)
> 4) certain multiple-value-binding autodeclaration fixes (HEAD)
> 5) inf and nan contants, and their use in a substantially expanded
> type propagation scheme (including floating point) for random ash
> floor et. al. + - * / lcm gcd log exp expt atan sqrt max min abs
> mod rem (HEAD)
> 6) some new optimizers, e.g. abs and sqrt, nth and nthcdr inliners
> (please see gcl_cmpopt.lsp for inlining rules)
>
> If anyone is interested in 5), please check out gcl_cmptype.lsp. The
> idea is to use +-inf and nan as a proxy to probe the function when the
> type is unbounded, to probe the function for its contagion rules, and
> to probe behavior around a possible pole at 0. This facilitates the
> following optimizations thus far (for example):
>
>
> =============================================================================
> (disassemble '(lambda (x y)
> (declare ((short-float 0) x) ((integer 1 12312312) y))
> (multiple-value-bind (x y) (ffloor x y)
> (abs (sqrt (/ x (ash y -3) x x y))))) nil)
>
>
> ;; Compiling /tmp/gazonk_899_0.lsp.
> (FFLOOR X Y) (VALUES (SHORT-FLOAT 0.0 *) (INTEGER 0 (12312312)))
> ;; End of Pass 1.
> ;; End of Pass 2.
> ;; OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0,
> Speed=3, (Debug quality ignored)
> ;; Finished compiling /tmp/gazonk_899_0.o.
>
> #include "gazonk_899_0.h"
> void init_code(){do_init(VV);}
> /* function definition for CMP-ANON */
>
> static void L1()
> {register object *base=vs_base;
> register object *sup=base+VM1; VC1
> vs_check;
> {float V1;
> fixnum V2;
> V1=sf(base[0]);
> V2=fix(base[1]);
> vs_top=sup;
> goto TTL;
> TTL:;
> {float V3;
> fixnum V4;
> base[2]= make_shortfloat(V1);
> base[3]= CMPmake_fixnum(V2);
> vs_top=(vs_base=base+2)+2;
> (void) (*Lnk0)();
> if(vs_base>=vs_top){vs_top=sup;goto T1;}
> V3= sf(vs_base[0]);
> vs_base++;
> if(vs_base>=vs_top){vs_top=sup;goto T2;}
> V4= fix(vs_base[0]);
> vs_top=sup;goto T3;
> goto T1;
> T1:;
> V3= sf(Cnil);
> goto T2;
> T2:;
> V4= fix(Cnil);
> goto T3;
> T3:;
> {fixnum V5= (fixnum)(-((fixnum)-3)&-32? ((V4)>=0 ? 0 : -1) :
> (V4)>>-((fixnum)-3));
> V6 = (V3)/((double)(((double)(/* INLINE-ARGS
> */V5)*(double)(V3))*(V3))*(double)(V4));
> base[2]= make_shortfloat(sqrt((double)V6));
> vs_top=(vs_base=base+2)+1;
> return;}}
> }
> }
> NIL
>
> =============================================================================
>
> More later time permitting. Including the HEAD bug involving big
> integer type inlining (Bob's segfault.)
>
> If anyone needs anything else in 2.6.8pre, please so state soon. I
> just have to clean up xgcl therein before it is to be released.
>
> Lastly, if anyone has a moment to describe the new mv strategy in
> acl2, that would be helpful.
>
> Take care,
>
>
> > vlad:~> gcl
> > GCL (GNU Common Lisp) 2.6.6 CLtL1 Jan 19 2005 20:24:14
> > Source License: LGPL(gcl,gmp), GPL(unexec,bfd)
> > Binary License: GPL due to GPL'ed components: (BFD UNEXEC)
> > Modifications of this banner must retain notice of a compatible license
> > Dedicated to the memory of W. Schelter
> >
> > Use (help) to get some basic information on how to use GCL.
> >
> > >(the (simple-vector 5) #(0 0 0 0 0))
> >
> > Error: 5 is not of type SYMBOL.
> > Fast links are on: do (si::use-fast-links nil) for debugging
> > Error signalled by TYPEP.
> > Broken at TYPEP. Type :H for Help.
> > >>
> >
> > -- Matt
> >
> >
> >
>
> --
> Camm Maguire address@hidden
> ==========================================================================
> "The earth is but one country, and mankind its citizens." -- Baha'u'llah
>
>
>
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah