On Apr 15, 2013, at 11:21 PM, Nathaniel Echols wrote:
Is your example more or less what YAML does that triggers the crash?
Yes, the example I gave is essentially the YAML code distilled. For some reason yaml wants to make infs and nans. Here is around 256 of yaml/constructor.py: inf_value = 1e300 while inf_value != inf_value*inf_value: # ⇐ Line 256 inf_value *= inf_value nan_value = -inf_value/inf_value # Trying to make a quiet NaN (like C99). But what they are doing really doesn't make any sense to do, because infs and nans can be made in python without all of the gymnastics: >>> inf_value == float('inf') >>> nan_value = flaot('nan') I would agree that boost's trapping the conditional on line 256 is not a bug. If 1e300 * 1e300 were defined, they wouldn't "need" to use a loop to find the nan. James