summaryrefslogtreecommitdiff
path: root/file_formats
Commit message (Collapse)AuthorAgeFilesLines
* Remove configuration options --disable-force-safe-string and ↵Kate2022-02-012-2/+0
| | | | | DEFAULT_STRING=unsafe (#10893) The compiler should behave as previous versions with `force-safe-string` enabled, and reject with an error any explicit setting that would try to deviate from that.
* Shapes: Store shapes in CMT* filesUlysse Gérard2021-11-092-1/+8
| | | | Co-authored-by: Thomas Refis <thomas.refis@gmail.com>
* ability to restart compilation from .cmir-linear IR files Greta Yorsh2020-10-132-0/+2
|
* Save Linear IR before emit (#8939)Greta Yorsh2020-10-072-0/+137
| | | | | | | | | | | * Save IR before emit * Update .depend for linear_format * Test for -save-ir-after command-line option * Address review comments * Add Changes entry
* Cm[ox]_format: document fields that are stored in reverse order.Daniel Bünzli2020-01-312-0/+4
|
* [refactoring] typing/cmi_format: type-annotate {input,output}_value for safetyGabriel Scherer2019-11-071-9/+16
|
* split patterns into "value patterns" and "computation patterns"Gabriel Scherer2019-10-312-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Value patterns match on a value (the result of computation), while computation patterns handle the effects (hint hint) of a computation. The only forms of computation patterns in OCaml today are value patterns and exception patterns (exception p). The sub-pattern `p` of the `lazy p` construction should be a computation pattern, rather than a value pattern. This pull-request does not make this change. Most of the changes in this PR are boilerplate -- it really is a lot of work now to add a new syntactic category to the typed-tree syntax. This boilerplate is fairly automatic and should be easy to review. There is a subtle part to the patch, though: the implementation of the pattern type-checking. It now has to reconstruct the value/computation distinction (absent from the parse-tree), and return values from two different types. Instead of splitting the type-checker in several functions (which risked code duplications), I choose to use a GADT to have the same [type_pat] function return two different types depending on the caller. This is the least invasive way to adapt this part of the codebase, whose inherent complexity is so large (unfortunately) that adding a GADT to the mix barely makes a difference.
* Remove Misc.may_map and similarLeo White2019-05-231-1/+1
|
* Move some middle-end files around (#2281)Mark Shinwell2019-04-017-0/+636
* Various file moves in the middle end: this is the first stage of improving separation between the middle end and backend. * Creation of file_formats/ directory (with associated file moves) to hold the definitions of compilation artifact formats. * Creation of lambda/ directory (with associated file moves) to hold Lambda language definition files, transformation passes and construction passes from Typedtree. * Disable (hopefully temporarily) dynlink, debugger and ocamldoc for the dune build.