You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 1941 Reporter: administrator Status: closed Resolution: not a bug Priority: normal Severity: minor Category: ~DO NOT USE (was: OCaml general)
Bug description
Hello,
I have just discovered that some program that used to work fine up to
(including) OCaml 3.07+2 doesn't work with the most recent CVS-snapshot
3.07+5 (2003-11-19). It suddenly raises the exception Out_of_memory for
no apparent reason.
The backtrace yields the following:
Fatal error: exception Out_of_memory
Raised by primitive operation at file "format.ml", line 1000, character 4
Called from file "format.ml", line 1000, character 4
Called from file "format.ml", line 994, character 4
Called from file "list.ml", line 74, character 34
Called from file "format.ml", line 994, character 4
Called from file "list.ml", line 74, character 34
Called from file "format.ml", line 1000, character 4
Called from file "format.ml", line 1000, character 4
Called from file "sym_reg_gen.ml", line 11, character 35
The GC-status after the last full major cycle looks as follows (in case
this helps):
It would be a bit tedious to narrow down the size of the program,
but since there are not too many changes between the two CVS-states,
I hope that this is sufficient to find the problem.
I have just discovered that some program that used to work fine up to
(including) OCaml 3.07+2 doesn't work with the most recent CVS-snapshot
3.07+5 (2003-11-19). It suddenly raises the exception Out_of_memory for
no apparent reason.
The change in the CVS most likely to cause this behavior is a
modification in the polymorphic comparison operators (=, <, etc):
in order to correct their behavior w.r.t. float NaNs, they now perform
a full traversal of their arguments. This means that they will loop
or raise Out_of_memory when given cyclic arguments, while the old
implementation may loop or raise Out_of_memory, but could also stop
early on an == situation.
The backtrace yields the following:
Fatal error: exception Out_of_memory
Raised by primitive operation at file "format.ml", line 1000, character 4
Called from file "format.ml", line 1000, character 4
Called from file "format.ml", line 994, character 4
Called from file "list.ml", line 74, character 34
Called from file "format.ml", line 994, character 4
Called from file "list.ml", line 74, character 34
Called from file "format.ml", line 1000, character 4
Called from file "format.ml", line 1000, character 4
Called from file "sym_reg_gen.ml", line 11, character 35
The backtrace is a bit incomplete (and I'll have to understand why),
but could you please look at file "sym_reg_gen.ml" circa line 11 and
see whether there would be a call to a polymorphic comparison on a
potentially cyclic argument nearby?
If you can't find any, I'm willing to investigate the problem. No
need to shrink your example: just send me a complete repro case, no
matter how big.
Original bug ID: 1941
Reporter: administrator
Status: closed
Resolution: not a bug
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Hello,
I have just discovered that some program that used to work fine up to
(including) OCaml 3.07+2 doesn't work with the most recent CVS-snapshot
3.07+5 (2003-11-19). It suddenly raises the exception Out_of_memory for
no apparent reason.
The backtrace yields the following:
Fatal error: exception Out_of_memory
Raised by primitive operation at file "format.ml", line 1000, character 4
Called from file "format.ml", line 1000, character 4
Called from file "format.ml", line 994, character 4
Called from file "list.ml", line 74, character 34
Called from file "format.ml", line 994, character 4
Called from file "list.ml", line 74, character 34
Called from file "format.ml", line 1000, character 4
Called from file "format.ml", line 1000, character 4
Called from file "sym_reg_gen.ml", line 11, character 35
The GC-status after the last full major cycle looks as follows (in case
this helps):
minor_words: 32768
promoted_words: 4094
major_words: 7149
minor_collections: 1
major_collections: 0
heap_words: 61440
heap_chunks: 1
top_heap_words: 61440
live_words: 7149
live_blocks: 1248
free_words: 54291
free_blocks: 1
largest_free: 54291
fragments: 0
compactions: 0
It would be a bit tedious to narrow down the size of the program,
but since there are not too many changes between the two CVS-states,
I hope that this is sufficient to find the problem.
Best regards,
Markus
--
Markus Mottl http://www.oefai.at/~markus markus@oefai.at
The text was updated successfully, but these errors were encountered: