forked from ocaml/ocaml
- Notifications
You must be signed in to change notification settings - Fork 6
separate oo from uncurry (oo) support #40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Conversation
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
-(un)safe-string becomes -(no-)force-safe-string -(un)safe-string-default becomes -default-unsafe-string Config.safe_string (and Clflags.unsafe_string) keep their name for backward-compatibility, as well as the C define CAML_SAFE_STRING (which corresponds to -force-safe-string).
Probably by mistake a "Clflags.dlcode := false" was added along with the ARM64 port. As shown in MPR#7642 this produces link errors on ARM if the linker is PIE by default.
This commit adds a new id to classes, modules and module types. The class id replaces the preexisting name attribute that was intended to be an id attribute. (cherry picked from commit 9593af5)
(no change entry needed) (cherry picked from commit 6c44307)
(cherry-picked from trunk 715fbc4) Inria's CI uses an "other-configs" job to test various, less widespread configurations of the OCaml compiler. Before this commit, the list of configurations to test was part of the configuration of the Jenkins job itself, making it impossible to have branch-specific configurations. This commit introduces the tools/ci-build-other-configs script, which can vary from branch to branch. The job's configuration has been updated to execute the script when it exists and to fallback to the former, built-in list of configurations on the branches where this script is not present.
Fix flexdll section in `README.win32.adoc`. Pass the whole OCaml config to the Flexdll Makefile instead of a few chosen variables.
This commit makes the heading hierarchy of ocamldoc start at {0 rather than {1. This level {0 should be reserved for global titles, freeing the use of {1 for normal subtitles. Disable class initialisation cache when compiling with afl-fuzz instrumentation enabled. See MPR#7612
Minor changes cleanup
Should the "clean: defaultclean" default rule be part of testsuite/makefiles/Makefile.common ?
fix 'make clean' broken by testsuite/tests/afl-instrumentation
This test shows bizarre behaviors on the BSDs, including MacOS: it looks like the INT signal is ignored when the test program is run from signal2.runner, but not when running it manually outside of the test script. That could be a Caml problem, or a BSD pthread implementation problem, or a misunderstanding of signal handling in POSIX threads. At any rate, the signal2 test as it was until recently is useless because it is designed to succeed even in the face of the BSD failure mentioned above (kill -9 to guarantee termination + grepping only for [ab]*, which always succeeds). So, I'm just removing it. Cherry-pick of [trunk a3aa013].
signal.checker: accept some "ab" output after the "exiting" message (exiting is not instantaneous; the threads can still emit some a's and b's) Partial cherry-pick of [trunk b6bda6a]
- tag info was giving the primitive's name, e.g. "%identity" instead of the field name. - tag info was missing for modules after applying coercion (e.g. with a signature hiding some module items). Update typedtree.mli Fix field name missing in lambda tag whem including a module. Cover remaining case of missing module field tag. Exercised by this repro: ``` module Types : sig type type_expr module TypeOps : sig type t = type_expr val compare : t -> t -> int val equal : t -> t -> bool val hash : t -> int end end = struct type type_expr = int module TypeOps = struct type t = type_expr let compare t1 t2 = t1 - t2 let hash t = 34 let equal t1 t2 = t1 == t2 end end module TypeSet = Set.Make(Types.TypeOps) let _ = TypeSet.add (assert false) (assert false); ``` Make the list of fields in Blk_module not optional. Fix issue with length of runtime_fields when composing coercions. Make change to typed tree invisible to existing cmt processors (merlin, rls). My makind the additional field in Tcoerce_structure the last one, it will just be ignored by tools that are built on top of stock ocaml. Swap the arguments to Tcoerce_primitive to make the extension w.r.t. stock ocaml safer. Update translmod.ml Costmetic changes. Avoid 2 passes to construct runtime fields. Pass field names to init/update utilities for recursive modules. Improve tag info for Blk_module. - tag info was giving the primitive's name, e.g. "%identity" instead of the field name. - tag info was missing for modules after applying coercion (e.g. with a signature hiding some module items). Fix issue with length of runtime_fields when composing coercions. Make change to typed tree invisible to existing cmt processors (merlin, rls). My makind the additional field in Tcoerce_structure the last one, it will just be ignored by tools that are built on top of stock ocaml. Update translmod.ml Only change recursive modules shape under Clflags.bs_only.
…by Cristiano) Instead of just storing numbers, also store the names of constructors for the contstant and block variants. Update .depend Make switch_names optional. No Unknown in constants. Attemnt to handle abstract types. See e.g. rescript-lang/rescript@9aa849e It would be nice if there was a better way. Also, to know that this is enough. Remove commented-out code. Resolve paths recursively. Clean up lambda. More assert false in resolve_path. This is to document what cases are not expected to fire. Update switch.ml Less harsh with assert false, now that it's been tested. Expect setting names_from_construct_pattern from bucklescript.
- Writing .annot file does not matter - Writing .cmi file not affected (already patched) - Only has an impact on writing cmt file
class is a 4-tuple: (obj_init, class_init, env_init, env) obj_init: creation function (unit -> obj) class_init: inheritance function (table -> env_init) (one by source code) env_init: parameterisation by the local environment (env -> params -> obj_init) (one for each combination of inherited class_init ) env: local environment env is closure array
We keep %makeblock since we don’t want to change the semantics of native compiler
…or reporting more useful
Add Fld_extension_slot In the future (`a 3) can be compiled as {hash_tag = xx ; val = 3; name = "a"}, ideally we can remove hash_tag Note Pduprecord (Record_unbox) should never happen in code generation See assertion in various backend
- it has least dependency
-bs-quiet is not needed either
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.
No description provided.