For guidelines about standard library content, see ../CONTRIBUTING.md#contributing-to-the-standard-library.
Note: All paths are given relative to the root of the repository.
First, build the compiler. Run ./configure
, then make world.opt
. See
../HACKING.adoc.
To add a new module, you must:
-
Create new
.mli
and.ml
files for the modules, obviously. -
Define the module in
stdlib/stdlib.mli
,stdlib/stdlib.ml
, andotherlibs/threads/stdlib.ml
in the section of the code commented, "MODULE ALIASES". Please maintain the same style as the rest of the code, in particular the alphabetical ordering and whitespace alignment of module aliases. Note thatotherlibs/threads/stdlib.mli
is a symbolic link tostdlib/stdlib.mli
. -
Add
$(P)module_name.cmo
to the definition ofOTHERS
instdlib/Makefile
. -
Add
$(LIB)/$(P)module_name.cmo
to the definition ofLIB_OBJS
inotherlibs/threads/Makefile
. -
Add
$(P)module_name
to the definition ofSTDLIB_MODULES
instdlib/StdlibModules
. Please maintain the alphabetical order. -
Run
make alldepend
to update all the.depend
files. These files are not edited by hand. -
Run
make clean
ormake partialclean
, thenmake world.opt
.
If you are adding multiple modules, follow the steps above and rebuild the compiler after adding each module. If you add multiple modules before rebuilding, the build may fail.