I've finally had a little more time to play with Ackermann.  ack(3,6)
succeeds unless I crank the heap size up to 550,000,000,000, in which
case it gives a segmentation fault.  ack(3,7) succeeds if called with
a heap size between 65,729 and 131,048.  It fails by exhausting the
heap below that and gives a segmentation fault above it.  Further,
when the heap is manually created with the large heap size, the
program fails immediately.  Since the default heap size is 10,000,000,
the program naturally also fails in that case.  That seems to rule out
the garbage collector.

But when ack(3,7) fails, the backtrace is
#0  0x00007f345f265710 in _objType () from ./runtime/libddc-runtime.so
#1  0x00007f345f263413 in _evacuateObj () from ./runtime/libddc-
runtime.so
#2  0x00007f345f2638a0 in _evacuateRoots () from ./runtime/libddc-
runtime.so
#3  0x00007f345f2638df in _collectHeap () from ./runtime/libddc-
runtime.so
#4  0x00007f345f260fac in _allocCollect () from ./runtime/libddc-
runtime.so
#5  0x0000000000418244 in _boxEnum ()
#6  0x0000000000417f57 in Main_ack ()
#7  0x00000000004181c4 in Main_ack ()

And everything from 7 to 453 is recursive calls through 4181c4.  That
seems to place the blame squarely on the garbage collector.  I'll have
time to look at those functions tomorrow.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Disciple Cafe" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/disciple-cafe?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to