forked from ocaml/ocaml
-
Notifications
You must be signed in to change notification settings - Fork 0
Backport test 4.13 #259
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
Open
dra27
wants to merge
58
commits into
4.13
Choose a base branch
from
backport-test-4.13
base: 4.13
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Backport test 4.13 #259
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
Disable the commit message Changes escape hatch (cherry picked from commit d17f6f1)
GitHub Actions updates for 4.14 branch (cherry picked from commit e665320)
Apple discourages use of the `-flat_namespace` flag, and it exists only for compatibility with very old versions of OS X. Using `-flat_namespace` can cause various cryptic linker errors (e.g. due to name collisions), so it's best to avoid its use unless needed. This change removes the flag, and also changes `-undefined suppress` to `-undefined dynamic_lookup`. We need to change the argument to `-undefined` because omitting the `-flat_namespace` flag will build shared libraries with a two-level namespace, and this does not support `-undefined suppress`. `dynamic_lookup` means that the dynamic linker will resolve undefined symbols at runtime. This should have no visible impact on any users who do not explicitly exploit the flat namespace, but this is of often only useful for debugging purposes. Users who need this still have alternatives such as setting `DYLD_FORCE_FLAT_NAMESPACE`, which instructs the linker to treat libraries as if they were compiled with a flat namespace. (cherry picked from commit a88c1db)
On 4.14 branch: C17 fixes (strict prototypes and others)
[4.14] Don't pass duplicate libraries to the linker (cherry picked from commit 25ab399)
Unified GitHub Actions workflows across release branches for ease-of-maintenance [4.14 version] (cherry picked from commit 4461d97)
(cherry picked from commit b274ea5)
Hygiene tests: fix deepen-fetch.sh (cherry picked from commit 2a97d23)
(cherry picked from commit 4a70c02)
relocation issues with clang on 32bit FreeBSD (cherry picked from commit 389121d)
4.14: build executables with `-no-pie` on x86/32bits Linux and *BSDs (cherry picked from commit 7747e2e)
(cherry picked from commit 2e2b17d)
This test sporadically fails on macOS amd64 but very consistently fails on macOS arm64 in GitHub Actions. The underlying issue is that nanosleep consistently pauses the caller for longer than the specified interval for small increments (which is compliant, but not useful for the test).
Perform CI builds on macOS 14 for ARM64 and macOS 13 for x86_64. (cherry picked from commit c49475d)
* gha: update checkout and caches actions from v3 to v4 Removes an annoying warning about them using an outdated Node.js. We're not impacted by other changes. * gha: update artifacts actions Should be much faster. We're not impacted by other changes. (cherry picked from commit cfd82d3)
Make the CI dump `config.log` and verbosely print failed commands (cherry picked from commit 8bb2085)
(cherry picked from commit 389ae57)
(cherry picked from commit 05f7e7a)
(cherry picked from commit f6649d7)
Add Linux ARM64 build (cherry picked from commit 4bfea21)
(cherry picked from commit 5f6587e)
Always call `apt-get update` in CI before installing (cherry picked from commit 2f39689)
GHA: small improvements for Cygwin and Linux actions (cherry picked from commit 2d3138a)
* Allow check-configure.sh to be run locally * Re-bash the autoconf test * Simplify - and correct - check-configure.sh The script contained an unused feature to be able to check PRs as one - this is never wanted, as we should always be checking that every commit has a valid committed configure script. The mechanism for checking whether commits should be tested is shifted back to the actual trawl of the log. This is both simpler (because it can be done with a simple file list) but also fixes a bug, since commits which _didn't_ update configure could reset a failure from an earlier commit. * Wrong parameter checked in check-configure.sh * Review (cherry picked from commit 4b905fd)
GHA: add an optional wider test matrix (Cygwin, static, minimal, etc.) (cherry picked from commit 96b56fd)
(cherry picked from commit ab33928)
(cherry picked from commit 01d566e)
(cherry picked from commit 6fef125)
(cherry picked from commit 4d9dbf2)
(cherry picked from commit e22cbaf)
In the Jenkins CI, BSD hosts are all single-use virtual machines. (cherry picked from commit 8d19f5f)
(cherry picked from commit a21a8e4)
(cherry picked from commit 94f8391)
Switch to FlexDLL 0.43
Also: test with clang-18 and default standard. Also: print delimiters between tests for easier searching. (cherry picked from commit 2f945ae)
(cherry picked from commit 4a6beee)
Ci tweaks for msvc (cherry picked from commit afdf5a0)
Workaround Cygwin 3.5.x regression in AppVeyor (cherry picked from commit 2f6439c)
AppVeyor: only call Cygwin setup once when upgrading is forced (cherry picked from commit 849726f)
(cherry picked from commit 7578740)
The string @qs@ is available to use in template.in files that produce OCaml code allowing strings to be written as {@qs@|@variable_from_configure@|@qs@} guaranteeing that any value of @variable_from_configure@ yields a properly quoted OCaml string. The calculation inserts 'o' characters until none of the strings passed to AC_SUBST include the sequence |o..o} (cherry picked from commit 0222801)
…build (cherry picked from commit 70d1208)
Compmisc.init_path initialises the load path using
Config.standard_library. Compmisc.reinit_path generalises this, allowing
an alternate value for the standard library location to be used. This is
used internally when testing compiler installations in order to allow
Ccomp.call_linker to be used.
Deviations from original:
- Paranoid implementation using Compmisc.reinit_path used instead of
the change to Compmisc.init_path merged in OCaml 5.5
(cherry picked from commit 6b82c95)
Provides a copy of the DLL search path for the test harness. (cherry picked from commit 79071c4)
Deviations from original:
- C stub added to the harness instead of backporting
caml_sys_proc_self_exe
- Compmisc.reinit_path used instead of updating Compmisc.init_path
- Config.c_compiler_vendor avoided by instead exposing the constant as
Toolchain.c_compiler_vendor
- Config.asm_dwarf_version folded into toolchain.ml.in
- Config.shebangscripts avoided by instead adding an additional
--with- option to the harness and threading $(SHEBANGSCRIPTS) from
the build system
- Required parts of Bytelink.read_runtime_launch_info directly added
to the test harness, instead of exposing the machinery in Bytelink.
- Misc.Stdlib.String.to_utf_8_seq added directly to TestRelocation.
- ocamlmklib -M exits with code 0
- Standard Library functions added:
- Bytes.{get_utf_8_uchar,set_utf_16le_uchar} (4.14)
- Char.Ascii.is_letter (5.4)
- In_channel.{fold,input}_lines (5.1)
- In_channel.input_all (4.14)
- In_channel.really_input_bigarray (5.2)
- In_channel.{set_binary_mode,with_open_bin} (4.14)
- List.{drop,take}_while (5.3)
- Option.exists (5.5)
- Out_channel.{with_open_bin,with_open_text} (4.14)
- Result.Syntax (5.4)
- Sys.signal_to_string (5.4)
- Uchar.utf_{decode_uchar,decode_length,16_byte_length} (4.14)
- OCaml 5.4 labelled tuples removed
- Added the ability for Build/Prefix/Relative to be optional in
TestRelocation
- Prior to 5.4.0, ocamlrun -config didn't include entries in the
search path coming from CAML_LD_LIBRARY_PATH
- Prior to 5.3.0, the compiler added +flexdll to the search path even
when -nostdlib is specified, which affects the relocation test when
bootstrapping FlexDLL.
- Prior to 5.3.0, ocamlcmt and ocamlobjinfo didn't support -vnum. The
simplest thing in this instance is simply to skip the test of their
binaries.
- Prior to 5.3.0, the dynlink library included a complete copy of the
Config module, which affects the relocation test.
- Prior to 5.2.0, RNTM isn't always written to bytecode images when
compiling with -custom. Heuristic altered to analyse the DLLS
section instead.
- Prior to 4.14.0, errors in #load don't create detectable script
errors: toplevel test adapted to cope with this
- Build system adapted (Makefile.common macros didn't support C files
until OCaml 5.2; VPATH wasn't used until OCaml 5.1; win32unix/unix
distinction until OCaml 5.0)
- Misc.Style changed to Misc.Color (changed in OCaml 5.2) and uses of
the inline_code and hint formatting changed to loc (since
inline_code was also added in OCaml 5.2 and hint OCaml 5.1)
- Removed compressed marshalling support, since that was added in
OCaml 5.1
- Read camlheader file instead of runtime-launch-info
- OCAML_FLEXLINK scrubbed from the environment (removed in 5.2)
- Updated to deal with all bytecode binaries being installed with
debug information
- Updated to deal with all bytecode/native versions of tools being
installed (changed in 5.1)
- Updated to deal with old installation layout for otherlibs
- Updated handling for the bigarray library
- Updated relocation test to deal with different use of debug flags
from OCaml 5.0+
- Order of rules in testsuite/in_prefix/Makefile.test updated for
compatibility with the aged version of GNU make shipped on macOS
(pattern rules triggered in the wrong order otherwise)
(cherry picked from commit a28e47b)
(cherry picked from commit 374aee4)
(cherry picked from commit 64c0298)
(cherry picked from commit 85cd5fd)
(cherry picked from commit 24fc8d4)
Tweak the configuration for the i386-static compiler (cherry picked from commit a1b917a)
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.