generational garbage collector (gencgc) accessors broken
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
High
|
Unassigned |
Bug Description
The accessor functions for gencgc are broken:
(progn (format t "Gen consed prom minage~%")
(loop for i from 0 to 6 do (format t "~A ~A ~A ~A~%" i
Gen consed prom minage
0 2000000 1 0.75d0
1 2000000 0 0.0d0
2 0 2000000 4.9406564584124
3 0 2000000 2.1219957909652
4 0 0 9.8813129168249
5 0 0 4.2439915829186
6 0 0 4.2439915954690
This occurs for sbcl-1.0.35 on darwin-x86, linux-x86, linux-x86_64.
If I add the following code to gencgc.c:
extern void
print_generatio
{
generation_
fprintf(stderr, " Gen trigger consed prom minage\n");
for (i = 0; i < NUM_GENERATIONS; i++) {
i,
}
}
And I call from lisp, I get the desired quantities:
(sb-alien:
(print-
PRINT-GENERATIO
* Gen trigger consed prom minage
0: 2009944 2000000 1 0.7500
1: 2000000 2000000 1 0.7500
2: 2000000 2000000 1 0.7500
3: 2000000 2000000 1 0.7500
4: 2000000 2000000 1 0.7500
5: 2000000 2000000 1 0.7500
6: 2000000 2000000 1 0.7500
7: 2000000 2000000 1 0.7500
For completeness:
josiah> uname -a
Darwin josiah.local 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-
* *features*
(:ASDF :SB-THREAD :ANSI-CL :COMMON-LISP :SBCL :SB-DOC :SB-TEST :SB-LDB
:SB-PACKAGE-LOCKS :SB-UNICODE :SB-EVAL :SB-SOURCE-
:IEEE-
:SB-LUTEX :RESTORE-
:STACK-
:COMPARE-
:STACK-
:STACK-
:CYCLE-COUNTER :INLINE-CONSTANTS :LINKAGE-TABLE :OS-PROVIDES-DLOPEN
:OS-PROVIDES-
:OS-PROVIDES-
Changed in sbcl: | |
importance: | Undecided → High |
status: | Fix Committed → In Progress |
Changed in sbcl: | |
status: | In Progress → Fix Released |
status inprogress
importance high
The page structure definition on the lisp side is missing space for lutexes. Committing after freeze.
Index: src/code/gc.lisp ======= ======= ======= ======= ======= ======= ======= ======= ==== sbcl/sbcl/ src/code/ gc.lisp, v
( number- of-gcs int)
( number- of-gcs- before- promotion int)
( cum-sum- bytes-allocated unsigned-long) age-before- gc double))) age-before- gc double)
=======
RCS file: /cvsroot/
retrieving revision 1.90
diff -u -r1.90 gc.lisp
--- src/code/gc.lisp 14 Feb 2010 20:17:40 -0000 1.90
+++ src/code/gc.lisp 27 Feb 2010 15:58:25 -0000
@@ -346,7 +346,9 @@
- (minimum-
+ (minimum-
+ ;; The space for lutexes is reserved on non-lutex platforms as well.
+ (lutexes (* t))))
#!+gencgc alien-variable generations
(define-