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: 3406 Reporter: administrator Status: closed Resolution: fixed Priority: normal Severity: minor Category: ~DO NOT USE (was: OCaml general)
Bug description
Bonjour,
Comme rapporté sur la caml-list, le code suivant fait planter ocaml :
let test() =
let a = Obj.new_block 0 0 in
let b = Obj.dup a in
Gc.major()
Celà est du à un "return" au lieu d'un "CAMLreturn" dans l'implémentation de
caml_obj_dup (répéré par Alain Frisch). En ce qui concerne les blocks de
taille 0, est-ce que cela fait partie de la spécification d'ocaml d'avoir
[||] == [||] ? Si non, je pense que désactiver l'allocation unique des
blocks de taille 0 (tous égaux) serait une bonne chose, sauf biensur si cela
pose d'autres problemes.
Bonnes fetes a toute l'équipe.
Nicolas
The text was updated successfully, but these errors were encountered:
Celà est du à un "return" au lieu d'un "CAMLreturn" dans l'implémentation de
caml_obj_dup (répéré par Alain Frisch).
Merci pour le rapport de bug. Ca sera corrige dans 3.08.3.
En ce qui concerne les blocks de
taille 0, est-ce que cela fait partie de la spécification d'ocaml d'avoir
[||] == [||] ? Si non, je pense que désactiver l'allocation unique des
blocks de taille 0 (tous égaux) serait une bonne chose, sauf bien sur si cela
pose d'autres problemes.
C'est impossible car ca casserait un invariant du GC.
Original bug ID: 3406
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Bonjour,
Comme rapporté sur la caml-list, le code suivant fait planter ocaml :
let test() =
let a = Obj.new_block 0 0 in
let b = Obj.dup a in
Gc.major()
Celà est du à un "return" au lieu d'un "CAMLreturn" dans l'implémentation de
caml_obj_dup (répéré par Alain Frisch). En ce qui concerne les blocks de
taille 0, est-ce que cela fait partie de la spécification d'ocaml d'avoir
[||] == [||] ? Si non, je pense que désactiver l'allocation unique des
blocks de taille 0 (tous égaux) serait une bonne chose, sauf biensur si cela
pose d'autres problemes.
Bonnes fetes a toute l'équipe.
Nicolas
The text was updated successfully, but these errors were encountered: