Skip to content

Use runtime_CPPFLAGS also to build .*pic.o files #11

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
wants to merge 57 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
240548c
matching: track 'global' and 'current' partiality
gasche Jul 29, 2024
673b810
matching: in mk_failaction_pos, use 'global' partiality to produce fi…
gasche Jul 29, 2024
9a51914
new testcases involving polymorphic variants and or-patterns
ncik-roberts Jul 31, 2024
4f86cc7
matching: fix the 'totality' aspect of The Pattern-Matching Bug
gasche Apr 8, 2024
74bbc91
matching: no need for final exit on globally-Total matches with empty…
gasche Jul 31, 2024
106899d
testsuite: an interesting example from Nick Roberts
gasche Jun 23, 2024
a906f5a
matching: remove the [check_partial] heuristics
gasche Sep 7, 2023
60b690b
manual: use rmdir instead of gethostbyname in C stub example
MisterDA Aug 1, 2024
262b069
Merge pull request #13351 from MisterDA/intf-with-c-check-c-string
gasche Aug 20, 2024
c31de35
Emit major slice counters to event ring
kayceesrk Jul 18, 2024
0b8c2c6
Merge pull request #13364 from kayceesrk/major_slice_counters
kayceesrk Aug 21, 2024
7c7866e
Merge pull request #13338 from gasche/matching-bug-13076-pessimizatio…
gasche Aug 22, 2024
0fa46d5
Merge pull request #13152 from gasche/matching-bug-fix-totality-3
gasche Aug 22, 2024
1c124a1
Merge pull request #13153 from gasche/matching-bug-remove-check_partial
gasche Aug 22, 2024
c473cdc
Fix a few bugs in instr_size on arm64
kayceesrk Aug 23, 2024
55ee0e0
Merge pull request #13392 from kayceesrk/arm64-fix-instr-sizes
gasche Aug 23, 2024
54eb605
Fix ocamlc -pp wrong documentation
MisterDA Aug 23, 2024
e1e81b4
Merge pull request #13395 from MisterDA/fix-manual-pp-option
dra27 Aug 23, 2024
4eb993c
Implement the --disable-ocamlobjinfo option for the configure script …
shindere Aug 23, 2024
5c888e7
[refactor] simplify the definition of atomic functions
gasche Aug 24, 2024
dfce832
runtime/gc_ctrl.c: Fix registration of temporaries with GC
DemiMarie Aug 13, 2024
a9acf5a
nitpick the gc_counters code
gasche Aug 24, 2024
db586e0
Merge pull request #13370 from DemiMarie/fix-missing-gc-rule
gasche Aug 24, 2024
89d35bc
[refactor] typing/outcometree: use a record for record labels (fields…
gasche Aug 25, 2024
d98cbd6
last commit before branching 5.3
Octachron Aug 25, 2024
1ce08fb
first commit after branching 5.3
Octachron Aug 25, 2024
8cca9ab
[minor] Clean-up header inclusion & use caml_check_error in domain.c
gadmm Jul 20, 2023
36b083c
Inline sync_check_error to caml_check_error
MisterDA Jul 25, 2024
2e3568b
Call caml_check_error unconditionally
MisterDA Aug 26, 2024
51afa90
Guard caml_lockdepth definition under the debug runtime
MisterDA Jul 25, 2024
a436e0c
Don't use pthread namespace in portable code
MisterDA Jul 25, 2024
40a9e5f
configure: use older autoconf
Octachron Aug 26, 2024
ae5e1e6
otherlibs/systhreads/st_stubs.c: Avoid free of uninitialized pointer
rwmjones Aug 25, 2024
760ae23
Merge pull request #13401 from rwmjones/issue-13400
gasche Aug 26, 2024
18ea3f4
Changes
gasche Aug 26, 2024
499f4b8
Update READMEs (#13389)
dra27 Aug 27, 2024
6475f63
Merge pull request #13397 from gasche/simplify-atomic-primitives
gasche Aug 27, 2024
efb3273
lambda.mli: document the somewhat confusing semantics of Pointer
gasche Aug 24, 2024
11dcf18
[refactoring] simplify the Patomic_load primitive by dropping immedia…
gasche Aug 24, 2024
d74fe12
Merge pull request #13396 from gasche/remove-atomic-load-type
gasche Aug 27, 2024
b4a27c5
ocamltest: skip ocamlobjinfo action if ocamlobjinfo is not available …
nojb Aug 28, 2024
7ad6af9
Add Stdlib.Pair (#13310)
lupjo Aug 29, 2024
68bc3d2
Fix version in opam-file after 5.4 version bump (#13409)
jmid Aug 29, 2024
4a367ad
Fix "Warning: Element modname_from_source not found"
NickBarnes Aug 29, 2024
7137407
Merge pull request #13411 from NickBarnes/modname_from_source
dra27 Aug 29, 2024
1c70e4d
Fix debug runtime assertion location.
Aug 29, 2024
dae3b65
Don't use r12 to pass size to caml_call_realloc_stack (#13410)
xavierleroy Aug 30, 2024
5519d5f
Move #13140 to 5.3 section
xavierleroy Aug 30, 2024
0125942
Merge pull request #13408 from dustanddreams/recycle_race
gasche Aug 30, 2024
8180202
systhreads: use C99 booleans
MisterDA Jul 25, 2024
933ddb2
systhreads: remove unneeded st_initialize
MisterDA Aug 26, 2024
1e2fd32
systhreads: extract common code that is not posix/pthreads
MisterDA Jul 25, 2024
62271ec
Update changes
MisterDA Aug 26, 2024
7c405f4
Merge pull request #13352 from MisterDA/systhreads-refactors
gasche Sep 2, 2024
e937498
Make sure to always build dynlink (#13414)
nojb Sep 3, 2024
5801b20
Use `runtime_CPPFLAGS` also to build .*pic.o files
shym Sep 4, 2024
f15353c
DROPME Add a CI job to build and test the Cygwin port
shym Sep 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions .github/workflows/build-cygwin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Build on Cygwin

on:
push:
branches:
- '4.**'
- '5.**'
- 'trunk'
pull_request:

# Restrict the GITHUB_TOKEN
permissions: {}

env:
# List of test directories for the debug-s4096 and linux-O0 jobs. These
# directories are selected because of their tendencies to reach corner cases
# in the runtime system.
PARALLEL_TESTS: parallel callback gc-roots weak-ephe-final
# Fully print commands executed by Make
# MAKEFLAGS: V=1

# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency
# Concurrent workflows are grouped by the PR or branch that triggered them
# (github.ref) and the name of the workflow (github.workflow). The
# 'cancel-in-progress' option then make sure that only one workflow is running
# at a time. This doesn't prevent new jobs from running, rather it cancels
# already running jobs before scheduling new jobs.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name == 'pull_request' || github.sha }}
cancel-in-progress: true

jobs:
# This job will do the initial build of the compiler (on linux), with flambda on.
# We then upload the compiler tree as a build artifact to enable re-use in
# subsequent jobs.
cygwin:
runs-on: windows-latest
steps:
- name: Configure EOLs on Cygwin
run: |
# Ensure that .expected files are not modified by check out
# as, in Cygwin, the .expected should use LF line endings,
# rather than Windows' CRLF
git config --global core.autocrlf input
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: true
- name: Install Cygwin
uses: cygwin/cygwin-install-action@v4
with:
packages: make,bash,gcc-core,gcc-fortran
install-dir: 'D:\cygwin'
- name: Configure the compiler
shell: bash
run: >-
./configure --enable-ocamltest --disable-dependency-generation
- name: Build the compiler
shell: bash
run: >-
make -j4 V=1
- name: Test suite
shell: bash
run: >-
make tests
68 changes: 62 additions & 6 deletions Changes
Original file line number Diff line number Diff line change
@@ -1,5 +1,36 @@
Working version
_______________
---------------

(Changes that can break existing programs are marked with a "*")

### Language features:

### Runtime system:

### Code generation and optimizations:

### Standard library:

### Other libraries:

### Tools:

### Manual and documentation:

### Compiler user-interface and warnings:

### Internal/compiler-libs changes:

### Build system:

### Bug fixes:

- #13408: Fix misplaced debug runtime assertion triggerable by a race
between domain exit and backup thread
(Miod Vallat and Gabriel Scherer, report by Jan Midtgaard)

OCaml 5.3.0
___________

(Changes that can break existing programs are marked with a "*")

Expand Down Expand Up @@ -30,9 +61,15 @@ _______________

### Runtime system:

- #13364: Emit major slice counters in the runtime events.
(KC Sivaramakrishnan and Sadiq Jaffer, review by Gabriel Scherer)

- #13382: Add more documentation for Runtime_events types
(Sadiq Jaffer, review by Tim McGilchrist, Miod Vallat and KC Sivaramakrishnan)

- #13370: Fix a low-probability crash when calling Gc.counters.
(Demi Marie Obenour, review by Gabriel Scherer)

- #13272: Allow maximum number of domains to be specified as a OCAMLRUNPARAM
parameter.
(KC Sivaramakrishnan, review by Guillaume Munch-Maccagnoni, Miod Vallat,
Expand Down Expand Up @@ -128,17 +165,19 @@ _______________
runtime assertions.
(Antonin Décimo, review by Miod Vallat, Gabriel Scherer, and David Allsopp)

- #13352: Concurrency refactors and cleanups.
(Antonin Décimo, review by Gabriel Scherer, David Allsopp,
and Miod Vallat)

### Code generation and optimizations:

- #13014: Enable compile-time option -function-sections on all previously
unsupported native backends (POWER, riscv64 and s390x)
(Miod Vallat, review by Nicolás Ojeda Bär)

- #7241, #12555, #13076, #13138: fix a soundness bug in the
pattern-matching compiler when side-effects mutate the scrutinee
during matching.
Note that #7241 is not fully fixed yet, see the issue for the
current status.
- #7241, #12555, #13076, #13138, #13338, #13152, #13153:
fix a soundness bug in the pattern-matching compiler
when side-effects mutate the scrutinee during matching.
(Gabriel Scherer, review by Nick Roberts)

- #13179: Fix evaluation of toplevel lets in classes containing
Expand All @@ -148,6 +187,10 @@ _______________

### Standard library:

- #13310: Add Stdlib.Pair
(Victoire Noizet, review by Nicolás Ojeda Bär, Daniel Bünzli, Xavier Van de
Woestyne, Jeremy Yallop and Florian Angeletti)

- #12884: Add `Queue.drop`
(Léo Andrès, review by Nicolás Ojeda Bär and Gabriel Scherer)

Expand Down Expand Up @@ -250,6 +293,10 @@ _______________

### Manual and documentation:

- #13370: Document that that temporary variables holding GCd pointers must
not be live across a GC.
(Demi Marie Obenour)

- #12298: Manual: emphasize that Bigarray.int refers to an OCaml integer,
which does not match the C int type.
(Edwin Török, review by Florian Angeletti)
Expand Down Expand Up @@ -549,6 +596,15 @@ _______________
oversight. No known program triggers the bug.
(Richard Eisenberg, review by Florian Angeletti)

- #13400: Initialize th->signal_stack to avoid free of uninitialized data
if the user calls caml_c_thread_unregister on the main thread.
(Richard W.M. Jones, review by Guillaume Munch-Maccagnoni and
Gabriel Scherer)

- #13140: POWER back-end: fix issue with call to `caml_call_realloc_stack`
from a DLL
(Xavier Leroy, review by Miod Vallat)

OCaml 5.2.0 (13 May 2024)
-------------------------

Expand Down
22 changes: 14 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,10 @@ ocamllex_PROGRAMS = $(addprefix lex/,ocamllex ocamllex.opt)
ocamlyacc_PROGRAM = yacc/ocamlyacc

# Tools to be compiled to native and bytecode, then installed
TOOLS_TO_INSTALL_NAT = ocamldep ocamlobjinfo
TOOLS_TO_INSTALL_NAT = ocamldep
ifeq "$(build_ocamlobjinfo)" "true"
TOOLS_TO_INSTALL_NAT += ocamlobjinfo
endif

# Tools to be compiled to bytecode only, then installed
TOOLS_TO_INSTALL_BYT = \
Expand All @@ -526,7 +529,8 @@ endif
# the configuration is not available during clean so we don't
# know whether they have been configured / built or not
clean::
rm -f $(addprefix tools/ocamlopt,p p.opt p.exe p.opt.exe)
rm -f $(addprefix tools/ocamlopt,p p.opt p.exe p.opt.exe) \
tools/ocamlobjinfo $(addprefix tools/ocamlobjinfo,.opt .exe .opt.exe)

TOOLS_NAT = $(TOOLS_TO_INSTALL_NAT)
TOOLS_BYT = $(TOOLS_TO_INSTALL_BYT) dumpobj primreq stripdebug cmpbyt
Expand Down Expand Up @@ -1466,8 +1470,9 @@ $(DEPDIR)/runtime/%.bi.$(D): \
OC_CPPFLAGS = $(OC_BYTECODE_CPPFLAGS) $(ocamlruni_CPPFLAGS)

runtime/%.bpic.$(O): OC_CFLAGS = $(OC_BYTECODE_CFLAGS) $(SHAREDLIB_CFLAGS)
runtime/%.bpic.$(O): OC_CPPFLAGS = $(OC_BYTECODE_CPPFLAGS)
$(DEPDIR)/runtime/%.bpic.$(D): OC_CPPFLAGS = $(OC_BYTECODE_CPPFLAGS)
runtime/%.bpic.$(O): OC_CPPFLAGS = $(OC_BYTECODE_CPPFLAGS) $(runtime_CPPFLAGS)
$(DEPDIR)/runtime/%.bpic.$(D): \
OC_CPPFLAGS = $(OC_BYTECODE_CPPFLAGS) $(runtime_CPPFLAGS)

runtime/%.n.$(O): OC_CFLAGS = $(OC_NATIVE_CFLAGS)
runtime/%.n.$(O): OC_CPPFLAGS = $(OC_NATIVE_CPPFLAGS) $(ocamlrun_CPPFLAGS)
Expand All @@ -1485,8 +1490,9 @@ $(DEPDIR)/runtime/%.ni.$(D): \
OC_CPPFLAGS = $(OC_NATIVE_CPPFLAGS) $(ocamlruni_CPPFLAGS)

runtime/%.npic.$(O): OC_CFLAGS = $(OC_NATIVE_CFLAGS) $(SHAREDLIB_CFLAGS)
runtime/%.npic.$(O): OC_CPPFLAGS = $(OC_NATIVE_CPPFLAGS)
$(DEPDIR)/runtime/%.npic.$(D): OC_CPPFLAGS = $(OC_NATIVE_CPPFLAGS)
runtime/%.npic.$(O): OC_CPPFLAGS = $(OC_NATIVE_CPPFLAGS) $(runtime_CPPFLAGS)
$(DEPDIR)/runtime/%.npic.$(D): \
OC_CPPFLAGS = $(OC_NATIVE_CPPFLAGS) $(runtime_CPPFLAGS)

## Compilation of runtime C files

Expand Down Expand Up @@ -2066,11 +2072,11 @@ ocamltest/ocamltest.html: ocamltest/ocamltest.org
# The extra libraries

.PHONY: otherlibraries
otherlibraries: ocamltools
otherlibraries: ocamltools dynlink-all
$(MAKE) -C otherlibs all

.PHONY: otherlibrariesopt
otherlibrariesopt:
otherlibrariesopt: dynlink-allopt
$(MAKE) -C otherlibs allopt

otherlibs/unix/unix.cmxa: otherlibrariesopt
Expand Down
1 change: 1 addition & 0 deletions Makefile.build_config.in
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ OCAMLTEST_TARGET = @ocamltest_target@
OCAMLDOC_OPT_TARGET = @ocamldoc_opt_target@
OCAMLTEST_OPT_TARGET = @ocamltest_opt_target@

build_ocamlobjinfo = @build_ocamlobjinfo@
build_ocamltest = @build_ocamltest@

build_ocamltex = @build_ocamltex@
Expand Down
27 changes: 12 additions & 15 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,27 @@ domains and native support for concurrent programming using effect handlers.
Owing to the large number of changes, the initial 5.0 release is more
experimental than usual. It is recommended that all users wanting a stable
release use the 4.14 release which will continue to be supported and updated
while 5.x reaches feature and stability parity. Similarly, if you need one of
the ports not yet supported in the 5.0 release you must use the 4.14 release.
while 5.x reaches feature and stability parity.

The initial release of OCaml 5.0 only supports the native compiler under ARM64
and x86-64 architectures under Linux, macOS and the BSDs. On Windows, only the
MinGW-w64 port is supported in OCaml 5.0 and the Cygwin port is restored in 5.1.
On Linux, native code support for RISC-V and s390x/IBM Z is available in
OCaml 5.1 and in 5.2 for Power.

❗ From OCaml 5.0 onwards, native compilation is available only on 64-bit
systems. Native compilation on 32-bit systems is no longer available, nor
are there plans to bring it back. The bytecode compiler will continue to work on
all architectures.
MinGW-w64 port is supported in OCaml 5.0; the Cygwin port is restored in 5.1
and the MSVC port is restored in 5.3. On Linux, native code support for RISC-V
and s390x/IBM Z is available in OCaml 5.1 and in 5.2 for Power.

|=====
| Branch `trunk` | Branch `5.2` | Branch `5.1` | Branch `5.0` | Branch `4.14`
| Branch `trunk` | Branch `5.3` | Branch `5.2` | Branch `5.1` | Branch `4.14`

| image:https://github.com/ocaml/ocaml/workflows/Build/badge.svg?branch=trunk["Github CI Build Status (trunk branch)",
link="https://github.com/ocaml/ocaml/actions?query=workflow%3ABuild"]
image:https://github.com/ocaml/ocaml/workflows/Hygiene/badge.svg?branch=trunk["Github CI Hygiene Status (trunk branch)",
link="https://github.com/ocaml/ocaml/actions?query=workflow%3AHygiene"]
image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=trunk&svg=true["AppVeyor Build Status (trunk branch)",
link="https://ci.appveyor.com/project/avsm/ocaml"]
| image:https://github.com/ocaml/ocaml/workflows/Build/badge.svg?branch=5.3["Github CI Build Status (5.3 branch)",
link="https://github.com/ocaml/ocaml/actions?query=workflow%3ABuild"]
image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=5.3&svg=true["AppVeyor Build Status (5.3 branch)",
link="https://ci.appveyor.com/project/avsm/ocaml"]
| image:https://github.com/ocaml/ocaml/workflows/Build/badge.svg?branch=5.2["Github CI Build Status (5.2 branch)",
link="https://github.com/ocaml/ocaml/actions?query=workflow%3ABuild"]
image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=5.2&svg=true["AppVeyor Build Status (5.2 branch)",
Expand All @@ -38,10 +36,6 @@ all architectures.
link="https://github.com/ocaml/ocaml/actions?query=workflow%3ABuild"]
image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=5.1&svg=true["AppVeyor Build Status (5.1 branch)",
link="https://ci.appveyor.com/project/avsm/ocaml"]
| image:https://github.com/ocaml/ocaml/workflows/Build/badge.svg?branch=5.0["Github CI Build Status (5.0 branch)",
link="https://github.com/ocaml/ocaml/actions?query=workflow%3ABuild"]
image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=5.0&svg=true["AppVeyor Build Status (5.0 branch)",
link="https://ci.appveyor.com/project/avsm/ocaml"]
| image:https://github.com/ocaml/ocaml/workflows/Build/badge.svg?branch=4.14["Github CI Build Status (4.14 branch)",
link="https://github.com/ocaml/ocaml/actions?query=workflow%3ABuild"]
image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=4.14&svg=true["AppVeyor Build Status (4.14 branch)",
Expand Down Expand Up @@ -83,6 +77,9 @@ compiler currently runs on the following platforms:
Other operating systems for the processors above have not been tested, but
the compiler may work under other operating systems with little work.

❗ From OCaml 5.0 onwards, native compilation is available only on 64-bit
systems. Native compilation on 32-bit systems is no longer available, nor
are there plans to bring it back.

== Copyright

Expand Down
Loading
Loading