ALLOCATION-INFORMATION.4 failure on win32
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
It has been reported that SB-INTROSPECT-
The following is a brief braindump of our current investigation, so that it won't be forgotten by the time someone actually looks into it...
Affected binaries show the problem consistently even on other installations of Windows which do not have the problem if SBCL is built locally.
Hence the current working assumption is that the problem lies in the version of gcc used.
Two reasons why this might happen come to mind:
1. The "define-alien-type (struct page)" in room.lisp is buggy and makes assumptions that do not hold unconditionally.
2. Or the struct page as such is fine, but the bit field is packed differently.
3. Or something else. :-)
(My money is currently on #1.)
An affected build says:
===================
* (require :sb-introspect)
("SB-INTROSPECT")
* (sb-introspect:
:HEAP
(:SPACE :DYNAMIC :GENERATION 0 :WRITE-PROTECTED NIL :BOXED NIL :PINNED NIL :LARGE NIL :PAGE 3027)
(Note the :BOXED NIL in this SBCL.)
$ gcc --version
gcc.exe (GCC) 4.7.0
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ uname -a
MINGW32_NT-6.1 BLACKTHORN 1.0.17(0.48/3/2) 2011-04-24 23:39 i686 Msys
$ gcc -o bittest bittest.c
$ ./bittest.exe
0 0
1 0
2 0
3 0
4 0
5 0
6 0
Whereas a build that passes the test comes up with:
===================
* (sb-introspect:
:HEAP
(:SPACE :DYNAMIC :GENERATION 6 :WRITE-PROTECTED T :BOXED T :PINNED NIL :LARGE NIL :PAGE 3246)
$ gcc --version
gcc.exe (GCC) 4.5.2
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
david@lu7 /c/work/ovwrt
$ uname -a
MINGW32_NT-6.1 LU7 1.0.17(0.48/3/2) 2011-04-24 23:39 i686 Msys
$ ./bittest.exe
0 0
1 10000
2 20000
3 30000
4 40000
5 50000
6 60000
There isn't adequate developer time to address about all the win32 failures.
Don't know whether it's still failing, but it's still a wont-fix.