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 -~----------~----~----~----~------~----~------~--~---
