Bonjour,
Récemment, j’ai souhaité me replonger dans l’interprétation, en commençant par me rafraîchir la mémoire sur l’analyse lexicale avec OCaml (version 4.08.1) et la manipulation des streams.
Je rencontre une erreur au chargement des modules usuellement appelés dans ce contexte :
#load "dynlink.cma" ;;
#load "camlp4o.cma" ;;
Cannot find file camlp4o.cma.
camlp4
ne semblait pas installé, j’ai donc lancé opam install camlp4
suivi de opam update
et opam upgrade
.
Il me semble que l’installation s’est bien passée :
$ ocamlfind query camlp4
/home/titus/.opam/4.08.1/lib/ocaml/camlp4
Cependant, je rencontre la même erreur au chargement de camlp4o.cma
dans le top-level OCaml. Dans le doute, j’ai voulu m’assurer que je ne travaillais pas sur une ancienne version d’OCaml mais il semblerait que non :
$ opam switch show
4.08.1
Cela correspond bien à la version pour laquelle camlp4 a été installée.
D’où une première question : mon installation et mon appel à camlp4 sont-ils corrects ? J’utilise opam très ponctuellement et quelque chose m’a peut-être échappé.
J’ai ensuite, de façon prétentieuse, supposé que le problème ne venait pas de moi. En faisant des recherches, je suis tombé sur un post sur ocaml.org. Ce message explique que camlp4 arrive en fin de vie et sera à terme remplacé par un outil du nom de ppx
.
Je comprends du dernier paragraphe que les développeurs OCaml ne considèrent plus les streams comme un outil pertinent pour l’analyse lexicale, et nous encouragent à explorer d’autres solutions (mais j’ai peut-être mal compris…)
Cela signifie-t-il qu’il sera désormais impossible de faire tourner des codes appelant des pattern matching sur des stream, ou qui utilisent la notation [< >]
?
Y a-t-il un lien entre cette annonce (qui pourtant indique qu’une version de camlp4 est disponible pour OCaml 4.08) et mon problème ?
Merci d’avoir pris le temps de me lire et merci par avance pour vos réponses !