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

Compilation de PXP #3385

Closed
vicuna opened this issue Jun 8, 2002 · 4 comments
Closed

Compilation de PXP #3385

vicuna opened this issue Jun 8, 2002 · 4 comments
Labels

Comments

@vicuna
Copy link

vicuna commented Jun 8, 2002

Original bug ID: 1192
Reporter: administrator
Status: closed
Resolution: not a bug
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)

Bug description

La version CVS d'OCaml n'arrive pas à compiler le fichier pxp_document.ml
de la distribution de PXP (*); ça se termine avec:

ocamlfind ocamlc -g -package "netstring" -c pxp_document.ml
ocamlc got signal and exited

Avec OCaml 3.01, ou le "3.04+6 polymorphic methods (2002-02-16)", par
exemple, ça prend beaucoup de temps mais ça marche. Si ça vous embete
d'installer PXP et ses dependances, je peux essayer d'isoler le problème
dans un programme minimal..

À noter que sans le -g, ça marche.

(*) http://www.ocaml-programming.de/packages/pxp-1.1.4.tar.gz

-- Alain

@vicuna
Copy link
Author

vicuna commented Jun 18, 2002

Comment author: administrator

La version CVS d'OCaml n'arrive pas à compiler le fichier pxp_document.ml
de la distribution de PXP (*); ça se termine avec:

ocamlfind ocamlc -g -package "netstring" -c pxp_document.ml
ocamlc got signal and exited

Avec OCaml 3.01, ou le "3.04+6 polymorphic methods (2002-02-16)", par
exemple, ça prend beaucoup de temps mais ça marche. Si ça vous embete
d'installer PXP et ses dependances, je peux essayer d'isoler le problème
dans un programme minimal..

J'avoue que je n'ai pas encore eu la patience d'installer toutes les
goodies nécessaires pour compiler PXP :-(

En attendant, j'aimerais plus de contexte:

  • Le ocamlc qui plante, est-ce le ocamlc bytecode ou le ocamlc.opt ?
  • Si c'est ocamlc.opt, ça peut être un débordement de pile système;
    regarder avec ulimit.
  • Quel est le signal qui fait planter? (Lancer ocamlc directement et
    non pas via ocamlfind). Mieux encore, peux-tu lancer ocamlc sous gdb
    et nous envoyer le backtrace du moment où ça plante?

Merci,

  • Xavier

@vicuna
Copy link
Author

vicuna commented Jun 18, 2002

Comment author: administrator

On Tue, 18 Jun 2002, Xavier Leroy wrote:

  • Le ocamlc qui plante, est-ce le ocamlc bytecode ou le ocamlc.opt ?
  • Si c'est ocamlc.opt, ça peut être un débordement de pile système;
    regarder avec ulimit.

C'est ocamlc bytecode.

  • Quel est le signal qui fait planter? (Lancer ocamlc directement et
    non pas via ocamlfind). Mieux encore, peux-tu lancer ocamlc sous gdb
    et nous envoyer le backtrace du moment où ça plante?

Ah, en fait, ça plante comme ça:
Fatal error: exception Assert_failure("typing/ctype.ml", 49064, 49076)

Donc sur l'assert, là:

and unify_kind k1 k2 =
let k1 = field_kind_repr k1 in
let k2 = field_kind_repr k2 in
match k1, k2 with
(Fvar r, (Fvar _ | Fpresent)) -> r := Some k2
| (Fpresent, Fvar r) -> r := Some k1
| (Fpresent, Fpresent) -> ()
| _ -> assert false

(groumph sur ocamlfind qui pourrait ne pas cacher les exceptions non
rattrapées du compilateur; désolé pour la fausse frayeur)

Cela dit, avec la version CVS de maintenant, ça a l'air de marcher.
Bon, c'est sur une autre machine, avec une installation un peu
différente, par exemple ocaml_pcre compilé en static, pxp-1.1.5 au lieu
de 1.1.4; est-ce que ça vaut le coup que j'essaie exactement dans les
memes conditions, ou est-ce qu'il y a eu un bug corrigé depuis 3.04+13
qui expliquerait la chose ?

-- Alain

@vicuna
Copy link
Author

vicuna commented Jun 19, 2002

Comment author: administrator

From: frisch@clipper.ens.fr

  • Quel est le signal qui fait planter? (Lancer ocamlc directement et
    non pas via ocamlfind). Mieux encore, peux-tu lancer ocamlc sous gdb
    et nous envoyer le backtrace du moment où ça plante?

Ah, en fait, ça plante comme ça:
Fatal error: exception Assert_failure("typing/ctype.ml", 49064, 49076)

Donc sur l'assert, là:

and unify_kind k1 k2 =
let k1 = field_kind_repr k1 in
let k2 = field_kind_repr k2 in
match k1, k2 with
(Fvar r, (Fvar _ | Fpresent)) -> r := Some k2
| (Fpresent, Fvar r) -> r := Some k1
| (Fpresent, Fpresent) -> ()
| _ -> assert false

Aie, encore un invariant que je ne comprends pas.
Enfin si, la seule possibilite' pour que ca arrive serait que k1 ou k2
soit devenu Fabsent a` cause d'une unification (voir unify_fields,
repr eliminant les Fabsent)... mais ca ne peut pas se passer pendant
l'unification, puisque Fabsent n'est introduit que par
match_class_types et hide_private_methods. Je comprends pas.

Cela dit, avec la version CVS de maintenant, ça a l'air de marcher.
Bon, c'est sur une autre machine, avec une installation un peu
différente, par exemple ocaml_pcre compilé en static, pxp-1.1.5 au lieu
de 1.1.4; est-ce que ça vaut le coup que j'essaie exactement dans les
memes conditions, ou est-ce qu'il y a eu un bug corrigé depuis 3.04+13
qui expliquerait la chose ?

Pas explicitement, mais c'est les joies de CVS que de pouvoir tomber
n'importe quand sur une version instable...
Previens-moi si ce genre de phenomene se reproduit.

    Jacques

@vicuna
Copy link
Author

vicuna commented Jun 20, 2002

Comment author: administrator

Not reproduced.

@vicuna vicuna closed this as completed Jun 20, 2002
@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