New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RE: Possible bug in GC #8393
Comments
Comment author: administrator Thanks for your reply. see comments below.
Oh, yes, we're running o'caml compiled code pretty much day and night on
Thanks. I think that i'll try the Gc.finalize approach first. Then, no
|
Comment author: administrator Oh. I'm sorry. I misread your mail. The only solution that allows me
|
Comment author: administrator
I'm really impressed that you can do statistics on such an obscure bug...
I'm pretty sure it is a known bug in 3.04. I think it was there since 3.00. If you can upgrade to 3.07, the bug should go away. Otherwise, if you Anyway, thanks for your bug report. Let me know which solution you -- Damien |
Comment author: administrator I have a question for you. I upgraded the compiler from 3.04 to 3.07 and I've run into a problem. This invariant appeared to be true in 3.04, but I'm seeing some cases Question: is this known? Or is this a 3.07 bug? Thanks!
|
Comment author: administrator I'm sorry. I was wrong. The problem is not in Map. Its in Set. The problem is here. Imagine that we have a module defined as: module ESet = And this little code snippit: let diffb_1 = ESet.diff s1b s2b in let diffb_2 = ESet.diff s2b s1b in let diffb = is_diffb_1 || is_diffb_2 in I'm seeing cases where this "assert" fails. Is this a known problem?
|
Comment author: administrator Thanks!
|
Comment author: administrator
Both maps and sets cannot reliably be compared with the generic
and these are structurally different. For sets, an easy solution is to use the "equal" function provided in One possible reason the problem shows up with 3.07 and not with 3.04 In the unlikely case that your set elements or map keys are integers, Best wishes,
|
Comment author: administrator Upgrading to 3.07 fixed this issue. Thanks. In case you're interested in such things, the performance of SLAM
|
Comment author: administrator see also #8386 |
Original bug ID: 1954
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Hi. I found another case where this happened even with "-linkall"....so
I now don't have an effective workaround.
A little bit of stats for you. We run our o'caml based model checker
on about 900 real-world benchmarks that require a couple of days to run
on about 4 machines. On those benchmarks this occurs about 3 times
when running on the 900 benchmarks.
On another set of small C programs (about 200 cases, that require about
an hour to run) that we're running on it happens on one benchmark.
The problem w/ this bug is that any change in the code can cause it to
go away on one benchmark but often appear in another place. Its really
quite hard to predict ;-)
The text was updated successfully, but these errors were encountered: