Bibliothèque préchargée
Une première bibliothèque est toujours préchargée que cela soit au
niveau de la boucle d'interaction ou en compilation en ligne; dans ce
cas, elle est toujours liée. Elle correspond au module
Pervasives qui est l'environnement initial du langage. Elle
contient les déclarations de :
-
type : types de base (int, char,
string, float, bool, unit,
exn, 'a array, 'a list) et les types
'a option (voir page ??) et ('a,
'b, 'c) format (voir page ??).
- exceptions : une dizaine d'exceptions déclenchables par la
bibliothèque d'exécution. On peut citer principalement les exceptions
généralistes suivantes :
-
Failure
of
string qui est déclenchée par la fonction
failwith appliquée à une chaîne.
- Invalid_argument
of
string qui indique qu'un argument
est impossible à traiter par la fonction ayant déclenché
l'exception. La fonction invalid_arg
appliquée à une chaîne déclenche cette exception.
- Sys_error
of
string, pour les entrées-sorties,
typiquement dans l'ouverture d'un fichier inexistant en lecture.
- End_of_file pour la détection de fin de fichier.
- Division_by_zero sur les entiers.
Ainsi que des exceptions plus internes comme :
-
Out_of_memory et Stack_overflow pour le
dépassement mémoire du tas et de la pile. Il est à noter que
l'exception Out_of_memory n'est pas récupérable par un
programme. En effet quand elle se déclenche, il est trop tard pour
allouer de nouveau de l'espace mémoire pour poursuivre le calcul.
La
récupération de l'exception Stack_Overflow diffère si le
programme a été compilé en code-octet ou en natif. Dans ce dernier
cas, il n'est pas possible de la rattraper.
- fonctions : environ 140 dont la moitié correspondent à des
fonctions C de la bibliothèque d'exécution. On y trouvera les
opérateurs de comparaison et de calcul, les fonctions sur les entiers
et les flottants, des fonctions sur les chaînes de caractères,
sur les références et les entrées-sorties. Il est à noter qu'un certain
nombre de ces déclarations sont en fait des synonymes de déclarations
définies dans d'autres modules. Elles sont néanmoins déclarées ici
pour des raisons historiques et d'implantation.