Skip to content
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

Obj.dup crash #3406

Closed
vicuna opened this issue Dec 30, 2004 · 1 comment
Closed

Obj.dup crash #3406

vicuna opened this issue Dec 30, 2004 · 1 comment
Labels

Comments

@vicuna
Copy link

vicuna commented Dec 30, 2004

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

@vicuna
Copy link
Author

vicuna commented Jan 4, 2005

Comment author: administrator

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.

-- Damien

@vicuna vicuna closed this as completed Jan 4, 2005
@vicuna vicuna added the bug label Mar 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant