Preloaded Library
The Pervasives library is always preloaded so that it will be available
at the toplevel (interactive) loop or for inline compilation. It is always linked
and is the initial environment of the language. It contains the
declarations of:
-
type: basic types (int, char,
string, float, bool, unit,
exn, 'a array, 'a list) and the types
'a option (see page ??) and ('a,
'b, 'c) format (see page ??).
- exceptions: A number of exceptions are raisable by the execution
library. Some of the more common ones are the following:
-
Failure
of
string that is raised by the function
failwith applied to a string.
- Invalid_argument
of
string that indicates that an argument
cannot be handled by the function having raised the exception.
The function invalid_arg
applied to a string starts this exception.
- Sys_error
of
string, for the input/output, typically
in attempting to open a nonexistent file for reading.
- End_of_file for detecting the end of a file.
- Division_by_zero for zero divide errors between integers.
As well as internal exceptions like:
-
Out_of_memory and Stack_overflow for going
beyond the memory of the heap or the stack. It should be noted that
a program cannot recover from the Out_of_memory exception.
In effect, when it is raised it is too late to allocate new memory space
to continue functioning.
Handling the Stack_Overflow exception
differs depending on whether the program was compiled in byte code or native
code. In the latter case, it is not possible to recover.
- functions: there are roughly 140, half of which correspond to the C
functions of the execution library. There you may find mathematical and
comparison operators, functions on integer and floating-point numbers,
functions on character strings, on references and input-output. It should
be noted that a certain number of these declarations are in fact synonyms
for declarations defined in other modules. They are nevertheless declared
here for historical and implementation reasons.