Skip to content

Lazy strengthening #1337

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 25 commits into from
Aug 24, 2023
Merged

Conversation

rleshchinskiy
Copy link
Contributor

@rleshchinskiy rleshchinskiy commented May 1, 2023

This PR adds strengthening as a first-class concept to the module type language. The main motivation is faster module type checking but this also makes the language more expressive, allowing more programs to type.

New syntax

Suppose we have

module type S = sig type t end
module M : S

The actual type of M is stronger than S - it is sig type t = M.t end. The new extension allows this type to be written as S with M (in the literature, S/M is often used). This effectively strengthens all types in S with the information that they are equal to those in M.

Expressivity

Previously, strengthening happened by actually adding information to all types in a module type. This meant that abstract module types couldn’t be strengthened. Consider

module F (Y : sig module type A module X : A end) = Y.X

We now infer the functor (Y : …) -> (Y.A with Y.X) for F where previously, we only could infer functor (Y : …) -> Y.A, thus losing information. See ocaml/ocaml#12204 for more details.

Efficiency

The main benefit of the extension, though, is that it allows us to type check some programs much quicker. Consider the following example.

module type S = sig
  type t
  val x : t 
  <lots of value declarations>
end
module M : S =module F (X : S) =module N = F(M)

To type N, we have to check that the type of M is a subtype of S. With the new extension, this is simple: M gets the type S with M and S with M < S always holds so the check finishes very quickly. Previously, we would infer the (large) type

sig
  type t = M.t
  val x : tend

for M by unfolding S and strengthening it. When checking F(M), we would then match this type against S which requires unfolding S again and then comparing the individual signature items.

Unused warnings

Suppose that x in the above example isn’t actually used anywhere. With this PR, we will indeed issue an unused declaration warning. This wasn’t the case previously as x was (implicitly) used while typing F(M) since were unfolding S.

@rleshchinskiy rleshchinskiy force-pushed the lazy-strengthening branch 2 times, most recently from 2eabfed to b546352 Compare May 1, 2023 15:27
@rleshchinskiy rleshchinskiy force-pushed the lazy-strengthening branch 2 times, most recently from 664d405 to 289eda3 Compare May 4, 2023 16:20
@rleshchinskiy rleshchinskiy marked this pull request as ready for review May 5, 2023 08:33
@mshinwell
Copy link
Collaborator

@rleshchinskiy what's happening with this PR? (please add a description too if it's staying open)

@rleshchinskiy
Copy link
Contributor Author

@rleshchinskiy what's happening with this PR? (please add a description too if it's staying open)

It's waiting for @lpw25 to review it

@ccasin
Copy link
Contributor

ccasin commented Jul 26, 2023

I think I am on the hook to review this now, and having merged unboxed floats I'm ready to do it soon.

@rleshchinskiy I've had a quick look and believe I understand the idea here, but I don't have all the context Leo does. What do you think about writing a little documentation? I don't need a detailed design or anything, but we'll have to write some kind of user-facing documentation about the new module type form anyway, and it'll probably be easier to review if I can read that rather than guess what it will say.

Copy link
Contributor

@ccasin ccasin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I've had a look through. Thanks for the many helpful comments.

I think there are a few issues and have some questions and suggestions - see below - but this looks like it's going to be a nice improvement.

@rleshchinskiy rleshchinskiy force-pushed the lazy-strengthening branch 3 times, most recently from 422ee0f to 640a4ad Compare August 17, 2023 16:22
@rleshchinskiy rleshchinskiy merged commit 9b66e8d into ocaml-flambda:main Aug 24, 2023
rleshchinskiy pushed a commit to rleshchinskiy/ocamlformat that referenced this pull request Aug 24, 2023
rleshchinskiy pushed a commit to rleshchinskiy/ocamlformat that referenced this pull request Aug 24, 2023
Support the syntax introduced in
ocaml-flambda/flambda-backend#1337.

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>
rleshchinskiy pushed a commit to rleshchinskiy/ocamlformat that referenced this pull request Aug 25, 2023
Support the syntax introduced in
ocaml-flambda/flambda-backend#1337.

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>
ccasin pushed a commit to janestreet/ocamlformat that referenced this pull request Aug 25, 2023
* Support explicit strengthening

Support the syntax introduced in
ocaml-flambda/flambda-backend#1337.

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>

* Fix parens with attributes

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>

---------

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>
Co-authored-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>
Ekdohibs pushed a commit to Ekdohibs/flambda-backend that referenced this pull request Aug 31, 2023
This PR adds strengthening as a first-class concept to the module type language. The main motivation is faster module type checking but this also makes the language more expressive, allowing more programs to type.
# New syntax
Suppose we have
```ocaml
module type S = sig type t end
module M : S
```
The actual type of `M` is stronger than `S` - it is `sig type t = M.t end`. The new extension allows this type to be written as `S with M` (in the literature, `S/M` is often used). This effectively strengthens all types in `S` with the information that they are equal to those in `M`.
# Expressivity
Previously, strengthening happened by actually adding information to all types in a module type. This meant that abstract module types couldn’t be strengthened. Consider
```ocaml
module F (Y : sig module type A module X : A end) = Y.X
```
We now infer the `functor (Y : …) -> (Y.A with Y.X)` for `F` where previously, we only could infer `functor (Y : …) -> Y.A`, thus losing information. See ocaml/ocaml#12204 for more details.
# Efficiency
The main benefit of the extension, though, is that it allows us to type check some programs much quicker. Consider the following example.
```ocaml
module type S = sig
  type t
  val x : t 
  <lots of value declarations>
end
module M : S = …
module F (X : S) = …
module N = F(M)
```
To type `N`, we have to check that the type of `M` is a subtype of `S`. With the new extension, this is simple: `M` gets the type `S with M` and `S with M < S` always holds so the check finishes very quickly. Previously, we would infer the (large) type
```ocaml
sig
  type t = M.t
  val x : t
   …
end
```
for `M` by unfolding `S` and strengthening it. When checking `F(M)`, we would then match this type against `S` which requires unfolding `S` again and then comparing the individual signature items.
# Unused warnings
Suppose that `x` in the above example isn’t actually used anywhere. With this PR, we will indeed issue an unused declaration warning. This wasn’t the case previously as `x` was (implicitly) used while typing `F(M)` since were unfolding `S`.

---------

Co-authored-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>
ccasin pushed a commit to janestreet/ocamlformat that referenced this pull request Sep 19, 2023
* Support explicit strengthening

Support the syntax introduced in
ocaml-flambda/flambda-backend#1337.

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>

* Fix parens with attributes

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>

---------

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>
Co-authored-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>
ccasin pushed a commit to janestreet/ocamlformat that referenced this pull request Sep 19, 2023
* Support explicit strengthening

Support the syntax introduced in
ocaml-flambda/flambda-backend#1337.

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>

* Fix parens with attributes

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>

---------

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>
Co-authored-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>
tdelvecchio-jsc pushed a commit to janestreet/ocamlformat that referenced this pull request Sep 20, 2023
* Support explicit strengthening

Support the syntax introduced in
ocaml-flambda/flambda-backend#1337.

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>

* Fix parens with attributes

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>

---------

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>
Co-authored-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>
tdelvecchio-jsc pushed a commit to janestreet/ocamlformat that referenced this pull request Oct 12, 2023
(Note for future rebases: at this stage it is expected that `dune b
@test/passing/runtest` will give errors related to extra
`[@ocaml.curry]`s)

local: support local_ and curry in function types

Note for future rebases: it is expected that `dune b
@test/passing/runtest` will fail at this stage, in my case with
output:

File "test/passing/dune.inc", line 3594, characters 0-205:
3594 | (rule
3595 |  (deps tests/.ocamlformat )
3596 |  (package ocamlformat)
3597 |  (action
3598 |   (with-stdout-to local.ml.stdout
3599 |    (with-stderr-to local.ml.stderr
3600 |      (run %{bin:ocamlformat} --margin-check %{dep:tests/local.ml})))))
Command exited with code 1.

local: support 'fun (local_ x) ... -> '

local: nonlocal/global record field decls

For future reference during rebasing: `dune b @test/passing/runtest`
is not expected to pass on this commit.  Some uses of `local_` are
turned into `[%extension.local]`.

local: return expressions 'fun ... -> local_ ...'

For reference during future rebases: `dune b @test/passing/runtest` is
expected to pass on this commit.

local: apply formatting

For future rebases: `make test` should pass at this stage.  It may be
necessary to run `dune fmt` and `make regtests-promote` (but I checked
`dune b @test/passing/runtest` succeeded first)

Update to ocaml-jst a78975eb57

Autogenerated attributes are now 'extension.foo' instead of 'ocaml.foo'

change module types to export equalities

Signed-off-by: Cameron Wong <cwong@janestreet.com>

Support for "include functor" (#5)

* Initial support for the include_functor extension
* Add test for include functor

Signed-off-by: Chris Casinghino <ccasinghino@janestreet.com>

local: bugfix for punned named arguments with type annotations (#3)

A bug in the previous patch for locals causes ocamlformat to incorrectly
format local arguments which are punned with a label and have a type signature:

    fun ~(local_ x : t) -> ...

by putting an extra invalid pair of parens around (x : t). This patch removes
the parens.

Signed-off-by: Stephen Dolan <sdolan@janestreet.com>

Ensure parentheses are placed around (local_ E) when necessary (#4)

Signed-off-by: Stephen Dolan <sdolan@janestreet.com>

Remove unnecessary parentheses around expressions with trailing [@attrs] (#6)

Signed-off-by: Stephen Dolan <sdolan@janestreet.com>

update parsers and printer for polymorphic parameters (with tests)

Signed-off-by: Chris Casinghino <ccasinghino@janestreet.com>

Support for comprehensions and immutable arrays

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

Update to the improved language extension infrastructure

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

add support for global constructor arguments

Signed-off-by: Zesen Qian <github@riaqn.org>

support for layout annotations on type parameters

Signed-off-by: Chris Casinghino <ccasinghino@janestreet.com>

Address review feedback.

Signed-off-by: Chris Casinghino <ccasinghino@janestreet.com>

Fix a test failure due to misformatted comment

Signed-off-by: Chris Casinghino <ccasinghino@janestreet.com>

Fix a (CI) test failure in help printing due to version mismatch

Signed-off-by: Chris Casinghino <ccasinghino@janestreet.com>

support exclave_ syntax

Signed-off-by: Zesen Qian <github@riaqn.org>

no fail fast (#24)

Signed-off-by: Zesen Qian <github@riaqn.org>

Don't desugar `let _ = local_ x` (#21)

* Don't desugar `let _ = local_ x`

The desugared syntax `let local_ _ = x` is invalid.

Signed-off-by: Jules Aguillon <jules@j3s.fr>

* Restrict `let local_ ...` rewrite even more

This restricts the desugaring of `let x = local_ y` to the cases where
`x` is an identifier or an identifier with a type annotation.

Signed-off-by: Jules Aguillon <jules@j3s.fr>

* Tests: Add a .ref file for local.ml

There are syntax rewrite on locals, it's important not to change the
test input.

* Fix local_ desugaring generating invalid syntax

These two items don't have the same AST and must be recognized:

    let local_ x : string = "hi"
    let (x : string) = local_ "hi"

* Preserve `local_` position when ptyp_poly constraint

These two items don't have the same AST:

    let x : 'a . 'a -> 'a = local_ "hi"
    let local_ x : 'a. 'a -> 'a = "hi"

---------

Signed-off-by: Jules Aguillon <jules@j3s.fr>

better exclave_ formatting (#28)

Signed-off-by: Zesen Qian <github@riaqn.org>

Support unboxed float literals (#25)

* Automatic changes to patch files

This just happened when I hit `dune build`. Don't really know what's
going on.

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Updated the standard parsetree for unboxed literals

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Support unboxed literals

Testing story not complete yet; want advice.

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Make parsetree changes separated

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Checkpoint

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Still not quite working, but done for tonight

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Vendor in jane-syntax into standard

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Separate out Jane Street stuff more

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* More tests, and a bugfix

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

---------

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

Add instructions for how to update ocamlformat (#26)

* Write instructions

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Chris's comments

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Document testing

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Typo

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Follow on from Chris's edits

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Further advice about dune errors

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Comment about `make test`

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

---------

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>
Co-authored-by: Chris Casinghino <ccasinghino@janestreet.com>

Support float# (#27)

* Update parser-standard for float#

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Add support for float#

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Add tests

But this doesn't work. I'm very confused about how to test here.

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Some more type tests

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Test float#

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Forward-proof printing of float#

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Update parser-standard/language_extension

This also removes the differences between ocamlformat's
language_extension and janestreet's. Instead, we now just
call enable_maximal. Seems simpler.

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

---------

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

Check formatting in CI (#29)

* Fix formatting

This required removing some of the "Jane Street extension" markers, as
ocamlformat was moving them to unhelpful places.

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

* Check formatting in CI

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

---------

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

Capture a few notes from our working conventions (#30)

* Capture a few notes from Working Conventions

Merging this will allow me to stub out the section in Working
Conventions.

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

* Chris's suggestions

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

---------

Signed-off-by: Richard Eisenberg <reisenberg@janestreet.com>

Add a mode for erasing erasable jane-syntax (#32)

* Add (untested) support for erasing erasable Jane syntax

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

* Make normalization ignore erasable jane syntax if requested

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

* Add failing test of erasure

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

* Update parser-standard to antalsz/flambda-backend 5b23940cfccd3047

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

* Update parser-standard and location to antalsz/flambda-backend c056f5f2b0082711b596337f270a8eccf06d0b06

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

* Update `--erase-jane-syntax` documentation per review

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

* Documentation for `Erase_jane_syntax`

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

* Only remove erasable `Jane_syntax` attributes from the old AST

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

* Fix formatting

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

---------

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

Add support for float64 layout (#35)

Signed-off-by: Chris Casinghino <ccasinghino@janestreet.com>

Support explicit strengthening (#39)

* Support explicit strengthening

Support the syntax introduced in
ocaml-flambda/flambda-backend#1337.

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>

* Fix parens with attributes

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>

---------

Signed-off-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>
Co-authored-by: Roman Leshchinskiy <rleshchinskiy@janestreet.com>

Update build workflow to OCaml 4.14 (#33)

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

In an if-then with no else, the body should have parens if local_ (#40)

Signed-off-by: Chris Casinghino <ccasinghino@janestreet.com>

Add a mode for rewriting `[@Local]`, `[%local]`, `[@ocaml.global]`, etc. to their keyword forms (`local_`, `global_`, etc.) (#38)

* Add mode to rewrite `[@Local]`, etc., into `local_`

This is available under the option
`--rewrite-old-style-jane-street-local-annotations`

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

* Add tests of rewriting `[@Local]` and fix the normalization check

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

* Update `ocamlformat-help.txt`

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

* Remove export of function that was for debugging

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

---------

Signed-off-by: Antal Spector-Zabusky <antal.b.sz@gmail.com>

Fix bug caused by comments before local_ at the beginning of bindings. (#41)

Signed-off-by: Thomas Del Vecchio <tdelvecchio@janestreet.com>
mshinwell added a commit that referenced this pull request Oct 18, 2023
df70400 flambda-backend: Fix interface differences in Printtyp (#1918)
e7b5ebf flambda-backend: Fix breaking of tail recursion in classic mode (#1915)
cbb72d8 flambda-backend: Improve debuginfo for for-loops (and conditionals) (#1870)
19133b6 flambda-backend: Replace thread save/restore API with switch (#1869)
882b067 flambda-backend: Add test showing how `max_arity` affects function splitting (#1904)
f1f7da4 flambda-backend: Abbreviate module types when printing error messages (#1895)
e4566dd flambda-backend: Add four missing attributes to the `builtin_attrs` table. (#1898)
4bb4c70 flambda-backend: Undo sort changes during snapshot backtrack (#1885)
87c857a flambda-backend: Add a missing check for jane syntax (#1891)
070d57f flambda-backend: Remove mode from Texp_send (#1893)
7d9ef46 flambda-backend: Remove Jkind.of_sort (#1890)
5ad9591 flambda-backend: ocamlformat in Jane-Street only files in typing (#1881)
5e50edf flambda-backend: Remove var_constraint (#1880)
b1962fa flambda-backend: Rename "layout" to "jkind" (#1875)
f74b090 flambda-backend: Rename layouts.ml to jkind.ml (#1886)
cf32778 flambda-backend: Enable ocamlformat for Jane Syntax / language extensions code (#1876)
20b32a0 flambda-backend: Better error when using a float64 library without extension (#1859)
64e883d flambda-backend: Add hint for `#float` (#1864)
ab42aac flambda-backend: Port upstream #12368 about abstract environments (#1759)
bbc5173 flambda-backend: Support for unboxed products in the middle-end and backend (#1433)
6149a5f flambda-backend: Simplify integer comparisons that use "compare" (#1851)
a05adce flambda-backend: Ask user to add `exclave_` instead of `local_` (#1853)
cdd7f6a flambda-backend: Bump magic numbers for 4.14.1-19
96ec26a flambda-backend: Manually applied changes from PR #11782 (#1732)
ea484d0 flambda-backend: Zero alloc annotation: assume a function never returns normally (#1831)
387893c flambda-backend: All-`float#` records (#1769)
c3f9983 flambda-backend: Expose `Pprintast.tyvar` (#1848)
3782152 flambda-backend: Don't allocate a closure unnecessarily (#1836)
a8f6aae flambda-backend: Fix bug in `Clambda_primitives.result_layout`. (#1833)
4b2a6f6 flambda-backend: Add dune target for `dumpobj` (#1773)
2089ec0 flambda-backend: tmc: Remove close-on-apply flag when producing a call in non-tail position (#1827)
9f304d8 flambda-backend: Adjust the location on `as` pattern vars for better errors/warnings (#1835)
b9cf106 flambda-backend: Zero alloc: assume that works with inlining - propagate via Scoped_location (#1762)
263fa26 flambda-backend: Make -extension immutable_arrays on by default (#1829)
9cca7d2 flambda-backend: Support mode crossing at identifiers (#1811)
7942fed flambda-backend: Finish moving `any` to `layouts_beta` (#1821)
44cd2fc flambda-backend: Fix uncaught Unify exception in filter_arrow (#1820)
3552db6 flambda-backend: Factor out duplicated code in `cmm_helpers` (#1822)
caf938f flambda-backend: Fix AFL test in flambda2 (#1824)
ddd765a flambda-backend: Move `float64` to `layouts_beta` (#1812)
3b579d7 flambda-backend: Fixed ISO C99 warning introduced in #1705 (#1787)
df927f0 flambda-backend: Add a test for an interaction between omitted mli and overeager heap allocation of argument (#1816)
92ddf14 flambda-backend: Fix incorrect sort assumption in lambda for `bop_exp`s in letops (#1793)
1a91f16 flambda-backend: Merging of Debuginfo.t across CSEd occurrences (#1767)
f7cd48f flambda-backend: Backport #10364 (#1788)
5740ebd flambda-backend: Enable warnings-as-errors (#1796)
374a2fb flambda-backend: Build Jane Syntax with upstream OCaml in CI (#1780)
1d6471f flambda-backend: A more consistent first-to-last order for `-w53` (unused attributes) (#1658)
6210ee4 flambda-backend: Make sure the Jane syntax extensions don't depend on our compiler changes (#1777)
963bfbc flambda-backend: Add [Obj.uniquely_reachable_words] (#1705)
4cd24bd flambda-backend: mode crossing of LHS of arrow types by coercing (#1701)
910914d flambda-backend: `Pprintast` prints Jane syntax unconditionally (#1770)
46dad5b flambda-backend: Regulate access to [Language_extension] from within Jane Syntax (#1768)
a0f8d0c flambda-backend: Lazy strengthening (#1337)
85b5c54 flambda-backend: Small improvement to layout inference for mutually recursive type decl parameters (#1766)
0c57382 flambda-backend: Syntactic function arity parsing (#1548)
e8edd13 flambda-backend: Fix modes annotation ghost location (#1761)
a669c00 flambda-backend: Refactor Debuginfo.t (#1724)
91ab70a flambda-backend: Basic uniqueness extension (#1552)
5be3cb8 flambda-backend: add the `%get_header` primitive (#1539)
0006b3e flambda-backend: Fix arrow printing when closing over unknown mode (#1744)
226d6ac flambda-backend: Add some checks that the minor GC does not recurse (#1743)
f3e7c0a flambda-backend: Bump magic numbers for 4.14.1-18
30cbf0a flambda-backend: Add `Jane_syntax` `Pprintast` tests (#1727)
1269571 flambda-backend: Expose a couple more functions from `Pprintast` (#1731)
159adbe flambda-backend: Propagate the label names of optional parameters (#1723)
4f70f0b flambda-backend: Further refine our debugging infrastructure (#1650)
a440f6d flambda-backend: Add mode to `int_as_pointer` (#1648)
0cc5356 flambda-backend: Update `jane-street-merlin-setup.sh` for this repo (#1663)
71879dc flambda-backend: Add code path to read .cmi without adding to environment  (#1674)
5394352 flambda-backend: Only substitute once in `Env.read_sign_of_cmi` (#1670)
2a7f015 flambda-backend: Pass `-f` when `rm`ing file during install (#1700)
ddaf752 flambda-backend: Set location on topmost Jane Syntax attribute (#1696)
5205836 flambda-backend: Support layout annotations (#1417)
455887f flambda-backend: Simplifications following PR #1667 (#1668)
6c0a9e8 flambda-backend: Don't add a module to the environment when saving it (#1667)
562eb7b flambda-backend: Flambda 2 changes for DWARF variables (#1678)
f1352ed flambda-backend: Add modes on parameters and a framework for attributes on them (#1257)
3d23db5 flambda-backend: 128-bit vector primitive types (#1568)
06a3bdc flambda-backend: Bump magic numbers for 4.14.1-16 (#1657)
37c5ea0 flambda-backend: Remove/comment new uses of `not_expecting` in the parser (#1517)
8bbe82d flambda-backend: Float_u stdlib module (#1572)
f4075a4 flambda-backend: Add a `float64` layout and `float#` type. (#1528)
43f02af flambda-backend: Test fix in #1457 (#1458)
c896a97 flambda-backend: Swap simd flag to language extension (#1569)
e6c44d4 flambda-backend: mkuplus and mkuminus must preserve attributes (#1575)
906cfc5 flambda-backend: Make environment lazy in preparation for simd extension (#1570)
a222bfc flambda-backend: pattern match local iarray gives local elements(#1574)
d3c1413 flambda-backend: 128-bit SIMD vector primitive type (#1499)
bcc0a09 flambda-backend: exclave_ implies strictly local (#1554)
e3deedb flambda-backend: Factor out kernel of `Language_extension` used by Jane Syntax (#1509)
eea5150 flambda-backend: Fix incorrect sort in transl (#1547)
d2b44d8 flambda-backend: A + sign usually means Positive (#1536)
d1644f9 flambda-backend: Restore #1455: Communicate layouts to middle end (#1511)
5e6524d flambda-backend: Tail-calling local-returning functions should make the current function local-returning as well (#1498)
fa71f6b flambda-backend: Increase local stack limit (#1513)
c1eecf6 flambda-backend: Generalize `deep_occur` to `deep_occur_list` (#1503)
1a17a8b flambda-backend: Bump magic numbers for 4.14.1-15
a3d1953 flambda-backend: Fix Translcore to look for allocations in exclaves (#1495)
0ea8b04 flambda-backend: Revert "Communicate frontend layouts to lambda" (#1507)
383e158 flambda-backend: Disable `sockets.ml` on macOS (#1505)
3b73a8d flambda-backend: Communicate frontend layouts to lambda (#1455)
f94a067 flambda-backend: Allow `make debug` with dune-based build (#1480)
1880d42 flambda-backend: Disable `beat.ml` on macOS (#1496)
4b2e620 flambda-backend: Check that layout variables aren't unconstrained when writing `cmi`s (#1474)
284889c flambda-backend: Add flambda2 -O3 and -Oclassic CI jobs, third attempt (#1493)
ef161b9 flambda-backend: Prepare translation of primitives in lambda_to_flambda for unboxed products (#1465)
bc1d15a flambda-backend: Remove ast_desc and ast_info from jane-syntax (#1488)
be57ed6 flambda-backend: Local immutable arrays (#1420)
3a5d06a flambda-backend: Unboxed literal jane syntax (#1487)
cc61a3a flambda-backend: Ensure that all [val]s are [value]s. (#1481)
aba14c2 flambda-backend: Check for value in polymorphic variant argument (#1482)
0a20dfb flambda-backend: Jane-syntax support for extension constructors (#1479)
697519a flambda-backend: Remove `nonlocal_` modality (#1452)
0bf6a17 flambda-backend: Use exported modules in Jane_syntax_parsing (#1477)
aa6d00f flambda-backend: Flambda1: Simplify `Region (Exclave e)` to `e` (#1473)
e472be0 flambda-backend: Remove the `type float# = float` hack (#1478)
ebe702d flambda-backend: Fix a typo in language extension parsing/serializing (#1456)
40f0e8c flambda-backend: Lex unboxed float and int literals as single lexemes (#1469)
22f170a flambda-backend: Unboxed float type parsing in `layouts_alpha` (#1467)
740de2a flambda-backend: Revert "Add flambda2 -Oclassic and -O3 CI jobs" (#1462)
6ec73ed flambda-backend: Zero alloc remove annotation from stdlib (#1434)
f416497 flambda-backend: Don't pass (unnecessary?) -L flags to `gcc -shared` from opttoplevel (#1363)
416a714 flambda-backend: sync dynlink/dune compiler flags (#1461)
d3e555f flambda-backend: Add flambda2 -Oclassic and -O3 CI jobs (#1459)
e5eca61 flambda-backend: Add documentation for testing targets to HACKING docs (#1436)
f1835c4 flambda-backend: New extensions API, supporting maturity levels (#1454)
1deb5af flambda-backend: Add Make/Dune target for debug printers (#1289)
324f32e flambda-backend: Bugfix for application mode crossing (#1451)
7ac42ab flambda-backend: Don't substitute into exclaves in `simplif.ml` (#1448)
a03de20 flambda-backend: Parse unboxed literals, treating them as boxed (#1437)
5283047 flambda-backend: support native `exclave_` syntax (#1338)
a1fe4cf flambda-backend: Default layout variables in gadt constructors (#1424)
f4c96ff flambda-backend: Fix programmatically enabling and disabling the same layouts extension (#1446)
cc58003 flambda-backend: Erasability namespace for Jane Syntax attributes/extensions (#1421)
ae9099a flambda-backend: Use layout histories to produce better errors (#1340)
385ada9 flambda-backend: Fix swapgil test C warnings (#1430)
ff9a0d1 flambda-backend: Bugfix for caml_switch_runtime_locking_scheme (#1429)
df41dae flambda-backend: Remove layout variables from [val]s (#1423)
2e1a05a flambda-backend: Bugfix for GC backlog tracking (#1387)
8bc3fd7 flambda-backend: Allow more function argument / returns to be non-value (#1422)
f2a5b93 flambda-backend: Convert Jane Syntax to use attributes for many syntactic categories (#1412)
1e2d5c5 flambda-backend: zero alloc: warning 198 about assume (#1409)
9270fee flambda-backend: Allow non-value function args and returns (#1405)
5319dfe flambda-backend: Bump magic numbers for 4.14.1-13
31fb926 flambda-backend: Fix issue with layout any and Tstr_eval in the native toplevel (#1402)
dff4346 flambda-backend: Extend caml_locking_scheme with callbacks for thread start/stop (#1411)
674a335 flambda-backend: Introduce an API to swap the runtime lock for a different lock. (#1365)
1ce68db flambda-backend: Modular syntax for types (#1401)
9f55ade flambda-backend: Missing changes around the renaming to "Jane syntax" (#1400)
cf8eaa8 flambda-backend: Move `include functor` over to the modular extensions machinery (#1377)
da4e02d flambda-backend: Statically enabled probes (#1388)
093e638 flambda-backend: Bump magic numbers for 4.14.1-12
e7e0bf1 flambda-backend: Move layout from Type_abstract to type_declaration (#1384)
9c53ca7 flambda-backend: Rename `tests/jst-modular-extensions` to `tests/jane-modular-syntax` (#1397)
6881566 flambda-backend: Rename "modular extensions" to "Jane syntax"/"modular syntax" (#1395)
bfec906 flambda-backend: Add autocompletion for test-one/promote-one (#1393)
9fc4aac flambda-backend: Fix a bug that -no-rebuild introduced in test-one (#1394)
301b683 flambda-backend: Add -no-rebuild options for test-one and promote-one (#1391)
1e090ac flambda-backend: zero alloc check: ignore functors and entry functions (#1370)
9d3b5a1 flambda-backend: Provide an AST-like view of modular extension extension node names (#1362)
7a92219 flambda-backend: Ltail for lambda and use in dissect_letrec (#1313)
7a7e639 flambda-backend: Add emacs hacking commands (#1372)
8dd6eae flambda-backend: Remove closure from Array.for_all (#1354)
a4c4d03 flambda-backend: Fix ghost locations for modular extensions (#1348)
ca5a008 flambda-backend: Bump magic numbers for 4.14.1-10 (#1360)
a24d2ec flambda-backend: Inline a variable to save 2%+ in allocations (#1353)
96f8f00 flambda-backend: Probe name too long: warning instead of error (#1352)
cd34685 flambda-backend: Typedtree module unpacks: Incorporate upstream feedback (#1288)
c0482d3 flambda-backend: Add dedicated printline-debugging support (#1308)
7b295b0 flambda-backend: Fix try region closure for "match with exception" under Flambda 2 (#1339)
db6552a flambda-backend: Revert ocaml/toplevel/ changes that are duplicative
132f8ba flambda-backend: Revert ocaml/driver/ changes that are duplicative
3d7f37f flambda-backend: Merge ocaml-jst
4646c2e flambda-backend: Merge ocaml-jst
e62f2b1 flambda-backend: Bump magic numbers for 4.14.1-8
f617a06 flambda-backend: Revert ocaml/toplevel/ changes that are duplicative
79f91e9 flambda-backend: Revert ocaml/driver/ changes that are duplicative

git-subtree-dir: ocaml
git-subtree-split: df70400
mshinwell added a commit that referenced this pull request Oct 31, 2023
7da89ee flambda-backend: Error message: add hint for unboxed types (#1960)
559870d flambda-backend: More precise layout for array patterns (#1968)
097204a flambda-backend: Fix boolean functions tail call position bug (#1957)
8bd0b80 flambda-backend: Fix result layout of combined applications (#1963)
91d3de7 flambda-backend: Change error message for non-value class lets (#1953)
27e58ec flambda-backend: Handle empty cases (fixes bug from #1899) (#1955)
aafeeda flambda-backend: Zero alloc: add payload "opt" and "-zero-alloc-check {default|all|none|opt}" flag (#1936)
e65faae flambda-backend: Make `assert false` behave as local_ or not, depending on what's better (+ 2 bugfixes) (#1899)
0706cec flambda-backend: Install simd.h with other runtime headers (#1935)
82364c9 flambda-backend: Allow parameter modes to be relaxed in type_argument (#1756)
cb9fa49 flambda-backend: Add missing iarrayLabels module from stdlib dune file (#1930)
40ddf54 flambda-backend: Runtime helpers for 128-bit vectors (#1897)
a336b70 flambda-backend: Update magic numbers for 4.14.1-22 (and add tools/bump_magic_numbers.sh)
a1239f0 flambda-backend: 128-bit Array Load/Store (#1682)
c3297fc flambda-backend: Fix uncaught exception for non-representable type statements (#1928)
65af444 flambda-backend: Add `Is_stack` for C-stub  (#1914)
df70400 flambda-backend: Fix interface differences in Printtyp (#1918)
e7b5ebf flambda-backend: Fix breaking of tail recursion in classic mode (#1915)
cbb72d8 flambda-backend: Improve debuginfo for for-loops (and conditionals) (#1870)
19133b6 flambda-backend: Replace thread save/restore API with switch (#1869)
882b067 flambda-backend: Add test showing how `max_arity` affects function splitting (#1904)
f1f7da4 flambda-backend: Abbreviate module types when printing error messages (#1895)
e4566dd flambda-backend: Add four missing attributes to the `builtin_attrs` table. (#1898)
4bb4c70 flambda-backend: Undo sort changes during snapshot backtrack (#1885)
87c857a flambda-backend: Add a missing check for jane syntax (#1891)
070d57f flambda-backend: Remove mode from Texp_send (#1893)
7d9ef46 flambda-backend: Remove Jkind.of_sort (#1890)
5ad9591 flambda-backend: ocamlformat in Jane-Street only files in typing (#1881)
5e50edf flambda-backend: Remove var_constraint (#1880)
b1962fa flambda-backend: Rename "layout" to "jkind" (#1875)
f74b090 flambda-backend: Rename layouts.ml to jkind.ml (#1886)
cf32778 flambda-backend: Enable ocamlformat for Jane Syntax / language extensions code (#1876)
20b32a0 flambda-backend: Better error when using a float64 library without extension (#1859)
64e883d flambda-backend: Add hint for `#float` (#1864)
ab42aac flambda-backend: Port upstream #12368 about abstract environments (#1759)
bbc5173 flambda-backend: Support for unboxed products in the middle-end and backend (#1433)
6149a5f flambda-backend: Simplify integer comparisons that use "compare" (#1851)
a05adce flambda-backend: Ask user to add `exclave_` instead of `local_` (#1853)
cdd7f6a flambda-backend: Bump magic numbers for 4.14.1-19
96ec26a flambda-backend: Manually applied changes from PR #11782 (#1732)
ea484d0 flambda-backend: Zero alloc annotation: assume a function never returns normally (#1831)
387893c flambda-backend: All-`float#` records (#1769)
c3f9983 flambda-backend: Expose `Pprintast.tyvar` (#1848)
3782152 flambda-backend: Don't allocate a closure unnecessarily (#1836)
a8f6aae flambda-backend: Fix bug in `Clambda_primitives.result_layout`. (#1833)
4b2a6f6 flambda-backend: Add dune target for `dumpobj` (#1773)
2089ec0 flambda-backend: tmc: Remove close-on-apply flag when producing a call in non-tail position (#1827)
9f304d8 flambda-backend: Adjust the location on `as` pattern vars for better errors/warnings (#1835)
b9cf106 flambda-backend: Zero alloc: assume that works with inlining - propagate via Scoped_location (#1762)
263fa26 flambda-backend: Make -extension immutable_arrays on by default (#1829)
9cca7d2 flambda-backend: Support mode crossing at identifiers (#1811)
7942fed flambda-backend: Finish moving `any` to `layouts_beta` (#1821)
44cd2fc flambda-backend: Fix uncaught Unify exception in filter_arrow (#1820)
3552db6 flambda-backend: Factor out duplicated code in `cmm_helpers` (#1822)
caf938f flambda-backend: Fix AFL test in flambda2 (#1824)
ddd765a flambda-backend: Move `float64` to `layouts_beta` (#1812)
3b579d7 flambda-backend: Fixed ISO C99 warning introduced in #1705 (#1787)
df927f0 flambda-backend: Add a test for an interaction between omitted mli and overeager heap allocation of argument (#1816)
92ddf14 flambda-backend: Fix incorrect sort assumption in lambda for `bop_exp`s in letops (#1793)
1a91f16 flambda-backend: Merging of Debuginfo.t across CSEd occurrences (#1767)
f7cd48f flambda-backend: Backport #10364 (#1788)
5740ebd flambda-backend: Enable warnings-as-errors (#1796)
374a2fb flambda-backend: Build Jane Syntax with upstream OCaml in CI (#1780)
1d6471f flambda-backend: A more consistent first-to-last order for `-w53` (unused attributes) (#1658)
6210ee4 flambda-backend: Make sure the Jane syntax extensions don't depend on our compiler changes (#1777)
963bfbc flambda-backend: Add [Obj.uniquely_reachable_words] (#1705)
4cd24bd flambda-backend: mode crossing of LHS of arrow types by coercing (#1701)
910914d flambda-backend: `Pprintast` prints Jane syntax unconditionally (#1770)
46dad5b flambda-backend: Regulate access to [Language_extension] from within Jane Syntax (#1768)
a0f8d0c flambda-backend: Lazy strengthening (#1337)
85b5c54 flambda-backend: Small improvement to layout inference for mutually recursive type decl parameters (#1766)
0c57382 flambda-backend: Syntactic function arity parsing (#1548)
e8edd13 flambda-backend: Fix modes annotation ghost location (#1761)
a669c00 flambda-backend: Refactor Debuginfo.t (#1724)
91ab70a flambda-backend: Basic uniqueness extension (#1552)
5be3cb8 flambda-backend: add the `%get_header` primitive (#1539)
0006b3e flambda-backend: Fix arrow printing when closing over unknown mode (#1744)
226d6ac flambda-backend: Add some checks that the minor GC does not recurse (#1743)
f3e7c0a flambda-backend: Bump magic numbers for 4.14.1-18
30cbf0a flambda-backend: Add `Jane_syntax` `Pprintast` tests (#1727)
1269571 flambda-backend: Expose a couple more functions from `Pprintast` (#1731)
159adbe flambda-backend: Propagate the label names of optional parameters (#1723)
4f70f0b flambda-backend: Further refine our debugging infrastructure (#1650)
a440f6d flambda-backend: Add mode to `int_as_pointer` (#1648)
0cc5356 flambda-backend: Update `jane-street-merlin-setup.sh` for this repo (#1663)
71879dc flambda-backend: Add code path to read .cmi without adding to environment  (#1674)
5394352 flambda-backend: Only substitute once in `Env.read_sign_of_cmi` (#1670)
2a7f015 flambda-backend: Pass `-f` when `rm`ing file during install (#1700)
ddaf752 flambda-backend: Set location on topmost Jane Syntax attribute (#1696)
5205836 flambda-backend: Support layout annotations (#1417)
455887f flambda-backend: Simplifications following PR #1667 (#1668)
6c0a9e8 flambda-backend: Don't add a module to the environment when saving it (#1667)
562eb7b flambda-backend: Flambda 2 changes for DWARF variables (#1678)
f1352ed flambda-backend: Add modes on parameters and a framework for attributes on them (#1257)
3d23db5 flambda-backend: 128-bit vector primitive types (#1568)
06a3bdc flambda-backend: Bump magic numbers for 4.14.1-16 (#1657)
37c5ea0 flambda-backend: Remove/comment new uses of `not_expecting` in the parser (#1517)
8bbe82d flambda-backend: Float_u stdlib module (#1572)
f4075a4 flambda-backend: Add a `float64` layout and `float#` type. (#1528)
43f02af flambda-backend: Test fix in #1457 (#1458)
c896a97 flambda-backend: Swap simd flag to language extension (#1569)
e6c44d4 flambda-backend: mkuplus and mkuminus must preserve attributes (#1575)
906cfc5 flambda-backend: Make environment lazy in preparation for simd extension (#1570)
a222bfc flambda-backend: pattern match local iarray gives local elements(#1574)
d3c1413 flambda-backend: 128-bit SIMD vector primitive type (#1499)
bcc0a09 flambda-backend: exclave_ implies strictly local (#1554)
e3deedb flambda-backend: Factor out kernel of `Language_extension` used by Jane Syntax (#1509)
eea5150 flambda-backend: Fix incorrect sort in transl (#1547)
d2b44d8 flambda-backend: A + sign usually means Positive (#1536)
d1644f9 flambda-backend: Restore #1455: Communicate layouts to middle end (#1511)
5e6524d flambda-backend: Tail-calling local-returning functions should make the current function local-returning as well (#1498)
fa71f6b flambda-backend: Increase local stack limit (#1513)
c1eecf6 flambda-backend: Generalize `deep_occur` to `deep_occur_list` (#1503)
1a17a8b flambda-backend: Bump magic numbers for 4.14.1-15
a3d1953 flambda-backend: Fix Translcore to look for allocations in exclaves (#1495)
0ea8b04 flambda-backend: Revert "Communicate frontend layouts to lambda" (#1507)
383e158 flambda-backend: Disable `sockets.ml` on macOS (#1505)
3b73a8d flambda-backend: Communicate frontend layouts to lambda (#1455)
f94a067 flambda-backend: Allow `make debug` with dune-based build (#1480)
1880d42 flambda-backend: Disable `beat.ml` on macOS (#1496)
4b2e620 flambda-backend: Check that layout variables aren't unconstrained when writing `cmi`s (#1474)
284889c flambda-backend: Add flambda2 -O3 and -Oclassic CI jobs, third attempt (#1493)
ef161b9 flambda-backend: Prepare translation of primitives in lambda_to_flambda for unboxed products (#1465)
bc1d15a flambda-backend: Remove ast_desc and ast_info from jane-syntax (#1488)
be57ed6 flambda-backend: Local immutable arrays (#1420)
3a5d06a flambda-backend: Unboxed literal jane syntax (#1487)
cc61a3a flambda-backend: Ensure that all [val]s are [value]s. (#1481)
aba14c2 flambda-backend: Check for value in polymorphic variant argument (#1482)
0a20dfb flambda-backend: Jane-syntax support for extension constructors (#1479)
697519a flambda-backend: Remove `nonlocal_` modality (#1452)
0bf6a17 flambda-backend: Use exported modules in Jane_syntax_parsing (#1477)
aa6d00f flambda-backend: Flambda1: Simplify `Region (Exclave e)` to `e` (#1473)
e472be0 flambda-backend: Remove the `type float# = float` hack (#1478)
ebe702d flambda-backend: Fix a typo in language extension parsing/serializing (#1456)
40f0e8c flambda-backend: Lex unboxed float and int literals as single lexemes (#1469)
22f170a flambda-backend: Unboxed float type parsing in `layouts_alpha` (#1467)
740de2a flambda-backend: Revert "Add flambda2 -Oclassic and -O3 CI jobs" (#1462)
6ec73ed flambda-backend: Zero alloc remove annotation from stdlib (#1434)
f416497 flambda-backend: Don't pass (unnecessary?) -L flags to `gcc -shared` from opttoplevel (#1363)
416a714 flambda-backend: sync dynlink/dune compiler flags (#1461)
d3e555f flambda-backend: Add flambda2 -Oclassic and -O3 CI jobs (#1459)
e5eca61 flambda-backend: Add documentation for testing targets to HACKING docs (#1436)
f1835c4 flambda-backend: New extensions API, supporting maturity levels (#1454)
1deb5af flambda-backend: Add Make/Dune target for debug printers (#1289)
324f32e flambda-backend: Bugfix for application mode crossing (#1451)
7ac42ab flambda-backend: Don't substitute into exclaves in `simplif.ml` (#1448)
a03de20 flambda-backend: Parse unboxed literals, treating them as boxed (#1437)
5283047 flambda-backend: support native `exclave_` syntax (#1338)
a1fe4cf flambda-backend: Default layout variables in gadt constructors (#1424)
f4c96ff flambda-backend: Fix programmatically enabling and disabling the same layouts extension (#1446)
cc58003 flambda-backend: Erasability namespace for Jane Syntax attributes/extensions (#1421)
ae9099a flambda-backend: Use layout histories to produce better errors (#1340)
385ada9 flambda-backend: Fix swapgil test C warnings (#1430)
ff9a0d1 flambda-backend: Bugfix for caml_switch_runtime_locking_scheme (#1429)
df41dae flambda-backend: Remove layout variables from [val]s (#1423)
2e1a05a flambda-backend: Bugfix for GC backlog tracking (#1387)
8bc3fd7 flambda-backend: Allow more function argument / returns to be non-value (#1422)
f2a5b93 flambda-backend: Convert Jane Syntax to use attributes for many syntactic categories (#1412)
1e2d5c5 flambda-backend: zero alloc: warning 198 about assume (#1409)
9270fee flambda-backend: Allow non-value function args and returns (#1405)
5319dfe flambda-backend: Bump magic numbers for 4.14.1-13
31fb926 flambda-backend: Fix issue with layout any and Tstr_eval in the native toplevel (#1402)
dff4346 flambda-backend: Extend caml_locking_scheme with callbacks for thread start/stop (#1411)
674a335 flambda-backend: Introduce an API to swap the runtime lock for a different lock. (#1365)
1ce68db flambda-backend: Modular syntax for types (#1401)
9f55ade flambda-backend: Missing changes around the renaming to "Jane syntax" (#1400)
cf8eaa8 flambda-backend: Move `include functor` over to the modular extensions machinery (#1377)
da4e02d flambda-backend: Statically enabled probes (#1388)
093e638 flambda-backend: Bump magic numbers for 4.14.1-12
e7e0bf1 flambda-backend: Move layout from Type_abstract to type_declaration (#1384)
9c53ca7 flambda-backend: Rename `tests/jst-modular-extensions` to `tests/jane-modular-syntax` (#1397)
6881566 flambda-backend: Rename "modular extensions" to "Jane syntax"/"modular syntax" (#1395)
bfec906 flambda-backend: Add autocompletion for test-one/promote-one (#1393)
9fc4aac flambda-backend: Fix a bug that -no-rebuild introduced in test-one (#1394)
301b683 flambda-backend: Add -no-rebuild options for test-one and promote-one (#1391)
1e090ac flambda-backend: zero alloc check: ignore functors and entry functions (#1370)
9d3b5a1 flambda-backend: Provide an AST-like view of modular extension extension node names (#1362)
7a92219 flambda-backend: Ltail for lambda and use in dissect_letrec (#1313)
7a7e639 flambda-backend: Add emacs hacking commands (#1372)
8dd6eae flambda-backend: Remove closure from Array.for_all (#1354)
a4c4d03 flambda-backend: Fix ghost locations for modular extensions (#1348)
ca5a008 flambda-backend: Bump magic numbers for 4.14.1-10 (#1360)
a24d2ec flambda-backend: Inline a variable to save 2%+ in allocations (#1353)
96f8f00 flambda-backend: Probe name too long: warning instead of error (#1352)
cd34685 flambda-backend: Typedtree module unpacks: Incorporate upstream feedback (#1288)
c0482d3 flambda-backend: Add dedicated printline-debugging support (#1308)
7b295b0 flambda-backend: Fix try region closure for "match with exception" under Flambda 2 (#1339)
db6552a flambda-backend: Revert ocaml/toplevel/ changes that are duplicative
132f8ba flambda-backend: Revert ocaml/driver/ changes that are duplicative
3d7f37f flambda-backend: Merge ocaml-jst
4646c2e flambda-backend: Merge ocaml-jst
e62f2b1 flambda-backend: Bump magic numbers for 4.14.1-8
f617a06 flambda-backend: Revert ocaml/toplevel/ changes that are duplicative
79f91e9 flambda-backend: Revert ocaml/driver/ changes that are duplicative

git-subtree-dir: ocaml
git-subtree-split: 7da89ee
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants