X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=BUGS;h=1960b902f8e8bfc3f3d0befef0dad5f2b5e9b8fe;hb=10cdee0326e9e8a5bbfe1d8312a73d58f023fb5f;hp=0a4436afe9f4dbc9e0d291961c5e5fc5ccfe9670;hpb=0aa292df08039389cebc1c7d1f2134121b9b3fdf;p=sbcl.git diff --git a/BUGS b/BUGS index 0a4436a..1960b90 100644 --- a/BUGS +++ b/BUGS @@ -2074,9 +2074,6 @@ WORKAROUND: the right fix is to remove the abstraction violation in the compiler's type deriver. -392: slot-accessor for subclass misses obsoleted superclass - (fixed in sbcl-0.9.7.9) - 393: Wrong error from methodless generic function (DEFGENERIC FOO (X)) (FOO 1 2) @@ -2112,3 +2109,45 @@ WORKAROUND: (foo z) (values x))) (bar 1) => 11, should be 4. + +397: SLEEP accuracy + The more interrupts arrive the less accurate SLEEP's timing gets. + (time (sb-thread:terminate-thread + (prog1 (sb-thread:make-thread (lambda () + (loop + (princ #\!) + (force-output) + (sb-ext:gc)))) + (sleep 1)))) + +398: GC-unsafe SB-ALIEN string deporting + Translating a Lisp string to an alien string by taking a SAP to it + as done by the :DEPORT-GEN methods for C-STRING and UTF8-STRING + is not safe, since the Lisp string can move. For example the + following code will fail quickly on both cheneygc and pre-0.9.8.19 + GENCGC: + + (setf (bytes-consed-between-gcs) 4096) + (define-alien-routine "strcmp" int (s1 c-string) (s2 c-string)) + + (loop + (let ((string "hello, world")) + (assert (zerop (strcmp string string))))) + + (This will appear to work on post-0.9.8.19 GENCGC, since + the GC no longer zeroes memory immediately after releasing + it after a minor GC. Either enabling the READ_PROTECT_FREE_PAGES + #define in gencgc.c or modifying the example so that a major + GC will occasionally be triggered would unmask the bug.) + + On cheneygc the only solution would seem to be allocating some alien + memory, copying the data over, and arranging that it's freed once we + return. For GENCGC we could instead try to arrange that the string + from which the SAP is taken is always pinned. + + For some more details see comments for (define-alien-type-method + (c-string :deport-gen) ...) in host-c-call.lisp. + +400: "aggressive constant folding" + (fixed in sbcl-0.9.10.17) +