|
Packit |
1f8b6b |
camlp4
|
|
Packit |
1f8b6b |
======
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
Camlp4 was a software system for writing extensible parsers for
|
|
Packit |
1f8b6b |
programming languages. Since 2017, Camlp4 is not actively maintained
|
|
Packit |
1f8b6b |
anymore, and only receives occasional fixes for compatibility with new
|
|
Packit |
1f8b6b |
OCaml versions. Maintainers of Camlp4-using projects are actively
|
|
Packit |
1f8b6b |
encouraged to switch to other systems:
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
- For new projects or actively-moving projects, we recommend adopting
|
|
Packit |
1f8b6b |
ppx attributes and extensions, which is now the preferred way to
|
|
Packit |
1f8b6b |
perform AST transformations on OCaml programs.
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
- For slow-moving projects or users of other Camlp4 features
|
|
Packit |
1f8b6b |
(extensible grammars), switching to the (maintained)
|
|
Packit |
1f8b6b |
[Camlp5](https://github.com/camlp5/camlp5) variant of the
|
|
Packit |
1f8b6b |
preprocessor should be easy.
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
Unless you are interested in taking over maintainance of Camlp4, we
|
|
Packit |
1f8b6b |
prefer not to receive request for new features or changes --
|
|
Packit |
1f8b6b |
contribution efforts should rather go to the ppx ecosystem or
|
|
Packit |
1f8b6b |
Camlp5. Minor patches to improve compatibility with new OCaml versions
|
|
Packit |
1f8b6b |
are welcome.
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
Building from git
|
|
Packit |
1f8b6b |
-----------------
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
Camlp4 branches try to follow OCaml ones. To build with the trunk of
|
|
Packit |
1f8b6b |
OCaml, you need to use the trunk branch of Camlp4. To build for a
|
|
Packit |
1f8b6b |
specific version, for instance 4.02.1, use the 4.02 branch of Camlp4.
|