| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | 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 |
| | | |||||
| * | Fix code duplication in pattern matching of polymorphic variants (#11893) | Vincent Laviron | 2023-01-19 | 1 | -2/+20 |
| | | |||||
| * | Review | Vincent Laviron | 2022-10-02 | 1 | -9/+8 |
| | | |||||
| * | Stop using integer comparison on potential pointers | Vincent Laviron | 2022-09-30 | 1 | -2/+8 |
| | | |||||
| * | add -safer-matching flag to disable type-based optimization of pattern-matching | Jacques Garrigue | 2022-07-19 | 1 | -2/+2 |
| | | |||||
| * | Remove configuration options --disable-force-safe-string and ↵ | Kate | 2022-02-01 | 1 | -2/+2 |
| | | | | | | 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 '2250fd8a2218796c07b0a25f184cdc682e4695ba' into 5.00_rebase_to_pr | Tom Kelly | 2021-12-20 | 1 | -6/+19 |
| |\ | |||||
| | * | abstract row_field (#10627) | Jacques Garrigue | 2021-10-22 | 1 | -2/+2 |
| | | | | | | | Co-authored-by: Takafumi Saikawa <tscompor@gmail.com> | ||||
| | * | Enforce boolean Lifthenelse in native mode | Vincent Laviron | 2021-10-21 | 1 | -4/+17 |
| | | | |||||
| * | | matching.ml now uses obj_tag primitive. Revert test changes. Fix bug. | KC Sivaramakrishnan | 2021-11-30 | 1 | -5/+5 |
| | | | |||||
| * | | update CamlinternalLazy.force to force_gen | Jan Midtgaard | 2021-11-08 | 1 | -2/+2 |
| | | | |||||
| * | | remove historical for_handler and Reperform_noaloc in lambda/matching | Tom Kelly | 2021-10-11 | 1 | -10/+4 |
| | | | |||||
| * | | Merge commit '8da8b7e028431f02bc85c641965133bff68220e0' into 5.00 | Tom Kelly | 2021-10-04 | 1 | -2/+5 |
| |\ \ | |/ | |||||
| | * | [minor] switch.ml: distinguish types for arguments, tests and actions | Gabriel Scherer | 2021-09-20 | 1 | -2/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, Switch will use 'make_if' either with tests explicitly constructed from the provided primitives, or with a matching scrutinee/argument directly to check that it is non-zero. (Arguments are expected to be implicitly coercible to booleans for the 'make_if' functions.) This assumption may not always hold, for example if we tried to define a switch construct on tagged integers in asmcomp/cmm_helpers.ml. (I have a followup commit doing just that.) The comparison primitives of Cmm return untagged booleans, the conditional test is untagged, but a tagged integer cannot be tested for non-zeroness by just using untagged 'if' directly. The present commit clarifies the matter by separating the type of actions, tests and arguments at the Switch level. It does not change behavior in any way, but it makes it much easier to follow these distinctions. (In particular, it the new typing discipline demonstrates that the dangerous use of 'make_if' only happens exactly once in the Switch functor.) | ||||
| * | | Merge commit '7ad8c1368346c8a9d492f130442bff48807961b4' into 5.00 | Tom Kelly | 2021-10-04 | 1 | -9/+4 |
| |\ \ | |/ | |||||
| | * | Force normalization on access to `row_desc` (#10474) | Jacques Garrigue | 2021-09-10 | 1 | -9/+4 |
| | | | | | | | | | | | | | * always row_repr * remove the dummy field `row_bound` Co-authored-by: Takafumi Saikawa <tscompor@gmail.com> | ||||
| * | | Merge commit '0ba253df4667668bc01dd9e239fba13f743e1752' into ↵ | Tom Kelly | 2021-10-01 | 1 | -3/+3 |
| |\ \ | |/ | | | | | parallel_minor_gc_4_13 | ||||
| | * | Make build_other_constrs work with names instead of tags. (#10428) | Nicolas Chataing | 2021-05-28 | 1 | -3/+3 |
| | | | | | | | | | | | | | parmatch: define build_other_constrs using names instead of tags. Using tags is fragile in presence of Cstr_unboxed; we use constructor names instead. | ||||
| * | | Merge commit '89aae98b22634d896b9d59f717decf2d3e7d4af3' into ↵ | Tom Kelly | 2021-09-29 | 1 | -2/+2 |
| |\ \ | |/ | | | | | parallel_minor_gc_4_13 | ||||
| | * | Allow to name existentials in pattern-matching (#9584) | Jacques Garrigue | 2021-02-04 | 1 | -2/+2 |
| | | | |||||
| * | | Merge commit 'd0f80077066105e1429ef8728b8362b8d698e298' into ↵ | Tom Kelly | 2021-09-29 | 1 | -2/+3 |
| |\ \ | |/ | | | | | parallel_minor_gc_4_13 | ||||
| | * | added new construct Lmutlet and removed Variable attribute | Keryan Didier | 2021-01-07 | 1 | -0/+1 |
| | | | |||||
| | * | added new lambda construct Lmutvar (#9954) | Keryan Didier | 2021-01-07 | 1 | -2/+2 |
| | | | |||||
| * | | Merge commit 'e6acde75863c7a4e52f948f87436a53a2fe50f42' into ↵ | Tom Kelly | 2021-09-28 | 1 | -83/+45 |
| |\ \ | |/ | | | | | parallel_minor_gc_4_13 | ||||
| | * | matching: use toplevel_handler in for_tupled_function | Gabriel Scherer | 2020-11-21 | 1 | -17/+8 |
| | | | | | | | | | | | | | This appears to change the function behavior with respect to the Unused exception, but we believe that the change is correct. It makes the code more consistent with other toplevel compilation functions. | ||||
| | * | matching: factorize the code handling toplevel matching failures | Gabriel Scherer | 2020-11-21 | 1 | -61/+35 |
| | | | |||||
| | * | matching: [minor] inline the single-use split_and_precompile | Gabriel Scherer | 2020-11-21 | 1 | -7/+4 |
| | | | | | | | | | | | This comes from a suggestion by Florian Angeletti in https://github.com/ocaml/ocaml/pull/9447#discussion_r408910756 | ||||
| * | | Merge commit '055f04d189273068396da8c298e6226dff90f26c' into ↵ | Tom Kelly | 2021-09-28 | 1 | -92/+173 |
| |\ \ | |/ | | | | | parallel_minor_gc_4_13 | ||||
| | * | matching: clarify the ~vars argument of Simple.explode_or_pat | Gabriel Scherer | 2020-10-21 | 1 | -9/+11 |
| | | | | | | | | | (suggested by Thomas Refis' review) | ||||
| | * | matching: simplify the interface of Simple.explode_or_pat | Gabriel Scherer | 2020-10-21 | 1 | -14/+12 |
| | | | |||||
| | * | Matching.Simple.explode_or_pat: on-demand generation of fresh identifiers | Gabriel Scherer | 2020-10-21 | 1 | -16/+24 |
| | | | | | | | | | This change was suggested by Thomas Refis during code review. | ||||
| | * | add a comment to explain what Simple.explode_or_pat does | Gabriel Scherer | 2020-10-21 | 1 | -0/+24 |
| | | | |||||
| | * | matching: avoid useless bindings in do_for_multiple_match | Gabriel Scherer | 2020-10-21 | 1 | -1/+3 |
| | | | |||||
| | * | matching: towards a correctness argument for flatten_* ignoring variables | Gabriel Scherer | 2020-10-21 | 1 | -9/+11 |
| | | | | | | | | | | | | | | | | | | | | | Before we ignored as-patterns in the flatten_* functions because as-patterns would either be half-simplified or raise Cannot_flatten (in any case, never reach the flattening functions). Now the reasoning is a bit more subtle: the only non-simple matrices we flatten are used as "ghost" information (default environments, provenance) where variables do not matter, only the shape of matched values. | ||||
| | * | Match.do_for_multiple_match: we can always flatten | Gabriel Scherer | 2020-10-21 | 1 | -35/+21 |
| | | | |||||
| | * | Matching.explode_or_pat: handle the case where the argument has no id | Gabriel Scherer | 2020-10-21 | 1 | -34/+54 |
| | | | |||||
| | * | matching: document the behavior of precompile_or through an example | Gabriel Scherer | 2020-10-21 | 1 | -0/+39 |
| | | | |||||
| * | | Merge commit '01c6a5ebe38b680a0b104aa4075ff790f311ea01' into ↵ | Tom Kelly | 2021-03-04 | 1 | -45/+68 |
| |\ \ | |/ | | | | | parallel_minor_gc_4_12 | ||||
| | * | matching: a first-order representation for match-failure handling | Gabriel Scherer | 2020-07-08 | 1 | -42/+53 |
| | | | |||||
| | * | pass a proper location to Matching.for_trywith | Gabriel Scherer | 2020-07-08 | 1 | -2/+11 |
| | | | | | | | | | | | | | | | | | | | | | | | Actually *using* the location in the failure handler would be incorrect, as it adds noise to backtraces involving partial exception handlers. This is now properly documented. We still take the caller location (which is currently ignored) for consistency with other toplevel Matching functions, and because that may become useful if we want to add more error-reporting or warnings in compile_matching. | ||||
| * | | Merge commit '368eb16ee80843afc6c40cf98e6994256747844a' into ↵ | Tom Kelly | 2021-03-04 | 1 | -2/+2 |
| |\ \ | |/ | | | | | parallel_minor_gc_4_12 | ||||
| | * | change API for Env.open_signature to clarify errors | Jacques Garrigue | 2020-06-23 | 1 | -2/+2 |
| | | | |||||
| * | | Merge commit 'b7509ca82f9bd647c1cb7e810b6bb152e145e3fb' into ↵ | Tom Kelly | 2021-03-03 | 1 | -9/+9 |
| |\ \ | |/ | | | | | parallel_minor_gc_4_12 | ||||
| | * | Merge pull request #9442 from gasche/tailcall-attribute-refactoring | Gabriel Scherer | 2020-06-10 | 1 | -3/+3 |
| | |\ | | | | | | | [minor] refactoring the datatype for the [@tailcall] attribute | ||||
| | | * | [refactoring] gives tailcall attributes a more standard structure | Gabriel Scherer | 2020-06-08 | 1 | -3/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We want to start allowing more information in the payload of [@tailcall] attributes (currently no payload is supported), for example we could consider using [@tailcall false] to ask the code generator to disable a tail call. A first required step in this direction is to use a custom datatype to represent the tail-call attribute, instead of a boolean. This is consistent with the other application-site attributes (inline_attribute, specialise_attribute, local_attribute), so it makes the code more regular -- but the change itself is boilerplate-y. | ||||
| * | | | Merge commit '56f7500f5c2d8aa0784bfbd692bf1a191fb7271b' into ↵ | Tom Kelly | 2021-03-03 | 1 | -25/+27 |
| |\ \ \ | |/ / | | | | | | | parallel_minor_gc_4_12 | ||||
