Hi Slava, (Hi factor list)

As I mentioned on #concatenative I'm getting bootstrap crashes on win32 
for my reentrantvm build when g++ is run with optimize settings (-O).

- Crashes don't occur with -O0
- tested with mingw gcc 4.1.2 and 4.4.0
- Crashes don't occur replacing the -O3 with the corresponding -f 
optimization switches [1]
- Crashes don't occur on x86.32 linux or under wine

I git-bisected to the first crashing example in my branch, which is 
prior to any .factor or assembly changes.
The patch in question just moves the data_gc globals into the vm struct.

I found that moving: 'gc_stats stats[max_gen_count]' out of the struct 
and back to a global variable again means that factor bootstraps ok.
However leaving a dummy var in the struct gc_stats 
stats_dummy[max_gen_count]
...means it still crashes, so I don't think it's initialisation of that 
member that's causing the problem.

The gdb backtrace and factor stack dumps are below.

I'll do some more digging tonight, but please let me know if any of this 
rings a bell.

Thanks,

Phil

[1] 
http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Optimize-Options.html#Optimize-Options


Breakpoint 1, factor::factorvm::factorbug (this=0x4d2478) at 
vm/debug.cpp:433
433             if(fep_disabled)
Current language:  auto; currently c++
(gdb) bt
#0  factor::factorvm::factorbug (this=0x4d2478) at vm/debug.cpp:433
#1  0x6718de7a in primitive_die () at vm/debug.cpp:584
#2  0x0396370a in ?? ()
#3  0x039afba9 in ?? ()
#4  0x039636f0 in ?? ()
#5  0x00000010 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)


.s
==== DATA STACK:
T{ hashtables.private:tombstone f }
T{ hashtables.private:tombstone f }
T{ generic.single:no-method T{ hashtables.private:tombstone f } 
assocs:>alist }
READY
.c
==== CALL STACK:
[ memory:gc memory:begin-scan [ hashtables:hashtable? ] sequences:pusher 
[ memor
y:(each-object) ] kernel:dip memory:end-scan [ hashtables:rehash ] 
sequences:each init:boot... ]
8
word/quot addr: 24400dc
word/quot xt: 39def30
return address: 39def84
[ math.private:iterate-step math.private:iterate-next math:(each-integer) ]
0
word/quot addr: 24dfb5c
word/quot xt: 39dfd90
return address: 39dfda3
[ kernel:-roll [ kernel:call ] kernel:3dip ]
2
word/quot addr: 244105c
word/quot xt: 39b0770
return address: 39b079e
[ kernel:dup assocs:>alist [ kernel:dup assocs:clear-assoc ] kernel:dip 
hashtables.private:(rehash) ]
1
word/quot addr: 245445c
word/quot xt: 39636f0
return address: 396370a
READY
.r
==== RETAIN STACK:
2389
5254
T{ kernel:compose T{ kernel:curry T{ kernel:compose T{ kernel:curry { T{ 
hashtables.private:tombstone f } T{ hashtables.private:tombstone f } T{ 
hashtables.private:tombstone f } T{ hashtables.private:tombstone f } T{ 
hashtables.private:tombstone f } T{ hashtables.private:tombstone f } 
"inline" syntax:t T{ hashtables.private:tombstone f } T{ 
hashtables.private:tombstone f }... } [ sequences.private
:nth-unsafe ] } [ kernel:drop hashtables.private:((empty)) ] } [ 
sequences.private:nth-unsafe ] } [ hashtables:rehash ] }
READY


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to