Préparer son environnement de travail pour OCaml
Prérequis
Installation de OCaml
Pour installer OCaml, vous pouvez utiliser brew ou Nix :
- Brew
- Nix
brew install opam
nix-env -iA nixpkgs.opam
Initialisation de Opam
Pour initialiser Opam, vous pouvez utiliser la commande suivante :
opam init
eval $(opam env)
Installation des packages supplémentaires
Plusieurs packages sont nécessaires pour travailler avec OCaml. Voici une liste de paquets à installer :
opam install dune utop merlin ocp-indent ocaml-lsp-server tuareg
- utop : Un terminal interactif pour OCaml, pratique pour tester des fonctions rapidement.
- merlin, ocp-indent, ocaml-lsp-server : Des outils pour pouvoir utiliser OCaml avec votre IDE favori (VSCode, Vim, Emacs, ...).
- dune : Un outil pour compiler vos projets OCaml, nécessaire pour le projet d'AFIT
- tuareg : Un mode pour Emacs pour l'édition de code OCaml
En bonus, si vous aimez les tests unitaires, vous pouvez installer le package alcotest
:
opam install alcotest
Execution de OCaml
C'est super simple, il suffit de lancer la commande ocaml
dans votre terminal, ou utop
si vous avez installé le package utop
:
❯ ocaml
OCaml version 4.13.1
# let x = 42;;
val x : int = 42
# x * 2;;
- : int = 84
Configuration de l'IDE
Vous pouvez utiliser votre IDE favori pour travailler avec OCaml. L'IDE recommandé pour l'OCaml par Epita est Emacs, mais vous pouvez utiliser n'importe quel IDE qui supporte OCaml.
Emacs
L'avantage du mode tuareg pour Emacs est que vous pouvez copier-coller le contenu d'un buffer dans une instance de ocaml
directement depuis Emacs.
Pour configurer Ocaml, utilisez le fichier .emacs
suivant (qui se trouve dans
votre dossier personnel /Users/<votre nom>/.emacs
sur Mac).
Si vous avez déjà un fichier .emacs
, vous pouvez simplement ajouter les lignes à la fin de votre fichier.
(require 'package)
(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
("melpa" . "https://melpa.org/packages/")))
(package-initialize)
; Suggest installing the tuareg mode if needed
(unless (require 'tuareg nil 'noerror)
(if (y-or-n-p "Il manque le mode tuareg, appuyer sur 'y' pour l'installer automatiquement")
(progn
(package-refresh-contents)
(package-install 'tuareg))))
; Suggest installing ocp-indent if needed
(unless (require 'ocp-indent nil 'noerror)
(if (y-or-n-p "Il manque ocp-indent, appuyer sur 'y' pour l'installer automatiquement")
(progn
(package-refresh-contents)
(package-install 'ocp-indent))))
Lorsque vous ouvrez un fichier .ml
ou .mli
, Emacs devrait automatiquement utiliser le mode tuareg
pour colorer le code, et ajouter un menu Tuareg
dans la barre de menu.
Les raccourcis clavier suivants sont disponibles :
C-c C-e
: Execute la ligne couranteC-c C-r
: Execute la région sélectionnéeC-c C-k
: Tue le buffer courant
VSCode
Nous vous recommandons d'utiliser l'extension OCaml Platform.
Elle permet d'utiliser OCaml avec VSCode, et d'avoir un support complet pour les fichiers .ml
et .mli
(coloration syntaxique, autocomplétion, ...).
Gérer différentes versions d'OCaml
Si vous avez besoin de gérer plusieurs environnements OCaml, vous pouvez utiliser opam switch
pour créer des environnements virtuels.
Par exemple, pour créer un environnement virtuel ocaml-4.13.1
avec OCaml 4.13.1, vous pouvez utiliser la commande suivante :
opam switch create ocaml-4.13.1 4.13.1
eval $(opam env)
Vous pourrez ensuite utiliser opam switch
pour basculer entre les différents environnements virtuels.
❯ opam switch
# switch compiler description
-> 4.13.1 ocaml-base-compiler.4.13.1 4.13.1
default ocaml.4.14.0 default
En changeant d'environnement virtuel, vous pouvez avoir besoin de réinstaller les packages supplémentaires que vous aviez installés au préalable.