... at least if I've done everything right. Slushy freezes, don't you just love them? Also don't run the run-program inherit-stdin test, because it hangs.
…terals * Resulted in a type mismatch or subtle errors during compilation with singleton types. Reported by Chun Tian (binghe) on sbcl-devel
* If one used :TYPE NIL on it, one could sometimes get printed representations that looked like #<\nFOO...> (notice the newline.) * Test case included. * Fix some WITH-TEST forms of previous commit.
* Wrap WITH-TESTS around bare ASSERTS in pprint.impure.lisp. * Add #+sb-eval to test excercising the interpreter. (S.Boukarev)
* Discovered by Hans Hubner, reported by madnificient on #lisp.
…hers * LODS is probably slow nowadays, and isn't supported by valgrind. Remove one use in calling VOPs. * Some disassemblers don't like useless (e.g. 32 bit to 32 bit) MOVSXD. Convert them to MOV.
* Detect some cases that might not lead to type errors, and signal a STYLE-WARNING instead of a WARNING then.
* It used to remain declaimed inline after load.lisp. Report and patch by Stas Boukarev.
* There was a type (SC!C) in a VOP definition...
* ... instead of returning 0.0 arbitrarily.
* Detect ignored secondary values correctly * Handle being unused (no result LVAR) without dying at compile-time
… x87 * We now test for a maximal magnitude of 2^63, not 2^64.
* Trying to divide by tiny powers of 2 could result in compile-time errors.
Fix a typo that sneaked in when committing a diff submitted by Stas Boukarev, version 22.214.171.124, launchpad bug #309093. This makes literal struct parsing work again. (defstruct foo (r nil :type (or null simple-vector))) #S(foo :r #(#x00 #x11 #x22 #x33 #x44 #x55 #x66 #x77)) ==> now works again.
Combine MOV/CMP by using CMP with a memory operand. Saves a byte.
Instead of MOV/AND/CMP, use LEA/TEST, which is one byte shorter. Delete AL-LOADED in %TEST-LOWTAG and %TEST-HEADERS as well, since that parameter is unused and attempting to make the above optimization work in the face of that option would be tricky.
...and I'm sorely tempted to make GET-MUTEX signal an error if the argument is anything but NIL or current thread...
fault_addr where it should have been addr. Hopefully fixes lp#538689.
Patch by Josh Elsasser. * os_get_runtime_executable_path() extended with an argument to indicate if the returned path should be externally usable (which precludes paths such as /proc/curproc/file). * If os_get_runtime_executable_path() fails, use an argv derived path instead. * Check build_id when saving executable cores to make sure we got the right runtime -- since using the argv method can otherwise go wrong once in a blue moon. Fixes Launchpad #375549.
Thanks to Attila Lendvai and Nathan Froyd.
...by skipping the test which is too hard on the flaky combination. I'm really no enthused about purporting to support GENCGC on PPC, when we know it's flaky, but we don't have resources to fix it. :/
...in the default PRINT-OBJECT method.
Also take care not to disassociate the stream from the socket if the close fails. Fixed launchpad bug #543951.
...which is to say print the format control string to make them more identifiable form the escaped output.
* Use RUN-PROGRAM for impure tests everywhere. Not only is it better to use the more-portable solution everywhere, we had a huge number of bogus failures on thread tests on Darwin due to interactions between fork() and thread stack cleanup. Addresses Launchpad bug #310208. * Make tests depending on mutex timeout punt on lutex platform, and make several test which are prone hang or crash into LDB punt on Darwin. ("Punt" here means "call ERROR" so we get a test failure.) * Disable mailbox tests prone to hang on Darwin. ...so building threads on Darwin means one actually has a prayer or running the tests with useful results -- and the failures are real Darwin problems.
* Even those who don't like documentation like working contribs: current SB-GROVEL design doesn't really work with #+sb-doc "doc" approach. Fixes launchpad bug #552564.
* The test was introduced in 126.96.36.199 to test against closely running waiters to cause spurious wakeups to each other. However, as has been shown in the thread "lost wakeup in condition-wait / condition-notify", feb 2010 on sbcl-devel, that optimization resulted in a possible lost wakeup case. 188.8.131.52 contained a fix against that lost wakeup case but introduced back the pessimal behaviour of waiters interfering with each other. So the test was rendered bogus. * While I'm at it, also update NEWS to tag an entry with its LP#.
* Instead of linearizing purely on *PACKAGE-LOCK* split the responsibilities: 1) *PACKAGE-GRAPH-LOCK* is responsible for package->package links, and package->symbol links. 2) The hash-table lock on *PACKAGE-NAMES* is responsible for string->package associations. (%NAME and %NICKNAMES slots of package objects and the hash-table itself.) This is enough to allow FIND-SYMBOL and FIND-PACKAGE to always complete in finite time. INTERN, etc, can still block if eg. the *PACKAGE-GRAPH-LOCK* is held by a thread waiting for the debugger, etc -- but the reader is at least able to read existing symbols. * Additionally, in cases where it is easy, signal some errors while *PACKAGE-GRAPH-LOCK* is not held.
..so the compiler knows that it won't return.
An hooray to FORMAT: (assert-no-consing (sleep 0.0001)) results in Expected the form (SLEEP 1.e-4) NOT to cons, yet running it for 10000 times resulted in the allocation of 1290440 bytes (129.044 per run).