Skip to content

Flambda 2 patches to the Lambda types #69

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

Closed
wants to merge 75 commits into from

Conversation

lthls
Copy link
Contributor

@lthls lthls commented Jun 30, 2021

The first commit combines several modifications to the Pfield primitive, plus a change to Lswitch structures (that I could split if needed).
The second commit handles the addition of Immutable_unique to Lmbda.mutable_flag, used for extension constructors.

mshinwell and others added 30 commits April 13, 2021 19:26
git-subtree-dir: ocaml
git-subtree-split: ae3e5528f45f084a5f2984d81ecc635ba8c38f31
…b6f1a67704cdec)

Change the default policy to best-fit and space overhead to 100
Ensure that string representations of scopes are shared.
…ops files (still needs .gitignore + way of generating these files)
gretay-js and others added 24 commits May 27, 2021 13:57
Used `replace` instead of `add` on the interfaces Hash table (which is
being used as a set), to avoid duplicate entries. The duplicate entries
lead to enormous `caml_globals_map` values.

Also use `replace` instead of `add` on another hash table usage, not
because it was causing any problems but because it seems like `add`
should be avoided outside unusual situations.
git-subtree-dir: external/memtrace
git-subtree-split: ad4099fd60562dc3e1d9a33812da54491f9dbadc
…caml#30)

Use the same options as in the upstream Makefiles, based on ocaml/Makefile.config
This fixes the missing -ffunction-sections in compilation of C stubs.
We should disable dune behavior of taking C compiler options from
"ocamlc -config" when we move to dune 2.8.
* Add intrinsics for ext_pointer and native_pointer

* Add two_args

* remove XCR

* Add intrinisics for storing and loading int64,int32,nativeint

Fix up names

* Remove "unsafe" from the name of one of the intrinsics

* Address review comments

Use Word_int instead of Word_val for {load,store}_immediate intrinsics

Co-authored-by: Mark Shinwell <mshinwell@gmail.com>
Reduces peak memory usage, which is important when a build system
tries to run many large links in parallel.
* Import the code of ocamlcfg.

* Fix imported code.

* Optionally go through ocamlcfg.

* Merge in the latest CFG version

* Fix compilation warning 18.

* Add copyright header to cfg files.

The head is a copy of the LICENSE file at the root of ocamlcfg library

Co-authored-by: xclerc <xclerc@janestreet.com>
Fix error "integer literal exceeds the range of representable integers
of type nativeint" in the code that runs only on 64-bit targets, but
need to compile on 32-bit target.
- Mutability on field reads
- Tag and size (if known) on field reads
- Tag and size on switch block branches
@mshinwell
Copy link
Collaborator

I was envisaging only trying to upstream the Pfield mutability annotation changes at the present time. Those were needed for multicore, but probably aren't any longer (since there is no longer a read barrier) -- however, they do solve the remaining problems in ocaml/ocaml#9562. As such I think they will likely be acceptable.

However I fear that the remainder of this patch won't be acceptable upstream at the present time, although it looks like a lot less work to submit these changes together. @lthls @stedolan what do you both think?

@mshinwell mshinwell added the flambda2 Prerequisite for, or part of, flambda2 label Jun 30, 2021
@poechsel poechsel closed this Jul 1, 2021
riaqn added a commit to riaqn/flambda-backend that referenced this pull request Feb 23, 2023
c703f5f Incorporate upstream comments into type-variable refactor (oxcaml#121)
362ba23 Constrain curry modes to increase along applications (oxcaml#108)
b1f0cf9 Simplify the extension handling (oxcaml#114)
4fd53a1 Remove pat_mode from typedtree (oxcaml#105)
cf6fcbc Handle attributes on lambdas with locally abstract types (oxcaml#120)
5fa80fe Don't track attributes inside attributes for warning 53 (oxcaml#115)
8a69777 Handle unclosed `[: ... :]` patterns (via `Generic_array` machinery) (oxcaml#117)
b0737f4 Add promote-one Makefile target (oxcaml#118)
c6ad684 Refactoring and fixes around module lookup (oxcaml#107)
b0a6495 Add documentation for global constructor arguments (oxcaml#69)
dd79aec Print `nlocal` in the `-d(raw)lambda` output (oxcaml#112)
8035026 Fix `nlocal` in the generated Lambda for list comprehensions (oxcaml#113)
afbcdf0 Immutable arrays (oxcaml#47)
bfe1490 fix several issues when removing exp_mode (oxcaml#110)
8f46060 Better error message for under-applied functions (oxcaml#74)
27331d8 Consistently use Lmutvar or Lvar in comprehensions (oxcaml#111)
01e965b Skip failing test for now
0131357 Fix test case to use comprehensions_experimental
22a7368 Temporarily disable list comprehensions tests due to locals bug
e08377d Make `comprehensions` into `comprehensions_experimental` for now (oxcaml#109)
947cf89 List and array comprehensions (oxcaml#46)
bd9e051 remove exp_mode from typedtree (oxcaml#100)
a9268d2 Fix misplaced attribute warning when using external parser (and some cleanup) (oxcaml#101)
2b33f24 Refactor toplevel local escape check (oxcaml#104)
ed2aec6 Comment functions exported from TyVarEnv.
87838ba Move new variable creation into TyVarEnv.
a3f60ab Encapsulate functions that work with tyvars
43d83a6 Prevent possibility of forgetting to re-widen
2f3dd34 Encapsulate context when narrowing type env't
d78ff6d Make immediate64 things mode cross (oxcaml#97)
aa25ab9 Fix version number (oxcaml#94)
d01ffa0 Fix .depend file (oxcaml#93)
942f2ab Bootstrap (oxcaml#92)
05f7e38 Check Menhir version (oxcaml#91)
1569b58 Move the CI jobs from 4.12 to 4.14. (oxcaml#90)

git-subtree-dir: ocaml
git-subtree-split: c703f5f
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
flambda2 Prerequisite for, or part of, flambda2
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants