Environnement OCaml

Cette page regroupe quelques instructions/suggestions pour travailler confortablement avec OCaml, que ce soit à l'ENS en salles info ou sur vos machines.

1. Pour travailler en salles info à l'ENS

Voici des instructions pour installer un environnement de travail OCaml confortable sur votre compte à l'ENS. Attention, plusieurs des commandes suivantes demandent confirmation avec une ligne du style:
> Do you want to continue? [Y/n]
Il faut répondre "y" (yes) pour valider, ou "n" (no) pour abandonner, puis un retour à la ligne (touche "Entrée"). La lettre en majuscule indique le choix par défaut si vous faites simplement "Entrée". Il faut donc lancer les commandes données ci-dessous une à une et vérifier si des questions vous sont posées !

Avant d'utiliser opam pour la première fois, il faut l'initialiser. Pour ce faire, lancer les commandes suivantes :

opam init -y
eval $(opam env)
On peut ensuite installer des paquets opam avec la commande opam install. Installer les paquets qui seront utiles pour le cours :
opam install menhir merlin graphics dune ocamlformat tuareg ocp-index user-setup
opam user-setup install
eval $(opam env)
Pour utiliser Down (amélioration du toplevel ; ne fonctionne pas sous Windows) :
opam install down
touch ~/.ocamlinit && echo '#use "down.top";;' >> ~/.ocamlinit
On peut maintenant travailler confortablement avec OCaml, notamment avec un éditeur comme Emacs ou VIM (voir plus bas). Si on souhaite utiliser Visual Studio Code, il faut suivre les instructions ci-dessous.

Visual Studio Code

Visual Studio Code est pré-installé sur les machines de l'ENS. Si vous utilisez votre propre machine, il faudra d'abord l'installer. Commencer par install un paquet opam dont VScode aura besoin :
opam install ocaml-lsp-server

Vous pouvez lancer VScode en cliquant sur son icône ou avec la commande

code
Cliquer sur l'icône et chercher l'extension "OCaml Platform" en tapant "OCaml" dans la barre de recherche. L'installer.

Cliquer sur "Open folder" et choisir un dossier pour travailler, par exemple td1 (le créer si besoin avec l'icône en haut à droite du sélecteur de fichier).

Ajouter un fichier dans votre dossier de travail (par exemple insertion.ml pour le premier exercice du TD 1). Il devrait être reconnu comme un fichier OCaml (petite icône orange avec un chameau). Il est typé à la volée et les types/erreurs sont affichés.

Pour exécuter un programme OCaml, ouvrir un nouveau terminal (menu Terminal) puis y lancer une commande comme :

ocamlopt insertion.ml -o insertion && ./insertion

2. Pour travailler sur vos machines

Ci-dessous, on donne des instructions spécifiques à différentes plateformes. Ensuite, on peut suivre les instructions de la partie 1 relatives à opam et Visual Studio Code.

Windows

Suivre les instructions d'installation sur la page OCaml for Windows. Choisir l'installateur graphique, en version 32-bit ou 64-bit selon votre machine. Cet installateur permet en particulier de choisir les paquets Cygwin à installer. Si vous souhaitez utiliser emacs, assurez-vous de choisir les paquets emacs-w32 et emacs. Il faut demander la liste complète (Full) des paquets pour les voir apparaître. Après l'installation (qui peut prendre un peu de temps), vous aurez accès à un environnement de travail de type UNIX en lançant Cygwin.

Pour utiliser l'environnement Cygwin au sein de Visual Studio Code (et donc avoir accès à OCaml depuis VScode), il faut le lancer avec ocaml-env. Vous pouvez créer un raccourci (fichier .lnk) pour automatiser cela (il faut alors lancer VScode avec ce raccourci), avec une commande similaire à "C:\Ocaml64\usr\local\bin\ocaml-env-win.exe" -- "C:\\Program Files\\Path To\\VisualStudioCode.exe". Pour trouver l'emplacement de l'exécutable de VScode sur votre machine, vous pouvez vous aider de ce lien StackOverflow.

Alternative : Si l'installation ci-dessus ne fonctionne pas, il est possible d'utiliser une machine virtuelle Linux tournant sous Windows (pas idéal, un peu lent, mais devrait fonctionner tout de même). Télécharger the course Debian live CD et installer VirtualBox. Lancer VirtualBox, créer une nouvelle installation Debian 32-bit, la lancer et choisir de démarrer depuis l'image téléchargée. Ensuite, procéder comme décrit ci-dessous pour un système Debian.

OSX

Installer homebrew puis exécuter dans un terminal la commande
  brew install opam emacs

Debian ou Ubuntu (récent)

Dans un terminal, exécuter (en tant que super-utilisateur) la commande
  apt-get install opam emacs

3. Éditeurs

Il est suggéré d'utiliser un éditeur dans lequel OCaml est bien intégré, comme Emacs, Vim ou encore Visual Studio Code. Les trois sont disponibles pour Linux, Mac et Windows et déjà installés à l'ENS.

On a expliqué plus haut comment configurer Visual Studio Code pour OCaml.

Emacs

Si vous souhaitez utiliser emacs, vous devez installer les modes Tuareg et Merlin pour Emacs avec la commande opam install tuareg merlin et suivre les instructions affichées à l'écran (voir section précédente).

La configuration d'Emacs se fait dans un fichier .emacs situé à la racine de votre compte. L'installation ci-dessus aura ajouté des lignes dans ce fichier. Au final, il pourra ressembler à quelque chose comme ça.

Le mode Merlin compile votre programme chaque fois que vous sauvez (pour signaler les erreurs), mais ne construit pas d'exécutable.

Pour construire un exécutable, vous pouvez appeler le compilateur OCaml directement depuis Emacs avec la commande Meta-x compile (Meta s'obtient avec la touche Alt ou Esc, au choix). Vous pouvez relancer la même commande avec Meta-x recompile. Si le compilateur OCaml signale une erreur, vous pouvez vous placer directement sur la position correspondante avec Meta-x next-error. Vous pouvez simplifier les raccourcis clavier de ces trois commandes en insérant par exemple les lignes suivantes dans votre fichier ~/.emacs :

(global-set-key [f5] 'compile)
(global-set-key [f6] 'recompile)
(global-set-key [f7] 'next-error)
C'est là une façon très efficace de travailler. (Et vous pourrez utiliser ces raccourcis pour toute autre chose que la programmation OCaml.)

Si vous souhaitez des raccourcis Ctrl-C, Ctrl-V, Ctrl-X pour le copier-coller sous Emacs, vous pouvez ajouter la ligne

  (custom-set-variables '(cua-mode t nil (cua-base)))
à votre fichier .emacs pour activer le mode Cua pour Emacs. C'est fait dans le fichier .emacs proposé.

Vim

Le mode Merlin pour Vim s'installe avec la commande opam install merlin. Suivre les instructions affichées à l'écran.
Merci à Basile Clément et Stéphane Lengrand pour leur aide dans la préparation de cette page.
retour à la page du cours