User defined indexing operators: updated#537
Closed
Octachron wants to merge 50 commits intoocaml:user-defined-indexing-operatorsfrom
Closed
User defined indexing operators: updated#537Octachron wants to merge 50 commits intoocaml:user-defined-indexing-operatorsfrom
Octachron wants to merge 50 commits intoocaml:user-defined-indexing-operatorsfrom
Conversation
The objective of this commit is to introduce a short notation for bringing in scope the bigarray index operators and only them. For that purpose, the bigarray index operators are regrouped in a single submodule. This submodule is also included inside the global bigarray module to preserve compatibility and ease of use of the bigarray module.
User defined indexing operators: operator submodule for bigarray
With the simplification of index operators, the expressions a.{..} are
no longer automatically resolved to Bigarray.Array[n].[g|s]et. To use
these operators, it is now necessary to bring them in scope, for
instance by opening either the Bigarray or Bigarray.Operators module.
To ease the transition period, this patch add an hack in
`typing/typetexp.ml` to catch the cases where the index operators
`.{}/.{,}..` are used without being bound in the current scope
and tranlate then to Bigarray.(..) with a deprecated warning.
This commit update the documentation on the compatibility problems
between the deprecated bigarray specific syntax extension and the new
user-defined index operators extension. In particular, this commit
describes the new deprecated warning for implicit use of the
`Bigarray(.{...})` operators and states that this warning might be
turned into an error in the undetermined futures. This commits also
amend the documentation to mention the new `Bigarray.Operators`
submodule when useful.
Change the name from customizable to user-defined index operators and fix the alignment of the latex tables for better readability.
User-defined indexing operators: bigarray deprecated warning
caml_alloc_custom ignores the `mem` and `max` parameters when allocating in the minor heap.
Remove `;;` from the standard library
Flambda manual chapter
In PR#7172, Daniel Bünzli remarks that even if an user does only "make
world install" only, intentionally not installing the native code
compiler, the configuration variables exposed through
$(ocamlc -where)/Makefile.config will be misleading as they indicate
the configuration-time prediction that this installation has a native
compiler and support native dynlink.
The -no-native-compiler switch allows to avoid this issue by
intentionally indicating at configure-time that no native compiler
shall be built. However, its current implementation forgot to also
explicitly disable native dynlinking. Changing this fixes the
Makefile.config information and has no impact on the compiler build
process (a build with ARCH=none will never hit the {all,install}opt of
dynlink/Makefile that inspect NATDYNLINK).
On regression risk: it is easy to check in ./configure that this
change only affects configuration when the -no-native-compiler option
is passed, which did not exist before (late in) 4.03+dev.
Minor tidying of middle-end
PR#7209: do not run at_exit handlers on exec failure
Warning 50 stdlib
Fix documentation comments on let bindings
Member
|
Apologies for not maintaining the branch as I said I would. I would like to do the rebase by cherry-picking, but I have no time for this currently. I'll look at this again after the release -- feel free to ping me. |
Member
Author
|
Note that I also have branches with cherry-picked version of the changes, if you prefer: |
969ec04 to
e3d5788
Compare
Member
|
So I just changed ocaml/user-defined-indexing-operators to point to your |
EduardoRFS
pushed a commit
to esy-ocaml/ocaml
that referenced
this pull request
May 17, 2021
Port stedolan's "Micro-optimise allocations on amd64 to save a register."
mshinwell
pushed a commit
to chambart/ocaml-1
that referenced
this pull request
Jul 6, 2021
stedolan
pushed a commit
to stedolan/ocaml
that referenced
this pull request
Mar 22, 2022
…to function bodies; opaque_identity fixes for class compilation (ocaml#537) * Forbid local function optimisation across functions * Wrap blocks for shared method arrays in Popaque * More opacity in Translclass * Even more opacity around objects * Promote test * Refactoring
stedolan
pushed a commit
to stedolan/ocaml
that referenced
this pull request
May 24, 2022
…s; opaque_identity fixes for class compilation (ocaml#537) * Forbid local function optimisation across functions * Wrap blocks for shared method arrays in Popaque * More opacity in Translclass * Even more opacity around objects * Promote test * Refactoring
stedolan
added a commit
to stedolan/ocaml
that referenced
this pull request
May 24, 2022
64235a3 flambda-backend: Change Float.nan from sNaN to qNaN (ocaml#466) 14a8e27 flambda-backend: Track GC work for all managed bigarray allocations (upstream 11022) (ocaml#569) c3cda96 flambda-backend: Add two new methods to targetint for dwarf (ocaml#560) e6f1fed flambda-backend: Handle arithmetic overflow in select_addr (ocaml#570) dab7209 flambda-backend: Add Target_system to ocaml/utils (ocaml#542) 82d5044 flambda-backend: Enhance numbers.ml with more primitive types (ocaml#544) 216be99 flambda-backend: Fix flambda_o3 and flambda_oclassic attributes (ocaml#536) 4b56e07 flambda-backend: Test naked pointer root handling (ocaml#550) 40d69ce flambda-backend: Stop local function optimisation from moving code into function bodies; opaque_identity fixes for class compilation (ocaml#537) f08ae58 flambda-backend: Implemented inlining history and use it inside inlining reports (ocaml#365) ac496bf flambda-backend: Disable the local keyword in typing (ocaml#540) 7d46712 flambda-backend: Bugfix for Typedtree generation of arrow types (ocaml#539) 61a7b47 flambda-backend: Insert missing page table check in roots_nat.c (ocaml#541) 323bd36 flambda-backend: Compiler error when -disable-all-extensions and -extension are used (ocaml#534) d8956b0 flambda-backend: Persistent environment and reproducibility (ocaml#533) 4a0c89f flambda-backend: Revert "Revert bswap PRs (480 and 482)" (ocaml#506) 7803705 flambda-backend: Cause a C warning when CAMLreturn is missing in C stubs. (ocaml#376) 6199db5 flambda-backend: Improve unboxing during cmm for Flambda (ocaml#295) 96b9e1b flambda-backend: Print diagnostics at runtime for Invalid (ocaml#530) 42ab88e flambda-backend: Disable bytecode compilers in ocamltest (ocaml#504) 58c72d5 flambda-backend: Backport ocaml#10595 from upstream/trunk (ocaml#471) 1010539 flambda-backend: Use C++ name mangling convention (ocaml#483) 81881bb flambda-backend: Local allocation test no longer relies on lifting (ocaml#525) f5c4719 flambda-backend: Fix an assertion in Closure that breaks probes (ocaml#505) c2cf2b2 flambda-backend: Add some missing command line arguments to ocamlnat (ocaml#499) git-subtree-dir: ocaml git-subtree-split: 64235a3
EmileTrotignon
pushed a commit
to EmileTrotignon/ocaml
that referenced
this pull request
Jan 12, 2024
* Remove marginBottom from HighlightsInQuadrants * Remove marginTop * Fix compilation bug * Remove marginLeft and marginRight from HighlightsInQuadrants * Remove marginRight * Remove margins as an attribute everywhere
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR updates the user-defined-indexing-operators branch past the last modifications of the bootstrapping compiler. Due to the necessity to preserve the indexing operators syntax and primitives within the bootstrapping compiler, the merge history is quite messy. An alternative path might be to recreate the branch by cherry-picking the relevant commits.