diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml index 43a3690..85a34ad 100644 --- a/.github/workflows/install.yml +++ b/.github/workflows/install.yml @@ -13,10 +13,10 @@ jobs: os: [ubuntu-latest] steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Use OCaml ${{ matrix.ocaml-compiler }} - uses: ocaml/setup-ocaml@v2 + uses: ocaml/setup-ocaml@v3 with: ocaml-compiler: ${{ matrix.ocaml-compiler }} opam-repositories: | diff --git a/README.md b/README.md index 942ebea..106e48a 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,16 @@ A repository of [OPAM][opam] packages for [Modular Macros][modular-macros]. ### Setting up +Installing the 4.04.0 variant: ``` opam switch create macros --repos default,macros=git+https://github.com/modular-macros/modular-macros-opam.git ocaml-variants.4.04.0+macros ``` +Installing the 5.3.0 variant: +``` +opam switch create macocaml --packages=ocaml-variants.5.3.0+macocaml-branch --repos=default,macocaml=git+https://github.com/modular-macros/modular-macros-opam.git +``` + [modular-macros]: https://www.cl.cam.ac.uk/~jdy22/projects/modular-macros/ [opam]: https://opam.ocaml.org/ diff --git a/packages/ocaml-variants/ocaml-variants.4.04.0+macros/files/fix-gcc10.patch b/packages/ocaml-variants/ocaml-variants.4.04.0+macros/files/fix-gcc10.patch deleted file mode 100644 index a40a7c3..0000000 --- a/packages/ocaml-variants/ocaml-variants.4.04.0+macros/files/fix-gcc10.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit b4443b80713c27deaa5942ba83302409a4b6b3d6 -Author: Anil Madhavapeddy -Date: Sun Jun 21 19:06:50 2020 +0100 - - Add `-fcommon` unconditionally to CFLAGS to fix gcc10 build - - Signed-off-by: Anil Madhavapeddy - -diff --git a/configure b/configure -index f43893a4e..25019ea2c 100755 ---- a/configure -+++ b/configure -@@ -358,7 +358,7 @@ case "$ccfamily" in - wrn "Consider using GCC version 4.2 or above." - bytecccompopts="-std=gnu99 -O $gcc_warnings";; - gcc-*) -- bytecccompopts="-std=gnu99 -O2 -fno-strict-aliasing -fwrapv $gcc_warnings";; -+ bytecccompopts="-std=gnu99 -O2 -fno-strict-aliasing -fwrapv -fcommon $gcc_warnings";; - *) - bytecccompopts="-O";; - esac diff --git a/packages/ocaml-variants/ocaml-variants.4.04.0+macros/opam b/packages/ocaml-variants/ocaml-variants.4.04.0+macros/opam index 6e0b6f8..3b5c125 100644 --- a/packages/ocaml-variants/ocaml-variants.4.04.0+macros/opam +++ b/packages/ocaml-variants/ocaml-variants.4.04.0+macros/opam @@ -57,3 +57,11 @@ authors: [ "Didier Rémy" "Jérôme Vouillon" ] +extra-source "fix-gcc10.patch" { + src: + "https://raw.githubusercontent.com/ocaml/opam-source-archives/main/patches/ocaml-base-compiler/fix-gcc10.patch.4.04.1" + checksum: [ + "sha256=ca5ea3fb78daac1c3899abfddb7bda4680255e6364e53e63d651392e669ab73a" + "md5=c59d1ac3de4c892f4aa74d8d1112de00" + ] +} diff --git a/packages/ocaml-variants/ocaml-variants.5.3.0+macocaml-branch/opam b/packages/ocaml-variants/ocaml-variants.5.3.0+macocaml-branch/opam new file mode 100644 index 0000000..0ca26dd --- /dev/null +++ b/packages/ocaml-variants/ocaml-variants.5.3.0+macocaml-branch/opam @@ -0,0 +1,131 @@ +opam-version: "2.0" +license: "LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception" +synopsis: "Current trunk" +maintainer: [ + "Jeremy Yallop " +] +authors: [ + "Xavier Leroy" + "Damien Doligez" + "Alain Frisch" + "Jacques Garrigue" + "Didier Rémy" + "Jérôme Vouillon" +] +homepage: "https://ocaml.org" +bug-reports: "https://github.com/ocaml/opam-repository/issues" +dev-repo: "git+https://github.com/ocaml/ocaml.git#trunk" +depends: [ + # This is OCaml 5.3.0 + "ocaml" {= "5.3.0" & post} + + # General base- packages + "base-unix" {post} + "base-bigarray" {post} + "base-threads" {post} + "base-domains" {post} + "base-nnp" {post} + "base-effects" {post} + + "ocaml-beta" {opam-version < "2.1.0"} + + # Architecture (non-Windows) + # opam-repository at present requires that ocaml-base-compiler is installed + # using an architecture which matches the machine's, since arch is used in + # available fields. Cross-compilation at this stage is an unstable accident. + "host-arch-arm32" {arch = "arm32" & post} + "host-arch-arm64" {arch = "arm64" & post} + "host-arch-ppc64" {arch = "ppc64" & post} + "host-arch-riscv64" {arch = "riscv64" & post} + "host-arch-s390x" {arch = "s390x" & post} + # The Windows ports explicitly select the architecture (see below) this + # facility is not yet available for other platforms. + "host-arch-x86_32" {os != "win32" & arch = "x86_32" & post} + ("host-arch-x86_64" {os != "win32" & arch = "x86_64" & post} | + ("host-arch-x86_32" {os != "win32" & arch = "x86_64" & post} & "ocaml-option-32bit" {os != "win32" & arch = "x86_64"})) + "host-arch-unknown" {os != "win32" & arch != "arm32" & arch != "arm64" & arch != "ppc64" & arch != "riscv64" & arch != "s390x" & arch != "x86_32" & arch != "x86_64" & post} + + # Port selection (Windows) + # amd64 mingw-w64 / MSVC + (("arch-x86_64" {os = "win32" & arch = "x86_64"} & + (("system-mingw" & "mingw-w64-shims" {os-distribution = "cygwin" & build}) | + ("system-msvc" & "winpthreads" & "ocaml-option-no-compression" {os = "win32"}))) | + # i686 mingw-w64 / MSVC + ("arch-x86_32" {os = "win32"} & "ocaml-option-bytecode-only" {os = "win32"} & + (("system-mingw" & "mingw-w64-shims" {os-distribution = "cygwin" & build}) | + ("system-msvc" & "winpthreads" & "ocaml-option-no-compression" {os = "win32"}))) | + # Non-Windows systems + "host-system-other" {os != "win32" & post}) + + # All the 32-bit architectures are bytecode-only + "ocaml-option-bytecode-only" {arch != "arm64" & arch != "x86_64" & arch != "s390x" & arch != "riscv64" & arch != "ppc64"} + + # Support Packages + "flexdll" {>= "0.42" & os = "win32"} +] +conflict-class: "ocaml-core-compiler" +flags: [ compiler avoid-version ] +setenv: CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs" +x-env-path-rewrite: [ + [CAML_LD_LIBRARY_PATH (";" {os = "win32"} ":" {os != "win32"}) "target"] +] +build-env: [ + [MSYS2_ARG_CONV_EXCL = "*"] + [LSAN_OPTIONS = "detect_leaks=0,exitcode=0"] + [ASAN_OPTIONS = "detect_leaks=0,exitcode=0"] +] +build: [ + [ + "./configure" + "--host=x86_64-pc-windows" {system-msvc:installed & arch-x86_64:installed} + "--host=x86_64-w64-mingw32" {os-distribution = "cygwin" & system-mingw:installed & arch-x86_64:installed} + "--host=i686-pc-windows" {system-msvc:installed & arch-x86_32:installed} + "--host=i686-w64-mingw32" {os-distribution = "cygwin" & system-mingw:installed & arch-x86_32:installed} + "--prefix=%{prefix}%" + "--docdir=%{doc}%/ocaml" + "--with-flexdll=%{flexdll:share}%" {os = "win32" & flexdll:installed} + "--with-winpthreads-msvc=%{winpthreads:share}%" {system-msvc:installed} + "-C" + "--with-afl" {ocaml-option-afl:installed} + "--disable-native-compiler" {ocaml-option-bytecode-only:installed} + "--disable-flat-float-array" {ocaml-option-no-flat-float-array:installed} + "--enable-flambda" {ocaml-option-flambda:installed} + "--enable-frame-pointers" {ocaml-option-fp:installed} + "--without-zstd" {ocaml-option-no-compression:installed} + "--enable-tsan" {ocaml-option-tsan:installed} + "CC=cc" {!ocaml-option-32bit:installed & !ocaml-option-musl:installed & (os="openbsd"|os="macos")} + "CC=clang" {ocaml-option-tsan:installed & (os="macos")} + "CC=musl-gcc" {ocaml-option-musl:installed & os-distribution!="alpine"} + "CFLAGS=-Os" {ocaml-option-musl:installed} + "LDFLAGS=-Wl,--no-as-needed,-ldl" {ocaml-option-leak-sanitizer:installed | (ocaml-option-address-sanitizer:installed & os!="macos")} + "CC=gcc -ldl -fsanitize=leak -fno-omit-frame-pointer -O1 -g" {ocaml-option-leak-sanitizer:installed} + "CC=gcc -ldl -fsanitize=address -fno-omit-frame-pointer -O1 -g" {ocaml-option-address-sanitizer:installed & os!="macos"} + "CC=clang -fsanitize=address -fno-omit-frame-pointer -O1 -g" {ocaml-option-address-sanitizer:installed & os="macos"} + "CC=gcc -m32" {ocaml-option-32bit:installed & os="linux"} + "CC=gcc -Wl,-read_only_relocs,suppress -arch i386 -m32" {ocaml-option-32bit:installed & os="macos"} + "ASPP=musl-gcc -c" {ocaml-option-musl:installed & os-distribution!="alpine"} + "--host=i386-linux" {ocaml-option-32bit:installed & os="linux"} + "--host=i386-apple-darwin13.2.0" {ocaml-option-32bit:installed & os="macos"} + "LIBS=-static" {ocaml-option-static:installed} + "--disable-warn-error" + ] + [make] +] +install: [make "install"] +url { + src: "https://github.com/modular-macros/ocaml-macros/archive/macocaml-5.3.0.tar.gz" +} +depopts: [ + "ocaml-option-32bit" + "ocaml-option-afl" + "ocaml-option-bytecode-only" + "ocaml-option-no-flat-float-array" + "ocaml-option-flambda" + "ocaml-option-fp" + "ocaml-option-no-compression" + "ocaml-option-musl" + "ocaml-option-leak-sanitizer" + "ocaml-option-address-sanitizer" + "ocaml-option-static" + "ocaml-option-tsan" +]