MantisBT - Core Inform
View Issue Details
0000036Core InformAssertions and creationspublic2010-06-15 08:412010-06-20 19:31
6E59 (re-release) 
(critical) Compiler crashes
0000036: Code 10 error from creating too many duplicate objects
As discussed at [^] the following code crashes the Windows compiler with code 10.
"Test" by Mikawa

Testroom is a room. "For testers only.".

A Ipad is a kind of thing. in the Testroom are 99 Ipads.
A Ipod is a kind of thing. in the Testroom are 99 Ipods.
A Imac is a kind of thing. in the Testroom are 99 Imacs.
It reportedly works on OS X.

99, 99, and 13 compiles, but 99, 99, and 14 crashes.
No tags attached.
Issue History
2010-06-15 08:41jmcgrewNew Issue
2010-06-15 08:41jmcgrewStatusnew => confirmed
2010-06-15 08:42jmcgrewDescription Updatedbug_revision_view_page.php?rev_id=7#r7
2010-06-15 14:49Jim AikinNote Added: 0000005
2010-06-15 15:09grahamNote Added: 0000006
2010-06-16 03:46DavidKNote Added: 0000011
2010-06-16 11:15jmcgrewNote Added: 0000013
2010-06-17 00:08DavidKNote Added: 0000019
2010-06-17 11:08grahamNote Added: 0000021
2010-06-17 11:08grahamStatusconfirmed => resolved
2010-06-17 11:08grahamResolutionopen => fixed
2010-06-17 11:08grahamAssigned To => graham
2010-06-17 17:01jmcgrewStatusresolved => closed
2010-06-17 17:01jmcgrewFixed in Version => 6E59
2010-06-20 19:31jmcgrewFixed in Version6E59 => 6E59 (re-release)

Jim Aikin   
2010-06-15 14:49   
Duplicate objects are only one of the potential causes. I suspect a more general memory allocation error, as I'm able to produce the same phenomenon by adding one too many ordinary objects to a test game that has NO duplicates.
2010-06-15 15:09   
This works just as it should on OS X, creating 99 of each. We're investigating.
2010-06-16 03:46   
Initial testing indicates that by the time the failure occurs there's no usable stack backtrace: most likely the result of stack corruption. This will take a bit of work to track down.
2010-06-16 11:15   
This also causes a code 10:

Include Unicode Character Names by Graham Nelson.
Home is a room.
When play begins: say "[unicode latin small letter e with acute]".
2010-06-17 00:08   
Okay, now I've got a stack backtrace. Both test cases in the above and a separate test case from Benjamin Penney fail at the same point, so they all look to be the same bug.
2010-06-17 11:08   
Thanks to David's detective work, we believe we understand this issue now and have fixed it. The Windows build of 6E59 is being reissued immediately with this fix, given its criticality.