[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: |
24 Feb 2006 17:03:12 -0500 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
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
- [Gcl-devel] Re: GCL error in simple-vector (fixed?),
Camm Maguire <=