sbcl.git
13 years ago1.0.45.10: tools-for-build/Makefile path fixes
Cyrus Harmon [Fri, 21 Jan 2011 05:53:41 +0000 (05:53 +0000)]
1.0.45.10: tools-for-build/Makefile path fixes

 * make include rules non-breaking and use path relative to the path
   setup via -I (src/runtime). This should fix things such that both
   clean.sh and make.sh should now work.

13 years ago1.0.45.9: fix building on recent linux
Cyrus Harmon [Thu, 20 Jan 2011 18:21:37 +0000 (18:21 +0000)]
1.0.45.9: fix building on recent linux

 * Recent linux changes caused waitpid foreign symbol to go away so add it to
   undefineds and ldso-stubs
 * Recent linux linker default flags changes (--as-needed?) caused dlopen and
   friends to not be found at link time. Fix the tools-for-build/Makefile
   to pick up the build options from Config and fix grovel-features.sh to
   put the libs in LDLIBS instead of LDFLAGS

13 years ago1.0.45.8: fix os_vm_page_size on freebsd, openbsd and osf1
Cyrus Harmon [Thu, 20 Jan 2011 18:12:20 +0000 (18:12 +0000)]
1.0.45.8: fix os_vm_page_size on freebsd, openbsd and osf1

 * use BACKEND_PAGE_BYTES instead of getpagesize() to match change to
   backend-parms in 1.0.45.7

13 years ago1.0.45.7: set *backend-page-bytes* to 32KB
cracauer [Wed, 19 Jan 2011 22:33:27 +0000 (22:33 +0000)]
1.0.45.7: set *backend-page-bytes* to 32KB

* Setting *backend-page-bytes* to 32KB.  I did test runs with
different *backend-page-bytes* values and 32KB clearly came out on top
performance-wise.  It also delays (not avoids) the problem of running
out of maximum mappings allowed by current kernel settings.

13 years ago1.0.45.5: life: fix slow compile.
cracauer [Wed, 19 Jan 2011 22:14:52 +0000 (22:14 +0000)]
1.0.45.5: life: fix slow compile.

* Committing a patch I once got from Nikodemus.  Without it my toy
takes more than a week to compile.  I've been using this since
November in production, seems to work well.  Should probably have made
it into 1.0.44.28.

;;; FASTP is a KLUDGE: SBCL used to update the current-conflict only
;;; for the read-only case, but switched at one point to always
;;; updating it. This generally speeds up the compiler nicely, but
;;; sometimes it causes an infinite loop in the updating machinery,
;;; We cheat by switching of the fast path if it seems we're looping
;;; longer then expected.

13 years ago1.0.45.5: life: Propagate implicit value cells through tail-calls.
Alastair Bridgewater [Wed, 19 Jan 2011 21:59:23 +0000 (21:59 +0000)]
1.0.45.5: life: Propagate implicit value cells through tail-calls.

  * When setting up "environment tn conflicts", recurse through
callee environments when processing a block that ends in a tail
local combination and a TN that represents an "implicit" value
cell.

  * This closes the hole where a tail-local-call would replace
the stack frame which allocated a closed-over lambda-var, but
the inbound stack frame didn't know about the storage for the
variable, leading to badness.  Hopefully the last bug with the
dynamic-extent closure representation changes.

  * This patch fixes what 1.0.44.34 was supposed to KLUDGE
around, and finishes fixing lp#681092 (the first half of the
fix being 1.0.44.33).

13 years ago1.0.45.4: Revert 1.0.44.34
Juho Snellman [Sun, 19 Dec 2010 01:29:05 +0000 (01:29 +0000)]
1.0.45.4: Revert 1.0.44.34

     * Caused CLX compilation to fail, added reduced test case by
       Larry Valkama.

13 years ago1.0.45.3: Whitespace cleanup
Juho Snellman [Mon, 6 Dec 2010 02:33:28 +0000 (02:33 +0000)]
1.0.45.3: Whitespace cleanup

13 years ago1.0.45.2: A slightly better error message for malformed reader conditional
Juho Snellman [Mon, 6 Dec 2010 02:28:02 +0000 (02:28 +0000)]
1.0.45.2: A slightly better error message for malformed reader conditional

     * Modified from lp#680173 by Roman Marynchak

13 years ago1.0.45: Disables the TRACE :ENCAPSULATE NIL test on Solaris
Juho Snellman [Mon, 6 Dec 2010 01:59:10 +0000 (01:59 +0000)]
1.0.45: Disables the TRACE :ENCAPSULATE NIL test on Solaris

     * Patch by Jim Wise (lp#666885)

13 years ago1.0.45: will be tagged as sbcl_1_0_45
Juho Snellman [Mon, 6 Dec 2010 01:25:53 +0000 (01:25 +0000)]
1.0.45: will be tagged as sbcl_1_0_45

13 years ago1.0.44.36: test case for bug #681092
Christophe Rhodes [Sat, 27 Nov 2010 21:08:53 +0000 (21:08 +0000)]
1.0.44.36: test case for bug #681092

From the bug report.  Also remove needless quotes in some test names.

13 years ago1.0.44.35: Use DX-FLET instead of FLET in WITHOUT-{INTERRUPTS,GCING}.
Alastair Bridgewater [Sat, 27 Nov 2010 03:02:03 +0000 (03:02 +0000)]
1.0.44.35: Use DX-FLET instead of FLET in WITHOUT-{INTERRUPTS,GCING}.

  * With the local functions declared to be DYNAMIC-EXTENT, the
new d-x closure analysis can elide the value cells involved
entirely.

  * This fixes lp#674458 (introduced in 1.0.44.16).

13 years ago1.0.44.34: gtn: KLUDGE the lambda-var assignment to not break tail-calls.
Alastair Bridgewater [Sat, 27 Nov 2010 03:01:50 +0000 (03:01 +0000)]
1.0.44.34: gtn: KLUDGE the lambda-var assignment to not break tail-calls.

  * As an utter KLUDGE, when assigning TNs for closed-over lambda
variables with implicit value-cells, make the TNs component-live
instead of physenv-live.  This prevents any possible problems with
the new physenv introduced by a tail-call overwriting the storage
for the variable.

13 years ago1.0.44.33: ir2tran: Correctly set up d-x closure values for tail-local-calls.
Alastair Bridgewater [Sat, 27 Nov 2010 03:01:34 +0000 (03:01 +0000)]
1.0.44.33: ir2tran: Correctly set up d-x closure values for tail-local-calls.

  * Tail-local-call re-uses the current frame.  It therefore needs to
use the old-fp value from the current frame in EMIT-PSETQ-MOVES.

  * "implicit" value cells need to use the /current/ frame pointer in
EMIT-PSETQ-MOVES to correctly initialize the closure.

  * Therefore: Add a new &optional argument to EMIT-PSETQ-MOVES for
the frame-pointer to be used in closure initialization.

  * This fixes the obvious part of lp#681092, but unless there is a
guarantee that the stack slots used for the "implicit" value cells
remain unused in the tail-called function then all this does is drive
the bug to become more subtle.

13 years ago1.0.44.32: better error reporting for malformed RESTART-CASE clauses
Nikodemus Siivola [Fri, 19 Nov 2010 10:57:30 +0000 (10:57 +0000)]
1.0.44.32: better error reporting for malformed RESTART-CASE clauses

  Detect missing lambda-lists.

  ...and missing -o to canonicalize-whitespace.

13 years ago1.0.44.31: fix canonicalize-whitespace
Nikodemus Siivola [Fri, 19 Nov 2010 10:54:44 +0000 (10:54 +0000)]
1.0.44.31: fix canonicalize-whitespace

 ...missing -o from last commit.

13 years ago1.0.44.30: don't canonicalize whitespace in ASDF
Nikodemus Siivola [Fri, 19 Nov 2010 10:13:40 +0000 (10:13 +0000)]
1.0.44.30: don't canonicalize whitespace in ASDF

  ASDF isn't that tightly coupled to SBCL anymore -- and munging
  the whitespace there just makes comparing SBCL and upstream ASDFs
  more difficult.

13 years ago1.0.44.29: full warnings for duplicate CASE keys during SBCL build
Nikodemus Siivola [Thu, 18 Nov 2010 13:52:06 +0000 (13:52 +0000)]
1.0.44.29: full warnings for duplicate CASE keys during SBCL build

  ...and fix the issue revealed.

  Thanks to Cyrus Harmon for the heads-up.

13 years ago1.0.44.28: allow approximating unions of numeric types
Nikodemus Siivola [Thu, 18 Nov 2010 12:02:45 +0000 (12:02 +0000)]
1.0.44.28: allow approximating unions of numeric types

 (dummy commit: change described here happened in the last commit really,
  but the commit message was subtly wrong and missed the version number)

 * Binding *APPROXIMATE-NUMERIC-UNIONS* does that. It must be bound
   only by callers of TYPE-UNION that know what they want -- in general

     (OR (INTEGER 1 2) (INTEGER 4 4)) => (INTEGER 1 4)

   is wrong, as (NOT (INTEGER 1 4)) doesn't include 3. But in special cases
   like deriving the return type of a function it can be done.

 * Rename MAKE-CANONICAL-UNION-TYPE MAKE-DERIVED-UNION-TYPE, and bind *A-N-U*
   there if we start accumulating an overly large union of numeric types.
   Definition of "overly large" can be adjusted via
   *DERIVED-NUMERIC-UNION-COMPLEXITY-LIMIT*.

 * Fixes lp#309448 and the recent compiler performance regression due
   to new CONCATENATE deftransform as reported on sbcl-devel.

13 years agoallow approximating unions of numeric types
Nikodemus Siivola [Thu, 18 Nov 2010 11:28:46 +0000 (11:28 +0000)]
allow approximating unions of numeric types

 * Binding *APPROXIMATE-NUMERIC-UNIONS* does that. It must be bound
   only by callers of TYPE-UNION that know what they want -- in general

     (OR (INTEGER 1 2) (INTEGER 3 4)) => (INTEGER 1 4)

   is wrong, as (NOT (INTEGER 1 4)) doesn't include 3. But in special cases
   like deriving the return type of a function it can be done.

 * Rename MAKE-CANONICAL-UNION-TYPE MAKE-DERIVED-UNION-TYPE, and bind *A-N-U*
   there if we start accumulating an overly large union of numeric types.
   Definition of "overly large" can be adjusted via
   *DERIVED-NUMERIC-UNION-COMPLEXITY-LIMIT*.

 * Fixes lp#309448 and the recent compiler performance regression due
   to new CONCATENATE deftransform as reported on sbcl-devel.

13 years ago1.0.44.27: update ASDF to 2.010
Nikodemus Siivola [Thu, 18 Nov 2010 10:06:30 +0000 (10:06 +0000)]
1.0.44.27: update ASDF to 2.010

13 years ago1.0.44.26: more nuanced deprecation framework
Nikodemus Siivola [Tue, 16 Nov 2010 18:18:03 +0000 (18:18 +0000)]
1.0.44.26: more nuanced deprecation framework

 DEFINE-DEPRECATED-FUNCTION is the new one-stop shop for the "common"
 case of deprecating a function in favor of another one.

 ...in cases where it is not sufficient, call DEPRECATION-WARNING or
 DEPRECATION-ERROR directly from the compiler or other place.

 Three stages: :EARLY signals a compile-time style-warning, :LATE
 signals a compile-time full warning, :FINAL a compile-time full
 warning and a run-time error.

 (This is based on the assumption that this is both a sufficient and
 desirably nuanced taxonomy -- if more or less is wanted, changing
 this later is easy enough.)

 SB-EXT:DEPRECATION-CONDITION is the base class of all deprecation
 warnings and errors, but it isn't yet documented: once we have a
 concensus of sorts on a deprecation protocol/schedule, I will write
 the appropriate bits in the manual.

 Everything that previously had a deprecation warning is now in :LATE
 stage, except for INSTANCE-LAMBDA which is now in :FINAL stage.

13 years ago1.0.44.25: don't put function leaves into the source-path when a name is available
Nikodemus Siivola [Tue, 16 Nov 2010 17:57:45 +0000 (17:57 +0000)]
1.0.44.25: don't put function leaves into the source-path when a name is available

 #<SB-C::DEFINED-FUN ...> in compiler notes is a bit hard to read, not
 to mention obscure.

13 years ago1.0.44.24: tweak CAREFUL-EXPAND-MACRO
Nikodemus Siivola [Tue, 16 Nov 2010 15:17:10 +0000 (15:17 +0000)]
1.0.44.24: tweak CAREFUL-EXPAND-MACRO

  Don't resignal warnings and style-warnings -- aside from the CMUCL
  cross-compiler KLUDGEry. They tend to be intentionally signalled by macro
  and compiler-macro authors, and the additional wrapper-text provided by the
  resignaling mostly just obfuscates the actual message.

  That leaves errors (and the aforementioned KLUDGE.)

  For these, less parentheses, more whitespace -- specifically, leave space
  around the actual warning/error message, instead of crowding in with the
  parenthetical remarks.

13 years ago1.0.44.23: replace %METHOD-NAME and %METHOD-LAMBDA-LIST decls with special variables
Nikodemus Siivola [Mon, 15 Nov 2010 17:43:37 +0000 (17:43 +0000)]
1.0.44.23: replace %METHOD-NAME and %METHOD-LAMBDA-LIST decls with special variables

  This not only simplifies PCL code, but fixes a long-standing MOP-bug
  and actually gives us SB-PCL:SLOW-METHOD frames in the backtraces.

  Previously a fairly trivial MAKE-METHOD-LAMBDA method was enough
  to cause

    (defmethod foo (x) (return-from foo t))

  to break, as MAKE-METHOD-LAMBDA-INTERNAL no longer found the %METHOD-NAME
  declaration in the expected place, and hence was unable to add the block
  name.

13 years ago1.0.44.22: NEWS entry left out from 1.0.44.21.
Nikodemus Siivola [Wed, 10 Nov 2010 17:52:05 +0000 (17:52 +0000)]
1.0.44.22: NEWS entry left out from 1.0.44.21.

 EOM.

13 years ago1.0.44.21: expand ~ in pathnames
Nikodemus Siivola [Wed, 10 Nov 2010 17:49:30 +0000 (17:49 +0000)]
1.0.44.21: expand ~ in pathnames

  ~/... => (:ABSOLUTE :HOME ...)

  ~user/... => (:ABSOLUTE (:HOME "user") ...)

  Translation back to NAMESTRING reinstates the tilde, so we retain
  read/write consistency.

  NATIVE-NAMESTRING is responsible for getting the actual full path
  to specified home directory.

  This late resolution is necessary to have (open "~/foo") and
  (open #p"~/foo") open the same file in compiled code -- regardless
  of who compiled the file.

  Tilde is treated specially only at the start of the first directory
  component: it doesn't need to be escaped anywhere else. After trying
  out the various options (escape everywhere, escape in directory
  components, escape at the start of directory components, escape at
  the start of all components) this seemed both least intrusive and
  least ambiguous when documented -- not to mention most backwards
  compatible.

  Currently escaping the tilde does not work on Windows, but this is due to
  current general inability to escape the first directory component on
  Windows, since \\ is used also as a directory separator for non-native
  pathnames as well. See lp#673625. Test-case added for this.

  (:HOME "user") also doesn't work on Windows, which is documented
  in the manual.

13 years ago1.0.44.20: clarify meaning of make.sh --dynamic-space-size option
Nikodemus Siivola [Wed, 10 Nov 2010 17:39:25 +0000 (17:39 +0000)]
1.0.44.20: clarify meaning of make.sh --dynamic-space-size option

  EOM.

13 years ago1.0.44.19: NEWS: Updates for changes starting at 1.0.44.6.
Alastair Bridgewater [Tue, 9 Nov 2010 19:46:49 +0000 (19:46 +0000)]
1.0.44.19: NEWS: Updates for changes starting at 1.0.44.6.

  * EOM.

13 years ago1.0.44.18: physenvanal: When checking closure-DXness, handle XEPs reasonably.
Alastair Bridgewater [Tue, 9 Nov 2010 19:46:33 +0000 (19:46 +0000)]
1.0.44.18: physenvanal: When checking closure-DXness, handle XEPs reasonably.

  * In ANALYZE-INDIRECT-LAMBDA-VARS, treat functionals as being DX if
either they are marked as being DX or they have a FUNCTIONAL-ENTRY-FUN
that is marked as being DX.

  * This extends the existing logic to allow functions with XEPs (those
functions callable via the full-call convention) to use the
ANCESTOR-FRAME optimizations.

13 years ago1.0.44.17: ir1: Declare UNWIND-PROTECT cleanup functions to be dynamic-extent.
Alastair Bridgewater [Tue, 9 Nov 2010 19:45:50 +0000 (19:45 +0000)]
1.0.44.17: ir1: Declare UNWIND-PROTECT cleanup functions to be dynamic-extent.

  * Since we now have the analysis to do the right thing
for these functions, why not take advantage of it?

13 years ago1.0.44.16: ir2tran: Don't try to stack-allocate VALUE-CELLs.
Alastair Bridgewater [Tue, 9 Nov 2010 19:45:36 +0000 (19:45 +0000)]
1.0.44.16: ir2tran: Don't try to stack-allocate VALUE-CELLs.

  * Explicit VALUE-CELLs are only used if a closure that refers
to a mutable LAMBDA-VAR has indefinite extent, implying that the
reference itself has indefinite extent.  In such cases, dynamic
extent allocation of the VALUE-CELL is contraindicated.

  * Remove most of the logic from EMIT-MAKE-VALUE-CELL, leaving
only the statistics-tracking (EVENT) and the VOP emission,
forcing the new VALUE-CELL to be heap-allocated.

13 years ago1.0.44.15: ir2: Skip value-cell allocation where possible.
Alastair Bridgewater [Tue, 9 Nov 2010 19:45:23 +0000 (19:45 +0000)]
1.0.44.15: ir2: Skip value-cell allocation where possible.

  * Expose the new ANCESTOR-FRAME VOPs in package-data.lisp-expr.

  * When creating TNs for closed-over LAMBDA-VARs with "implicit"
VALUE-CELLs, force the TNs to be allocated on the control-stack,
and to be live over the entire extent of the PHYSENV.

  * When translating a REF or SET node for such LAMBDA-VARs from
a NODE in a CLAMBDA with a different PHYSENV, use the new VOPs to
access the LAMBDA-VAR.

  * When setting up a closure for such LAMBDA-VARs from a NODE in
a CLAMBDA with the same PHYSENV as the variable, use the new
CLOSURE-INIT-FROM-FP VOP to stash the frame pointer instead of a
VALUE-CELL or the current value of the variable.

  * When setting up the closure environment for a local-call that
closes over such a LAMBDA-VAR, and the call is being made from a
NODE in a CLAMBDA with the same PHYSENV as the variable, store the
current frame-pointer instead of a VALUE-CELL or the current value
of the variable.

13 years ago1.0.44.14: x86-64: Implement ANCESTOR-FRAME VOPs.
Alastair Bridgewater [Tue, 9 Nov 2010 19:45:09 +0000 (19:45 +0000)]
1.0.44.14: x86-64: Implement ANCESTOR-FRAME VOPs.

  * This is the x86-64 version of the "implicit" VALUE-CELL access
for DYNAMIC-EXTENT closures.

13 years ago1.0.44.13: x86: Implement ANCESTOR-FRAME VOPs.
Alastair Bridgewater [Tue, 9 Nov 2010 19:44:53 +0000 (19:44 +0000)]
1.0.44.13: x86: Implement ANCESTOR-FRAME VOPs.

  * This is the x86 version of the "implicit" VALUE-CELL access
for DYNAMIC-EXTENT closures.

13 years ago1.0.44.12: sparc: Implement ANCESTOR-FRAME VOPs.
Alastair Bridgewater [Tue, 9 Nov 2010 19:44:41 +0000 (19:44 +0000)]
1.0.44.12: sparc: Implement ANCESTOR-FRAME VOPs.

  * This is the SPARC version of the "implicit" VALUE-CELL access
for DYNAMIC-EXTENT closures.

  * This commit is untested, but should work, as it is based on
the PPC changes, which were tested.

13 years ago1.0.44.11: ppc: Implement ANCESTOR-FRAME VOPs.
Alastair Bridgewater [Tue, 9 Nov 2010 19:44:22 +0000 (19:44 +0000)]
1.0.44.11: ppc: Implement ANCESTOR-FRAME VOPs.

  * This is the PPC version of the "implicit" VALUE-CELL access
for DYNAMIC-EXTENT closures.

13 years ago1.0.44.10: mips: Implement ANCESTOR-FRAME VOPs.
Alastair Bridgewater [Tue, 9 Nov 2010 19:44:09 +0000 (19:44 +0000)]
1.0.44.10: mips: Implement ANCESTOR-FRAME VOPs.

  * This is the MIPS version of the "implicit" VALUE-CELL access
for DYNAMIC-EXTENT closures.

  * This commit is untested, but should work, as it is based on
the PPC changes, which were tested.

13 years ago1.0.44.9: hppa: Implement ANCESTOR-FRAME VOPs.
Alastair Bridgewater [Tue, 9 Nov 2010 19:43:56 +0000 (19:43 +0000)]
1.0.44.9: hppa: Implement ANCESTOR-FRAME VOPs.

  * This is the HPPA version of the "implicit" VALUE-CELL access
for DYNAMIC-EXTENT closures.

  * This commit is untested, but should work, as it is based on
the PPC changes, which were tested.

13 years ago1.0.44.8: alpha: Implement ANCESTOR-FRAME VOPs.
Alastair Bridgewater [Tue, 9 Nov 2010 19:43:44 +0000 (19:43 +0000)]
1.0.44.8: alpha: Implement ANCESTOR-FRAME VOPs.

  * This is the Alpha version of the "implicit" VALUE-CELL access
for DYNAMIC-EXTENT closures.

  * This commit is untested, but should work, as it is based on
the PPC changes, which were tested.

13 years ago1.0.44.7: ir1: Set LAMBDA-VAR-EXPLICIT-VALUE-CELL where possible.
Alastair Bridgewater [Tue, 9 Nov 2010 19:43:30 +0000 (19:43 +0000)]
1.0.44.7: ir1: Set LAMBDA-VAR-EXPLICIT-VALUE-CELL where possible.

  * Add a new stage to PHYSENVANAL, after tail-annotation to
fix up indirect (wanting value-cell) LAMBDA-VARs.

  * For each non-dynamic-extent CLAMBDA in the component,
mark all of the LAMBDA-VARs as needing an explicit value cell.

  * This analysis is correct as far as it goes, but it turns
out that marking CLAMBDAs as being dynamic-extent isn't done
in several cases that one would naively expect it to, thus
defeating most of the point of this analysis.

13 years ago1.0.44.6: ir1: Add a new attribute for LAMBDA-VARs that need explicit value-cells.
Alastair Bridgewater [Tue, 9 Nov 2010 19:43:17 +0000 (19:43 +0000)]
1.0.44.6: ir1: Add a new attribute for LAMBDA-VARs that need explicit value-cells.

  * Add a new EXPLICIT-VALUE-CELL attribute to the LAMBDA-VAR
attributes.

  * Add a new LAMBDA-VAR-EXPLICIT-VALUE-CELL access macro while
we're at it.

13 years ago1.0.44.5: teach UNTRACE-1 how to actually untrace unbound functions
Nikodemus Siivola [Mon, 8 Nov 2010 13:03:56 +0000 (13:03 +0000)]
1.0.44.5: teach UNTRACE-1 how to actually untrace unbound functions

  Fixes the remainder of lp#667657.

13 years ago1.0.44.4: make MAKE-FUNCTIONAL-FROM-TOPLEVEL-LAMBDA build proper XEPs
Nikodemus Siivola [Mon, 8 Nov 2010 12:42:01 +0000 (12:42 +0000)]
1.0.44.4: make MAKE-FUNCTIONAL-FROM-TOPLEVEL-LAMBDA build proper XEPs

 Bring MAKE-FUNCTIONAL-FROM-TOPLEVEL-LAMBDA into closer alignment with
 MAKE-XEP. Specifically, cross-link the underlying function and the
 TL-XEP, and mark the TL-XEP for reanalysis.

 Fixes lp#310173 and lp#384892:

 * Show &REST arguments properly in backtraces.

 * Better type-derivation of function result types when the
   lambda-list is complex.

13 years ago1.0.44.3: better docstring for CONDITION-WAIT
Nikodemus Siivola [Mon, 8 Nov 2010 10:00:53 +0000 (10:00 +0000)]
1.0.44.3: better docstring for CONDITION-WAIT

  Mention the fact that it might get spurious wakeups.

13 years ago1.0.44.2: don't add pointless TYPEP T constraints
Nikodemus Siivola [Sun, 7 Nov 2010 01:18:29 +0000 (01:18 +0000)]
1.0.44.2: don't add pointless TYPEP T constraints

  Pointless constraints are not only pointless, they also slow things
  down for no good reason.

13 years ago1.0.44.1: more conservative CONCATENATE open-coding
Nikodemus Siivola [Sun, 7 Nov 2010 01:14:39 +0000 (01:14 +0000)]
1.0.44.1: more conservative CONCATENATE open-coding

  Don't fully open code for long strings, no matter what policy:
  constraint-propagation will go seriously nonlinear.

  Also optimize the open-coded form a bit. Use

    (SETF (AREF .STRING. (TRULY-THE INDEX (+ .POS. <constant>))) <char>)
    ...repeat...
    (INCF .POS. <constant>)

  instead of

    (SETF (AREF .STRING .POS.) <char>)
    (INCF .POS.)
    ...repeat...

  . Smaller code, easier on the constraint propagation, and a tiny
  bit faster too.

13 years ago1.0.44: will be tagged as sbcl_1_0_44
Juho Snellman [Sat, 6 Nov 2010 03:29:03 +0000 (03:29 +0000)]
1.0.44: will be tagged as sbcl_1_0_44

13 years ago1.0.43.82: Make compiling a MAKE-ARRAY call with a bad keyword list signal warning
Juho Snellman [Sat, 30 Oct 2010 13:30:12 +0000 (13:30 +0000)]
1.0.43.82: Make compiling a MAKE-ARRAY call with a bad keyword list signal warning

     * Instead of a crashing inside the guts of the compiler...
     * lp#664373, patch by Stas Boukarev

13 years ago1.0.43.81: Make :overeager-character-buffering test reap child processes
Juho Snellman [Sat, 30 Oct 2010 11:47:11 +0000 (11:47 +0000)]
1.0.43.81: Make :overeager-character-buffering test reap child processes

     * Patch lp#665637 from Josh Elsasser

13 years ago1.0.43.80: Allow UNTRACE of functions that are no longer defined
Juho Snellman [Sat, 30 Oct 2010 11:39:14 +0000 (11:39 +0000)]
1.0.43.80: Allow UNTRACE of functions that are no longer defined

     * Patch lp#667657 from Attila Lendvai

13 years ago1.0.43.79: run-sbcl.sh: print run location to stderr instead of stdout
Nikodemus Siivola [Wed, 20 Oct 2010 14:32:14 +0000 (14:32 +0000)]
1.0.43.79: run-sbcl.sh: print run location to stderr instead of stdout

  Allows using run-sbcl.sh for jobs requiring a clean stdout.

13 years ago1.0.43.78: fix whitespace damage in pathnames.impure.lisp
Nikodemus Siivola [Wed, 20 Oct 2010 07:18:47 +0000 (07:18 +0000)]
1.0.43.78: fix whitespace damage in pathnames.impure.lisp

 Sorry about that.

13 years ago1.0.43.77: missing FINALIZE :DONT-SAVE T arguments in contribs
Nikodemus Siivola [Tue, 19 Oct 2010 17:15:48 +0000 (17:15 +0000)]
1.0.43.77: missing FINALIZE :DONT-SAVE T arguments in contribs

 Affects SB-BSD-SOCKETS and SB-SIMPLE-STREAMS.

 Fix a typo in NEWS.

13 years ago1.0.43.76: sb-posix: prohibit forking with multiple threads running everywhere
Nikodemus Siivola [Tue, 19 Oct 2010 17:00:51 +0000 (17:00 +0000)]
1.0.43.76: sb-posix: prohibit forking with multiple threads running everywhere

 Turns out we were only checking this on Darwin.

13 years ago1.0.43.75: pathnames: both Unix and Win32 use UNPARSE-PHYSICAL-DIRECTORY
Nikodemus Siivola [Tue, 19 Oct 2010 14:30:03 +0000 (14:30 +0000)]
1.0.43.75: pathnames: both Unix and Win32 use UNPARSE-PHYSICAL-DIRECTORY

  Refactor duplicated code and start using / instead of \ to separate
  directories in Lisp namestrings -- less escaping, easier to think
  about and read.

13 years ago1.0.43.74: WITH-TESTify pathnames.impure.lisp
Nikodemus Siivola [Tue, 19 Oct 2010 14:01:51 +0000 (14:01 +0000)]
1.0.43.74: WITH-TESTify pathnames.impure.lisp

  Better failure tracking for Windows, where the whole file used to
  report as a failure.

13 years ago1.0.43.73: oops, let's not derive &REST as list quite so hard...
Nikodemus Siivola [Tue, 19 Oct 2010 13:54:08 +0000 (13:54 +0000)]
1.0.43.73: oops, let's not derive &REST as list quite so hard...

  Use PROPAGATE-FROM-SETS so assignments to the variable
  are taken into account too.

13 years ago1.0.43.72: fix regression from 1.0.43.64
Nikodemus Siivola [Tue, 19 Oct 2010 10:24:01 +0000 (10:24 +0000)]
1.0.43.72: fix regression from 1.0.43.64

 As usual, the original patch was fine, and it was my edits that
 wrecked havoc...

 Move DTYPE initialization to its proper place: LOOP-OPTIONAL-TYPE has
 side-effects and so cannot be called in the place where I so blithely
 moved it.

 Closes bug 654220 again.

13 years ago1.0.43.71: fix regression from 1.0.43.26
Nikodemus Siivola [Tue, 19 Oct 2010 10:22:40 +0000 (10:22 +0000)]
1.0.43.71: fix regression from 1.0.43.26

  PROPAGATE-LOCAL-CALL-ARGS needs to special-case optional dispatch
  entry-points after all: our usual approach can load to too narrow
  types being derived for &OPTIONAL arguments.

  So just deal with &REST args in those cases.

  Closes bug 655203 again.

13 years ago1.0.43.70: win32: disable a bunch of timer tests
Nikodemus Siivola [Mon, 18 Oct 2010 16:19:15 +0000 (16:19 +0000)]
1.0.43.70: win32: disable a bunch of timer tests

 No SIGALRM on Windows, so running these is pretty pointless.

13 years ago1.0.43.69: win32: fix build, broken by 1.0.43.62
Nikodemus Siivola [Mon, 18 Oct 2010 16:18:32 +0000 (16:18 +0000)]
1.0.43.69: win32: fix build, broken by 1.0.43.62

 Need _rmdir in the runtime now.

13 years ago1.0.43.68: disassembler: remove unsafe SAP from MAKE-DSTATE
Nikodemus Siivola [Mon, 18 Oct 2010 14:54:33 +0000 (14:54 +0000)]
1.0.43.68: disassembler: remove unsafe SAP from MAKE-DSTATE

  (This was supposed to go in as 1.0.43.66, but somehow the actual
   content didn't make it...)

  The old code was about as sane and safe as initializing
  it with (INT-SAP (RANDOM-ADDRESS)).

  Allow DSTATE-SEGMENT-SAP to be NIL till it is properly
  initialized.

13 years ago1.0.43.67: COERCE: don't trust vector dimensions in unsafe code
Nikodemus Siivola [Mon, 18 Oct 2010 11:42:47 +0000 (11:42 +0000)]
1.0.43.67: COERCE: don't trust vector dimensions in unsafe code

 Fixes bug 655872.

 Our deftransform for COERCE takes advantage of ANSI's allowance
 to generate faster code, and open codes

  (COERCE X '(SIMPLE-VECTOR 5))

 in a way that doesn't verify the length of the simple-vector.

 1. Previously we did that for SAFETY < 3, but that doesn't really
    fit with our general policy, so enable it only for SAFETY = 0.

 2. Make the corresponding DERIVE-TYPE optimizer aware of this, so
    that it can drop the dimensions from the type when necessary.

13 years ago1.0.43.66: disassembler: remove unsafe SAP from MAKE-DSTATE
Nikodemus Siivola [Mon, 18 Oct 2010 11:38:56 +0000 (11:38 +0000)]
1.0.43.66: disassembler: remove unsafe SAP from MAKE-DSTATE

  The old code was about as sane and safe as initializing
  it with (INT-SAP (RANDOM-ADDRESS)).

  Allow DSTATE-SEGMENT-SAP to be NIL till it is properly
  initialized.

13 years ago1.0.43.65: pcl: :DEFINITION-SOURCE / :SOURCE-LOCATION confusion
Nikodemus Siivola [Sun, 17 Oct 2010 16:27:53 +0000 (16:27 +0000)]
1.0.43.65: pcl: :DEFINITION-SOURCE / :SOURCE-LOCATION confusion

 Caused source-locations for defgenerics not to be recorded properly.

 Fixes the only issue remaining open from bug 384801.

13 years ago1.0.43.64: loop: remove LOOP-UNIVERSE-ANSI and LOOP-UNIVERSE-IMPLICIT-FOR-REQUIRED
Nikodemus Siivola [Sun, 17 Oct 2010 16:00:59 +0000 (16:00 +0000)]
1.0.43.64: loop: remove LOOP-UNIVERSE-ANSI and LOOP-UNIVERSE-IMPLICIT-FOR-REQUIRED

  In SBCL both were always T -- delete and simplify code accordingly.

  Also delete stale comment referring to LOOP-PREFER-POP feature and
  STEP-FUNCTION, which are both long gone.

  Patch from Roman Marynchak with minor edits. No changes in
  functionality.

13 years ago1.0.43.63: storing function documentation under names as well
Nikodemus Siivola [Sat, 16 Oct 2010 10:06:18 +0000 (10:06 +0000)]
1.0.43.63: storing function documentation under names as well

 Since 1.0.29.24 we have stored function documentation exclusively in
 the function objects. Turns out this isn't a pure win:

   (setf (symbol-function 'foo) #'car)

   (setf (documentation 'foo 'function) "Return the name of frobniz.")

 should not change the docstring of #'CAR.

 So, when setting the docstring of a function name, store it in
 RANDOM-DOCUMENTATION instead of in the simple-fun.

 Conversely, when looking up the docstring for a function name, first
 look in RANDOM-DOCUMENTATION and only then in the bound function.

13 years ago1.0.43.62: implement SB-EXT:DELETE-DIRECTORY
Nikodemus Siivola [Fri, 15 Oct 2010 10:16:48 +0000 (10:16 +0000)]
1.0.43.62: implement SB-EXT:DELETE-DIRECTORY

 Extend MAP-DIRECTORY with :CLASSIFY-SYMLINKS so implementing "delete
 symlinks but don't follow them" behaviour for :RECURSIVE T is nice
 and easy.

13 years ago1.0.43.61: teach docstrings.lisp about parentheses
Nikodemus Siivola [Fri, 15 Oct 2010 09:52:58 +0000 (09:52 +0000)]
1.0.43.61: teach docstrings.lisp about parentheses

 Kludge to get things like (SIMPLE-ARRAY T (3)) right in docstrings.

 Also document SB-EXT:GET-TIME-OF-DAY and SB-EXT:SEED-RANDOM-STATE.

13 years ago1.0.43.60: plug (SETF MACRO-FUNCTION) shaped hole in package-locks
Nikodemus Siivola [Thu, 14 Oct 2010 19:43:23 +0000 (19:43 +0000)]
1.0.43.60: plug (SETF MACRO-FUNCTION) shaped hole in package-locks

 The code used to clobber the macro definition before the package-lock
 was asserted.

 Also adjust package-lock in DEFMACRO to be asserted before any
 globaldb infos are clobbered.

 Fixes bug 660752.

13 years ago1.0.43.59: fix DEFSETF to reject non-symbols as functions names
Nikodemus Siivola [Thu, 14 Oct 2010 19:36:59 +0000 (19:36 +0000)]
1.0.43.59: fix DEFSETF to reject non-symbols as functions names

  The short form of DEFSETF requires the second argument to be a
  symbol.  Added the appropriate check and a test case.

  See also the section 5.3 in CLHS.

  Patch by Roman Marynchak.

13 years ago1.0.43.58: ignore ASDF source registries when building contribs
Nikodemus Siivola [Thu, 14 Oct 2010 16:43:32 +0000 (16:43 +0000)]
1.0.43.58: ignore ASDF source registries when building contribs

 Fixes bug 659105.

13 years ago1.0.43.57: better handling of derived function types
Nikodemus Siivola [Thu, 14 Oct 2010 16:32:51 +0000 (16:32 +0000)]
1.0.43.57: better handling of derived function types

 Fixes bug 657499, and improves the earlier fix of 655126.

 * Sort out TYPE vs. DEFINED-TYPE in FIND-GLOBAL-FUN:

  ** TYPE is the declarared type, OR the derived type iff
     *derive-function-types* is true, no ftype has been declared,
     we're not explicitly late-binding, and the function is not
     NOTINLINE.

  ** DEFINED-TYPE is the derived type, or FUNCTION if the function has
     been declared NOTINLINE or we're late-binding.

     Previously TYPE (which is what the rest of the system trusts
     implcitly) was the derived type for functions in the same file
     not declared NOTINLINE.

 * ASSERT-CALL-TYPE can now be used in "untrusted" cases as well:
   argument types are asserted as before, but instead of using
   DERIVE-NODE-TYPE to annotate the function LVAR with its type, we
   instead assert the return-type when appropriate.

 * VALIDATE-CALL-TYPE is now called with DEFINED-TYPE from
   IR1-OPTIMIZE-COMBINATION, not
   IR1-CONVERT-COMBINATION-CHECKING-TYPE: the DEFINED-TYPE may be used
   there in an untrusted call to ASSERT-CALL-TYPE.

   Also keep track of the leaves whose DEFINED-TYPE we have asserted,
   so that we won't do duplicate work. New slot in COMBINATION:
   TYPE-VALIDATED-FOR-LEAF is utilized for this.

 * LEAF-WHERE-FROM can now also be :DEFINED-HERE, meaning the
   definition originates in the file being compiled -- this
   information is used by VALIDATE-CALL-TYPE, and filled in by
   FIND-FREE-FUN and FIND-GLOBAL-FUN.

 * Adjust the tests for 655126 to account for full warnings
   in case *derive-function-types* and self-calls.

13 years ago1.0.43.56: make %INSTANCE-TYPEP always-translatable
Nikodemus Siivola [Thu, 14 Oct 2010 11:40:39 +0000 (11:40 +0000)]
1.0.43.56: make %INSTANCE-TYPEP always-translatable

 One way to make an SBCL that builds but cannot build itself is
 to change the compiler so that it fails to eliminate a full call
 to %INSTANCE-TYPEP.

 This doesn't change that, but at least makes such hosts fail in a
 place where the issue is easier to figure out than hitting "undefined
 function: %INSTANCE-TYPEP" during cold-init.

13 years ago1.0.43.55: move FILE-COMPILE to compiler-test-utils.lisp
Nikodemus Siivola [Thu, 14 Oct 2010 11:16:45 +0000 (11:16 +0000)]
1.0.43.55: move FILE-COMPILE to compiler-test-utils.lisp

 Neater this way, and we should probably be using it in a few
 other places too.

13 years ago1.0.43.54: .gitignore tweaking
Nikodemus Siivola [Thu, 14 Oct 2010 10:59:34 +0000 (10:59 +0000)]
1.0.43.54: .gitignore tweaking

 Ignore *.diff, *.patch, customize-backend-subfeatures.*.

 Change customize-target-features.lisp to customize-target-features.*.

13 years ago1.0.43.53: less CPU-speed sensitive test for bug 654289
Nikodemus Siivola [Thu, 14 Oct 2010 10:57:29 +0000 (10:57 +0000)]
1.0.43.53: less CPU-speed sensitive test for bug 654289

 Instead of hardcoding a time limit, compile bits of code with
 different sized constants, and compare the times in relation
 to each other.

13 years ago1.0.43.52: correct char-size for :EXTERNAL-FORMAT :DEFAULT
Nikodemus Siivola [Wed, 13 Oct 2010 15:07:29 +0000 (15:07 +0000)]
1.0.43.52: correct char-size for :EXTERNAL-FORMAT :DEFAULT

 Fixes bug 657183.

 Make picking the char-size part of picking input/output routines,
 and make set-fd-stream-routines set FD-STREAM-CHAR-SIZE from it.

 For cleanliness sake, don't ever construct an FD-STREAM with an
 inconsistent external-format and char-size -- meaning the default
 external-format for the FD-STREAM structure cannot be :DEFAULT.
 ...this should not matter, but in case someone inspects an unfinished
 stream instance, at least things make a bit more sense.

13 years ago1.0.43.51: disable get-protocol-by-name/error test on threaded FreeBSD
Nikodemus Siivola [Wed, 13 Oct 2010 13:24:26 +0000 (13:24 +0000)]
1.0.43.51: disable get-protocol-by-name/error test on threaded FreeBSD

 Workaround for bug 659857.

 At least some versions of FreeBSD return -1 and errno=EINTR for
 unknown protocols.

13 years ago1.0.43.50: better function signature checking for self-calls
Nikodemus Siivola [Wed, 13 Oct 2010 13:13:35 +0000 (13:13 +0000)]
1.0.43.50: better function signature checking for self-calls

 Fixes bug 655126.

 Allow passing a lambda-list to GET-DEFINED-FUN, and when provided
 one, make up an FTYPE based on that lambda-list.

13 years ago1.0.43.49: (SETF FDEFINITION) and (SETF SYMBOL-FUNCTION) should clear derived ftype
Nikodemus Siivola [Tue, 12 Oct 2010 14:42:53 +0000 (14:42 +0000)]
1.0.43.49: (SETF FDEFINITION) and (SETF SYMBOL-FUNCTION) should clear derived ftype

 Fixes 659220.

 Just call CLEAR-INFO unless the type is declared.

13 years ago1.0.43.48: Unbreak fast-ash-c/fixnum=>fixnum on x86
Paul Khuong [Tue, 12 Oct 2010 05:36:38 +0000 (05:36 +0000)]
1.0.43.48: Unbreak fast-ash-c/fixnum=>fixnum on x86

 * ZEROIZE is an x86-64ism (introduced in 1.0.43.47).

13 years ago1.0.43.47: Unfix ASH of constant shift on x86oids
Paul Khuong [Tue, 12 Oct 2010 05:10:07 +0000 (05:10 +0000)]
1.0.43.47: Unfix ASH of constant shift on x86oids

 * The fixnum=>fixnum VOPs for ASH used to explicitly handle shifts greater
   than the word length by computing a zero instead.  These should be
   constant-folded away in IR1 now.

 * 1.0.43.45 incidentally fixed lp #309063 (which is what the fix above
   was used for). Add a test case, update NEWS, and note the optimizations
   committed in 1.0.43.{42,43,47}.

13 years ago1.0.43.46: Simplify some type tests to EQL comparisons
Paul Khuong [Tue, 12 Oct 2010 04:52:24 +0000 (04:52 +0000)]
1.0.43.46: Simplify some type tests to EQL comparisons

 * When the type to test is a singleton type, check for EQLity
   against the one value inhabiting that type.

13 years ago1.0.43.45: More type-directed constant folding
Paul Khuong [Tue, 12 Oct 2010 04:50:24 +0000 (04:50 +0000)]
1.0.43.45: More type-directed constant folding

 * 1.0.30.2 introduced logic to use MEMBER-TYPEs during constant
   propagation.  This commit uses SINGLETON-TYPE-P to extend that
   logic to more types (NUMERIC and CHARACTER-SET).

 * This exposes additional constant-folding opportunities in
   src/code/bit-bash.lisp; the necessary definitions are now available
   at compile-time.

13 years ago1.0.43.44: New type method: TYPE-SINGLETON-P
Paul Khuong [Tue, 12 Oct 2010 04:46:02 +0000 (04:46 +0000)]
1.0.43.44: New type method: TYPE-SINGLETON-P

 * The new type method is used to Determine whether a type is inhabited
   by exactly one object.  If so, it returns and the object.  Otherwise,
   it returns NIL, NIL.

 * It is only defined for MEMBER, CHARACTER-SET and NUMERIC -TYPEs so
   far.

 * The default is to always return NIL, NIL.

13 years ago1.0.43.43: Merge more equivalent branches together
Paul Khuong [Tue, 12 Oct 2010 04:43:48 +0000 (04:43 +0000)]
1.0.43.43: Merge more equivalent branches together

* Recognize cases of (if foo [leaf] [same leaf]), and compile the conditional
  branch away.  We used to only perform something similar to that when the
  branches jumped to exactly the same block.  We now detect simple cases of
  equivalent blocks.

13 years ago1.0.43.42: Constant fold IFs before performing IF/IF conversion
Paul Khuong [Tue, 12 Oct 2010 04:41:16 +0000 (04:41 +0000)]
1.0.43.42: Constant fold IFs before performing IF/IF conversion

IF/IF-conversion is somewhat similar to "the trick": when a conditional
branches on an lvar that may be written to by multiple nodes, duplicate
the conditional after each of the writers.

We used to perform that before constant-folding IFs.  We now do the
reverse: it's always better to completely flush the branch away than to
duplicate it.

13 years ago1.0.43.41: TYPE-ERROR printing tweak for *PRINT-ESCAPE* = T
Nikodemus Siivola [Mon, 11 Oct 2010 14:29:13 +0000 (14:29 +0000)]
1.0.43.41: TYPE-ERROR printing tweak for *PRINT-ESCAPE* = T

 Print as #<TYPE-ERROR exptected-type: SOME-TYPE datum: SOME-DATUM> when
 possible.

 Virtually every time I see a TYPE-ERROR printed with *PRINT-ESCAPE* =
 T I need to go look for the place where it is printed in order to see
 what the actual problem is -- and I don't think I'm the only one.

 This is hopefully one annoyance less.

13 years ago1.0.43.40: Allow use of unmangled win32 function names
Juho Snellman [Sun, 10 Oct 2010 00:34:11 +0000 (00:34 +0000)]
1.0.43.40: Allow use of unmangled win32 function names

     * Patch lp#657117 from Kalyanov Dmitry

13 years ago1.0.43.39: proclaimed function types and NOTINLINE
Nikodemus Siivola [Sat, 9 Oct 2010 23:09:26 +0000 (23:09 +0000)]
1.0.43.39: proclaimed function types and NOTINLINE

 Declaring a function NOTINLINE no longer causes the compiler
 to ignore its proclaimed FTYPE.

 Trusting the proclaimed type is harmless, as NOTINLINE calls
 are compiled just like regular (as opposed to inlined) calls.

13 years ago1.0.43.38: some PPRINT-LOGICAL-BLOCK issues
Nikodemus Siivola [Sat, 9 Oct 2010 22:33:41 +0000 (22:33 +0000)]
1.0.43.38: some PPRINT-LOGICAL-BLOCK issues

 :PER-LINE-PREFIX was multiply-evaluated, and both it, :PREFIX, and :SUFFIX
 caused code-deletion notes to be issued.

 Stick a ONCE-ONLY in there, and use

    (declare (string ...))

 instead of

    (unless (typep x 'string) (error ...))

 Python derives the fact that the argments must be strings by the time
 the TYPEP call occurs from the call to START-LOGICAL-BLOCK, hence the
 code-deletion note for the call to ERROR.

13 years ago1.0.43.37: update ASDF to 2.009
Nikodemus Siivola [Fri, 8 Oct 2010 19:45:15 +0000 (19:45 +0000)]
1.0.43.37: update ASDF to 2.009

13 years ago1.0.43.36: threads: Add ATOMIC-INCF improvement notification to NEWS.
Alastair Bridgewater [Thu, 7 Oct 2010 16:53:12 +0000 (16:53 +0000)]
1.0.43.36: threads: Add ATOMIC-INCF improvement notification to NEWS.

  * Updated NEWS, that is all.

13 years ago1.0.43.35: fix make-host-2.lisp from 1.0.43.34
Nikodemus Siivola [Thu, 7 Oct 2010 16:49:30 +0000 (16:49 +0000)]
1.0.43.35: fix make-host-2.lisp from 1.0.43.34

 THAT was not supposed to go in. Grr. Sorry.

13 years ago1.0.43.34: differentiate cross-compiler output from target and host
Nikodemus Siivola [Thu, 7 Oct 2010 16:40:47 +0000 (16:40 +0000)]
1.0.43.34: differentiate cross-compiler output from target and host

 No difference in the end-product, but seeing "x-compiling" in
 build-logs makes them easier to read for slow people like me.

 That is:

 * while building the xc-host messages are from the host compiler.
   If the host happens to be SBCL, that means:

      ; compiling (DEFUN FOO ...)

 * while building the target:

      ; x-compiling (DEFUN FOO ...)

 * while building CLOS and contribs on target:

      ; compiling (DEFUN FOO ...)

13 years ago1.0.43.33: ppc: Implement %ARRAY-ATOMIC-INCF/WORD
Alastair Bridgewater [Thu, 7 Oct 2010 16:37:10 +0000 (16:37 +0000)]
1.0.43.33: ppc: Implement %ARRAY-ATOMIC-INCF/WORD

  * Implement new VOP ARRAY-ATOMIC-INCF/WORD

  * Add ppc to the appropriate reader coditionals to
enable use of the new VOP.

13 years ago1.0.43.32: x86: Implement %ARRAY-ATOMIC-INCF/WORD.
Alastair Bridgewater [Thu, 7 Oct 2010 16:36:54 +0000 (16:36 +0000)]
1.0.43.32: x86: Implement %ARRAY-ATOMIC-INCF/WORD.

  * Implement new VOP ARRAY-ATOMIC-INCF/WORD

  * Add x86 to the appropriate reader conditionals to
enable use of the new VOP.