(unboxed ? UNBOXED_PAGE : BOXED_PAGE)) &&
(page_table[first_page].large_object == 0) &&
(page_table[first_page].gen == gc_alloc_generation) &&
+ /* FIXME: Why? Please tell me why? Removal of
+ this test, which restricts opening an allocation
+ region on a partially-used page to the nursery
+ generation, causes more or less instant heap
+ corruption on forms such as
+ (loop repeat 2
+ do (compile nil '(lambda (x) x))
+ do (gc :full t))
+ -- CSR, 2003-01-14 */
+ (gc_alloc_generation == 0) &&
(page_table[first_page].bytes_used < (PAGE_BYTES-32)) &&
(page_table[first_page].write_protected == 0) &&
(page_table[first_page].dont_move == 0)) {
;;; DISASSEMBLE shouldn't fail on purified functions
(disassemble 'cl:+)
(disassemble 'sb-ext:run-program)
+
+;;; minimal test of GC: see stress-gc.{sh,lisp} for a more
+;;; comprehensive test.
+(loop repeat 2
+ do (compile nil '(lambda (x) x))
+ do (sb-ext:gc :full t))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.7.13"
+"0.8.7.14"