Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Remove arity-interrupting elaboration of module unpacks (#12117) | Nick Roberts | 2023-04-05 | 1 | -19/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add interesting first-class module typing tests Some of these tests' error messages change in this PR. Some of them failed at various points when working on this PR. * Remove elaboration of module unpacks * Remove dead code There are two pieces of now-dead code we can remove - A way of suppressing unused module warnings in `when` guards when the modules were introduced via module unpackings - A way of ensuring that first-class module unpacks are pushed under optional defaulting * Add a comment for (module _) patterns * Refactor to remove `type_unpacks` This is a refactor to avoid the need to wrap typechecking the extent of a module unpack in the `type_unpacks` function. Now you call `add_module_variables` to add the (typechecked) module bindings to the environment before calling `type_expect` on the extent; this is more similar to how we add variable bindings to the environment. * Rename `to_unpack` to `module_variable` This makes the similarity between `pattern_variable` and unpacked module variables more apparent. The code is already parallel; this change makes the names more parallel, too. * Check escape via let defs, not just bound vars Stick closer to the old behavior by checking type escape via `E1` in `let P = E1 in E2`. This patch previously just checked via the variables bound in `P`. It's closer to the old implementation to check `E1`. | ||||
* | Add Misc.print_see_manual for easier printing of "see manual section X.Y.Z" ↵ | Stefan Muenzel | 2023-03-22 | 1 | -3/+3 |
| | | | | (#12125) | ||||
* | Stop filtering out predefined identifiers from cu_required_globals | Sébastien Hinderer | 2023-03-17 | 1 | -2/+2 |
| | | | | | | Now that it is guaranteed that the cu_required_globalbs field of compilation units does not contain any predefined symbol, it becomes possible to get rid of the code that was used to filter them out. | ||||
* | Do not add predefined identifiers to the set of required globals | Sébastien Hinderer | 2023-03-17 | 1 | -1/+2 |
| | | | | This needs to be done both in lambda/translmod and in bytecomp/symtable. | ||||
* | Remove `Lev_module_definition` | Nick Roberts | 2023-03-13 | 5 | -35/+10 |
| | |||||
* | Restrict local function optimisation (#11383) | Vincent Laviron | 2023-03-13 | 1 | -4/+21 |
| | |||||
* | typo fix | Gabriel Scherer | 2023-03-05 | 1 | -1/+1 |
| | |||||
* | matching.ml: explain the compilation strategy for switches on constructors | Gabriel Scherer | 2023-03-05 | 1 | -9/+50 |
| | |||||
* | Merge pull request #12004 from ccasin/locally-abstract-attrs | Gabriel Scherer | 2023-02-12 | 1 | -1/+13 |
|\ | | | | | Handle attributes on lambdas with locally abstract types | ||||
| * | Handle attributes on lambdas with locally abstract types | Chris Casinghino | 2023-02-10 | 1 | -1/+13 |
| | | |||||
* | | Add syntax for generative functor application (#11984) | Richard Eisenberg | 2023-02-12 | 1 | -12/+18 |
|/ | | | | | | | | | | | | | | Previously, writing [F ()] was the same as writing [F (struct end)], even though the latter looks like the use of an applicative functor, not a generative one. This commit, originally written by Frédéric Bour <fred@tarides.com>, adds new syntax to our AST to represent generative functor application and propagates this change throughout the compiler. In addition, it adds a new warning, 73, to report when a user has written [F (struct end)] but should now update to [F ()]. Co-authored-by: Frédéric Bour <fred@tarides.com> | ||||
* | Fix code duplication in pattern matching of polymorphic variants (#11893) | Vincent Laviron | 2023-01-19 | 1 | -2/+20 |
| | |||||
* | Optimise "include struct ... end" in more cases (#11134) | Stephen Dolan | 2023-01-13 | 1 | -8/+19 |
| | |||||
* | Ensure push_defaults can push past module patterns | Stephen Dolan | 2022-11-14 | 1 | -0/+2 |
| | |||||
* | Encode extra types within path | Hyunggyu Jang | 2022-11-11 | 1 | -1/+1 |
| | | | | | | | | Reflect reviews Reflect review Pacify hygine | ||||
* | Fixing typos (#11705) | Fourchaux | 2022-11-07 | 1 | -5/+5 |
| | | | * Fixing typos | ||||
* | Merge pull request #11587 from lthls/poly-variant-pointer-comparison | Gabriel Scherer | 2022-10-04 | 1 | -3/+8 |
|\ | | | | | Stop using integer comparison on potential pointers | ||||
| * | Review | Vincent Laviron | 2022-10-02 | 1 | -9/+8 |
| | | |||||
| * | Stop using integer comparison on potential pointers | Vincent Laviron | 2022-09-30 | 1 | -2/+8 |
| | | |||||
* | | Manual chapters on parallelism and memory model (#11280) | KC Sivaramakrishnan | 2022-10-04 | 1 | -1/+1 |
|/ | | | Add manual chapters on parallelism and memory model | ||||
* | lambda/switch.ml: fix typo | Ikko Ashimine | 2022-08-24 | 1 | -1/+1 |
| | | | paramter -> parameter | ||||
* | Improve the location reported by parenthesized assertions (#10852) | Fabian | 2022-07-25 | 1 | -6/+5 |
| | | | | | Extend the typedtree with a location field for assertions, which is taken from the location stack of the parsetree. | ||||
* | lambda/switch.ml: document some internal types | Gabriel Scherer | 2022-07-21 | 1 | -5/+69 |
| | |||||
* | lambda/switch.ml: documentation comments | Gabriel Scherer | 2022-07-20 | 1 | -18/+26 |
| | |||||
* | [refactoring] lambda/switch.ml: remove unused debug parameter | Gabriel Scherer | 2022-07-20 | 1 | -21/+19 |
| | |||||
* | [refactor] lambda/switch.ml: constant names | Gabriel Scherer | 2022-07-20 | 1 | -9/+9 |
| | |||||
* | lambda/switch.ml: document the algorithm | Gabriel Scherer | 2022-07-20 | 1 | -11/+66 |
| | |||||
* | minor simplification in lambda/switch.ml | Gabriel Scherer | 2022-07-19 | 1 | -15/+9 |
| | | | | | | | | | | | | | | | The change fixes a small bug (that would lead to missed optimization opportunities, not miscompilation I believe) in lambda/switch.ml, where a test that should be equivalent to (len1 < 2) was in fact written in a form equivalent to (len1 <= 2), missing an improvement opportunity for the case len1=2. The use of min/max is an additional simplification in this exact same part of the code. closes #10465 Suggested by Michael Rose. | ||||
* | add -safer-matching flag to disable type-based optimization of pattern-matching | Jacques Garrigue | 2022-07-19 | 1 | -2/+2 |
| | |||||
* | Fix composition of coercions with aliases (#11188) | Vincent Laviron | 2022-06-27 | 1 | -7/+12 |
| | | | | | | | * Fix composition of coercions with aliases * Changes * Add test | ||||
* | Remove uses of ;; from the codebase | Sébastien Hinderer | 2022-02-25 | 5 | -7/+3 |
| | |||||
* | Ensure that build_apply respects Lambda.max_arity | Stephen Dolan | 2022-02-12 | 1 | -1/+2 |
| | |||||
* | Make Lambda.lfunction private | Stephen Dolan | 2022-02-12 | 9 | -118/+135 |
| | |||||
* | Merge pull request #11000 from gasche/translattribute-fix | Sadiq Jaffer | 2022-02-10 | 1 | -0/+1 |
| | | | | | | fix a minor regression from #10462 (cherry picked from commit c8c51a735d3cd4695892012f5aaab103b6a6cacf) | ||||
* | Remove configuration options --disable-force-safe-string and ↵ | Kate | 2022-02-01 | 2 | -3/+3 |
| | | | | | 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. | ||||
* | Review: reference pull requests | Vincent Laviron | 2022-01-16 | 1 | -2/+2 |
| | |||||
* | Bring back and update comment on CamlinternalLazy.force_gen | Vincent Laviron | 2022-01-16 | 1 | -3/+5 |
| | |||||
* | Move opaque wrapper to compiler-generated code | Vincent Laviron | 2022-01-16 | 1 | -30/+17 |
| | |||||
* | Merge commit 'b4c5d7a55d9ec25693ba741a613d81f2c3ef66bc' into 5.00_rebase_to_pr | Tom Kelly | 2021-12-21 | 1 | -8/+1 |
|\ | |||||
| * | Revert "Restore optim for objects directly under a top-level module" | Alain Frisch | 2021-11-15 | 1 | -7/+0 |
| | | | | | | | | This reverts commit efb4a8d5cf0bb77fb8bba41e1d76172af7f78162. | ||||
| * | Restore optim for objects directly under a top-level module | Alain Frisch | 2021-11-10 | 1 | -0/+7 |
| | | |||||
| * | Fix #10763 (miscompilation of method delegation) | Alain Frisch | 2021-11-10 | 1 | -8/+1 |
| | | |||||
* | | Merge commit 'edf0075888ec27a50c4f50f76dba46f730797651' into 5.00_rebase_to_pr | Tom Kelly | 2021-12-20 | 5 | -3/+84 |
|\ \ | |/ | |||||
| * | Add [@poll error] attribute (#10462) | Sadiq Jaffer | 2021-11-09 | 5 | -3/+84 |
| | | |||||
* | | Merge commit '2bcef4bc172f476217f253d24cb3311eaca504bf' into 5.00_rebase_to_pr | Tom Kelly | 2021-12-20 | 8 | -25/+1171 |
|\ \ | |/ | |||||
| * | bow to check-typo | Gabriel Scherer | 2021-11-02 | 2 | -29/+42 |
| | | |||||
| * | [minor] complete the renaming of 'TRMC' into 'TMC' | Gabriel Scherer | 2021-11-02 | 1 | -1/+1 |
| | | | | | | | | (suggestion from Konstantin Romanov) | ||||
| * | [review] move the main TMC comment to tmc.mli | Gabriel Scherer | 2021-11-02 | 2 | -56/+55 |
| | | |||||
| * | [review] improve code readability within TMC disambiguation | Gabriel Scherer | 2021-11-02 | 1 | -4/+4 |
| | | |||||
| * | TMC: much thinking about which @tailcall annotations to preserve where | Gabriel Scherer | 2021-11-02 | 1 | -16/+32 |
| | | | | | | | | Co-Authored-By: Pierre Chambart |