Skip to content

Conversation

@bobzhang
Copy link
Member

@bobzhang bobzhang commented Feb 3, 2020

No description provided.

gasche and others added 30 commits October 2, 2017 14:48
-(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
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]
bobzhang and others added 29 commits September 16, 2019 10:17
- 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
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
@bobzhang bobzhang closed this Mar 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment