sbcl Log


Commit Date  
[5a1496] (alpha64_2_branch) (100.0 kB) by Christophe Rhodes Christophe Rhodes

0.8.3.95.alpha64_2.1:
YUM YUM! THAT WAS TASTY!

IT RUNS! (sort of)

* forward-port alpha64_branch;
* a couple more stray backend 4 -> 8; stl -> stq substitutions;
* implement new specialized arrays (e.g. (unsigned-byte 63), yuk);

(by this point, we're running about 1/3 of the toplevel forms
in cold-init)

* implement 64bit-logical-foo functions for use in bit-bashers
(mostly because SYMBOLICATE needs the concatenate deftransform,
which needs BIT-BASH-COPY);

(by this point, we run all the toplevel forms, and die a death in
!PPRINT-COLD-INIT; comment that and the call to GC out -- see
below -- and we get to a REPL, so...)

* (* 2 3) -> 6 [good]; most-positive-fixnum -> 11520460976 [bad]

(work out that it's a printing issue...)

* fix COPY-TO-SYSTEM-AREA and NORMALIZE-SAP for 64bitness

(now basic printing works)

TODO
* GC
* bignums (type tests for ub64, needed by the compiler
probably depend on them)
* etc

2003-10-02 17:54:23 View
Download
[49c69b] (99.0 kB) by Christophe Rhodes Christophe Rhodes

0.8.3.56:
Fix (BYTE 0 0)
... again, in the %LDB-and-friends DERIVE-TYPE methods, but this
time the failure seemed more justifiable, because...
... (UNSIGNED-BYTE 0) is quite naturally interpreted as
(INTEGER 0 0), and that's what we wrote, but ...
... ANSI saith "s---a positive integer". Ugh. So ...
... implement SB!INT:UNSIGNED-BYTE* that does the right thing,
and use it to simplify derive-type logic.

2003-09-12 15:23:07 View
Download
[6cc71a] (99.0 kB) by Christophe Rhodes Christophe Rhodes

0.8.3.53:
LOGBITP fixes
... correctness fix: INDEX can be any UNSIGNED-BYTE, not just a
positive fixnum or an INDEX;
... efficiency fix: don't cons up a bignum as large as memory
when given large INDEX numbers; instead, be efficient
and grab just the relevant word of the INTEGER
argument.

2003-09-11 15:49:43 View
Download
[4b58ef] (99.0 kB) by Christophe Rhodes Christophe Rhodes

0.8.3.45.modular1:
Implement modular function optimization for PPC.
... Haven't implemented modular - or *; they could be TODO.
... probably doesn't build on anything but PPC currently, so
onto a branch it goes.

2003-09-08 15:47:45 View
Download
[b7eed5] (99.0 kB) by Daniel Barlow Daniel Barlow

0.8.3.23
Exciting gencgc hacking: SB-SYS:WITH-PINNED-OBJECTS

When passing Lisp objects to foreign code, it is important
that GC doesn't change the object's address as the foreign
code's pointers to it won't be updated. Traditionally this is
done using WITHOUT-GCING, but that's not ideal in a threaded
system where one thread may be doing a blocking alien call and
other threads would like to continue as normal.

So, instead we shove pointers to the important objects on the
C stack where they will cause the pages pointed to to be
pinned in place using preserve_pointers. Additionally we make
a small change to gencgc to ensure that they _stay_ pinned in
subsequent GCs

On ports that use cheneygc we can't do this, so
WITH-PINNED-OBJECTS is just an alias for WITHOUT-GCING. As
these ports don't have threads anyway, that's not a major
inconvenience.

Small updates to doc/internals-notes/threading-specials,
slightly larger updates to comments regarding ALLOCATION
and PSEUDO-ATOMIC macros

Documentation update to the FFI chapter

2003-09-02 00:08:14 View
Download
[5a2b65] (99.0 kB) by Alexey Dejneka Alexey Dejneka

0.8.3.17:
* Take signal numbers from C land;
* use numeric constants instead of keywords to identify
signals (as per DB and WHN mails to sbcl-devel 2003-08-31);
... remove SB-UNIX:UNIX-SIGNAL-NUMBER and UNIX-SIGNAL-NAME.

2003-09-01 07:55:42 View
Download
[3bc5fb] (99.0 kB) by Christophe Rhodes Christophe Rhodes

0.8.3.13:
Implement better constant multiply routines
... have a cutoff on Sparc, as measured by Raymond Toy
... use LEA more on x86, as per cited paper
... don't do anything at all (yet) on other architectures. This
needs to be fixed before 0.8.4, at least for PPC and
Alpha

2003-08-29 17:59:08 View
Download
[b42068] (99.0 kB) by Alexey Dejneka Alexey Dejneka

0.8.3.2:
* SB-SIMPLE-STREAMS:
... implement WRITE-SEQUENCE for single channel streams;
... fix bug in tests, causing random test failures;
* add declarations to SCALE-EXPONENT;
* remove obsolete type declarations in MIX;
* change type inference for iteration-like variables: if
interval type is successfuly derived, ignore other inferred
information.

2003-08-26 08:58:30 View
Download
[77af6d] (98.9 kB) by Alexey Dejneka Alexey Dejneka

0.8.2.39:
* New macro SB!INT:BINDING*, uniting LET*, M-V-BIND and AWHEN;
* add simple inference of iteration variable type;
* SAME-LEAF-REF-P: look through CAST chains;
* wrap all uses of handle_rt_signal into #!+sb-thread;
* (SB-ACLREPL): CD-CMD takes one argument, not two.

2003-08-18 07:53:35 View
Download
[6b7b02] (98.9 kB) by Daniel Barlow Daniel Barlow

0.8.2.33
Implement INTERRUPT-THREAD, which forces another thread to
execute a function supplied by the caller.

In the process, design a mostly entirely new scheme for
calling Lisp code as a result of a handled signal: instead of
calling into Lisp directly, frob the signal context and the
stack to arrange that the Lisp is called after the signal
handler itself has returned. This is expected to be
applicable to signal handlers generally (and will have portability
benefits), but needs them to be changed around to call it.
Presently it's used only for interrupt-thread (SIGRTMIN)
and control stack exhaustion (one branch of SIGSEGV)

In principle, all you need do to use this in other places is
call return_to_lisp_function in the signal handler, with the
context and the function object that you wish to be called.
For the x86 you also need to make sure the signal is being
handled on the alternate signal stack, otherwise you'll
overwrite your own stack frame.

2003-08-16 20:38:40 View
Download
[5f1f55] (98.9 kB) by Alexey Dejneka Alexey Dejneka

0.8.2.25:
Initial implementation of modular functions:
* new macro: SB!C:DEFINE-MODULAR-FUNCTION;
* optimization of LOGAND: try to cut arguments to the needed
number of bits;
* implemented + with 32 bit width for x86.

2003-08-12 17:42:57 View
Download
[9cd69e] (98.8 kB) by Christophe Rhodes Christophe Rhodes

0.8.2.19:
Slightly-updated version of first cut at FORMAT compile-time
argument checking (CSR sbcl-devel 2003-08-06)
... only argument count for now.

2003-08-07 09:32:07 View
Download
[fc9991] (98.8 kB) by Christophe Rhodes Christophe Rhodes

0.8.2.15:
Add all remaining required (*ptui*) specialized arrays:
... (UNSIGNED-BYTE {7,15,29,31});
While we're at it, make the cross-compiling dumper more likely
to complain if we give it weird array types; we assume
(unsigned-byte {8,16,32}) are generally supported by
implementations.
Also make (ARRAY NIL) dumpable in the target compiler.
Tested building from cmucl, openmcl, old and new sbcl on x86 and
ppc. Will need confirmation from other architectures.

2003-08-05 14:11:38 View
Download
[1c91b0] (98.2 kB) by Alexey Dejneka Alexey Dejneka

0.8.2.14:
* DERIVE-TYPE optimizer for AREF does not try to put a type
assertion on its result;
* fix type declaration for INTEGER-DECODE-FLOAT;
* cross-compiler vertions of MAKE-{SINGLE,DOUBLE}-FLOAT now
work with denormalized numbers;
... since this change causes bootstrapping problems under
previous versions of SBCL, replace a reference to
LEAST-POSITIVE-DOUBLE-FLOAT with a code, constructing this
number.

2003-08-03 11:32:29 View
Download
[d814ff] (98.1 kB) by Christophe Rhodes Christophe Rhodes

0.8.2.10:
Implement SB-EXT:CODE-DELETION-NOTE, at least partly for
pfdietz' benefit
... I'm too nice, really I am;
... we're going to need COERCE-TO-CONDITION in the
cross-compiler;
... extract (somewhat bogusly) format control and arguments from
the condition in the SIMPLE-CONDITION case, so that warm
init doesn't print every compiler note in long form.

2003-07-30 16:07:44 View
Download
[1f50b5] (98.1 kB) by Alexey Dejneka Alexey Dejneka

0.8.1.53:
* Export SB-KERNEL::READER-EOF-EROR (bug reported by Nikodemus
Siivola).

2003-07-22 05:45:25 View
Download
[b7a8f5] (98.1 kB) by Daniel Barlow Daniel Barlow

0.8.1.50
Alpha fixes before 0.8.2
... correct type declaration for FOREIGN-SYMBOL-ADDRESS-AS-INTEGER
(add N-MACHINE-WORD-BITS to all backends for this purpose)

... correct argument order in the depths of DATA-VECTOR-SET-C/
(DEF-SMALL-DATA-VECTOR-FROBS), so Alpha now passes bit
array tests

run-tests.sh now prints the filename of the failing test just
before stopping, which should save on the effort required to
misinterpret the backtrace

delete final full stop from " cd tests && sh ./run-tests.sh."
in make.sh so I can triple-click the line to do exactly that

commit patch for BASE-CHAR-COMPARE/C that Christophe sent me
(alpha/char.lisp). I hope this is what he wanted ...

2003-07-21 00:57:05 View
Download
[11745f] (97.6 kB) by Alexey Dejneka Alexey Dejneka

0.8.1.27:
* Derive types of variables, bound with MV-BIND, even if we
don't know the number of values, returned by the argument.

2003-07-07 16:35:48 View
Download
[24bee0] (97.5 kB) by William Harold Newman William Harold Newman

0.8.1.12:
minor ANSI-compliance fix: CONTROL-ERROR from failed
MUFFLE-WARNING (caught by clocc-ansi-test)
centralized FIND-RESTART-OR-CONTROL-ERROR logic more than
before

2003-06-30 19:28:17 View
Download
[893dd7] (97.5 kB) by Alexey Dejneka Alexey Dejneka

0.8.1.10:
* Make condition-related functions be known (reported by Paul
Dietz);
* fix type declaration of CERROR.

2003-06-30 04:24:13 View
Download
[d0552b] (97.4 kB) by William Harold Newman William Harold Newman

0.8.1.7:
improved GET-MACHINE-VERSION implementation in some #+LINUX
cases (thanks to Lars Brinkhoff)
OAOOish tidying of CL:MACHINE-VERSION

2003-06-26 18:58:44 View
Download
[d501be] (97.9 kB) by Christophe Rhodes Christophe Rhodes

0.8.0.78.vector-nil-string.12:
Use *SAETP* to generate the data for internal error definition
(net win so far: 13)

2003-06-26 09:07:11 View
Download
[a41b3a] (97.9 kB) by Christophe Rhodes Christophe Rhodes

0.8.0.78.vector-nil-string.10:
Use *SAETP* in HAIRY-DATA-VECTOR-REF/HAIRY-DATA-VECTOR-SET
... new IMPORTANCE field in SAETPs, detailing how important we
should think arrays of that type are.
(net win so far: 7)

2003-06-25 14:23:54 View
Download
[cd1f26] (97.9 kB) by Christophe Rhodes Christophe Rhodes

0.8.0.78.vector-nil-string.8:
Some more OAOOification from *SAETP*
... add a COMPLEX-TYPECODE field to *SAETP* to allow us to carry
the information that SIMPLE-BIT-VECTOR and
COMPLEX-BIT-VECTOR are both bit vectors.
... use *SAETP* in %VECTOR-WIDETAG-AND-N-BITS,
ARRAY-ELEMENT-TYPE and SHRINK-VECTOR (net win so far: 6)
... we might need a FIXNUM type earlier than CLASS. I've got
one in, but then I found a refactor that might mean we
don't need it. The problem is in SPECIALIZE-ARRAY-TYPE,
where obviously we need to have complete knowledge about
all the possible upgraded-array-element-types so that
we can ask whether a given type is SUBTYPEP. FIXNUM
is defined as a type fairly late, but maybe defining it
before (simple-array (signed-byte 30) (*)) is enough,
when combined with...
Refactor PRIMITIVE-TYPEs
... we only ever use the specifier, not the ctype, of
PRIMITIVE-TYPE-TYPE, so...
... delete the TYPE field and add a SPECIFIER field.
... add AVERrance in SPECIALIZE-ARRAY-TYPE.

2003-06-25 08:28:23 View
Download
[9767de] (97.8 kB) by Christophe Rhodes Christophe Rhodes

0.8.0.78.vector-nil-string.7:
The beginnings of the payoff: being sufficiently irritated by
the baroque intertwinings of the different places where array
types have to be specified, here is a beginning of a
rationalization.
... make *SPECIALIZED-ARRAY-ELEMENT-TYPE-PROPERTIES* a master
value, and derive three other compiler-internal lists
from it. (net win so far: 3)
... but because it's made earlier so that we can use it as a
master value, SPECIFIER-TYPE gives unknown types;
a new file (and corresponding cold-init function)
fixes up unknown types (and for primitive-types too)
... there are still plenty of places left where array logic
isn't derived from *SAETP*; they will be worked on.

2003-06-24 10:56:11 View
Download
Older >