38 lines
1.4 KiB
Plaintext
38 lines
1.4 KiB
Plaintext
= Contributing to the standard library
|
|
|
|
For guidelines about standard library content, see
|
|
link:../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
|
|
link:../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`, and
|
|
`otherlibs/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 that `otherlibs/threads/stdlib.mli` is a symbolic link to
|
|
`stdlib/stdlib.mli`.
|
|
|
|
* Add `$(P)module_name.cmo` to the definition of `OTHERS` in `stdlib/Makefile`.
|
|
|
|
* Add `$(LIB)/$(P)module_name.cmo` to the definition of `LIB_OBJS` in
|
|
`otherlibs/threads/Makefile`.
|
|
|
|
* Add `$(P)module_name` to the definition of `STDLIB_MODULES` in
|
|
`stdlib/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` or `make partialclean`, then `make 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.
|