sbcl.git
16 years ago1.0.13.1: Various cleanups and touchups in tests/
Richard M Kreuter [Fri, 28 Dec 2007 19:46:57 +0000 (19:46 +0000)]
1.0.13.1: Various cleanups and touchups in tests/

* Tests written in shell modified to use shell functions, rather than
  variables, so that tests written in shell can run when the build
  directory's absolute pathname contains whitespace (as home
  directories might tend to on Windows).

* tests/subr.sh: new file, with some shell functions, variables, and
  settings to support the above.  Files in the test suite written in
  shell should source this file.

* Factored code for creating and cleaning up temporary directories for
  tests written in shell that touch the file system.  Test scripts
  written in shell should now call "use_test_subdirectory" to create
  and chdir to a test directory, and the shell should clean out the
  test directory at exit time.

* Most tests written in shell now quote filenames that derive from the
  truename of the current working directory or from an environment
  variable, as such names may contain whitespace.  (Variables set to
  non-offending constant strings in the script itself need not be
  quoted this way.)

* tests/filesys.test.sh was not prepared to deal with a TRUENAME that
  resolves all symbolic links in a pathname, as a soon-to-be-committed
  TRUENAME will; "/tmp" on MacOSX is a symbolic link to
  "/private/tmp".  POSIX pwd(1) takes a -P option to resolve symbolic
  links in the working directory's path, so we'll try that.

* Tests now supply --no-userinit, --no-sysinit arguments, so that we
  don't need to conditionalize these for win32.

* Some tests written in shell changed from using --eval <string> to
  heredocs, which allows the Lisp code the be formatted nicer and
  avoids some shell quotation headaches (not all, of course).

* Minor shell errors corrected in some tests.  Notable example:

    program; if [ $? != $value ]; then echo failed $?; fi

  Because "[" is a child process, after the test $? is set to the exit
  status of the "["; the exit status of "program" is lost.

16 years ago1.0.13: release, will be tagged as sbcl_1_0_13
William Harold Newman [Thu, 27 Dec 2007 13:12:29 +0000 (13:12 +0000)]
1.0.13: release, will be tagged as sbcl_1_0_13

16 years ago1.0.12.44: rename misnamed files in the NetBSD port, hopefully fixing it
Nikodemus Siivola [Mon, 24 Dec 2007 13:59:26 +0000 (13:59 +0000)]
1.0.12.44: rename misnamed files in the NetBSD port, hopefully fixing it

 "oops"

16 years ago1.0.12.43: Two tiny RUN-PROGRAM-related cleanups
Richard M Kreuter [Sat, 22 Dec 2007 22:07:11 +0000 (22:07 +0000)]
1.0.12.43: Two tiny RUN-PROGRAM-related cleanups

* Having removed FIND-EXECUTABLE-IN-SEARCH-PATH, remove the symbol
  from package-data-list.lisp-expr.

* A recently-added test for RUN-PROGRAM used a non-conforming
  "sleep 2s" command in a shell script.  POSIX sleep(1) is not required to
  accept the s.

16 years ago1.0.12.42: Fix minor regression in RUN-PROGRAM on win32
Richard M Kreuter [Fri, 21 Dec 2007 00:42:23 +0000 (00:42 +0000)]
1.0.12.42: Fix minor regression in RUN-PROGRAM on win32

* Recent RUN-PROGRAM changes allowed strange errors in SBCL when a
  child exited with a random negative exit status (e.g., when the
  child crashes).

16 years ago1.0.12.41: fix #-:sb-unicode build
Nikodemus Siivola [Thu, 20 Dec 2007 14:44:06 +0000 (14:44 +0000)]
1.0.12.41: fix #-:sb-unicode build

 * No need for cross-string replce transformations, as there is only
   one character type.

16 years ago1.0.12.40: NetBSD/Sparc port by Robert Swindells
Nikodemus Siivola [Thu, 20 Dec 2007 14:24:31 +0000 (14:24 +0000)]
1.0.12.40: NetBSD/Sparc port by Robert Swindells

 * No NEWS entry yet, until someone can confirm this does what it says
   on the tin. :)

 * A random smattering of CREDITS updates.

16 years ago1.0.12.39: Fix minor bug in new LOAD
Richard M Kreuter [Thu, 20 Dec 2007 01:15:40 +0000 (01:15 +0000)]
1.0.12.39: Fix minor bug in new LOAD

* A HANDLER-CASE was wrapped around too large a form, leading to a
  misleading resignaling in some failure cases.

16 years ago1.0.12.38: style-warning IMPLICIT-GENERIC-FUNCTION-WARNING
Nikodemus Siivola [Wed, 19 Dec 2007 16:10:11 +0000 (16:10 +0000)]
1.0.12.38: style-warning IMPLICIT-GENERIC-FUNCTION-WARNING

 * Specific condition to signal when a generic function is implicitly
   signalled instead of a SIMPLE-STYLE-WARNING.

16 years ago1.0.12.37: RUN-PROGRAM now uses execvp(3) to search for executables
Richard M Kreuter [Wed, 19 Dec 2007 02:28:12 +0000 (02:28 +0000)]
1.0.12.37: RUN-PROGRAM now uses execvp(3) to search for executables

* RUN-PROGRAM now uses execvp(3) in the child, rather than a Lisp
  function in SBCL, to search for an executable to run.  This makes
  RUN-PROGRAM slightly closer to most other languages' process
  creation facilities.

* The function FIND-EXECUTABLE-IN-SEARCH-PATH has been removed.  A
  note is added to the manual pointing users who need the old,
  idiosyncratic search behavior to look for it it in the CVS history.

16 years ago1.0.12.36: Removing UNIX-NAMESTRING, part 2
Richard M Kreuter [Mon, 17 Dec 2007 23:00:22 +0000 (23:00 +0000)]
1.0.12.36: Removing UNIX-NAMESTRING, part 2

* Rewrite LOAD in a manner that prepares it for a PROBE-FILE and
  FILE-WRITE-DATE that can sometimes signal FILE-ERRORs.

* Add tests for every supported way of calling LOAD.

16 years ago1.0.12.35: more safety -- less weakening of type checks
Nikodemus Siivola [Mon, 17 Dec 2007 13:34:26 +0000 (13:34 +0000)]
1.0.12.35: more safety -- less weakening of type checks

 * Weaken type check only if SAFETY < 2, and SAFETY < SPEED.  Thus
   SAFETY 2 becomes a "always full type checks".

 * Delete a stale comment above MAYBE-NEGATE-CHECK about weakening
   checks there -- this has not been the case since 0.7.9.41.

 * Fix type errors in target-sxhash.lisp that was masked by the
   weakening that used happen there.

 * Update commentary re. PROBABLE-TYPE-CHECK-P as per Alexey's email
   on sbcl-devel. Delete some other stale comments re. weakening.

 * Update the manual re. weakened type checks.

16 years ago1.0.12.34: fix bug, add error signalling in RUN-PROGRAM
Richard M Kreuter [Sun, 16 Dec 2007 00:23:59 +0000 (00:23 +0000)]
1.0.12.34: fix bug, add error signalling in RUN-PROGRAM

* Incorrect initialization of one bookkeeping variable in
  COPY-DESCRIPTOR-TO-STREAM left another bookkeeping variable with
  garbage after a properly-encoded short read, causing subsequent
  decoding attempts to fail.  Only easily visible on when the child
  line buffers to one or another descriptor.

* Add test for same.

* Additionally, signal an error if we have any not-yet-decoded octets
  when the child closes its output or error.

* Add test for same.

16 years ago1.0.12.33: Have foreign.test.sh create .so files under the test directory
Richard M Kreuter [Fri, 14 Dec 2007 06:12:57 +0000 (06:12 +0000)]
1.0.12.33: Have foreign.test.sh create .so files under the test directory

* If /tmp or TMPDIR is mounted noexec, loading foreign objects doesn't
  fails, but it's not SBCL's fault.

* Also remember to bump version.lisp-expr (the last two commits forgot
  this).

16 years ago1.0.12.32: Fix RUN-PROGRAM bug introduced in 1.0.12.31.
Richard M Kreuter [Thu, 13 Dec 2007 20:55:49 +0000 (20:55 +0000)]
1.0.12.32: Fix RUN-PROGRAM bug introduced in 1.0.12.31.

* An unnecessary comparison of external formats made some pathways
  through RUN-PROGRAM hang.  Oddly, this hanging didn't show up when
  running the tests on linux/x86-64, linux/ppc, or netbsd/x86.

16 years ago1.0.12.31: fix READ-SEQUENCE regression from 1.0.12.22
Nikodemus Siivola [Thu, 13 Dec 2007 20:15:32 +0000 (20:15 +0000)]
1.0.12.31: fix READ-SEQUENCE regression from 1.0.12.22

  * Keep track of FRC buffer index properly.

  * Test-case.

16 years ago1.0.12.31: using default external format for RUN-PROGRAM streams
Richard M Kreuter [Thu, 13 Dec 2007 05:24:28 +0000 (05:24 +0000)]
1.0.12.31: using default external format for RUN-PROGRAM streams

* Have RUN-PROGRAM construct streams with the default external format
  when :INPUT, :OUTPUT, or :ERROR is :STREAM, or to transcode data
  to/from the child process when any of those arguments is a Lisp
  stream.

* Miscellaneous attendant helper functions for same (mkstemp, chmod).

16 years ago1.0.12.30: trivial compiler touchups
Nikodemus Siivola [Wed, 12 Dec 2007 12:19:42 +0000 (12:19 +0000)]
1.0.12.30: trivial compiler touchups

  * Use &BODY for DEFINE-VOP bodies instead of &REST.

  * Expand body of DO-USES only once, as per XXX note. Only 56 to
    go... Also make it return the RESULT form if there was just a
    single use -- not that we seem to be using the RESULT form at all
    currently.

16 years ago1.0.12.29: optimize POSITION & FIND families for strings
Nikodemus Siivola [Wed, 12 Dec 2007 11:58:03 +0000 (11:58 +0000)]
1.0.12.29: optimize POSITION & FIND families for strings

  * If the string is simple, and the element type is know the old code
    does well already. Add a dispatch for (SIMPLE-ARRAY CHARACTER (*))
    to the out-of-line versions on unicode builds.

  * To keep code size down to something reasonable, remove the
    dispatch for SIMPLE-VECTOR: presumably POSITION & FIND are much
    more common on strings of uncertain type, then random vectors.

16 years ago1.0.12.28: small PCL cache cleanups
Nikodemus Siivola [Wed, 12 Dec 2007 11:28:23 +0000 (11:28 +0000)]
1.0.12.28: small PCL cache cleanups

  * Delete a few unused variables.

  * Add a few declarations to speed up PROBE-CACHE (used by the PV
    optimizations.)

16 years ago1.0.12.27: FILL on lists was broken by 1.0.12.16, oops!
Nikodemus Siivola [Wed, 12 Dec 2007 11:22:37 +0000 (11:22 +0000)]
1.0.12.27: FILL on lists was broken by 1.0.12.16, oops!

  * Fix it, write some tests as penance.

16 years ago1.0.12.26: Fix minor regression in win32 native-namestringification
kreuter [Mon, 10 Dec 2007 22:16:47 +0000 (22:16 +0000)]
1.0.12.26: Fix minor regression in win32 native-namestringification

src/code/win32-pathname.lisp: some Windows system calls don't accept
                              directory names ending with backslashes.

16 years ago1.0.12.25: fix some bogus indentation
Juho Snellman [Mon, 10 Dec 2007 05:46:00 +0000 (05:46 +0000)]
1.0.12.25: fix some bogus indentation

16 years ago1.0.12.24: Add dx declarations for character comparison function &rest lists
Juho Snellman [Mon, 10 Dec 2007 05:42:46 +0000 (05:42 +0000)]
1.0.12.24: Add dx declarations for character comparison function &rest lists

       * CHAR=, CHAR<, etc.

16 years ago1.0.12.23: Optimize STRING-*-TRIM
Juho Snellman [Mon, 10 Dec 2007 05:35:10 +0000 (05:35 +0000)]
1.0.12.23: Optimize STRING-*-TRIM

       * Add deftransforms for STRING(-LEFT|-RIGHT|)-TRIM of simple strings.
         As a sleazy benchmark trick, also optimize for constant character bags.
       * Rewrite the function versions of the string trimmers for more
         code reuse. New versions also no longer cons up a new string when
         no trimming needs to be done. (Allowed in the spec, as pointed out
         by Attila Lendvai)
       * Add tests.

16 years ago1.0.12.22: Optimize READ-SEQUENCE into strings and READ-LINE
Juho Snellman [Mon, 10 Dec 2007 04:40:34 +0000 (04:40 +0000)]
1.0.12.22: Optimize READ-SEQUENCE into strings and READ-LINE

       * Have READ-LINE and READ-SEQUENCE directly use the cin buffer whenever
         one exists, instead of going through FAST-READ-CHAR. READ-LINE already
         did this in some circumstances, but often .
       * READ-LINE on normal data with short lines is around 50% faster, with
         abnormally long lines about 75% faster. (On my laptop -- IIRC the
         difference was smaller on a workstation).
       * READ-SEQUENCE into a simple string is up to 80% faster.
       * Modify FAST-READ-CHAR-REFILL a bit to make it nicer to use in the
         non-read-char cases.
       * Fix a utf-8 resyncing bug in READ-LINE (masked by the test case
         in external-format.impure not having a newline at the end, which
         caused READ-LINE to always take the slow path).

16 years ago1.0.12.21: using default external format for RUN-PROGRAM args and env
Nikodemus Siivola [Sun, 9 Dec 2007 18:11:51 +0000 (18:11 +0000)]
1.0.12.21: using default external format for RUN-PROGRAM args and env

* Patch by Harald Hanche-Olsen: use STRING-TO-OCTETS to build the
  vector of string pointers. Also allows non-simple strings.

16 years ago1.0.12.20: compiling files with unicode names
Nikodemus Siivola [Sun, 9 Dec 2007 15:19:21 +0000 (15:19 +0000)]
1.0.12.20: compiling files with unicode names

* Patch by Attile Lendvai: UTF-8 encode the original filename for
  writing it ot the fasl.

16 years ago1.0.12.19: runtime cleanups by Daniel Lowe
Nikodemus Siivola [Sun, 9 Dec 2007 15:04:48 +0000 (15:04 +0000)]
1.0.12.19: runtime cleanups by Daniel Lowe

* Rename SymbolFunction to StaticSymbolFunction, and implement it as
  an inline function instead of a macro.

* Implement make_lispobj, make_fixnum, and fixnum_value as inline
  functions.

16 years ago1.0.12.18: faster member-type operations
Nikodemus Siivola [Sun, 9 Dec 2007 14:37:22 +0000 (14:37 +0000)]
1.0.12.18: faster member-type operations

* XSET is a generic set implementation, that uses lists of small sets,
  and switches to hashes for larger ones. Current switchoff point is
  12 -- but some operations would benefit from a larger one. TODO:
  There are other places in SBCL that will probably want to use XSET
  as well.

* Instead of storing members directly in the set object, store them in
  an XSET -- except for floating point zeros which go into a list of
  their own, simplifying the canonicalization a bit. (By adding
  complexity elsewhere, of course. Maybe this is not TRT after all...)

* ...now member type arithmetic is mostly O(1) or O(N), instead of
  O(BAD), but some operations cons more then before: old implemenation
  manageg eg. union without consing when either set was the subset of
  the other one -- not so anymore.

16 years ago1.0.12.17: Gray streams as part of composite streams
Nikodemus Siivola [Wed, 5 Dec 2007 17:23:25 +0000 (17:23 +0000)]
1.0.12.17: Gray streams as part of composite streams

* READ-N-BYTES needs to deal with Gray streams.

16 years ago1.0.12.16: sequence optimizations: FILL
Nikodemus Siivola [Wed, 5 Dec 2007 15:16:02 +0000 (15:16 +0000)]
1.0.12.16: sequence optimizations: FILL

* Use DEFUN instead of DEFINE-SEQUENCE-TRAVERSER for FILL: the
  dispatched to functions do all the necessary checking, and do it
  better since they know more about the types.

* New function: STRING-FILL*.

* Rewrite VECTOR-FILL* and LIST-FILL* for efficiency.

* Macros VECTOR-FILL and LIST-FILL were expanded only in VECTOR-FILL*
  and LIST-FILL* -- get rid of them.

* Compile-time dispatch to STRING-FILL*, VECTOR-FILL*, LIST-FILL*, and
  SB-SEQUENCE:FILL.

* Comment above %CHECK-VECTOR-SEQUENC-BOUNDS no longer applies, delete
  it.

16 years ago1.0.12.15: PPC/Darwin fixes
Brian Mastenbrook [Sun, 2 Dec 2007 17:00:14 +0000 (17:00 +0000)]
1.0.12.15: PPC/Darwin fixes
   * Build fix on Leopard (10.5) thanks to Sidney Markowitz
   * Finally remove obsolete G5 sigcontext fix as 10.2 is totally old

16 years ago1.0.12.14: sequence optimizations: COPY-SEQ
Nikodemus Siivola [Sat, 1 Dec 2007 18:57:57 +0000 (18:57 +0000)]
1.0.12.14: sequence optimizations: COPY-SEQ

* Compile-time dispatch to STRING-SUBSEQ*, VECTOR-SUBSEQ*,
  LIST-COPY-SEQ*, and SB-SEQUENCE:COPY-SEQ.

* Share code between COPY-LIST and LIST-COPY-SEQ* via light macrology.

* COPY-SEQ on lists should check for improper lists.

16 years ago1.0.12.13: sequence optimizations: SUBSEQ, part 3
Nikodemus Siivola [Sat, 1 Dec 2007 18:35:33 +0000 (18:35 +0000)]
1.0.12.13: sequence optimizations: SUBSEQ, part 3

* Split the optimized data-vector accessor fetching logic into a
  global macro, so that sequence functions can fetch the appropriate
  setter/getter just once, instead of doing the dispatch per access.

* Use this to optimize VECTOR-SUBSEQ*.

16 years ago1.0.12.12: sequence optimizations: SUBSEQ, part 2
Nikodemus Siivola [Sat, 1 Dec 2007 18:06:11 +0000 (18:06 +0000)]
1.0.12.12: sequence optimizations: SUBSEQ, part 2

* New function: STRING-SUBSEQ*, and a compile-time dispatch to it with
  the element-type or simplicity is uncertain.

* Slightly better VECTOR-SUBSEQ*.

16 years ago1.0.12.11: WITH-ARRAY-DATA bugfixes
Nikodemus Siivola [Sat, 1 Dec 2007 18:04:13 +0000 (18:04 +0000)]
1.0.12.11: WITH-ARRAY-DATA bugfixes

* Inverted bounds-checking test in WITH-ARRAY-DATA -- check bounds
  when INSERT-ARRAY-BOUNDS-CHECKS is _not_ zero, not the other way
  around. "Oops."

* Small optimization buglets TRANSFORM-%WITH-ARRAY-DATA/MUBLE: elided
  bounds checking, bad return value for END, and careless caller might
  pass in a complex arrey.

16 years ago1.0.12.10: sequence optimizations: SUBSEQ, part 1
Nikodemus Siivola [Sat, 1 Dec 2007 17:05:38 +0000 (17:05 +0000)]
1.0.12.10: sequence optimizations: SUBSEQ, part 1

* Compile-time dispatch to VECTOR-SUBSEQ* for vectors
  whose element-type or simplicity is uncertain.

* Compile-time dispatch to SB-SEQUENCE:SUBSEQ for generic
  sequences.

16 years ago1.0.12.9: don't limit TOUCH-OBJECT to descriptor-regs
Nikodemus Siivola [Fri, 30 Nov 2007 17:46:09 +0000 (17:46 +0000)]
1.0.12.9: don't limit TOUCH-OBJECT to descriptor-regs

* Allows objects known to be FIXNUM to be pinned. Question:
  why is a FIXNUM not acceptable to a DESCRIPTOR-REG?

16 years ago1.0.12.8: refactor bounding index error signalling functions
Nikodemus Siivola [Fri, 30 Nov 2007 14:18:31 +0000 (14:18 +0000)]
1.0.12.8: refactor bounding index error signalling functions

* We need two variants: one that uses ARRAY-TOTAL-SIZE for
  the limit, other othat uses LENGTH. Call them ARRAY- and
  SEQUENCE-BOUNDING-INDICES-BAD-ERROR.

16 years ago1.0.12.7: oops, missed one SEARCH transform
Nikodemus Siivola [Fri, 30 Nov 2007 13:12:21 +0000 (13:12 +0000)]
1.0.12.7: oops, missed one SEARCH transform

* Check bounds properly before entry to the code, and
  elide checks in the inner loop.

16 years ago1.0.12.6: Removing UNIX-NAMESTRING, part 1
kreuter [Fri, 30 Nov 2007 02:16:25 +0000 (02:16 +0000)]
1.0.12.6: Removing UNIX-NAMESTRING, part 1

* Get NATIVE-NAMESTRING to do all and only the desired things for all
  accepted non-wild NAME and TYPE components.  Add a few tests for
  these cases.

* Add new user-visible features to PARSE-NATIVE-NAMESTRING and
  NATIVE-NAMESTRING for parsing/unparsing things "as files" or "as
  directories"; these are convenient for use with SB-POSIX, and will
  be handy in a few places in SBCL's internals, too.

16 years ago1.0.12.5: WITH-ARRAY-DATA touchups
Nikodemus Siivola [Thu, 29 Nov 2007 17:30:11 +0000 (17:30 +0000)]
1.0.12.5: WITH-ARRAY-DATA touchups

* Eliminate some double-bounds checks: since WITH-ARRAY-DATA does
  bounds checking, there is no need to vet START and END with
  %CHECK-VECTOR-SEQUENCE-BOUNDS.

* Eliminate some fill-pointer confusion: Since WITH-ARRAY-DATA is
  used both in contexts where fill-pointer needs to be used, and
  in contexts where we only care about the total array size, add
  a :CHECK-FILL-POINTER argument to WITH-ARRAY-DATA.

* Do bounds checking in WITH-ARRAY-DATA based on
  INSERT-ARRAY-BOUNDS-CHECKS policy -- not SPEED vs. SAFETY
  comparison. Adjust tests to check for this.

16 years ago1.0.12.4: delete bad ROOM test
Nikodemus Siivola [Thu, 29 Nov 2007 15:24:51 +0000 (15:24 +0000)]
1.0.12.4: delete bad ROOM test

* Invalid on most platforms.

16 years ago1.0.12.3: less weakening of type-checks
Nikodemus Siivola [Mon, 26 Nov 2007 18:06:06 +0000 (18:06 +0000)]
1.0.12.3: less weakening of type-checks

* WEAKEN-TYPE used to return T for any union-type.  Instead, handle
  union-types implemented by backend properly.

* Also, if no supertype is found, don't replaces with T, as
  eg. oddball union types weakened to T can easily lead to heap
  corruption if the unchecked object ends up being trusted by the
  compiler. (See: WEAKEN-UNION-2 in type.impure.lisp.)

16 years ago1.0.12.2: oops, test in wrong place
Nikodemus Siivola [Mon, 26 Nov 2007 17:39:43 +0000 (17:39 +0000)]
1.0.12.2: oops, test in wrong place

16 years ago1.0.12.1: more bogus FIXNUM declarations in ROOM
Nikodemus Siivola [Mon, 26 Nov 2007 17:37:03 +0000 (17:37 +0000)]
1.0.12.1: more bogus FIXNUM declarations in ROOM

* Test-case by Sidney Markowitz.

16 years ago1.0.12: release, will be tagged as sbcl_1_0_12
William Harold Newman [Mon, 26 Nov 2007 00:33:55 +0000 (00:33 +0000)]
1.0.12: release, will be tagged as sbcl_1_0_12

16 years ago1.0.11.35: fixed bug 417
Nikodemus Siivola [Tue, 20 Nov 2007 14:50:40 +0000 (14:50 +0000)]
1.0.11.35: fixed bug 417

* Don't store non-unique objects like symbols, fixnums,
  or characters in *SOURCE-PATHS*.

* For future refactoring ease, always access *SOURCE-PATHS*
  via GET-SOURCE-PATH and NOTE-SOURCE-PATH.

16 years ago1.0.11.34: better SUBSEQ on lists
Nikodemus Siivola [Tue, 20 Nov 2007 14:19:54 +0000 (14:19 +0000)]
1.0.11.34: better SUBSEQ on lists

* Be prepared to handle bignum cases (once we support
  them.)

* Better (and faster) error-checking.

16 years ago1.0.11.33: Oops, restore REPLACE deftransforms that got dropped in refactoring
Juho Snellman [Mon, 19 Nov 2007 23:54:22 +0000 (23:54 +0000)]
1.0.11.33: Oops, restore REPLACE deftransforms that got dropped in refactoring

16 years ago1.0.11.32: fix bogus fixnum declarations in ROOM
Nikodemus Siivola [Mon, 19 Nov 2007 15:26:28 +0000 (15:26 +0000)]
1.0.11.32: fix bogus fixnum declarations in ROOM

...conservative approximation: some of the changed
declaractions may have been safe after all.

16 years ago1.0.11.31: Make SB-PROFILE cons less
Juho Snellman [Mon, 19 Nov 2007 01:04:38 +0000 (01:04 +0000)]
1.0.11.31: Make SB-PROFILE cons less

        * dx allocate the closed over variables for the profiling wrapper
        * Fixes a bug where a profiled function A calling profiled function
          B would cause 6 words of consing to be attributed to A in the
          profiler.

16 years ago1.0.11.30: restore buildability on Windows after 1.0.11.27.
kreuter [Sun, 18 Nov 2007 19:46:01 +0000 (19:46 +0000)]
1.0.11.30: restore buildability on Windows after 1.0.11.27.

src/runtime/wrap.c: move conditional definition of WIN32_LEAN_AND_MEAN
                    so that it precedes other #includes, to prevent
    conflicting win32 stuff from being pulled in by the
                    new wrap.h.

src/runtime/wrap.h: Add preprocessor conditionals to guard against repeated
                    inclusion.

tools-for-build/grovel-headers.c: grovel the wrapped stat types on win32.

16 years ago1.0.11.29: Faster CONCATENATE on strings
Juho Snellman [Sun, 18 Nov 2007 04:13:27 +0000 (04:13 +0000)]
1.0.11.29: Faster CONCATENATE on strings

        * Add a result-type dependent DEFTRANSFORM which open-codes directly
          to calls to REPLACE.
        * Constant-fold the array reads for constant string arguments
          in the transform (intended as a slezy benchmark trick, but actually
          it looks as if having some literal strings mixed in with
          variables is pretty common in real world CONCATENATE uses).
        * Add transforms for REPLACE on mixed SIMPLE-BASE-STRINGS and
          (SIMPLE-ARRAY CHARACTER (*)) to support.
        * Speeds up a simple benchmark of concatenating two three-character
          strings by a factor of 15, and by a factor of 30 when the strings
          are constant. For a more real-world example, doing DIRECTORY on
          a large set of files speeds up by 25%.

        Also:

        * Fix a broken test (extra close paren) that was uncovered by
          the write-no-partial-fasls change.

16 years ago1.0.11.28: Fix one Win32 regression introduced by 1.0.11.26-27.
kreuter [Sun, 18 Nov 2007 01:13:40 +0000 (01:13 +0000)]
1.0.11.28: Fix one Win32 regression introduced by 1.0.11.26-27.

* grovel-headers.c now pulls in src/code/runtime.h, and so needs a
  kludge to keep Win32's definition of boolean from conflicting with
  SBCL's.  This kludge already existed in win32-os.c, so I moved it
  into runtime.h.

16 years ago1.0.11.27: Oops-fix -- committed intermediate code to 1.0.11.26
kreuter [Sat, 17 Nov 2007 22:27:10 +0000 (22:27 +0000)]
1.0.11.27: Oops-fix -- committed intermediate code to 1.0.11.26

16 years ago1.0.11.26: correcting some types in SB-UNIX.
kreuter [Sat, 17 Nov 2007 20:23:29 +0000 (20:23 +0000)]
1.0.11.26: correcting some types in SB-UNIX.

16 years ago1.0.11.25: don't leave incomplete fasls around after compilation
Nikodemus Siivola [Sat, 17 Nov 2007 16:34:00 +0000 (16:34 +0000)]
1.0.11.25: don't leave incomplete fasls around after compilation

* CLHS says the first return value of COMPILE-FILE is
  NIL if "file could not be created" -- interpret this
  to mean "fasl could not be created" and don't count
  incomplete fasls as fasls.

16 years ago1.0.11.24: internal hash-table usage thread-safety, part 2
Nikodemus Siivola [Wed, 14 Nov 2007 18:30:14 +0000 (18:30 +0000)]
1.0.11.24: internal hash-table usage thread-safety, part 2

* Logical hosts.

* TRACE.

* Instrumenting profiler.

* Mapping over *PACKAGE-NAMES*.

16 years ago1.0.11.23: internal hash-table usage thread-safety, part 1
Nikodemus Siivola [Wed, 14 Nov 2007 15:57:27 +0000 (15:57 +0000)]
1.0.11.23: internal hash-table usage thread-safety, part 1

* Use :SYNCHRONIZED hash-tables for the most part, and a light dash of
  WITH-LOCKED-HASH-TABLE as approriapte: *FORWARD-REFERENCED-LAYOUTS*,
  CLASSOID-SUBCLASSES, *COMPILED-DEBUG-FUNS*, *FUN-END-COOKIES*,
  *COMPONENT-BREAKPOINT-OFFSETS*, *EFFECTIVE-METHOD-CACHE*.

* Replace *FOREIGN-LOCK* with *SHARED-OBJECT-LOCK* and hash-table
  based locking for *LINKAGE-INFO* for efficiency.

16 years ago1.0.11.22: hash-table synchronization support
Nikodemus Siivola [Mon, 12 Nov 2007 17:14:50 +0000 (17:14 +0000)]
1.0.11.22: hash-table synchronization support

* :SYNCHRONIZED argument to MAKE-HASH-TABLE.

* HASH-TABLE-SYNCHRONIZED-P predicate.

* WITH-LOCKED-HASH-TABLE for coarser locks.

* Additional MAPHASH & WITH-HASH-TABLE-ITERATOR documentation.

* :LOCKED argument added to DOHASH, and used where appropriate
  (some usages might be overly conservative, though, and could
  be removed.)

16 years ago1.0.11.21: Give NO-PRIMARY-METHOD a reference.
Christophe Rhodes [Sat, 10 Nov 2007 23:57:52 +0000 (23:57 +0000)]
1.0.11.21: Give NO-PRIMARY-METHOD a reference.
Motivated by _deepfire's question on #lisp

16 years ago1.0.11.20: fix with-pinned-objects stack corruption potential
Nikodemus Siivola [Fri, 9 Nov 2007 17:38:14 +0000 (17:38 +0000)]
1.0.11.20: fix with-pinned-objects stack corruption potential

* In the old WITH-PINNED-OBJECTS implementation we pushed pointers
  onto stack explicitly (without telling the compiler), executed
  the body, and _prior_to_returning_values_of_body_ popped the pointers.
  If the values from the body were in progress of being returned via
  unknown-values convention we would (try to) pop the pointers while
  the last callee stack frame (where the values to be returned are)
  is still on the stack. In many cases this was harmless, as the correct
  SP was restored soon enough, but there were bad interactions as well.

* Solution: instead of explicitly pushing pointers, use a LET to
  add binding to the current stack frame for the objects, and further
  use a magic TOUCH-OBJECT function implemented with an empty VOP
  to trick the compiler into keeping the variables live till the end
  of the body.

Probably not perfect, but seems to do the job. Of the added test-case,
the MULTIPLE variants used to fail prior to this.

16 years ago1.0.11.19: hard failure for corrupted fixups vectors
Nikodemus Siivola [Fri, 9 Nov 2007 14:57:01 +0000 (14:57 +0000)]
1.0.11.19: hard failure for corrupted fixups vectors

* Prior to this SBCL used to only print an error message to stderr of
  the process, but since bogus fixups should only occur if something
  is badly wrong we prefer to lose().

16 years ago1.0.11.18: Make fasls LISP-IMPLEMENTATION-VERSION specific
Juho Snellman [Fri, 9 Nov 2007 01:10:21 +0000 (01:10 +0000)]
1.0.11.18: Make fasls LISP-IMPLEMENTATION-VERSION specific

        * As discussed on sbcl-devel.
        * Reduce the support burden: We get a lot of bug reports that turn
          out to be caused by stale fasls, and even more people probably
          don't report these problems, but just end up thinking that SBCL
          crashes all the time.
        * +FASL-FILE-VERSION+ retained for backwards compability, but should
          only be incremented if the actual fasl format changes.

16 years ago1.0.11.17: fixed dumb buglet in DEFMACRO NAMED-LET
William Harold Newman [Thu, 8 Nov 2007 21:08:40 +0000 (21:08 +0000)]
1.0.11.17: fixed dumb buglet in DEFMACRO NAMED-LET
Someone (jsnell?) on #lisp pointed out that there was still a
#!+SB-DOC left behind after some clod deleted the corresponding
doc string.:-|

also a few comment tweaks

16 years ago1.0.11.16: Fix tyops in the manual
Rudi Schlatte [Wed, 7 Nov 2007 07:24:55 +0000 (07:24 +0000)]
1.0.11.16: Fix tyops in the manual
  * Patch submitted by Eugene Ossintsev

16 years ago1.0.11.15: Fix sb-posix building on Windows
Rudi Schlatte [Wed, 7 Nov 2007 06:34:26 +0000 (06:34 +0000)]
1.0.11.15: Fix sb-posix building on Windows
  * This should unbreak slime on Windows (First reported by Jerry van Dijk)
  * Fix suggested by nyef on #lisp

16 years ago1.0.11.14: thread-safe FORM-NUMBER-TRANSLATIONS
Nikodemus Siivola [Tue, 6 Nov 2007 15:01:06 +0000 (15:01 +0000)]
1.0.11.14: thread-safe FORM-NUMBER-TRANSLATIONS

* Instead of keeping global tables, allocate new ones for each
  call. Since common case seems to be a "decently small" form,
  use a list instead of hash-table.

  ...but we could really do with a better internal set representation
  for arbitrary objects -- both here and in MEMBER type machinery.

16 years ago1.0.11.13: dead code deletion
Nikodemus Siivola [Tue, 6 Nov 2007 14:25:37 +0000 (14:25 +0000)]
1.0.11.13: dead code deletion

* *IR1-LAMBDA-DEBUG-FUN* and *IR1-BLOCK-DEBUG-BLOCK* have been
  unused for a looong time...

16 years ago1.0.11.12: MAPHASH and WITH-HASH-TABLE documentation
Nikodemus Siivola [Tue, 6 Nov 2007 14:21:50 +0000 (14:21 +0000)]
1.0.11.12: MAPHASH and WITH-HASH-TABLE documentation

* paraphrase the hash-table traversal/side-effect rule

16 years ago1.0.11.11: expand zero-object WITH-PINNED-OBJECTS to a PROGN
Nikodemus Siivola [Tue, 6 Nov 2007 14:17:40 +0000 (14:17 +0000)]
1.0.11.11: expand zero-object WITH-PINNED-OBJECTS to a PROGN

* x86 and x86-64 only.

16 years ago1.0.11.10: remove useless WITHOUT-GCING
Nikodemus Siivola [Tue, 6 Nov 2007 13:43:25 +0000 (13:43 +0000)]
1.0.11.10: remove useless WITHOUT-GCING

* The surrounding WITH-RECURSIVE-SYSTEM-SPINLOCK
  has :WITHOUT-GCING T.

16 years ago1.0.11.9: whitespace
Nikodemus Siivola [Tue, 6 Nov 2007 13:33:13 +0000 (13:33 +0000)]
1.0.11.9: whitespace

* Fix indentation of target-hash-table.lisp.

16 years ago1.0.11.8: also fix install-info on Debian
Rudi Schlatte [Mon, 5 Nov 2007 04:30:37 +0000 (04:30 +0000)]
1.0.11.8: also fix install-info on Debian
  Also reported by Eugene Ossintsev

16 years ago1.0.11.7: Don't try to register info-* files using install-info
Rudi Schlatte [Mon, 5 Nov 2007 04:14:41 +0000 (04:14 +0000)]
1.0.11.7: Don't try to register info-* files using install-info
  Reported by Eugene Ossintsev

16 years ago1.0.11.6: canonicalize whitespaces only on updated files
NIIMI Satoshi [Sun, 4 Nov 2007 15:54:19 +0000 (15:54 +0000)]
1.0.11.6: canonicalize whitespaces only on updated files

16 years ago1.0.11.5: update tests for newer macos version
Cyrus Harmon [Sat, 3 Nov 2007 08:54:31 +0000 (08:54 +0000)]
1.0.11.5: update tests for newer macos version

 * use MAC_OS_X_VERSION_10_5 instead of __DARWIN_UNIX03

16 years ago1.0.11.4: Unset GREP_OPTIONS when filtering nm output in linux-nm
Rudi Schlatte [Sat, 3 Nov 2007 08:05:03 +0000 (08:05 +0000)]
1.0.11.4: Unset GREP_OPTIONS when filtering nm output in linux-nm
  * Nuke it since there is no grep option (that I could see) to
    reverse -i or ignore the GREP_OPTIONS variable
  * Patch by Daniel Lowe

16 years ago1.0.11.3: belatedly recognizing STREAM-ERROR and PARSE-ERROR printing is OK
William Harold Newman [Fri, 26 Oct 2007 12:48:14 +0000 (12:48 +0000)]
1.0.11.3: belatedly recognizing STREAM-ERROR and PARSE-ERROR printing is OK
* (In my 1.0.9.60 patch, I fixed a READER-ERROR printing bug and
  wrote that parallel PARSE-ERROR and STREAM-ERROR printing bugs
  remained and that I would fix them. Now finally returning to
  fix them, I find that they were fixed already, the tests work
  with with no additional fixes needed.)
* so I just un-#+NILed-out the tests
        * also made a few trivial rearrangements in
          src/code/condition.lisp, moving things around without changing
          meaning

16 years ago1.0.11.2: defer package creation of defpackage
Rudi Schlatte [Fri, 26 Oct 2007 06:23:07 +0000 (06:23 +0000)]
1.0.11.2: defer package creation of defpackage
  Patch by Zach Beane to sbcl-devel 2007-10-09

16 years ago1.0.11.1: Handle set-but-empty environment variables
Rudi Schlatte [Fri, 26 Oct 2007 04:33:34 +0000 (04:33 +0000)]
1.0.11.1: Handle set-but-empty environment variables

  ... SBCL_HOME= sbcl crashed on startup
  ... Patch by Michael Weber

16 years ago1.0.11: release, will be tagged as sbcl_1_0_11
William Harold Newman [Thu, 25 Oct 2007 21:28:03 +0000 (21:28 +0000)]
1.0.11: release, will be tagged as sbcl_1_0_11

16 years ago1.0.10.55: Remove non-portable arguments to find, xargs
Rudi Schlatte [Mon, 22 Oct 2007 04:16:12 +0000 (04:16 +0000)]
1.0.10.55: Remove non-portable arguments to find, xargs

16 years ago1.0.10.54: Fix build with old gcc
NIIMI Satoshi [Sun, 21 Oct 2007 23:25:35 +0000 (23:25 +0000)]
1.0.10.54: Fix build with old gcc

Surround code fragment with braces for variable declarations.

16 years ago1.0.10.53: fix undefined-alien errors on darwin
Cyrus Harmon [Sun, 21 Oct 2007 23:19:12 +0000 (23:19 +0000)]
1.0.10.53: fix undefined-alien errors on darwin

 * the new mach exception handling stuff was checking to see if there
   were two faults on the page by checking the region's protection
   status and bailing out assuming that there were two faults on the
   same page. The problem was that it was following this code path for
   undefined-alien errors (and presumably control-stack-exhausted)
   thereby just resignalling an EXC_BAD_ACCESS, ad infinitum. Moved
   the checks for the page address being undefined_alien_address, or
   the control stack guard pages up before checking the page
   protection.

16 years ago1.0.10.52: fix clean.sh for whitespace-containing source directories
Rudi Schlatte [Sun, 21 Oct 2007 05:15:04 +0000 (05:15 +0000)]
1.0.10.52: fix clean.sh for whitespace-containing source directories

16 years ago1.0.10.51: New function: THREAD-YIELD
NIIMI Satoshi [Sat, 20 Oct 2007 06:27:20 +0000 (06:27 +0000)]
1.0.10.51: New function: THREAD-YIELD

An interface to sched_yield().  And use it in busy loops in some tests.

16 years ago1.0.10.50: short-circuit LVAR type derivation when type becomes T
Nikodemus Siivola [Fri, 19 Oct 2007 13:57:11 +0000 (13:57 +0000)]
1.0.10.50: short-circuit LVAR type derivation when type becomes T

* Even if there are uses we have not considered yet,
  %LVAR-DERIVED-TYPE can stop if the type turns into the universal
  type.

16 years ago1.0.10.49: deadline refinements
Nikodemus Siivola [Fri, 19 Oct 2007 13:25:03 +0000 (13:25 +0000)]
1.0.10.49: deadline refinements

* Deadlines are per-thread. (Children do no inherit their parents
  deadlines.)

* SIGNAL-DEADLINE estabilishes a DEFER-DEADLINE restart.

* Handle SIGNAL-DEADLINE returning due to deferred deadlines where
  necessary.

* Documentation.

16 years ago1.0.10.48: new function TRY-RESTART
Nikodemus Siivola [Thu, 18 Oct 2007 13:23:12 +0000 (13:23 +0000)]
1.0.10.48: new function TRY-RESTART

* Factor out all "find-restart and maybe invoke-restart" logic to one
  place.

16 years ago1.0.10.47: proper fix for "high-debug-known-function-inlining"
Nikodemus Siivola [Thu, 18 Oct 2007 12:56:51 +0000 (12:56 +0000)]
1.0.10.47: proper fix for "high-debug-known-function-inlining"

* Add ALLOW-INSTRUMENTING slot to CLAMBDA, taking it's value
  from *ALLOW-INSTRUMENTING*.

* Require LAMBDA-ALLOW-INSTRUMENTING to be true for emission
  of BIND/UNBIND-SENTINEL.

* Remove the earlier KLUDGE workaround.

16 years ago1.0.10.46: Inline the local functions in MAYBE-REHASH
Juho Snellman [Sun, 14 Oct 2007 23:40:55 +0000 (23:40 +0000)]
1.0.10.46: Inline the local functions in MAYBE-REHASH

        * Fixes small hash-table speed regression introduced in
          1.0.10.14 (and hidden by the other improvements in that
          commit).
        * 15-30% speedup over .14 on common hash operations.

16 years ago1.0.10.45: save typecheck-function in slot-table even if location is not saved
Nikodemus Siivola [Thu, 11 Oct 2007 15:33:55 +0000 (15:33 +0000)]
1.0.10.45: save typecheck-function in slot-table even if location is not saved

 * Otherwise non-standard metaclasses for which optimized instance
   accessors can be used don't get the typecheck-fun from the wrapper
   in the function returned from MAKE-OPTIMIZED-STD-WRITER-FUNCTION.

 * Test-case.

 * Missing NEWS entry for .44.

16 years ago1.0.10.44: BUFFER-P, not BUFFERP
Nikodemus Siivola [Thu, 11 Oct 2007 13:13:07 +0000 (13:13 +0000)]
1.0.10.44: BUFFER-P, not BUFFERP

 * Reported by Yuri Vishnevsky on sbcl-devel.

 * Test-case coming Real Soon.

16 years ago1.0.10.43: Fix NaN comparison on x86-64
NIIMI Satoshi [Thu, 11 Oct 2007 09:20:36 +0000 (09:20 +0000)]
1.0.10.43: Fix NaN comparison on x86-64

Comisd and comiss sets all of ZF, PF, and CF of EFLAGS if its
operand contains NaN.  Because PF is never set by normal
comparison, we use it to check NaN.  This is same as "=" vops.

16 years ago1.0.10.42: change dynamic space area on FreeBSD
NIIMI Satoshi [Thu, 11 Oct 2007 03:19:27 +0000 (03:19 +0000)]
1.0.10.42: change dynamic space area on FreeBSD

If KVA_PAGES is extended from 256 to 384 (1GB to 1.5GB), stack starts
0x9FC00000.  So change dynamic space from 0x60000000-0xA0000000 to
0x58000000-0x98000000.

Nowadays, 4GB of address space is too small, isn't it?

16 years ago1.0.10.41: Remove unnecessary sched_yield()
NIIMI Satoshi [Wed, 10 Oct 2007 21:36:49 +0000 (21:36 +0000)]
1.0.10.41: Remove unnecessary sched_yield()

Don't call sched_yield() on thread creation and retirement, since
the cost of sched_yield() is very high on FreeBSD 7.

16 years ago1.0.10.40: Fix build for windows when source directory contains spaces
Rudi Schlatte [Mon, 8 Oct 2007 11:02:52 +0000 (11:02 +0000)]
1.0.10.40: Fix build for windows when source directory contains spaces