diff --git a/databases/ocaml-mysql/Portfile b/databases/ocaml-mysql/Portfile index baf9ea54174..893eaffca82 100644 --- a/databases/ocaml-mysql/Portfile +++ b/databases/ocaml-mysql/Portfile @@ -1,43 +1,47 @@ -PortSystem 1.0 -PortGroup ocaml 1.0 +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + +PortSystem 1.0 +PortGroup ocaml 1.0 name ocaml-mysql -version 1.0.4 -revision 5 +version 1.2.4 +revision 0 categories databases devel ocaml -platforms darwin maintainers nomaintainer -license LGPL-2.1 -description Mysql5 bindings for OCaml +license LGPL-2.1+ +description OCaml bindings to the MySQL/MariaDB C client library long_description {*}${description} -homepage http://raevnos.pennmush.org/code/ocaml-mysql/ -master_sites http://raevnos.pennmush.org/code/ocaml-mysql/ +homepage https://github.com/ygrek/ocaml-mysql +master_sites https://ygrek.org/p/release/ocaml-mysql/ -checksums md5 76f1282bb7299012669bf40cde78216b \ - rmd160 57b316fdbdd26762916859d04ab0ca15c1365203 \ - sha256 59d11111558986f0ed237016f9758a3cb99e2fdd0ce0dc128319a3ac2a55259e +checksums rmd160 c7131d78ed418317d591eaf9eac865dab4484e68 \ + sha256 8535a88f74a34dfdb51c4539e4a965b84204273bd04e539a5d729f2536da6c9f \ + size 99473 -depends_lib-append port:mysql5 -depends_build port:ocaml-findlib +set mariadb_port mariadb-10.11 + +depends_build-append \ + port:ocaml-findlib +depends_lib-append port:${mariadb_port} + +# configure locates the client library by running mysql_config or +# mariadb_config; point it at the mariadb port's script, which is not on PATH +post-patch { + reinplace "s|mysql_config --|${prefix}/lib/${mariadb_port}/bin/mariadb_config --|g" \ + ${worksrcpath}/configure +} -configure.ldflags-append -L${prefix}/lib/mysql5/mysql -configure.cflags-append -I${prefix}/include/mysql5 -configure.cppflags-append -I${prefix}/include/mysql5 configure.ld_archflags configure.cc_archflags -post-configure { - reinplace "s|OCAMLFIND.*:=.*|OCAMLFIND := ${ocamlfind_wrapper}|g" ${worksrcpath}/OCamlMakefile -} - use_parallel_build no build.target reallyall -post-destroot { - system -W ${ocamlfind_destdir}/mysql "echo 'linkopts = \"-ccopt -L${prefix}/lib/mysql5/mysql/ -ccopt -L${prefix}/lib\"' >> META" -} +# OCamlMakefile only sets OCAMLFIND when unset, so the destroot-aware +# wrapper from the ocaml portgroup can be injected via the environment +destroot.env-append OCAMLFIND=${ocamlfind_wrapper} livecheck.type regex -livecheck.regex {ocaml-mysql-(.*)\.tar\.gz} - +livecheck.url ${master_sites} +livecheck.regex {ocaml-mysql-(\d+(?:\.\d+)+)\.tar\.gz} diff --git a/devel/coccinelle/Portfile b/devel/coccinelle/Portfile index 442c4ccd360..1bfac599b70 100644 --- a/devel/coccinelle/Portfile +++ b/devel/coccinelle/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 github.setup coccinelle coccinelle 1.3.1 github.tarball_from archive -revision 0 +revision 1 license GPL-2 maintainers nomaintainer diff --git a/devel/everparse/Portfile b/devel/everparse/Portfile index ab89e17817d..5af5692b4d4 100644 --- a/devel/everparse/Portfile +++ b/devel/everparse/Portfile @@ -4,11 +4,10 @@ PortSystem 1.0 PortGroup github 1.0 name everparse -github.setup project-everest everparse 69d6c064ea34d0f5458db94ba1204795db9496dc +github.setup project-everest everparse 2026.03.21 v github.tarball_from archive -version 2025.01.25 epoch 1 -revision 1 +revision 0 categories devel maintainers {landonf @landonf} openmaintainer @@ -18,12 +17,13 @@ long_description EverParse provides LowParse, verified-secure F*/Low* parser QuackyDucky, an untrusted compiler for generating verified secure parsers from a \ message format specification. -checksums rmd160 a3dee7f6566f6f2927d8a4330f9c4fcfed9d0600 \ - sha256 51042c4e4f78204acefb1ecf226077a25700ae6d490dd5f725d3ec639e1a9d39 \ - size 18977419 +checksums rmd160 ce5d9b8c41691a0f64fe2f7614b48805b014c1dc \ + sha256 02e13310c1c7e7289663b67e79fab60ee7c3eb67dabd12c240828681740ef61e \ + size 19639572 depends_lib port:fstar \ - port:karamel + port:karamel \ + port:z3-fstar depends_build port:ocaml \ port:ocaml-batteries \ @@ -53,9 +53,20 @@ post-extract { build.type gnu build.env-append FSTAR_EXE=${prefix}/bin/fstar.exe \ OCAMLPATH=${fstar.home}/lib \ - OTHERFLAGS=--admit_smt_queries\ true + OTHERFLAGS=--admit_smt_queries\ true \ + PATH=${prefix}/libexec/z3-fstar/bin:$env(PATH) +# - EVERPARSE_USE_FSTAR_EXE / KRML_HOME: use the port-installed fstar and +# karamel rather than the bundled opt/FStar and opt/karamel sources. +# - NO_PULSE: skip the optional Pulse-based components (we have no Pulse port). +# - z3_exe: short-circuit deps.Makefile's `which z3-4.13.3` lookup so it +# doesn't try to download z3 and pass the download dir as a Make $< +# prerequisite to fstar.exe. build.args FSTAR_EXE=${prefix}/bin/fstar.exe \ - KRML_HOME=${karamel.home}/home + KRML_HOME=${karamel.home}/home \ + EVERPARSE_USE_FSTAR_EXE=1 \ + EVERPARSE_USE_KRML_HOME=1 \ + NO_PULSE=1 \ + z3_exe=${prefix}/libexec/z3-fstar/bin/z3-4.13.3 build.target 3d quackyducky test.run no diff --git a/devel/libCUDF/Portfile b/devel/libCUDF/Portfile index b7160e01dca..828e1729136 100644 --- a/devel/libCUDF/Portfile +++ b/devel/libCUDF/Portfile @@ -6,7 +6,6 @@ PortGroup gitlab 1.0 gitlab.setup irill cudf 0.10 v name libCUDF -revision 0 categories devel ocaml maintainers {cal @neverpanic} openmaintainer license LGPL-3+ @@ -47,10 +46,13 @@ subport ocaml-cudf { } subport libCUDF { - patchfiles-append patch-c-lib-Makefile.diff + revision 1 + patchfiles-append patch-c-lib-Makefile.diff \ + patch-c-lib-Makefile.variants.diff depends_build-append path:bin/pkg-config:pkgconfig depends_lib-append port:ocaml-cudf \ - path:lib/pkgconfig/glib-2.0.pc:glib2 + path:lib/pkgconfig/glib-2.0.pc:glib2 \ + port:zstd build.pre_args -C c-lib build.args all opt destroot.pre_args -C c-lib diff --git a/devel/libCUDF/files/patch-c-lib-Makefile.diff b/devel/libCUDF/files/patch-c-lib-Makefile.diff index d80241a20c9..b4d709abdb3 100644 --- a/devel/libCUDF/files/patch-c-lib-Makefile.diff +++ b/devel/libCUDF/files/patch-c-lib-Makefile.diff @@ -1,15 +1,18 @@ ---- c-lib/Makefile.orig -+++ c-lib/Makefile -@@ -16,7 +16,8 @@ CUDF_LDFLAGS = -L$(OCAML_LIBDIR) -L$(CURDIR) - CUDF_CLIBS = -lcudf -lm -ldl -lunix -lncurses -lglib-2.0 +--- c-lib/Makefile.orig 2026-05-29 06:26:05 ++++ c-lib/Makefile 2026-06-07 00:00:00 +@@ -13,9 +13,10 @@ + OCAML_LIBDIR := $(shell ocamlc -where) + INCLUDES = -I . -I $(OCAML_LIBDIR) $(shell pkg-config --cflags glib-2.0) + CUDF_LDFLAGS = -L$(OCAML_LIBDIR) -L$(CURDIR) +-CUDF_CLIBS = -lcudf -lm -ldl -lunix -lncurses -lglib-2.0 ++CUDF_CLIBS = -lcudf -lm -ldl -lncurses -lglib-2.0 -lzstd -lunixbyt OCAMLC = ocamlfind ocamlc -package unix,extlib OCAMLOPT = ocamlfind ocamlopt -package unix,extlib +CUDF_DIR := $(shell ocamlfind query cudf) INSTALL_STUFF = libcudf.a cudf.h cudf.pc - libcudf.a: cudf-caml.o cudf.o -@@ -27,14 +28,14 @@ libcudf-opt.a: cudf-caml-opt.o cudf.o +@@ -27,14 +28,14 @@ ar r $@ $^ cudf_c.cmo: cudf_c.ml @@ -28,3 +31,12 @@ cudf.o: cudf.c cudf.h cudf-variants.h +@@ -45,7 +46,7 @@ + $(CC) $(PROG_CFLAGS) -o $@ $(INCLUDES) $(CUDF_LDFLAGS) $< $(CUDF_CLIBS) + c-test-opt: c-test.o libcudf-opt.a + $(CC) $(PROG_CFLAGS) -o $@ $(INCLUDES) $(CUDF_LDFLAGS) $< \ +- $(subst -lcudf,-lcudf-opt,$(CUDF_CLIBS)) ++ $(subst -lunixbyt,-lunixnat,$(subst -lcudf,-lcudf-opt,$(CUDF_CLIBS))) + + test: ../tests/data/legacy.cudf ../tests/data/legacy-sol.cudf c-test + ./c-test ../tests/data/legacy.cudf ../tests/data/legacy-sol.cudf > /dev/null diff --git a/devel/libCUDF/files/patch-c-lib-Makefile.variants.diff b/devel/libCUDF/files/patch-c-lib-Makefile.variants.diff new file mode 100644 index 00000000000..20b9b4ff71d --- /dev/null +++ b/devel/libCUDF/files/patch-c-lib-Makefile.variants.diff @@ -0,0 +1,9 @@ +--- c-lib/Makefile.variants.orig 2026-05-29 06:26:05 ++++ c-lib/Makefile.variants 2026-06-07 00:00:00 +@@ -65,7 +65,7 @@ + caml_hash_variant: caml_hash_variant.o + > dummy.ml + ocamlc -o dummy.o -output-obj dummy.ml +- $(CC) $(CFLAGS) -o $@ $< dummy.o -L$(OCAML_LIBDIR) -lcamlrun -lm -lcurses -ldl ++ $(CC) $(CFLAGS) -o $@ $< dummy.o -L$(OCAML_LIBDIR) -lcamlrun -lm -lcurses -ldl -lzstd + @rm -f dummy.* diff --git a/devel/omake/Portfile b/devel/omake/Portfile index 3aaf1b78da2..6800c8e90f7 100644 --- a/devel/omake/Portfile +++ b/devel/omake/Portfile @@ -4,7 +4,7 @@ PortSystem 1.0 name omake version 0.10.7 -revision 0 +revision 1 categories devel maintainers nomaintainer license GPL-2 diff --git a/devel/ott/Portfile b/devel/ott/Portfile index e323cc33162..a25f95db7dd 100644 --- a/devel/ott/Portfile +++ b/devel/ott/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 name ott github.setup ott-lang ott 0.34 -revision 0 +revision 1 categories devel license BSD maintainers gmail.com:ggreif openmaintainer diff --git a/devel/swig/Portfile b/devel/swig/Portfile index ea1cfd13c2d..f3d3282825a 100644 --- a/devel/swig/Portfile +++ b/devel/swig/Portfile @@ -4,7 +4,7 @@ PortSystem 1.0 name swig version 4.4.1 -revision 0 +revision 1 checksums sha1 da62a4e797d09bc1a1febb0618c98249d69d3557 \ rmd160 89e899c774904400c54689f3c99b2b6ade469864 \ sha256 40162a706c56f7592d08fd52ef5511cb7ac191f3593cf07306a0a554c6281fcf \ diff --git a/devel/swig3/Portfile b/devel/swig3/Portfile index 55ec3b1c44a..6a8c267e106 100644 --- a/devel/swig3/Portfile +++ b/devel/swig3/Portfile @@ -4,7 +4,7 @@ PortSystem 1.0 name swig3 version 3.0.12 -revision 5 +revision 6 checksums rmd160 41877e9de3ff598731ef36161f77fa66dec3c301 \ sha256 7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d \ size 8149820 diff --git a/editors/ledit/Portfile b/editors/ledit/Portfile index 56b6464d451..9689df7a464 100644 --- a/editors/ledit/Portfile +++ b/editors/ledit/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 name ledit github.setup chetmurthy ledit 2.08 {} -revision 0 +revision 1 categories editors license BSD maintainers nomaintainer diff --git a/genealogy/geneweb/Portfile b/genealogy/geneweb/Portfile index 8ed4f81621d..a89a96413b5 100644 --- a/genealogy/geneweb/Portfile +++ b/genealogy/geneweb/Portfile @@ -4,7 +4,7 @@ PortSystem 1.0 PortGroup github 1.0 github.setup geneweb geneweb 7.1.0-beta2 v -revision 2 +revision 3 categories genealogy maintainers {pguyot @pguyot} openmaintainer license GPL-2 diff --git a/graphics/lablgl/Portfile b/graphics/lablgl/Portfile index 7c0d7912d96..02439037881 100644 --- a/graphics/lablgl/Portfile +++ b/graphics/lablgl/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 github.setup garrigue lablgl 1.07 v github.tarball_from archive -revision 0 +revision 1 epoch 1 categories graphics ocaml license BSD Tcl/Tk diff --git a/graphics/ocaml-labltk/Portfile b/graphics/ocaml-labltk/Portfile index ba11bf819e0..8741037d820 100644 --- a/graphics/ocaml-labltk/Portfile +++ b/graphics/ocaml-labltk/Portfile @@ -4,11 +4,11 @@ PortSystem 1.0 PortGroup ocaml 1.1 PortGroup github 1.0 -github.setup garrigue labltk 8.06.12 +github.setup garrigue labltk 8.06.16 revision 0 -checksums rmd160 f49c69916e31af46b8a5e3d8602f309f227f05bb \ - sha256 14e0347cb12390212b67ea3078c7ae6b9f551464ef7cea8057d69c9a15060370 \ - size 372215 +checksums rmd160 b3649b6e321d575bbb342648cc7c684e669c915a \ + sha256 f816031d6fa024a7ff8cf768205ff24c528ae2c69eca86ad7d7b5ddab4e16022 \ + size 385188 name ocaml-labltk categories graphics devel ocaml @@ -23,13 +23,6 @@ long_description LablTk is an interface to the Tcl/Tk GUI framework. It \ homepage https://garrigue.github.io/labltk/ github.tarball_from archive -patchfiles-append implicit-int.patch -patchfiles-append ranlib.patch -# in searching for headers and libraries, search ${prefix} first -patchfiles-append patch-configure.diff -post-patch { - reinplace "s|__MACPORTS_PREFIX__|${prefix}|g" ${worksrcpath}/configure -} depends_lib-append port:tcl \ port:tk diff --git a/kde/kalzium/Portfile b/kde/kalzium/Portfile index 502d66cdf6b..1d2eb025fb5 100644 --- a/kde/kalzium/Portfile +++ b/kde/kalzium/Portfile @@ -5,7 +5,7 @@ PortGroup kde4 1.1 name kalzium version 4.14.3 -revision 4 +revision 5 categories kde kde4 chemistry license GPL-2+ LGPL-2+ maintainers nomaintainer @@ -13,7 +13,6 @@ description Periodic Table of Elements long_description KDE ${description} homepage https://www.kde.org -platforms darwin master_sites kde:stable/${version}/src/ use_xz yes diff --git a/lang/camlp5/Portfile b/lang/camlp5/Portfile index c390ec0ddaf..eb57e63c6fc 100644 --- a/lang/camlp5/Portfile +++ b/lang/camlp5/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 github.setup camlp5 camlp5 8.04.00 github.tarball_from archive -revision 0 +revision 1 categories lang ocaml license BSD maintainers {pmetzger @pmetzger} openmaintainer @@ -42,7 +42,7 @@ depends_lib port:ocaml \ configure.pre_args --prefix "${prefix}" configure.args --mandir "${prefix}/share/man" -if {${build_arch} eq "ppc" || ${build_arch} eq "ppc64"} { +if {${build_arch} in [list i386 ppc ppc64]} { build.target world } else { build.target world.opt diff --git a/lang/fstar/Portfile b/lang/fstar/Portfile index 7dda3fc87f0..e1c60a359db 100644 --- a/lang/fstar/Portfile +++ b/lang/fstar/Portfile @@ -59,9 +59,9 @@ if {${subport} eq "fstar" || ${subport} eq "karamel"} { } subport fstar { - github.setup FStarLang FStar 2025.03.25 v + github.setup FStarLang FStar 2026.03.24 v epoch 1 - revision 1 + revision 0 license Apache-2 description Verification system for effectful programs @@ -74,9 +74,9 @@ subport fstar { be extracted to efficient OCaml, F#, C, WASM, or ASM \ code. - checksums rmd160 aa976d5d7e1836c932dedd0f719a509e4e5f3997 \ - sha256 923488dff1927adfeb96b3ef2f9707fd9c5ec6589c41dd47d5ba8f01ae1aeac8 \ - size 7598122 + checksums rmd160 bb8fb959aa41176cc3a21955568aa5cf8629a1b3 \ + sha256 64a898ae1d0089315f607c47d9d708895748f86a009ee0d65eed9d8d433cf518 \ + size 7548587 github.tarball_from archive depends_build-append path:libexec/coreutils/libstdbuf.so:coreutils @@ -137,23 +137,25 @@ subport fstar { subport karamel { # KreMLin was renamed to KaRaMeL; sources are now at FStarLang/karamel - github.setup FStarLang karamel 86f99f08afa04ca792f9c4f64f24db4c0fdbc46c - version 2025.04.01 + github.setup FStarLang karamel c96d44beee92853a4cc8d9c4bc84e8eb452379f4 + version 2026.03.25 epoch 1 - revision 1 + revision 0 license Apache-2 description A tool for extracting low-level F* programs to readable C code long_description KaRaMeL (formerly KreMLin) is a tool that extracts an F* \ program to readable C code. - checksums rmd160 3bb15f59d3ea439ea52b27644d4dbe97bd166757 \ - sha256 e80c43582f8b359fc218d34bbaeee2c9f9687094e0101dffad1b9e212f3921f8 \ - size 498787 + checksums rmd160 10280a530b0540b48f818d3ef6b50ebd3aad0235 \ + sha256 0740ee6d6179a99d46d59002f59a545a7c8811bae7d2e203153b71d7db3e306c \ + size 516532 github.tarball_from archive compiler.c_standard 2011 + depends_build-append port:gtime + depends_lib-append port:fstar \ path:libexec/coreutils/libstdbuf.so:coreutils \ port:ocaml-fix \ @@ -161,8 +163,6 @@ subport karamel { port:ocaml-visitors \ port:ocaml-uucp - patchfiles-append karamel/patch-lib-dune-add-str - karamel.bin krml karamel.doc_dirs {} @@ -221,24 +221,24 @@ if {${subport} eq "kremlin" || ${subport} eq "fstar-devel" || subport kremlin { version 2022.06.08 - revision 1 + revision 2 replaced_by karamel } subport fstar-devel { version 20210824-b95d1ac - revision 1 + revision 2 replaced_by fstar } subport fstar_select { version 1.3 - revision 1 + revision 2 } subport kremlin_select { version 1.3 - revision 1 + revision 2 } # diff --git a/lang/fstar/files/karamel/patch-lib-dune-add-str b/lang/fstar/files/karamel/patch-lib-dune-add-str deleted file mode 100644 index 7042741b83f..00000000000 --- a/lang/fstar/files/karamel/patch-lib-dune-add-str +++ /dev/null @@ -1,10 +0,0 @@ ---- lib/dune.orig -+++ lib/dune -@@ -5,6 +5,7 @@ - (libraries - ppx_deriving.std - ppx_deriving_yojson -+ str - zarith - pprint - unix diff --git a/lang/ocaml-camlp4/Portfile b/lang/ocaml-camlp4/Portfile index 80f41fa41b8..1e2f5cf6592 100644 --- a/lang/ocaml-camlp4/Portfile +++ b/lang/ocaml-camlp4/Portfile @@ -4,9 +4,8 @@ PortSystem 1.0 PortGroup ocaml 1.0 PortGroup github 1.0 -github.setup ocaml camlp4 4.14+1 -# Change github.tarball_from to 'releases' or 'archive' next update -github.tarball_from tarball +github.setup ocaml camlp4 5.4+1 +github.tarball_from archive name ocaml-camlp4 version [string map {+ -} ${version}] revision 0 @@ -25,17 +24,18 @@ long_description \ 4.01.0. Since then it has been replaced by a simpler system which is \ easier to maintain and to learn: ppx rewriters and extension points. -checksums rmd160 e914eeccb76e0703412dba0aedd15454b7c3d276 \ - sha256 9b359566efba1f4465e5dcf9bd5c6c6cb25ad7ab42165fd072c4a94a03374adb \ - size 653208 +checksums rmd160 9702acda504f635867e3a2b4b1cfc19ba52ca5f5 \ + sha256 5eb78289bc6bef9d9e46836575303db43f4fdb9d332cea53b138e8f8380ccbb9 \ + size 653021 configure.pre_args --bindir=${prefix}/bin --libdir=${prefix}/lib/ocaml --pkgdir=${ocamlfind_dir} depends_build port:ocaml-ocamlbuild +depends_lib-append port:ocaml-camlp-streams use_parallel_build no -if {${build_arch} eq "ppc" || ${build_arch} eq "ppc64"} { +if {${build_arch} in [list i386 ppc ppc64]} { build.target byte } else { build.target byte native diff --git a/lang/ocaml-dypgen/Portfile b/lang/ocaml-dypgen/Portfile index dcfaa0952fd..bfacd2caac7 100644 --- a/lang/ocaml-dypgen/Portfile +++ b/lang/ocaml-dypgen/Portfile @@ -3,9 +3,8 @@ PortGroup ocaml 1.0 name ocaml-dypgen version 20120619-1 -revision 4 +revision 5 categories lang devel ocaml -platforms darwin license CeCILL-B maintainers nomaintainer description Self-extensible parsers and lexers for the Objective Caml programming language. @@ -24,10 +23,66 @@ depends_lib port:ocaml-findlib \ worksrcdir dypgen -patchfiles patch-Makefile.diff patch-dyplib-Makefile.diff +patchfiles patch-Makefile.diff patch-dyplib-Makefile.diff \ + patch-ocaml5.diff configure { reinplace "s|@ocamlfind@|${ocamlfind_wrapper}|g" ${worksrcpath}/dyplib/Makefile + # OCaml 5: bytes.[i] indexing syntax was removed; use Bytes.get instead + reinplace {s|lexbuf\.lex_buffer\.\[p\]|(Bytes.get lexbuf.lex_buffer p)|g} \ + ${worksrcpath}/dyplib/dyplex.ml + reinplace {s|String\.length lexbuf\.lex_buffer|Bytes.length lexbuf.lex_buffer|g} \ + ${worksrcpath}/dyplib/dyplex.ml + # dyp.ml: lex_buffer is bytes; String.sub -> Bytes.sub_string, %s -> Bytes.to_string + reinplace {s|String\.sub lexbuf\.lb_lexbuf\.lex_buffer|Bytes.sub_string lexbuf.lb_lexbuf.lex_buffer|g} \ + ${worksrcpath}/dyplib/dyp.ml + reinplace {s|"1; %s\\n" lexbuf\.lb_lexbuf\.lex_buffer|"1; %s\n" (Bytes.to_string lexbuf.lb_lexbuf.lex_buffer)|g} \ + ${worksrcpath}/dyplib/dyp.ml + # dyp.mli: Lexing.from_function uses bytes in OCaml 5, not string + reinplace {s|(string -> int -> int) ->|(bytes -> int -> int) ->|} \ + ${worksrcpath}/dyplib/dyp.mli + # OCaml 5 removed gprof support (-p flag); drop the prof build target + reinplace {s|^all: dyp opt prof$|all: dyp opt|} \ + ${worksrcpath}/dyplib/Makefile + # extract_type.mll: string mutation removed in OCaml 5; rebuild immutably + reinplace {s|s\.\[len2-1\] <- r\.\[len-1\];|let s = String.sub s 0 (len2-1) ^ String.make 1 r.[len-1] in|} \ + ${worksrcpath}/dypgen/extract_type.mll + # extract_type.mll: OCaml 5 dropped Pervasives, String.copy and String.fill, + # and forbids in-place string mutation; switch to Stdlib/Bytes + reinplace {s|Pervasives\.compare|Stdlib.compare|} ${worksrcpath}/dypgen/extract_type.mll + reinplace {s|String\.copy (Buffer\.contents string_buf)|(Buffer.contents string_buf)|g} \ + ${worksrcpath}/dypgen/extract_type.mll + reinplace {s|fix_variant s lexbuf2;|let s = Bytes.of_string s in fix_variant s lexbuf2; let s = Bytes.to_string s in|g} \ + ${worksrcpath}/dypgen/extract_type.mll + reinplace {s|fun_typ\.\[i\] <- ' '; fun_typ\.\[i+2\] <- ' ';|Bytes.set fun_typ i ' '; Bytes.set fun_typ (i+2) ' ';|} \ + ${worksrcpath}/dypgen/extract_type.mll + reinplace {s|fun_typ\.\[i+1\] <- ' ';|Bytes.set fun_typ (i+1) ' ';|} \ + ${worksrcpath}/dypgen/extract_type.mll + reinplace {s|String\.fill fun_typ|Bytes.fill fun_typ|} ${worksrcpath}/dypgen/extract_type.mll + # dypgen_lexer.mll: build a single-char string immutably + reinplace {s|let string_of_char c = let x = " " in x\.\[0\] <- c; x|let string_of_char c = String.make 1 c|} \ + ${worksrcpath}/dypgen/dypgen_lexer.mll + # insert_linenum.mll: the line-number buffer is a mutable byte sequence now + reinplace {s|let buffer = ref ""|let buffer = ref Bytes.empty|} ${worksrcpath}/dypgen/insert_linenum.mll + reinplace {s|let space = String\.make 20 ' '|let space = Bytes.make 20 ' '|} \ + ${worksrcpath}/dypgen/insert_linenum.mll + reinplace {s|String\.blit str 0 space 0 (String\.length str)|Bytes.blit_string str 0 space 0 (String.length str)|} \ + ${worksrcpath}/dypgen/insert_linenum.mll + reinplace {s|String\.blit space 0 !buffer pos\.pos_cnum 20|Bytes.blit space 0 !buffer pos.pos_cnum 20|} \ + ${worksrcpath}/dypgen/insert_linenum.mll + reinplace {s|let result = !buffer in buffer := ""; result|let result = !buffer in buffer := Bytes.empty; Bytes.to_string result|} \ + ${worksrcpath}/dypgen/insert_linenum.mll + reinplace {s|String\.blit fn2 0 parser_code pos\.pos_cnum (len+8)|Bytes.blit_string fn2 0 parser_code pos.pos_cnum (len+8)|} \ + ${worksrcpath}/dypgen/insert_linenum.mll + # dypgen.ml: feed Insert_linenum the bytes buffer it now expects + reinplace {s|Insert_linenum\.buffer := String\.copy parser_code$|Insert_linenum.buffer := Bytes.of_string parser_code|} \ + ${worksrcpath}/dypgen/dypgen.ml + reinplace {s|Insert_linenum\.buffer := String\.copy parser_code_mli;|Insert_linenum.buffer := Bytes.of_string parser_code_mli;|} \ + ${worksrcpath}/dypgen/dypgen.ml + reinplace {s|(try Insert_linenum\.replace_filename parser_code input_file_short lexbuf|let parser_code = Bytes.of_string parser_code in (try Insert_linenum.replace_filename parser_code input_file_short lexbuf|} \ + ${worksrcpath}/dypgen/dypgen.ml + reinplace {s|output_string dest_file parser_code;|output_string dest_file (Bytes.to_string parser_code);|} \ + ${worksrcpath}/dypgen/dypgen.ml } use_configure no diff --git a/lang/ocaml-dypgen/files/patch-ocaml5.diff b/lang/ocaml-dypgen/files/patch-ocaml5.diff new file mode 100644 index 00000000000..59edda85ffa --- /dev/null +++ b/lang/ocaml-dypgen/files/patch-ocaml5.diff @@ -0,0 +1,420 @@ +diff -ru dypgen-orig/demos/demo/demo.ml dypgen/demos/demo/demo.ml +--- demos/demo/demo.ml 2026-05-29 06:21:51 ++++ demos/demo/demo.ml 2026-05-29 06:21:51 +@@ -12,7 +12,7 @@ + exit 0) + + let input_file = !string_ref +-let lexbuf = Dyp.from_channel (Parser.pp ()) (Pervasives.open_in input_file) ++let lexbuf = Dyp.from_channel (Parser.pp ()) (Stdlib.open_in input_file) + let prog = fst (List.hd (Parser.main lexbuf)) + + let s = str_expr prog +diff -ru dypgen-orig/demos/demo_ocamllex/demo.ml dypgen/demos/demo_ocamllex/demo.ml +--- demos/demo_ocamllex/demo.ml 2026-05-29 06:21:51 ++++ demos/demo_ocamllex/demo.ml 2026-05-29 06:21:51 +@@ -12,7 +12,7 @@ + exit 0) + + let input_file = !string_ref +-let lexbuf = Lexing.from_channel (Pervasives.open_in input_file) ++let lexbuf = Lexing.from_channel (Stdlib.open_in input_file) + let prog = fst (List.hd (Parser.main Lexer.token lexbuf)) + + let s = str_expr prog +diff -ru dypgen-orig/demos/demo_ocamllex/parse_tree.ml dypgen/demos/demo_ocamllex/parse_tree.ml +--- demos/demo_ocamllex/parse_tree.ml 2026-05-29 06:21:51 ++++ demos/demo_ocamllex/parse_tree.ml 2026-05-29 06:21:51 +@@ -22,7 +22,7 @@ + module Ordered_string = + struct + type t = string +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + + module String_map = Map.Make(Ordered_string) +diff -ru dypgen-orig/demos/position/position.ml dypgen/demos/position/position.ml +--- demos/position/position.ml 2026-05-29 06:21:51 ++++ demos/position/position.ml 2026-05-29 06:21:51 +@@ -4,7 +4,7 @@ + let input_file = "input" + + let lexbuf = Dyp.from_channel +- (Position_parser.pp ()) (Pervasives.open_in input_file) ++ (Position_parser.pp ()) (Stdlib.open_in input_file) + + let std_lb = Dyp.std_lexbuf lexbuf + let _ = std_lb.lex_curr_p <- +diff -ru dypgen-orig/demos/position_ocamllex/position.ml dypgen/demos/position_ocamllex/position.ml +--- demos/position_ocamllex/position.ml 2026-05-29 06:21:51 ++++ demos/position_ocamllex/position.ml 2026-05-29 06:21:51 +@@ -5,7 +5,7 @@ + + let input_file = "input" + +-let lexbuf = Lexing.from_channel (Pervasives.open_in input_file) ++let lexbuf = Lexing.from_channel (Stdlib.open_in input_file) + let _ = lexbuf.lex_curr_p <- { lexbuf.lex_curr_p with pos_fname = input_file } + let pf = Position_parser.main Position_lexer.token lexbuf + +diff -ru dypgen-orig/demos/position_token_list/position.ml dypgen/demos/position_token_list/position.ml +--- demos/position_token_list/position.ml 2026-05-29 06:21:51 ++++ demos/position_token_list/position.ml 2026-05-29 06:21:51 +@@ -5,7 +5,7 @@ + + let input_file = "input" + +-let lexbuf = Lexing.from_channel (Pervasives.open_in input_file) ++let lexbuf = Lexing.from_channel (Stdlib.open_in input_file) + let _ = lexbuf.lex_curr_p <- { lexbuf.lex_curr_p with pos_fname = input_file } + let lexfun = Position_lexer.token + +diff -ru dypgen-orig/demos/tinyML/parse_tree.ml dypgen/demos/tinyML/parse_tree.ml +--- demos/tinyML/parse_tree.ml 2026-05-29 06:21:51 ++++ demos/tinyML/parse_tree.ml 2026-05-29 06:21:51 +@@ -61,7 +61,7 @@ + module Ordered_string = + struct + type t = string +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + + module String_map = Map.Make(Ordered_string) +@@ -113,7 +113,7 @@ + module Ordered_op = + struct + type t = string +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + + module Op_map = Map.Make(Ordered_op) +diff -ru dypgen-orig/demos/tinyML/tinyML.ml dypgen/demos/tinyML/tinyML.ml +--- demos/tinyML/tinyML.ml 2026-05-29 06:21:51 ++++ demos/tinyML/tinyML.ml 2026-05-29 06:21:51 +@@ -3,7 +3,7 @@ + open Dyp + + let input_file_name = !(Argument.string_ref) +-let input_file = Pervasives.open_in input_file_name ++let input_file = Stdlib.open_in input_file_name + + let pp, se_code = + let (pp:(unit, +diff -ru dypgen-orig/demos/tinyML_ulex/parse_tree.ml dypgen/demos/tinyML_ulex/parse_tree.ml +--- demos/tinyML_ulex/parse_tree.ml 2026-05-29 06:21:51 ++++ demos/tinyML_ulex/parse_tree.ml 2026-05-29 06:21:51 +@@ -42,7 +42,7 @@ + module Ordered_string = + struct + type t = string +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + + module String_map = Map.Make(Ordered_string) +diff -ru dypgen-orig/demos/tinyML_ulex/tinyML.ml dypgen/demos/tinyML_ulex/tinyML.ml +--- demos/tinyML_ulex/tinyML.ml 2026-05-29 06:21:51 ++++ demos/tinyML_ulex/tinyML.ml 2026-05-29 06:21:51 +@@ -4,7 +4,7 @@ + + let input_file = !(Argument.string_ref) + +-let lexbuf = Ulexing.from_utf8_channel (Pervasives.open_in input_file) ++let lexbuf = Ulexing.from_utf8_channel (Stdlib.open_in input_file) + + let pf = TinyML_parser.main TinyML_lexer.token lexbuf + let prog = fst (List.hd pf) +diff -ru dypgen-orig/dypgen/dypgen.ml dypgen/dypgen/dypgen.ml +--- dypgen/dypgen.ml 2026-05-29 06:21:51 ++++ dypgen/dypgen.ml 2026-05-29 06:21:51 +@@ -26,7 +26,7 @@ + let output_file_mli = input_file_short^".mli" + + +-let lexbuf = Lexing.from_channel (Pervasives.open_in input_file) ++let lexbuf = Lexing.from_channel (Stdlib.open_in input_file) + let () = + lexbuf.lex_curr_p <- { lexbuf.lex_curr_p with pos_fname = input_file }; + lexbuf.lex_start_p <- { lexbuf.lex_start_p with pos_fname = input_file } +@@ -651,7 +651,7 @@ + module Ordered_str2 = + struct + type t = string * string +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + module Str2_map = Map.Make(Ordered_str2) + +diff -ru dypgen-orig/dypgen/dypgen_parser.ml dypgen/dypgen/dypgen_parser.ml +--- dypgen/dypgen_parser.ml 2026-05-29 06:21:51 ++++ dypgen/dypgen_parser.ml 2026-05-29 06:21:51 +@@ -784,7 +784,7 @@ + module Ordered_string = + struct + type t = string +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + + module String_set = Set.Make(Ordered_string) +diff -ru dypgen-orig/dyplib/automaton.ml dypgen/dyplib/automaton.ml +--- dyplib/automaton.ml 2026-05-29 06:21:51 ++++ dyplib/automaton.ml 2026-05-29 06:21:51 +@@ -55,7 +55,7 @@ + module Ordered_non_ter = + struct + type t = non_ter +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + module Nt_map = Map.Make(Ordered_non_ter) + +@@ -75,7 +75,7 @@ + module Ordered_int = + struct + type t = int +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + module Int_set = Set.Make(Ordered_int) + module Int_map = Map.Make(Ordered_int) +@@ -97,7 +97,7 @@ + (* the int tells whether the rule allows layout characters + inside or afterwards (see rule options) *) + let compare l1 l2 = +- Pervasives.compare l1 l2 ++ Stdlib.compare l1 l2 + end + module Map_rhs = Map.Make (Ordered_rhs) + +@@ -108,21 +108,21 @@ + module Ordered_items = + struct + type t = item +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + module Item_map = Map.Make(Ordered_items) + + module Ordered_token_name = + struct + type t = token_name +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + module TNS = Set.Make (Ordered_token_name) + + module Ordered_intc = + struct + type t = int * int +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + module Intc_map = Map.Make(Ordered_intc) + module Intc_set = Set.Make(Ordered_intc) +@@ -130,7 +130,7 @@ + module Ordered_predict = + struct + type t = (non_ter * (priority nt_prio)) +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + module Predict = Set.Make(Ordered_predict) + +@@ -196,7 +196,7 @@ + if c<>0 then c else + let c = Intc_set.compare is1.kernel_nt is2.kernel_nt in + if c<>0 then c else +- let c = Pervasives.compare is1.non_kernel is2.non_kernel in ++ let c = Stdlib.compare is1.non_kernel is2.non_kernel in + if c<>0 then c else Predict.compare is1.predict is2.predict + + let soc c = Char.escaped c +@@ -300,7 +300,7 @@ + module Ordered_ntp = + struct + type t = priority nt_prio +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + module Ntp_map = Map.Make(Ordered_ntp) + +@@ -322,7 +322,7 @@ + module Ordered_lit_trans= + struct + type t = lit_trans +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + + module Map_lit_trans = Map.Make(Ordered_lit_trans) +@@ -338,7 +338,7 @@ + let c = Intc_set.compare is1.kernel_nt is2.kernel_nt in + if c<>0 then c else + Intc_set.compare is1.kernel_t is2.kernel_t +- (*else Pervasives.compare ++ (*else Stdlib.compare + (is1.reducible,is1.kernel_nt,is1.kernel_t) + (is2.reducible,is2.kernel_nt,is2.kernel_t)*) + end +@@ -359,7 +359,7 @@ + module Ordered_States = + struct + type t = state +- let compare s1 s2 = Pervasives.compare s1.number s2.number ++ let compare s1 s2 = Stdlib.compare s1.number s2.number + (*compare_is s1.items s2.items*) + end + module State_set = Set.Make(Ordered_States) +diff -ru dypgen-orig/dyplib/dyp.ml dypgen/dyplib/dyp.ml +--- dyplib/dyp.ml 2026-05-29 06:21:51 ++++ dyplib/dyp.ml 2026-05-29 06:21:51 +@@ -91,7 +91,7 @@ + module Ordered_urule = + struct + type t = nrule +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + + module Urule_map = Map.Make(Ordered_urule) +@@ -355,7 +355,7 @@ + module Ordered_nrule = + struct + type t = nrule +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + + module RS = Set.Make (Ordered_nrule) +@@ -933,7 +933,7 @@ + type t = (non_ter * priority) * rhs * int + (* the int tells whether the rule allows layout characters + inside or afterwards *) +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + module Rule_map = Map.Make(Ordered_rule) + +@@ -2012,7 +2012,7 @@ + module Ordered_edge = + struct + type t = lit_trans * priority +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + module Edge_map = Map.Make(Ordered_edge) + +@@ -2391,7 +2391,7 @@ + with Not_found -> + let new_lhslist = + comp_lhslist (nt,ntp) lhslists priodata array_nt_prio in +- let new_lhslist = List.sort Pervasives.compare new_lhslist in ++ let new_lhslist = List.sort Stdlib.compare new_lhslist in + try + let old_nt = make_old_nt nt ntp pdev priodata str_non_ter in + let old_lhslist = +@@ -2402,7 +2402,7 @@ + nt_of_ind.(i),prio_of_ind.(i),i) + old_lhslist + in +- let old_lhslist = List.sort Pervasives.compare old_lhslist in ++ let old_lhslist = List.sort Stdlib.compare old_lhslist in + let l = diff_list new_lhslist old_lhslist [] in + let prio_l = List.map (fun (_,p,_) -> p) l in + (*Printf.fprintf !log_channel "diff_lhslist res = "; +@@ -3295,9 +3295,9 @@ + | None -> assert false + in + if rel then 1 else +- let c = Pervasives.compare (ind,rhs) (ind1,rhs1) in ++ let c = Stdlib.compare (ind,rhs) (ind1,rhs1) in + if c<>0 then c else +- let c = Pervasives.compare start_node.sn_nb ++ let c = Stdlib.compare start_node.sn_nb + start1.sn_nb in + if c<>0 then c else + let rec aux l1 l2 = match l1,l2 with +@@ -3305,7 +3305,7 @@ + | _,[] -> 1 + | [],_ -> -1 + | (e1::t1),(e2::t2) -> +- let c = Pervasives.compare (snd e1.edge_label) ++ let c = Stdlib.compare (snd e1.edge_label) + (snd e2.edge_label) in + if c<>0 then c else aux t1 t2 + in aux p p1 +@@ -4825,11 +4825,11 @@ + output_string !log_channel "select_token called\n"; + + let topmost = List.sort (fun v1 v2 -> +- Pervasives.compare v1.pdev.lex_nb v2.pdev.lex_nb) topmost in ++ Stdlib.compare v1.pdev.lex_nb v2.pdev.lex_nb) topmost in + (*let topmost = match topmost with + | [_] -> topmost + | _ -> List.sort (fun v1 v2 -> +- Pervasives.compare v1.pdev.lex_nb v2.pdev.lex_nb) ++ Stdlib.compare v1.pdev.lex_nb v2.pdev.lex_nb) + topmost + in*) + let tbl_l, pdev_l, snll, snl, _ = List.fold_left +@@ -4926,7 +4926,7 @@ + in + match act_id_l with [] -> None + | x -> +- let x = no_double (List.sort Pervasives.compare x) in ++ let x = no_double (List.sort Stdlib.compare x) in + (*Printf.printf "list x = %s\n" + (String.concat " " (List.map (fun i -> string_of_int i) x));*) + Some ((if all_token then x else [select_act_id x]), pdev) +diff -ru dypgen-orig/dyplib/dyplex.ml dypgen/dyplib/dyplex.ml +--- dyplib/dyplex.ml 2026-05-29 06:21:51 ++++ dyplib/dyplex.ml 2026-05-29 06:21:51 +@@ -214,7 +214,7 @@ + module Ordered_node = + struct + type t = node +- let compare n1 n2 = Pervasives.compare n1.id n2.id ++ let compare n1 n2 = Stdlib.compare n1.id n2.id + end + module Node_set = Set.Make(Ordered_node) + +@@ -436,7 +436,7 @@ + (function ([ci],n1) -> write_interval ci n.id dec_table n1.id + | _ -> assert false) + trans_l); +- final.(n.id) <- List.sort Pervasives.compare (list_of_set n.matched) ++ final.(n.id) <- List.sort Stdlib.compare (list_of_set n.matched) + (* Is it necessary to sort the list or doesn't + list_of_set already do it? *)) + sl in +@@ -491,7 +491,7 @@ + (function ([ci],n1) -> write_interval ci n.id dec_table n1.id + | _ -> assert false) + trans_l); +- final.(n.id) <- List.sort Pervasives.compare (list_of_set n.matched) ++ final.(n.id) <- List.sort Stdlib.compare (list_of_set n.matched) + (* Is it necessary to sort the list or doesn't + list_of_set already do it? *)) + sl in +diff -ru dypgen-orig/dyplib/priority_by_relation.ml dypgen/dyplib/priority_by_relation.ml +--- dyplib/priority_by_relation.ml 2026-05-29 06:21:51 ++++ dyplib/priority_by_relation.ml 2026-05-29 06:21:51 +@@ -32,12 +32,12 @@ + module OrdPrio = + struct + type t = priority +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + module Ordered_string = + struct + type t = string +- let compare = Pervasives.compare ++ let compare = Stdlib.compare + end + + module Prio_set = Set.Make(OrdPrio) diff --git a/lang/ocaml/Portfile b/lang/ocaml/Portfile index f79d8a80e60..b4df9109661 100644 --- a/lang/ocaml/Portfile +++ b/lang/ocaml/Portfile @@ -5,17 +5,12 @@ PortSystem 1.0 # When updating ocaml, also update ocaml-camlp4 and camlp5 to compatible # versions (c.f. #26769, #20219, #18292) or increase their revisions to # rebuild them. -# Note that ocaml-camlp4 may no longer be available at all in ocaml 4.09 and -# after; all ports depending on camlp4 need to be obsoleted. -# -# When ocaml is next updated, please update lablgtk2 as well name ocaml epoch 1 -version 4.14.1 -revision 1 +version 5.4.1 +revision 0 set major_vers [join [lrange [split ${version} .] 0 1] .] -platforms darwin # Note that ppc, ppc64 and i386 on Mac are no longer supported by upstream # We may have to remove support at some point. supported_archs i386 x86_64 arm64 ppc ppc64 @@ -25,9 +20,9 @@ license LGPL homepage https://ocaml.org master_sites http://caml.inria.fr/pub/distrib/ocaml-${major_vers}/ -checksums rmd160 ff7e2c46d0c03440c361969459aa869a0cd57a52 \ - sha256 c127974d0242576cf47061b20aa9c86d17be0d6aa9687f6ec9835de67be7bb6f \ - size 3803356 +checksums rmd160 a77663dda03d6344e9d7edc37062b00f8ff48880 \ + sha256 b1e297adc186635540758eb064c7fab025598ae4436f3b9767e5025188b4e0ab \ + size 4483716 description Compiler and libraries for the OCaml programming language long_description OCaml is an industrial strength programming language \ @@ -44,10 +39,13 @@ compiler.blacklist gcc-4.0 *gcc-4.2 {clang < 400} # Note: the port maintainer has no access to older versions of MacOS, # debug problems with these patches. +# OCaml 5's configure has no darwin ppc/i386 case, so it falls back to a +# bytecode-only build (arch=none) on those targets. The old native-ppc and +# 32-bit-darwin shared-library configure patches no longer apply and are not +# needed; only the strnlen shim for pre-10.7 libc remains relevant. if {${os.major} < 11} { # need to add strnlen patch as not in library - patchfiles-append patch-strnlen-socketaddr.diff \ - patch-configure-darwin-ppc.diff + patchfiles-append patch-strnlen-socketaddr.diff if {${build_arch} eq "i386" || ${build_arch} eq "x86_64"} { # compiler selection pulls in clang-3.4 on 10.6 and less @@ -58,12 +56,6 @@ if {${os.major} < 11} { } } -# Note: the port maintainer has no access to an i386 host, and cannot -# debug problems on one. -if {${build_arch} eq "i386" || ${build_arch} eq "ppc"} { - patchfiles-append patch-configure-darwin32.diff -} - # see INSTALL.adoc configure.cc-append {*}${configure.cc_archflags} @@ -82,7 +74,9 @@ configure.pre_args --prefix=${prefix} --mandir=${prefix}/share/man configure.ldflags-delete -L${prefix}/lib # Building. -if {${build_arch} eq "ppc" || ${build_arch} eq "ppc64"} { +# OCaml 5 has no native compiler (ocamlopt) on 32-bit platforms (i386) nor on +# ppc/ppc64, so build bytecode-only (world) instead of world.opt there. +if {${build_arch} in [list i386 ppc ppc64]} { build.target world } else { build.target world.opt diff --git a/lang/ocaml/files/patch-configure-darwin-ppc.diff b/lang/ocaml/files/patch-configure-darwin-ppc.diff deleted file mode 100644 index 513e7a6f5db..00000000000 --- a/lang/ocaml/files/patch-configure-darwin-ppc.diff +++ /dev/null @@ -1,60 +0,0 @@ ---- configure.orig 2022-03-28 21:51:09.000000000 +0800 -+++ configure 2022-11-18 16:09:16.000000000 +0800 -@@ -14169,6 +14169,8 @@ - natdynlink=true ;; #( - x86_64-*-darwin*) : - natdynlink=true ;; #( -+ powerpc*-*-darwin*) : -+ natdynlink=true ;; #( - s390x*-*-linux*) : - natdynlink=true ;; #( - powerpc*-*-linux*) : -@@ -14388,6 +14390,12 @@ - arch=arm64; system=macosx ;; #( - x86_64-*-darwin*) : - arch=amd64; system=macosx ;; #( -+ powerpc*-*-darwin*) : -+ arch=power; if $arch64; then : -+ model=ppc64 -+ else -+ model=ppc -+ fi; system=rhapsody ;; #( - x86_64-*-mingw32) : - arch=amd64; system=mingw64 ;; #( - aarch64-*-linux*) : -@@ -14524,6 +14532,10 @@ - case "$arch,$cc_basename,$system,$model" in #( - amd64,*gcc*,macosx,*) : - PACKLD_FLAGS=' -arch x86_64' ;; #( -+ power,*gcc*,rhapsody,ppc) : -+ PACKLD_FLAGS=' -arch ppc' ;; #( -+ power,*gcc*,rhapsody,ppc64) : -+ PACKLD_FLAGS=' -arch ppc64' ;; #( - power,*gcc*,elf,ppc) : - PACKLD_FLAGS=' -m elf32ppclinux' ;; #( - power,*gcc*,elf,ppc64) : -@@ -14622,6 +14634,15 @@ - *-*-darwin*,clang-*) : - default_as="$default_as -Wno-trigraphs" - default_aspp="$default_as" ;; #( -+ powerpc*-*-darwin*,gcc-*) : -+ case $model in #( -+ ppc64) : -+ default_as="$default_as -m64" -+ default_aspp="$default_as -m64 -c" ;; #( -+ ppc) : -+ default_as="$default_as" -+ default_aspp="$default_as -m32 -c" ;; #( -+esac ;; #( - *) : - ;; - esac -@@ -16654,7 +16675,7 @@ - $as_echo_n "checking whether stack overflows can be detected... " >&6; } - - case $arch,$system in #( -- i386,linux_elf|amd64,linux|amd64,macosx \ -+ i386,linux_elf|amd64,linux|amd64,macosx|power,rhapsody \ - |amd64,openbsd|i386,bsd_elf|arm64,linux|arm64,macosx) : - $as_echo "#define HAS_STACK_OVERFLOW_DETECTION 1" >>confdefs.h - diff --git a/lang/ocaml/files/patch-configure-darwin32.diff b/lang/ocaml/files/patch-configure-darwin32.diff deleted file mode 100644 index 2e185c700a4..00000000000 --- a/lang/ocaml/files/patch-configure-darwin32.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.orig 2022-03-28 21:51:09.000000000 +0800 -+++ configure 2022-11-18 15:56:19.000000000 +0800 -@@ -14087,7 +14087,7 @@ - case $host in #( - *-apple-darwin*) : - mksharedlib="$CC -shared \ -- -flat_namespace -undefined suppress -Wl,-no_compact_unwind \ -+ -flat_namespace -undefined suppress -Wl,-no_compact_unwind -read_only_relocs suppress \ - \$(LDFLAGS)" - supports_shared_libraries=true ;; #( - *-*-mingw32) : diff --git a/lang/ocaml/files/patch-strnlen-socketaddr.diff b/lang/ocaml/files/patch-strnlen-socketaddr.diff index d585a8e1a5a..246dfd942a2 100644 --- a/lang/ocaml/files/patch-strnlen-socketaddr.diff +++ b/lang/ocaml/files/patch-strnlen-socketaddr.diff @@ -1,9 +1,9 @@ ---- ./otherlibs/unix/socketaddr.c.orig 2017-12-15 13:57:16.000000000 -0800 -+++ ./otherlibs/unix/socketaddr.c 2017-12-15 14:02:56.000000000 -0800 -@@ -29,6 +29,20 @@ - #define EAFNOSUPPORT WSAEAFNOSUPPORT +--- ./otherlibs/unix/socketaddr.c.orig ++++ ./otherlibs/unix/socketaddr.c +@@ -30,6 +30,18 @@ + #include #endif - + +static size_t +strnlen(const char *s, size_t maxlen) +{ @@ -16,8 +16,6 @@ + return (len); +} + -+ -+ - CAMLexport value alloc_inet_addr(struct in_addr * a) + CAMLexport value caml_unix_alloc_inet_addr(struct in_addr * a) { value res; diff --git a/lang/ocamldot/Portfile b/lang/ocamldot/Portfile index f4613913532..25b4946cdc9 100644 --- a/lang/ocamldot/Portfile +++ b/lang/ocamldot/Portfile @@ -3,8 +3,7 @@ PortSystem 1.0 name ocamldot # this version number is just slapped on -- there is none and the project is stale since 2001 version 1.0 -revision 5 -platforms darwin +revision 6 maintainers nomaintainer categories lang ocaml graphics description dependency graph generator for OCaml generating graphviz dot files @@ -16,11 +15,13 @@ master_sites ${homepage} long_description ${description} distfiles ocamldot.tar -checksums md5 90c6e541359458d25c1defb225337d75 \ - sha1 91858540053f9cf59d410164f65365a6685a1678 \ - rmd160 574f4965a9f441008ca5bdab6425ded31a4c986d +checksums rmd160 574f4965a9f441008ca5bdab6425ded31a4c986d \ + sha256 001a16ef4bdb136de06a5160c9bbf854f167183dd12cab74f4b744ace42fa97d \ + size 20480 -patchfiles patch-Makefile.diff +patchfiles patch-Makefile.diff \ + patch-ocaml5.diff \ + patch-or-keyword.diff depends_build port:ocaml diff --git a/lang/ocamldot/files/patch-ocaml5.diff b/lang/ocamldot/files/patch-ocaml5.diff new file mode 100644 index 00000000000..c1fe3da56ea --- /dev/null +++ b/lang/ocamldot/files/patch-ocaml5.diff @@ -0,0 +1,20 @@ +--- ocamldot.mll.orig ++++ ocamldot.mll +@@ -21,7 +21,7 @@ + let i = String.rindex s '.' in + let s = String.sub s 0 i in + let s = Filename.basename s in +- let s = String.capitalize s in ++ let s = String.capitalize_ascii s in + currentSource := s; + processTargets lexbuf } + | eof +@@ -40,7 +40,7 @@ + let i = String.rindex t '.' in + let t = String.sub t 0 i in + let t = Filename.basename t in +- let t = String.capitalize t in ++ let t = String.capitalize_ascii t in + addDepend t; + processTargets lexbuf } + | eof diff --git a/lang/ocamldot/files/patch-or-keyword.diff b/lang/ocamldot/files/patch-or-keyword.diff new file mode 100644 index 00000000000..109b822793e --- /dev/null +++ b/lang/ocamldot/files/patch-or-keyword.diff @@ -0,0 +1,9 @@ +--- ocamldot.mll.orig ++++ ocamldot.mll +@@ -336,7 +336,7 @@ + let tcGraph = tc graph in + let reachable node = + (List.exists (fun r -> r=node) roots) +- or ++ || + (List.exists (fun r -> isEdge tcGraph r node) roots) in diff --git a/lang/rocq/Portfile b/lang/rocq/Portfile index 624329358b7..12e6e6f9c3a 100644 --- a/lang/rocq/Portfile +++ b/lang/rocq/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 github.setup rocq-prover rocq 9.2.0 V github.tarball_from releases -revision 0 +revision 1 categories lang math license LGPL-2.1 maintainers {pmetzger @pmetzger} openmaintainer diff --git a/lang/tuareg-mode.el/Portfile b/lang/tuareg-mode.el/Portfile index 917ef48dd2c..a451ee99149 100644 --- a/lang/tuareg-mode.el/Portfile +++ b/lang/tuareg-mode.el/Portfile @@ -4,6 +4,7 @@ name tuareg-mode.el # reverting to version 1.45 because 1.46 was removed from official download website epoch 1 version 2.0.2 +revision 1 categories lang editors license GPL-2+ maintainers nomaintainer @@ -15,14 +16,13 @@ long_description\ to run an interactive Caml toplevel and debugger is provided. homepage http://tuareg.forge.ocamlcore.org/ -platforms any supported_archs noarch distname tuareg-${version} master_sites http://forge.ocamlcore.org/frs/download.php/468/ -checksums md5 71f54eb051d9e4ad84e1250c7e5b9534 \ - sha1 0361f39c35d759cee66c549f3400390e9019c431 \ - rmd160 153a0958bed6e6517db1a30bdd23980f7add37f9 +checksums rmd160 153a0958bed6e6517db1a30bdd23980f7add37f9 \ + sha256 65faece1d281f2d19c05761ec1fb2d24588e0f153b1ccb84f3fabb129da5d895 \ + size 64835 # We want emacs from MacPorts since this will install stuff in emacs' # site-lisp and we want it to go into ${prefix}'s site-lisp. diff --git a/math/abella/Portfile b/math/abella/Portfile index e87a39e1372..a18fa4c0490 100644 --- a/math/abella/Portfile +++ b/math/abella/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 github.setup abella-prover abella 2.0.8.3 v -revision 1 +revision 2 categories math ocaml maintainers nomaintainer license GPL-3 diff --git a/math/stanc3/Portfile b/math/stanc3/Portfile index 1d0cca8b416..af5d78b338d 100644 --- a/math/stanc3/Portfile +++ b/math/stanc3/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 github.setup stan-dev stanc3 2.35.0 v epoch 1 -revision 1 +revision 2 categories math lang ocaml maintainers nomaintainer license BSD @@ -27,6 +27,7 @@ depends_lib-append port:ocaml-core \ port:ocaml-fmt \ port:ocaml-menhir \ port:ocaml-ppx_deriving \ + port:ocaml-re \ port:ocaml-yojson \ port:python${py_ver_nodot} diff --git a/net/mldonkey/Portfile b/net/mldonkey/Portfile index 7b19d40a7c3..aedbdc82091 100644 --- a/net/mldonkey/Portfile +++ b/net/mldonkey/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 github.setup ygrek mldonkey 3-2-1 release- version [string map {- .} ${github.version}] -revision 0 +revision 1 categories net p2p maintainers nomaintainer license GPL-2+ @@ -51,6 +51,7 @@ depends_lib-append port:bzip2 \ port:miniupnpc \ port:ocaml \ port:ocaml-camlp4 \ + port:ocaml-camlp-streams \ port:ocaml-num \ port:xorg-libX11 \ port:zlib @@ -62,6 +63,88 @@ require_active_variants lablgtk2 rsvg # https://github.com/ygrek/mldonkey/issues/107 patchfiles-append patch-lablgtk.diff +# Fix build with OCaml 5: Stream and Genlex moved to camlp-streams library. +# https://github.com/ygrek/mldonkey/issues/120 +patchfiles-append patch-ocaml5-camlp-streams.diff \ + patch-ocaml5-printf-precision.diff \ + patch-ocaml5-napigator-lower.diff \ + patch-ocaml5-misc2-map-file.diff \ + patch-ocaml5-c-headers.diff + +post-patch { + # OCaml 5 removed deprecated String/Char case functions and Pervasives module. + # LC_ALL=C is required for BSD sed to handle non-UTF-8 source files. + system -W ${worksrcpath} {find src -type f \( \ + -name "*.ml" -o -name "*.mli" -o -name "*.ml4" \ + -o -name "*.mly" -o -name "*.mll" -o -name "*.mlcpp" \) -print0 | xargs -0 \ + env LC_ALL=C sed -i '' -E \ + -e 's/String\.lowercase([^_a-zA-Z0-9])/String.lowercase_ascii\1/g' \ + -e 's/String\.uppercase([^_a-zA-Z0-9])/String.uppercase_ascii\1/g' \ + -e 's/String\.capitalize([^_a-zA-Z0-9])/String.capitalize_ascii\1/g' \ + -e 's/String\.uncapitalize([^_a-zA-Z0-9])/String.uncapitalize_ascii\1/g' \ + -e 's/String\.create([^_a-zA-Z0-9])/Bytes.create\1/g' \ + -e 's/String\.fill([^_a-zA-Z0-9])/Bytes.fill\1/g' \ + -e 's/String\.copy //g' \ + -e 's/Char\.lowercase([^_a-zA-Z0-9])/Char.lowercase_ascii\1/g' \ + -e 's/Char\.uppercase([^_a-zA-Z0-9])/Char.uppercase_ascii\1/g' \ + -e 's/Pervasives\./Stdlib./g' \ + -e '/^module Stdlib = Pervasives$/d' \ + -e 's/ or / || /g' \ + -e 's/Lazy\.lazy_is_val/Lazy.is_val/g' \ + -e 's/Lazy\.lazy_from_val/Lazy.from_val/g' \ + -e 's/Lazy\.force_val/Lazy.force/g' \ + -e 's/%-s/%s/g' \ + -e 's/"unix_lseek_64"/"caml_unix_lseek_64"/g' \ + -e 's/%([0-9]*)\.([a-zA-Z])/%\1.0\2/g'} + # OCaml 5 removed .[i] <- mutation syntax; use Bytes.set instead. + # Handle md4.ml special cases before the general replacement: + # 1. table.[int_of_char base64tbl.[i]] <- ... (nested brackets thwart general pattern) + # 2. digest.[i*8 + (7-j)] <- \n (expr) (value on next line) + system -W ${worksrcpath} {LC_ALL=C sed -i '' -E \ + -e 's/table\.\[int_of_char base64tbl\.\[i\]\] <- char_of_int i/Bytes.set table (int_of_char base64tbl.[i]) (char_of_int i)/g' \ + -e 's/digest\.\[i\*8 \+ \(7-j\)\] <-/Bytes.set digest (i*8 + (7-j))/g' \ + src/utils/lib/md4.ml} + # OCaml 5 removed unprefixed C runtime API aliases; add caml_ prefix. + system -W ${worksrcpath} {find src -type f -name "*.c" -print0 | xargs -0 \ + env LC_ALL=C sed -i '' -E \ + -e 's/([^_a-zA-Z])copy_string([^_a-zA-Z])/\1caml_copy_string\2/g' \ + -e 's/([^_a-zA-Z])alloc_string([^_a-zA-Z])/\1caml_alloc_string\2/g' \ + -e 's/([^_a-zA-Z])alloc_small([^_a-zA-Z])/\1caml_alloc_small\2/g' \ + -e 's/([^_a-zA-Z])alloc_tuple([^_a-zA-Z])/\1caml_alloc_tuple\2/g' \ + -e 's/([^_a-zA-Z])failwith([^_a-zA-Z])/\1caml_failwith\2/g' \ + -e 's/([^_a-zA-Z])invalid_argument([^_a-zA-Z])/\1caml_invalid_argument\2/g' \ + -e 's/([^_a-zA-Z])raise_sys_error([^_a-zA-Z])/\1caml_raise_sys_error\2/g' \ + -e 's/([^_a-zA-Z])raise_constant([^_a-zA-Z])/\1caml_raise_constant\2/g' \ + -e 's/([^_a-zA-Z])raise_not_found([^_a-zA-Z])/\1caml_raise_not_found\2/g' \ + -e 's/([^_a-zA-Z])raise_with_string([^_a-zA-Z])/\1caml_raise_with_string\2/g' \ + -e 's/([^_a-zA-Z])raise_out_of_memory([^_a-zA-Z])/\1caml_raise_out_of_memory\2/g' \ + -e 's/([^_a-zA-Z])alloc_custom([^_a-zA-Z])/\1caml_alloc_custom\2/g' \ + -e 's/([^_a-zA-Z])mlraise([^_a-zA-Z])/\1caml_raise\2/g' \ + -e 's/([^_a-zA-Z])string_length([^_a-zA-Z])/\1caml_string_length\2/g' \ + -e 's/([^_a-zA-Z])enter_blocking_section([^_a-zA-Z])/\1caml_enter_blocking_section\2/g' \ + -e 's/([^_a-zA-Z])leave_blocking_section([^_a-zA-Z])/\1caml_leave_blocking_section\2/g' \ + -e 's/([^_a-zA-Z])copy_int64([^_a-zA-Z])/\1caml_copy_int64\2/g' \ + -e 's/([^_a-zA-Z])copy_int32([^_a-zA-Z])/\1caml_copy_int32\2/g' \ + -e 's/([^_a-zA-Z/])alloc\(/\1caml_alloc(/g' \ + -e 's/alloc_inet_addr/caml_unix_alloc_inet_addr/g' \ + -e 's/([^_a-zA-Z])uerror([^_a-zA-Z])/\1caml_uerror\2/g' \ + -e 's/([^_a-zA-Z])unix_error([^_a-zA-Z])/\1caml_unix_error\2/g' \ + -e 's/([^_a-zA-Z])really_putblock([^_a-zA-Z])/\1caml_really_putblock\2/g' \ + -e 's/Store_field\(job_v, 1, addr_list_of_job\(\)\)$/Store_field(job_v, 1, addr_list_of_job());/'} + # General rule: x.[i] <- v -> Bytes.set x (i) (v). + # Double-quoted expression allows apostrophe in identifier class (e.g. s'). + # [^;]* for value stops before any trailing ; statement on the same line. + system -W ${worksrcpath} {find src -type f \( \ + -name "*.ml" -o -name "*.mli" -o -name "*.ml4" \ + -o -name "*.mly" -o -name "*.mll" -o -name "*.mlcpp" \) -print0 | xargs -0 \ + env LC_ALL=C sed -i '' -E \ + -e "s/([a-zA-Z_][a-zA-Z0-9_'.]*)\\.\\[([^]]*)] *<- *([^;]*)/Bytes.set \\1 (\\2) (\\3)/g" \ + -e 's/\(([^)]+) in\)$/(\1) in/g'} +} + +# Some C source files have CRLF line endings; -l ignores trailing whitespace. +patch.args-append -l + compiler.blacklist-append \ *gcc-4.0 *gcc-4.2 diff --git a/net/mldonkey/files/patch-ocaml5-c-headers.diff b/net/mldonkey/files/patch-ocaml5-c-headers.diff new file mode 100644 index 00000000000..51f5e8f4d49 --- /dev/null +++ b/net/mldonkey/files/patch-ocaml5-c-headers.diff @@ -0,0 +1,28 @@ +--- src/utils/lib/os_stubs.h 2024-08-20 05:14:48 ++++ src/utils/lib/os_stubs.h 2026-06-07 00:00:00 +@@ -96,6 +96,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -150,6 +151,4 @@ + #define Nothing ((value) 0) + +-extern void unix_error (int errcode, char * cmdname, value arg) Noreturn; +-extern void uerror (char * cmdname, value arg) Noreturn; + + extern OFF_T os_lseek(OS_FD fd, OFF_T pos, int dir); + extern void os_ftruncate(OS_FD fd, OFF_T len, int sparse); +--- src/utils/cdk/gdstubs.c 2024-08-20 05:14:48 ++++ src/utils/cdk/gdstubs.c 2026-06-07 00:00:00 +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + #include + #include diff --git a/net/mldonkey/files/patch-ocaml5-camlp-streams.diff b/net/mldonkey/files/patch-ocaml5-camlp-streams.diff new file mode 100644 index 00000000000..209ee4d6931 --- /dev/null +++ b/net/mldonkey/files/patch-ocaml5-camlp-streams.diff @@ -0,0 +1,36 @@ +--- config/Makefile.in 2024-08-20 05:14:48 ++++ config/Makefile.in 2026-06-07 00:00:00 +@@ -28,10 +28,21 @@ + NO_STATIC_LIBS_opt= + NO_CMXA= + +-LIBS_byte=-custom bigarray.cma unix.cma str.cma +-LIBS_opt= bigarray.cmxa unix.cmxa str.cmxa ++CAMLP_STREAMS_PATH:=$(shell ocamlfind query camlp-streams 2>/dev/null) ++ifneq ($(CAMLP_STREAMS_PATH),) ++ CAMLP_STREAMS_INC=-I $(CAMLP_STREAMS_PATH) ++ CAMLP_STREAMS_BYTE=$(CAMLP_STREAMS_PATH)/camlp_streams.cma ++ CAMLP_STREAMS_OPT=$(CAMLP_STREAMS_PATH)/camlp_streams.cmxa ++else ++ CAMLP_STREAMS_INC= ++ CAMLP_STREAMS_BYTE= ++ CAMLP_STREAMS_OPT= ++endif ++ ++LIBS_byte=-custom unix.cma str.cma $(CAMLP_STREAMS_BYTE) ++LIBS_opt= unix.cmxa str.cmxa $(CAMLP_STREAMS_OPT) + +-BIGARRAY_LIBS_opt=bigarray.cmxa +-BIGARRAY_LIBS_byte=bigarray.cma ++BIGARRAY_LIBS_opt= ++BIGARRAY_LIBS_byte= + + CRYPT_LIBS_opt=-cclib -lcrypt +@@ -93,7 +104,7 @@ + SUBDIRS=$(EXTLIB) $(CDK) $(BITSTRING) $(LIB) $(RSS) $(XML) $(NET) tools \ + $(COMMON) $(DRIVER) $(MP3) src/config/$(OS_FILES) + +-INCLUDES += $(foreach file, $(SUBDIRS), -I $(file)) -I +camlp4 $(NUMS_INCLUDE) ++INCLUDES += $(foreach file, $(SUBDIRS), -I $(file)) -I +camlp4 $(NUMS_INCLUDE) $(CAMLP_STREAMS_INC) + + CFLAGS:=$(CFLAGS) $(CONFIG_INCLUDES) $(GTKCFLAGS) $(GD_CFLAGS) diff --git a/net/mldonkey/files/patch-ocaml5-misc2-map-file.diff b/net/mldonkey/files/patch-ocaml5-misc2-map-file.diff new file mode 100644 index 00000000000..1d4151a572b --- /dev/null +++ b/net/mldonkey/files/patch-ocaml5-misc2-map-file.diff @@ -0,0 +1,11 @@ +--- src/utils/lib/misc2.mlcpp 2024-08-20 05:14:48 ++++ src/utils/lib/misc2.mlcpp 2026-06-07 00:00:00 +@@ -63,7 +63,7 @@ + + let map_file file = + let open Bigarray in +-#if OCAMLVERSION_MAJOR < 406 ++#if OCAMLVERSION_MAJOR < 406 && OCAMLVERSION_MAJOR >= 400 + Array1.map_file (Unix.descr_of_in_channel file) + int8_unsigned c_layout false (-1) + #else diff --git a/net/mldonkey/files/patch-ocaml5-napigator-lower.diff b/net/mldonkey/files/patch-ocaml5-napigator-lower.diff new file mode 100644 index 00000000000..b44b5794cea --- /dev/null +++ b/net/mldonkey/files/patch-ocaml5-napigator-lower.diff @@ -0,0 +1,17 @@ +--- src/networks/opennap/napigator.mll 2024-08-20 05:14:48 ++++ src/networks/opennap/napigator.mll 2026-06-07 00:00:00 +@@ -56,12 +56,7 @@ + { + +-let lower s = +- for i = 0 to String.length s - 1 do +- match s.[i] with +- 'A' .. 'Z' -> s.[i] <- Char.lowercase s.[i] +- | _ -> () +- done ++let lower = String.lowercase_ascii + + let translate s = +- lower s; ++ let s = lower s in + let lexbuf = Lexing.from_string s in diff --git a/net/mldonkey/files/patch-ocaml5-printf-precision.diff b/net/mldonkey/files/patch-ocaml5-printf-precision.diff new file mode 100644 index 00000000000..d34b77f3fb9 --- /dev/null +++ b/net/mldonkey/files/patch-ocaml5-printf-precision.diff @@ -0,0 +1,9 @@ +--- src/utils/lib/syslog.ml 2024-08-20 05:14:48 ++++ src/utils/lib/syslog.ml 2026-06-07 00:00:00 +@@ -209,5 +209,5 @@ + let levfac = Int32.logor realfac (level_to_num lev) + and now = ascdate (localtime (Unix.time ())) in +- Printf.bprintf msg "<%ld>%.15s " levfac now; ++ Printf.bprintf msg "<%ld>%s " levfac (String.sub now 0 15); + let len1 = Buffer.length msg + and len2 = String.length loginfo.tag in diff --git a/net/ocaml-ftp/Portfile b/net/ocaml-ftp/Portfile index fec0d365ddd..eaa6a5bf69c 100644 --- a/net/ocaml-ftp/Portfile +++ b/net/ocaml-ftp/Portfile @@ -3,14 +3,13 @@ PortGroup ocaml 1.0 name ocaml-ftp version 0.1.0 -revision 3 +revision 4 categories net devel ocaml maintainers nomaintainer license LGPL-2 description OCaml ftp client library long_description ${description} homepage http://savonet.sf.net/ -platforms darwin master_sites sourceforge:savonet checksums rmd160 28b059f67897fb05c5df29cdb817eb5810e85120 \ @@ -23,6 +22,8 @@ depends_lib port:ocaml \ configure.pkg_config ${prefix}/bin/pkg-config configure.env-append OCAMLFIND=${ocamlfind_wrapper} USER=macports +patchfiles patch-ocaml5.diff + use_parallel_build no build.args LIBDIRS=${prefix}/lib diff --git a/net/ocaml-ftp/files/patch-ocaml5.diff b/net/ocaml-ftp/files/patch-ocaml5.diff new file mode 100644 index 00000000000..b7d6efbfedd --- /dev/null +++ b/net/ocaml-ftp/files/patch-ocaml5.diff @@ -0,0 +1,40 @@ +--- src/ftp.ml.orig ++++ src/ftp.ml +@@ -275,7 +275,7 @@ + let flags = if append then [O_WRONLY; O_APPEND] else [O_WRONLY; O_TRUNC; O_CREAT] in + let foutd = openfile fout flags 0o644 in + let buf_len = 16384 in +- let buf = String.create buf_len in ++ let buf = Bytes.create buf_len in + let len = ref 1 in + let r = send_command fc (Retrieve fin) in + if (fst r) = 550 then raise Not_found; +@@ -473,7 +473,7 @@ + + val close : file_descr -> unit + +- val read : file_descr -> string -> int -> int -> int ++ val read : file_descr -> bytes -> int -> int -> int + + type seek_command = + | SEEK_SET +--- src/ftp.mli.orig ++++ src/ftp.mli +@@ -94,7 +94,7 @@ + val resume_file : ftp_connection -> string -> string -> int -> unit + + (** [get_file_portion fc src file_ofs buf ofs len] downloads [len] octets of file [src] starting at position [file_ofs] and stores it in [buf] starting at position [ofs]. Returns the number of bytes actually read. *) +-val get_file_portion : ftp_connection -> string -> int -> string -> int -> int -> int ++val get_file_portion : ftp_connection -> string -> int -> bytes -> int -> int -> int + + (** [mv fc src dst] moves the file [src] to [dst]. *) + val mv : ftp_connection -> string -> string -> unit +@@ -133,7 +133,7 @@ + val close : file_descr -> unit + + (** Read data in an opened file. *) +- val read : file_descr -> string -> int -> int -> int ++ val read : file_descr -> bytes -> int -> int -> int + + (** Positioning modes for [lseek]. *) + type seek_command = diff --git a/net/unison/Portfile b/net/unison/Portfile index a425561d0f7..1e4b7a34b94 100644 --- a/net/unison/Portfile +++ b/net/unison/Portfile @@ -47,13 +47,12 @@ if {[vercmp ${xcodeversion} 10.0] >= 0} { build.env-append CC=${configure.cc} destroot.env-append PREFIX=${prefix} +# unison 2.54.0 removed UISTYLE; use build targets instead build.target tui destroot.target install -# ocamlopt not supported on powerpc. Notice, that OCaml 5 -# drops support for all 32-bit platforms in its native compiler. -# So once OCaml is updated, i386 should be added here. -if {${configure.build_arch} in [list ppc ppc64]} { +# OCaml 5 drops support for all 32-bit platforms in its native compiler. +if {${configure.build_arch} in [list ppc ppc64 i386]} { build.env-append NATIVE=false destroot.env-append NATIVE=false } diff --git a/ocaml/camlimages/Portfile b/ocaml/camlimages/Portfile index 0187a9651da..648bf63ff4b 100644 --- a/ocaml/camlimages/Portfile +++ b/ocaml/camlimages/Portfile @@ -1,12 +1,10 @@ # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 PortSystem 1.0 -PortGroup active_variants 1.1 -PortGroup bitbucket 1.0 +PortGroup gitlab 1.0 PortGroup ocaml 1.1 -bitbucket.setup camlspotter camlimages 5.0.1 -revision 6 +gitlab.setup camlspotter camlimages 5.0.5 categories ocaml devel graphics license {LGPL-2 Permissive} maintainers nomaintainer @@ -15,17 +13,15 @@ long_description Camlimages provides basic functions for image processing \ and loading/saving various image file formats, an \ interface to display images, and a Freetype interface \ to render TrueType fonts. -homepage http://gallium.inria.fr/camlimages/ - -platforms darwin ocaml.build_type dune -checksums rmd160 04b9ede7129304c5b69fcd99835c8f72490216ce \ - sha256 30b7d2043c180e950e8a0a96f5569b8932615c3b992a73cb79540098b4e36ac1 \ - size 845096 +checksums rmd160 6cf6452c2b7e19f03c3ea9d8edd43c46d7306263 \ + sha256 af34b244ef3f5642a079fd58cf6bdab3603fab660f152b614f87134d4357a249 \ + size 790491 -patchfiles-append patch-rgb_location.diff +patchfiles-append patch-rgb_location.diff \ + patch-caml-module.diff post-patch { reinplace "s|__MACPORTS_PREFIX__|${prefix}|g" \ ${worksrcpath}/config/ciconfig.ml @@ -41,16 +37,10 @@ depends_lib-append port:freetype \ port:lablgtk2 \ port:libpng \ port:libexif \ - port:ocaml-configurator \ + port:ocaml-base \ port:ocaml-cppo \ + port:ocaml-dune-configurator \ + port:ocaml-stdio \ port:rgb \ port:tiff \ port:xpm - -# camlimages builds differently depending on graph variant of findlib -variant graph description {add support for the graph library} { - require_active_variants ocaml-findlib graph -} -if {![variant_isset graph]} { - require_active_variants ocaml-findlib "" graph -} diff --git a/ocaml/camlimages/files/patch-caml-module.diff b/ocaml/camlimages/files/patch-caml-module.diff new file mode 100644 index 00000000000..3978aa66729 --- /dev/null +++ b/ocaml/camlimages/files/patch-caml-module.diff @@ -0,0 +1,9 @@ +--- config/xConfigurator.ml.orig 2024-01-01 00:00:00 ++++ config/xConfigurator.ml 2024-01-01 00:00:00 +@@ -1,6 +1,8 @@ + open Base + ++module Caml = Stdlib ++ + external (&) : ('a -> 'b) -> 'a -> 'b = "%apply" + (** Haskell's [($)]. *) diff --git a/ocaml/ocaml-alcotest/Portfile b/ocaml/ocaml-alcotest/Portfile index 62361f4a52d..5e26d1d79f5 100644 --- a/ocaml/ocaml-alcotest/Portfile +++ b/ocaml/ocaml-alcotest/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-alcotest github.setup mirage alcotest 1.7.0 -revision 1 +revision 2 categories ocaml devel maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-angstrom/Portfile b/ocaml/ocaml-angstrom/Portfile index ecbe015245f..0cd94ddc32b 100644 --- a/ocaml/ocaml-angstrom/Portfile +++ b/ocaml/ocaml-angstrom/Portfile @@ -8,7 +8,7 @@ github.setup inhabitedtype angstrom 0.16.1 # Change github.tarball_from to 'releases' or 'archive' next update github.tarball_from tarball name ocaml-angstrom -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license BSD diff --git a/ocaml/ocaml-astring/Portfile b/ocaml/ocaml-astring/Portfile index 11f92201e23..d2c054d73a6 100644 --- a/ocaml/ocaml-astring/Portfile +++ b/ocaml/ocaml-astring/Portfile @@ -5,7 +5,7 @@ PortGroup ocaml 1.1 name ocaml-astring version 0.8.5 -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license ISC diff --git a/ocaml/ocaml-async/Portfile b/ocaml/ocaml-async/Portfile index 541abf4d25e..454342e79f4 100644 --- a/ocaml/ocaml-async/Portfile +++ b/ocaml/ocaml-async/Portfile @@ -5,8 +5,8 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-async -github.setup janestreet async 0.16.0 v -revision 2 +github.setup janestreet async 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT @@ -15,12 +15,13 @@ long_description Async is a library for asynchronous programming, i.e. progra for things that happen at times determined by some external entity (like a human or another program). This includes \ pretty much any program that uses blocking calls (e.g. networking code, disk access), timeouts or event loops (e.g. GUIs). -checksums rmd160 b27b71553454af55892e323724dcb409855ddec6 \ - sha256 b4088846a0b4fc248d6ddc101cc774834ad66a7c155ab32e073bd4881d378357 \ - size 77022 +checksums rmd160 44f742b3e24f8ae1aa1a98ebb0d7b08da35f3f66 \ + sha256 3edbaa62a7ea910da0d5c06974da9b2b7e14a9e2648596bc7c9f09c89970b5f8 \ + size 86210 github.tarball_from archive depends_lib-append port:ocaml-async_kernel \ + port:ocaml-async_log \ port:ocaml-async_rpc_kernel \ port:ocaml-async_unix \ port:ocaml-core \ diff --git a/ocaml/ocaml-async_kernel/Portfile b/ocaml/ocaml-async_kernel/Portfile index 532b6f6abd7..90b1b315a48 100644 --- a/ocaml/ocaml-async_kernel/Portfile +++ b/ocaml/ocaml-async_kernel/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-async_kernel -github.setup janestreet async_kernel 0.16.0 v -revision 1 +github.setup janestreet async_kernel 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Jane Street Capitalʼs asynchronous execution library (core) long_description ${description} -checksums rmd160 af02723e58bb245b33c1499ceeeede783cd366f7 \ - sha256 8c55a9776aee8e9f5affe6aa576303b6f72768862ae3d61d4371d92462df8fec \ - size 155521 +checksums rmd160 5077f3d0ac38cbe42179f5dda1066f8788547312 \ + sha256 01ced973dbc70535f692f38bed524ae82dba17e26e58791b2fbf0d647b160d2e \ + size 162639 github.tarball_from archive depends_lib-append port:ocaml-core \ diff --git a/ocaml/ocaml-async_log/Portfile b/ocaml/ocaml-async_log/Portfile new file mode 100644 index 00000000000..5f89a5c4e71 --- /dev/null +++ b/ocaml/ocaml-async_log/Portfile @@ -0,0 +1,28 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + +PortSystem 1.0 +PortGroup github 1.0 +PortGroup ocaml 1.1 + +name ocaml-async_log +github.setup janestreet async_log 0.17.0 v +revision 0 +categories ocaml devel +maintainers nomaintainer +license MIT +description Jane Street Capitalʼs logging library built on top of Async_unix +long_description ${description} + +checksums rmd160 c8cc7ea29f3d8c077b6a5b6b2e4887eed787048c \ + sha256 2dae248d74c23aa6a1e0bc38d5b34c975eb4dfbdf32f0970641b5befd8385720 \ + size 30105 +github.tarball_from archive + +depends_lib-append port:ocaml-async_kernel \ + port:ocaml-async_unix \ + port:ocaml-core \ + port:ocaml-core_kernel \ + port:ocaml-ppx_jane \ + port:ocaml-timezone + +ocaml.build_type dune diff --git a/ocaml/ocaml-async_rpc_kernel/Portfile b/ocaml/ocaml-async_rpc_kernel/Portfile index 99ca9d0dc60..c8a1458bd45 100644 --- a/ocaml/ocaml-async_rpc_kernel/Portfile +++ b/ocaml/ocaml-async_rpc_kernel/Portfile @@ -5,8 +5,8 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-async_rpc_kernel -github.setup janestreet async_rpc_kernel 0.16.0 v -revision 1 +github.setup janestreet async_rpc_kernel 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT @@ -14,9 +14,9 @@ description Platform-independent core of Async RPC library long_description A library for building RPC-style protocols. This library is the portable part \ of the Unix-oriented Async_rpc library, and is actively used in JavaScript. -checksums rmd160 26d94a101a36d6ccdc79a7410149449292c25718 \ - sha256 4b056c262da9e992419ec5412723b234a172923f972d0f500ccae995ec767c9d \ - size 76163 +checksums rmd160 8460aef51ac8f605557a1f7a478a53b035cf409c \ + sha256 5ca176611c83a32de5e9731ab5d2d920c974ff1e9c9814785b3bfb444911a654 \ + size 126810 github.tarball_from archive depends_lib-append port:ocaml-async_kernel \ diff --git a/ocaml/ocaml-async_unix/Portfile b/ocaml/ocaml-async_unix/Portfile index e63612f593e..03bb2e22d9b 100644 --- a/ocaml/ocaml-async_unix/Portfile +++ b/ocaml/ocaml-async_unix/Portfile @@ -5,23 +5,24 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-async_unix -github.setup janestreet async_unix 0.16.0 v -revision 1 +github.setup janestreet async_unix 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Jane Street Capitalʼs asynchronous execution library (unix) long_description ${description} -checksums rmd160 262bbf05d4eb81c9fb0ca6fd60e40ce1e0c396e7 \ - sha256 19975624311c13cbd412a7f3c80691b4603220c8dc82194f596607d29a4bb26b \ - size 186267 +checksums rmd160 4756e01760509352978613dc690594b04674063a \ + sha256 814d3a9997ec1316b8b2a601b24471740641647a25002761f7df7869c3ac9e33 \ + size 192143 github.tarball_from archive depends_lib-append port:ocaml-async_kernel \ port:ocaml-core \ port:ocaml-core_kernel \ port:ocaml-core_unix \ + port:ocaml-cstruct \ port:ocaml-ppx_jane ocaml.build_type dune diff --git a/ocaml/ocaml-base/Portfile b/ocaml/ocaml-base/Portfile index 43989fc1c02..c225c0a3006 100644 --- a/ocaml/ocaml-base/Portfile +++ b/ocaml/ocaml-base/Portfile @@ -5,8 +5,8 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-base -github.setup janestreet base 0.16.3 v -revision 1 +github.setup janestreet base 0.17.3 v +revision 0 github.tarball_from archive categories ocaml devel @@ -18,11 +18,12 @@ long_description Base is a complete and portable alternative to the OCaml sta distname ${git.branch} -checksums rmd160 023990f9ef0b37574209ee7bb2bf2830693ebf6c \ - sha256 9bf9e503e2bd010325c7b0f5ae007ce1e5d3da61f0e06d2fbb64e9d12ccff93c \ - size 442632 +checksums rmd160 320002b9a0960973f57482e367f25968738aff90 \ + sha256 3f3f64789ab25bb5cb7f5f907dd651dec9cc9440981822fe75df6b94344b7208 \ + size 478230 depends_lib port:ocaml-dune-configurator \ + port:ocaml-ocaml_intrinsics_kernel \ port:ocaml-sexplib0 ocaml.build_type dune diff --git a/ocaml/ocaml-base64/Portfile b/ocaml/ocaml-base64/Portfile index fda2773e45a..6df6444fc83 100644 --- a/ocaml/ocaml-base64/Portfile +++ b/ocaml/ocaml-base64/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 PortGroup ocaml 1.1 github.setup mirage ocaml-base64 3.5.1 v -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-base_bigstring/Portfile b/ocaml/ocaml-base_bigstring/Portfile index a7492cdfb62..528a5cae3b6 100644 --- a/ocaml/ocaml-base_bigstring/Portfile +++ b/ocaml/ocaml-base_bigstring/Portfile @@ -9,17 +9,17 @@ PortGroup ocaml 1.1 legacysupport.newest_darwin_requires_legacy 10 name ocaml-base_bigstring -github.setup janestreet base_bigstring 0.16.0 v -revision 1 +github.setup janestreet base_bigstring 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description String type based on Bigarray, for use in I/O and C-bindings long_description ${description} -checksums rmd160 ea1c1c3860888481185c3d2fd92f7892856a2de3 \ - sha256 8a2d60fe0a544e2d69ed0a9eac8c2fbb9726f46578ff3c41ff34028ac812cb66 \ - size 19275 +checksums rmd160 6e4f087328a43d2a1786cd012719e6ec9f498ff5 \ + sha256 0c77edb9db4f29797cd5c22dd07fdbe4ff668715be870b86dcc1d849730b8562 \ + size 20840 github.tarball_from archive # memmem is unavailable prior to 10.7: diff --git a/ocaml/ocaml-base_quickcheck/Portfile b/ocaml/ocaml-base_quickcheck/Portfile index 8adab9159a7..4b0e296bc8f 100644 --- a/ocaml/ocaml-base_quickcheck/Portfile +++ b/ocaml/ocaml-base_quickcheck/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-base_quickcheck -github.setup janestreet base_quickcheck 0.16.0 v -revision 2 +github.setup janestreet base_quickcheck 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Randomized testing framework long_description {*}${description}, designed for compatibility with Base. -checksums rmd160 433056ec53b884bcde089de9f42bf0ea4efbca13 \ - sha256 c67c04a4cfff2472be777500fafb519f071d63b3d5ef3c7366ff0ee3856b67c8 \ - size 76738 +checksums rmd160 e3bcfa8bbb8f3184e393d2bedf845957bb905fef \ + sha256 5e2c720b2138b13098730160816721783eb9c6c89c41208abe43b443d57b144e \ + size 67058 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-batteries/Portfile b/ocaml/ocaml-batteries/Portfile index b50a7f7e033..57348b17a81 100644 --- a/ocaml/ocaml-batteries/Portfile +++ b/ocaml/ocaml-batteries/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-batteries github.setup ocaml-batteries-team batteries-included 3.10.0 v -revision 0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer license LGPL-2.1 diff --git a/ocaml/ocaml-bigarray-compat/Portfile b/ocaml/ocaml-bigarray-compat/Portfile index acd20f77c5f..1e592cb35ba 100644 --- a/ocaml/ocaml-bigarray-compat/Portfile +++ b/ocaml/ocaml-bigarray-compat/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-bigarray-compat github.setup mirage bigarray-compat 1.1.0 v -revision 0 +revision 1 categories ocaml devel lang license ISC diff --git a/ocaml/ocaml-bigstringaf/Portfile b/ocaml/ocaml-bigstringaf/Portfile index ffbd3afa472..4e58e790c50 100644 --- a/ocaml/ocaml-bigstringaf/Portfile +++ b/ocaml/ocaml-bigstringaf/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 name ocaml-bigstringaf version 0.10.0 -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license BSD diff --git a/ocaml/ocaml-bin_prot/Portfile b/ocaml/ocaml-bin_prot/Portfile index 514cd1be0b0..0793076b708 100644 --- a/ocaml/ocaml-bin_prot/Portfile +++ b/ocaml/ocaml-bin_prot/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-bin_prot -github.setup janestreet bin_prot 0.16.0 v -revision 1 +github.setup janestreet bin_prot 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description OCaml type converter for binary protocols long_description ${description} -checksums rmd160 8e946e11303d190a42da2bdc3553598785eeb13c \ - sha256 d0b0db60aa4b61ff0a44ec4a2d571313f30d8fd80d0c3a0b701abb0e70df4a98 \ - size 343886 +checksums rmd160 12742a98691627dd350761e5159bce0564f479a2 \ + sha256 0e6c61aff150d19a0f89cb3e354ab36189e4bc23e28ab8bce03b6c6b6004f237 \ + size 351860 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-biniou/Portfile b/ocaml/ocaml-biniou/Portfile index 0927a885f37..27d011be90b 100644 --- a/ocaml/ocaml-biniou/Portfile +++ b/ocaml/ocaml-biniou/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-biniou github.setup ocaml-community biniou 1.2.2 -revision 0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-bisect_ppx/Portfile b/ocaml/ocaml-bisect_ppx/Portfile index 8aa9b79af06..bfed8c0395c 100644 --- a/ocaml/ocaml-bisect_ppx/Portfile +++ b/ocaml/ocaml-bisect_ppx/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-bisect_ppx github.setup aantron bisect_ppx 2.8.3 -revision 3 +revision 4 categories ocaml devel maintainers nomaintainer license MIT @@ -18,9 +18,11 @@ checksums rmd160 bd9a11dda069cd7c13f8b59035ef570fe9593130 \ size 328819 github.tarball_from archive -# https://github.com/aantron/bisect_ppx/commit/2d8dffbbfc0c431a37319d4d9a143836c9ec542e +# 1: https://github.com/aantron/bisect_ppx/commit/2d8dffbbfc0c431a37319d4d9a143836c9ec542e # Unreleased yet. Drop with next bisect_ppx release. -patchfiles-append patch-cmdliner-2.0.diff +# 2: https://salsa.debian.org/ocaml-team/bisect-ppx/-/blob/debian/main/debian/patches/0001-Add-ppxlib-0.36.0-support.patch +patchfiles-append patch-cmdliner-2.0.diff \ + patch-ocaml5-pexp-function.diff depends_lib-append port:ocaml-cmdliner \ port:ocaml-ppxlib diff --git a/ocaml/ocaml-bisect_ppx/files/patch-ocaml5-pexp-function.diff b/ocaml/ocaml-bisect_ppx/files/patch-ocaml5-pexp-function.diff new file mode 100644 index 00000000000..959bdaded89 --- /dev/null +++ b/ocaml/ocaml-bisect_ppx/files/patch-ocaml5-pexp-function.diff @@ -0,0 +1,107 @@ +--- src/ppx/instrument.ml 2026-05-06 22:10:41 ++++ src/ppx/instrument.ml 2026-05-06 22:11:05 +@@ -1314,38 +1314,55 @@ + instrument_expr ~use_loc_of:e ~post:true (Exp.assert_ e_new) + + (* Expressions that have subexpressions that might not get visited. *) +- | Pexp_function cases -> +- traverse_cases ~is_in_tail_position:true cases +- >>| fun cases_new -> +- let cases, _, _, need_binding = instrument_cases cases_new in +- if need_binding then +- Exp.fun_ ~loc ~attrs +- Ppxlib.Nolabel None ([%pat? ___bisect_matched_value___]) +- (Exp.match_ ~loc +- ([%expr ___bisect_matched_value___]) cases) +- else +- Exp.function_ ~loc ~attrs cases +- +- | Pexp_fun (label, default_value, p, e) -> +- begin match default_value with +- | None -> +- return None +- | Some e -> +- traverse ~is_in_tail_position:false e +- >>| fun e -> +- Some (instrument_expr e) ++ | Pexp_function (params, constraint_, body) -> ++ begin match body with ++ | Pfunction_cases (cases, cases_loc, cases_attrs) -> ++ traverse_cases ~is_in_tail_position:true cases ++ >>| fun cases_new -> ++ let cases, _, _, need_binding = instrument_cases cases_new in ++ if need_binding then ++ if params = [] then ++ Exp.fun_ ~loc ~attrs ++ Ppxlib.Nolabel None ([%pat? ___bisect_matched_value___]) ++ (Exp.match_ ~loc ++ ([%expr ___bisect_matched_value___]) cases) ++ else ++ {e with pexp_desc = ++ Pexp_function (params, constraint_, ++ Pfunction_body ( ++ Exp.fun_ ~loc Ppxlib.Nolabel None ++ [%pat? ___bisect_matched_value___] ++ (Exp.match_ ~loc ++ ([%expr ___bisect_matched_value___]) cases)))} ++ else ++ {e with pexp_desc = ++ Pexp_function (params, constraint_, ++ Pfunction_cases (cases, cases_loc, cases_attrs))} ++ | Pfunction_body body_expr -> ++ let instrument_param param = ++ match param.Parsetree.pparam_desc with ++ | Pparam_val (label, Some dv, p) -> ++ traverse ~is_in_tail_position:false dv ++ >>| fun dv_new -> ++ {param with Parsetree.pparam_desc = ++ Pparam_val (label, Some (instrument_expr dv_new), p)} ++ | _ -> ++ return param ++ in ++ collect_errors (List.map instrument_param params) ++ >>= fun new_params -> ++ traverse ~is_in_tail_position:true body_expr ++ >>| fun body_new -> ++ let body_new = ++ match body_new.pexp_desc with ++ | Pexp_function _ -> body_new ++ | Pexp_constraint (e', t) -> ++ {body_new with pexp_desc = Pexp_constraint (instrument_expr e', t)} ++ | _ -> instrument_expr body_new ++ in ++ {e with pexp_desc = ++ Pexp_function (new_params, constraint_, Pfunction_body body_new)} + end +- >>= fun default_value -> +- traverse ~is_in_tail_position:true e +- >>| fun e -> +- let e = +- match e.pexp_desc with +- | Pexp_function _ | Pexp_fun _ -> e +- | Pexp_constraint (e', t) -> +- {e with pexp_desc = Pexp_constraint (instrument_expr e', t)} +- | _ -> instrument_expr e +- in +- Exp.fun_ ~loc ~attrs label default_value p e + + | Pexp_match (e, cases) -> + traverse_cases ~is_in_tail_position cases +@@ -1418,7 +1435,7 @@ + | Pexp_lazy e -> + let rec is_trivial_syntactic_value e = + match e.Parsetree.pexp_desc with +- | Pexp_function _ | Pexp_fun _ | Pexp_poly _ | Pexp_ident _ ++ | Pexp_function _ | Pexp_poly _ | Pexp_ident _ + | Pexp_constant _ | Pexp_construct (_, None) -> + true + | Pexp_constraint (e, _) | Pexp_coerce (e, _, _) -> +@@ -1446,7 +1463,7 @@ + >>| fun e -> + let e = + match e.pexp_desc with +- | Pexp_function _ | Pexp_fun _ -> e ++ | Pexp_function _ -> e + | _ -> instrument_expr e + in + Exp.poly ~loc ~attrs e t diff --git a/ocaml/ocaml-bos/Portfile b/ocaml/ocaml-bos/Portfile index 834d297bc3c..3b30da97247 100644 --- a/ocaml/ocaml-bos/Portfile +++ b/ocaml/ocaml-bos/Portfile @@ -5,7 +5,7 @@ PortGroup ocaml 1.1 name ocaml-bos version 0.3.0 -revision 1 +revision 2 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license ISC diff --git a/ocaml/ocaml-calendars/Portfile b/ocaml/ocaml-calendars/Portfile index 5a59cf7dcfb..b177a883bae 100644 --- a/ocaml/ocaml-calendars/Portfile +++ b/ocaml/ocaml-calendars/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 name ocaml-calendars version 2.0.0 -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license GPL diff --git a/ocaml/ocaml-camlp-streams/Portfile b/ocaml/ocaml-camlp-streams/Portfile index e670aaaed68..c797a49e6ca 100644 --- a/ocaml/ocaml-camlp-streams/Portfile +++ b/ocaml/ocaml-camlp-streams/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-camlp-streams github.setup ocaml camlp-streams 5.0.1 v -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license LGPL-2.1 diff --git a/ocaml/ocaml-camomile/Portfile b/ocaml/ocaml-camomile/Portfile index 02069f93a25..f34aba21440 100644 --- a/ocaml/ocaml-camomile/Portfile +++ b/ocaml/ocaml-camomile/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-camomile github.setup ocaml-community Camomile 2.0.0 v -revision 0 +revision 1 categories ocaml devel maintainers {rastageeks.org:toots @toots} license LGPL-2+ diff --git a/ocaml/ocaml-capitalization/Portfile b/ocaml/ocaml-capitalization/Portfile new file mode 100644 index 00000000000..1473ec46a4e --- /dev/null +++ b/ocaml/ocaml-capitalization/Portfile @@ -0,0 +1,25 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + +PortSystem 1.0 +PortGroup github 1.0 +PortGroup ocaml 1.1 + +name ocaml-capitalization +github.setup janestreet capitalization 0.17.0 v +revision 0 +categories ocaml devel +maintainers nomaintainer +license MIT +description Case conventions and identifier renaming functions +long_description Defines case conventions and functions to rename identifiers \ + according to them. + +checksums rmd160 6a760a7398cecfa3a8f2271979bb7804582d2647 \ + sha256 f71d45ec929c9fc9b08e07723c15b6663b0143c4465b5d93038f653258cd5c6f \ + size 5267 +github.tarball_from archive + +depends_lib-append port:ocaml-base \ + port:ocaml-ppx_base + +ocaml.build_type dune diff --git a/ocaml/ocaml-checkseum/Portfile b/ocaml/ocaml-checkseum/Portfile index d272602627e..e76258bd618 100644 --- a/ocaml/ocaml-checkseum/Portfile +++ b/ocaml/ocaml-checkseum/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-checkseum github.setup mirage checkseum 0.5.3 v -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license MIT diff --git a/ocaml/ocaml-cmdliner/Portfile b/ocaml/ocaml-cmdliner/Portfile index 9c2de3ed97f..c6ffe6b29dc 100644 --- a/ocaml/ocaml-cmdliner/Portfile +++ b/ocaml/ocaml-cmdliner/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-cmdliner github.setup dbuenzli cmdliner 2.1.1 v -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-compiler-libs/Portfile b/ocaml/ocaml-compiler-libs/Portfile index 3b1d859bf72..103853e6973 100644 --- a/ocaml/ocaml-compiler-libs/Portfile +++ b/ocaml/ocaml-compiler-libs/Portfile @@ -5,7 +5,8 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-compiler-libs -github.setup janestreet ocaml-compiler-libs 0.12.4 v +github.setup janestreet ocaml-compiler-libs 0.17.0 v +revision 0 categories ocaml devel maintainers {landonf @landonf} openmaintainer @@ -14,9 +15,9 @@ description OCaml compiler libraries, repackaged long_description Exposes the OCaml compiler libraries, repackaged under \ new toplevel names. -checksums rmd160 29589db75e3197946fcf7b684c12835c6777a98c \ - sha256 f4c37daf975b67c1f645a5d0294ec8ca686b982da410d9f915ccd93548c6e2f1 \ - size 5435 +checksums rmd160 5a277cceb201775e233ecb7911387392e6b3b3fa \ + sha256 9b9644d7351db699e57ddba7c767bb4153e6e988ccf45ead2fb238a3bd75cdc7 \ + size 5006 github.tarball_from archive ocaml.build_type dune diff --git a/ocaml/ocaml-config-file/Portfile b/ocaml/ocaml-config-file/Portfile index 574a4d40f85..9112ac47f9f 100644 --- a/ocaml/ocaml-config-file/Portfile +++ b/ocaml/ocaml-config-file/Portfile @@ -1,29 +1,28 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + PortSystem 1.0 -PortGroup ocaml 1.0 +PortGroup ocaml 1.1 name ocaml-config-file -version 1.2 -revision 2 +version 1.2.2 +revision 0 categories ocaml devel -platforms darwin license LGPL-2+ maintainers nomaintainer description OCaml library used to manage the configuration files long_description {*}${description} -homepage https://config-file.forge.ocamlcore.org/ -master_sites https://forge.ocamlcore.org/frs/download.php/1387/ +homepage https://github.com/MisterDA/config-file +master_sites https://github.com/MisterDA/config-file/releases/download/release-${version}/ distname config-file-${version} -checksums rmd160 fbab4619ee79a9ba77e0f34c36f702abe7880931 \ - sha256 f89877269fd6f131a61db4513278bb527748d4147909a87501194a6d59f702ac +use_bzip2 yes +extract.suffix .tbz +checksums rmd160 9a0ffd8ef02f069e0b7b57e5898d8aa834420a9d \ + sha256 129d7899bf5b5c5e6af2e8e4087d26cd494a43729742b6778a4f20dd00d4f0b5 \ + size 22226 -depends_lib port:ocaml port:ocaml-findlib -depends_build port:ocaml-camlp4 - -configure.args-append OCAMLFIND=${ocamlfind_wrapper} - -use_parallel_build no - -livecheck.type regex -livecheck.url https://forge.ocamlcore.org/frs/?group_id=215 -livecheck.regex config-file-(\[0-9.\]+)${extract.suffix} +depends_build-append \ + port:ocaml-camlp4 \ + port:ocaml-cppo +depends_lib-append port:ocaml-camlp-streams +ocaml.build_type dune diff --git a/ocaml/ocaml-configurator/Portfile b/ocaml/ocaml-configurator/Portfile deleted file mode 100644 index 287ce1e2eb0..00000000000 --- a/ocaml/ocaml-configurator/Portfile +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 - -PortSystem 1.0 -PortGroup github 1.0 -PortGroup ocaml 1.1 - -name ocaml-configurator -github.setup janestreet configurator 0.11.0 v -# Change github.tarball_from to 'releases' or 'archive' next update -github.tarball_from tarball -revision 0 - -categories ocaml devel -maintainers nomaintainer -license MIT -description helper library for gathering system configuration -long_description Configurator is a small library that helps writing OCaml scripts that test features available on the system, in order to generate config.h files for instance. - -checksums rmd160 ddd4c9b06f8586f43a594fd13953ae6e8ea811ad \ - sha256 98ec8759fa33b70fea27431c18f41980daa941391507e4ff1148363a209c86e2 \ - size 10567 - -ocaml.build_type dune - -pre-build { - system -W ${worksrcpath} "${prefix}/bin/dune upgrade" -} - -depends_lib-append port:ocaml-base \ - port:ocaml-stdio diff --git a/ocaml/ocaml-core/Portfile b/ocaml/ocaml-core/Portfile index ab8f1e1f50a..777c84c5e2e 100644 --- a/ocaml/ocaml-core/Portfile +++ b/ocaml/ocaml-core/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-core -github.setup janestreet core 0.16.2 v -revision 1 +github.setup janestreet core 0.17.2 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Jane Street Capitalʼs standard library overlay long_description ${description} -checksums rmd160 be63768151be24b18fd45b5be3bfdb6fe5af0c84 \ - sha256 9ba3390bd8ea5a018a5d84dbfd6b5c652989bf541159173e76180eb3de5b99fd \ - size 542390 +checksums rmd160 58ec25ae920036106ee7cee15e36b1d8fcda9d98 \ + sha256 09b326a89e2da24756ed347ab319ee1766a031f53bb524eaedbaa4434dedd1d4 \ + size 631914 github.tarball_from archive depends_lib-append port:ocaml-base \ @@ -29,6 +29,7 @@ depends_lib-append port:ocaml-base \ port:ocaml-ppx_base \ port:ocaml-ppx_hash \ port:ocaml-ppx_inline_test \ + port:ocaml-ppx_diff \ port:ocaml-ppx_jane \ port:ocaml-ppx_optcomp \ port:ocaml-ppx_sexp_conv \ diff --git a/ocaml/ocaml-core_extended/Portfile b/ocaml/ocaml-core_extended/Portfile index 3c53d152da3..1c114e0ebd7 100644 --- a/ocaml/ocaml-core_extended/Portfile +++ b/ocaml/ocaml-core_extended/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-core_extended -github.setup janestreet core_extended 0.16.0 v -revision 1 +github.setup janestreet core_extended 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Jane Street Capitalʼs standard library overlay long_description ${description} -checksums rmd160 3aaabef347f1b156b7521db06d3b51e54a194ac6 \ - sha256 cf8a323227cd7acc43ba1960ce69cb8c838be7ae0fb5b18962c3039fe08af220 \ - size 36696 +checksums rmd160 9097bec4c96cad2609a5685c4f4efb95ba95dff1 \ + sha256 17de5f7cf59818d757bb0625c55f0afc84509122645b7782fb522ac98c3be446 \ + size 60067 github.tarball_from archive depends_lib-append port:ocaml-core \ diff --git a/ocaml/ocaml-core_kernel/Portfile b/ocaml/ocaml-core_kernel/Portfile index 41199ff36f7..fd56b74a40b 100644 --- a/ocaml/ocaml-core_kernel/Portfile +++ b/ocaml/ocaml-core_kernel/Portfile @@ -5,23 +5,24 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-core_kernel -github.setup janestreet core_kernel 0.16.0 v -revision 1 +github.setup janestreet core_kernel 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Jane Streetʼs standard library overlay long_description ${description} -checksums rmd160 ff9f1962399b2688378e72cb5cf6faf36c746ca8 \ - sha256 b3b1ce50cb3a1607f5701a90f5d5b37d841325591b49ba11bfbee285f510d2d1 \ - size 276775 +checksums rmd160 0397ec2687d982ffddca88364a2660500abc27d2 \ + sha256 fd2b8c6715794df7a810a62b226f53720f211cd344b4afc9fab0498796d6b466 \ + size 285870 github.tarball_from archive depends_lib-append port:ocaml-base \ port:ocaml-core \ port:ocaml-int_repr \ port:ocaml-ppx_jane \ - port:ocaml-ppx_optcomp + port:ocaml-ppx_optcomp \ + port:ocaml-uopt ocaml.build_type dune diff --git a/ocaml/ocaml-core_unix/Portfile b/ocaml/ocaml-core_unix/Portfile index 37153404641..fc6a17d9079 100644 --- a/ocaml/ocaml-core_unix/Portfile +++ b/ocaml/ocaml-core_unix/Portfile @@ -8,17 +8,17 @@ PortGroup ocaml 1.1 legacysupport.newest_darwin_requires_legacy 15 name ocaml-core_unix -github.setup janestreet core_unix 0.16.0 v -revision 1 +github.setup janestreet core_unix 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Unix-specific portions of Core long_description ${description} -checksums rmd160 cffeed09ebed4c3a77f1b5a6d46def3a018b2697 \ - sha256 9978ae7f56c18cc37b5e3a1adf1c70a7da542a57e17ff73f4e00811eb817d7bd \ - size 391719 +checksums rmd160 2d7296692b7f0ca82f5cdbb473ba0ef9ad8d2d5b \ + sha256 b1ed25aa3a7d809dec048fc0e2241e2a2bdcf88f31141f5b158b6879c958d177 \ + size 403373 github.tarball_from archive depends_lib-append port:ocaml-core \ diff --git a/ocaml/ocaml-cppo/Portfile b/ocaml/ocaml-cppo/Portfile index 9a87b36482c..737000f7680 100644 --- a/ocaml/ocaml-cppo/Portfile +++ b/ocaml/ocaml-cppo/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-cppo github.setup ocaml-community cppo 1.6.9 v -revision 0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-crunch/Portfile b/ocaml/ocaml-crunch/Portfile index 98bd3479f43..fc741cff2a0 100644 --- a/ocaml/ocaml-crunch/Portfile +++ b/ocaml/ocaml-crunch/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 PortGroup ocaml 1.1 github.setup mirage ocaml-crunch 3.3.1 v -revision 1 +revision 2 categories ocaml devel maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-cryptokit/Portfile b/ocaml/ocaml-cryptokit/Portfile index 46adaadc31e..05181354332 100644 --- a/ocaml/ocaml-cryptokit/Portfile +++ b/ocaml/ocaml-cryptokit/Portfile @@ -5,10 +5,10 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-cryptokit -set ck_version 1.13 +set ck_version 1.21.1 github.setup xavierleroy cryptokit [string map {. ""} $ck_version] release -# Change github.tarball_from to 'releases' or 'archive' next update -github.tarball_from tarball +revision 0 +github.tarball_from archive version $ck_version epoch 1 @@ -21,14 +21,12 @@ long_description The Cryptokit library for OCaml provides a \ implement cryptographic protocols in security-sensitive \ applications. -checksums rmd160 882ea0cc12086fb4aee50003c78b09d99fce450d \ - sha256 8d43d072a3986af7464a6b23e2da12cb1e192eb68e0c387530afac50f6c5889e \ - size 165774 +checksums rmd160 b0fb9f7de8a42680f9fb6e47500861df5a44202e \ + sha256 186fda8b2063882688e1c2621c8234c35acdf4e10cfdd3213ee04bef16902953 \ + size 170096 -patchfiles setup-ml.diff - -depends_lib port:ocaml-zarith \ +depends_lib port:ocaml-dune-configurator \ + port:ocaml-zarith \ port:zlib -ocaml.build_type oasis -oasis.build_docs yes +ocaml.build_type dune diff --git a/ocaml/ocaml-csexp/Portfile b/ocaml/ocaml-csexp/Portfile index 10cffe1ad7e..9b08b516c17 100644 --- a/ocaml/ocaml-csexp/Portfile +++ b/ocaml/ocaml-csexp/Portfile @@ -8,7 +8,7 @@ name ocaml-csexp github.setup ocaml-dune csexp 1.5.2 # Change github.tarball_from to 'releases' or 'archive' next update github.tarball_from tarball -revision 1 +revision 2 categories ocaml devel maintainers nomaintainer diff --git a/ocaml/ocaml-cstruct/Portfile b/ocaml/ocaml-cstruct/Portfile index 4a8d52ae03b..446f45dc960 100644 --- a/ocaml/ocaml-cstruct/Portfile +++ b/ocaml/ocaml-cstruct/Portfile @@ -6,6 +6,7 @@ PortGroup ocaml 1.1 name ocaml-cstruct github.setup mirage ${name} 6.2.0 v +revision 1 categories ocaml devel lang license ISC maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-ctypes/Portfile b/ocaml/ocaml-ctypes/Portfile index 1ecf407b138..d058e939ce8 100644 --- a/ocaml/ocaml-ctypes/Portfile +++ b/ocaml/ocaml-ctypes/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 PortGroup ocaml 1.1 github.setup ocamllabs ocaml-ctypes 0.21.1 -revision 0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-decompress/Portfile b/ocaml/ocaml-decompress/Portfile index 397aada7635..a83d37133cf 100644 --- a/ocaml/ocaml-decompress/Portfile +++ b/ocaml/ocaml-decompress/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-decompress github.setup mirage decompress 1.5.3 v -revision 1 +revision 2 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license MIT diff --git a/ocaml/ocaml-digestif/Portfile b/ocaml/ocaml-digestif/Portfile index cfc78ab4202..873380182f2 100644 --- a/ocaml/ocaml-digestif/Portfile +++ b/ocaml/ocaml-digestif/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 github.setup mirage digestif 1.3.0 v name ocaml-digestif -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license MIT diff --git a/ocaml/ocaml-easy-format/Portfile b/ocaml/ocaml-easy-format/Portfile index 0969841f820..8a9c7908243 100644 --- a/ocaml/ocaml-easy-format/Portfile +++ b/ocaml/ocaml-easy-format/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-easy-format github.setup ocaml-community easy-format 1.3.4 -revision 0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-either/Portfile b/ocaml/ocaml-either/Portfile index dea28499add..eaf50f2a5ca 100644 --- a/ocaml/ocaml-either/Portfile +++ b/ocaml/ocaml-either/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-either github.setup mirage either 1.0.0 -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license MIT diff --git a/ocaml/ocaml-eqaf/Portfile b/ocaml/ocaml-eqaf/Portfile index dd33f151053..b85da685de7 100644 --- a/ocaml/ocaml-eqaf/Portfile +++ b/ocaml/ocaml-eqaf/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-eqaf github.setup mirage eqaf 0.10 v -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license MIT diff --git a/ocaml/ocaml-expect_test_helpers_core/Portfile b/ocaml/ocaml-expect_test_helpers_core/Portfile index 3cd5ce9d5c8..416dfb98465 100644 --- a/ocaml/ocaml-expect_test_helpers_core/Portfile +++ b/ocaml/ocaml-expect_test_helpers_core/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-expect_test_helpers_core -github.setup janestreet expect_test_helpers_core 0.16.0 v -revision 1 +github.setup janestreet expect_test_helpers_core 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Library to be used with expect tests long_description ${description} -checksums rmd160 2351ed9973fb8bcd6b1126d18fca7cba8892f5d2 \ - sha256 82adfb4510ec2cdc4f59c62eeb4e90b51d9e5daa1628bd2c1fda06ba524b67dc \ - size 22549 +checksums rmd160 15618ea743caa4def1cb3e2f03c1e01cd5116cbc \ + sha256 c8380970589385b459413824ea3b2c959ed0a6600fe088f56eda0e16070880bf \ + size 24511 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-expect_test_helpers_kernel/Portfile b/ocaml/ocaml-expect_test_helpers_kernel/Portfile index 156db88f094..4239fe3ae91 100644 --- a/ocaml/ocaml-expect_test_helpers_kernel/Portfile +++ b/ocaml/ocaml-expect_test_helpers_kernel/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-expect_test_helpers_kernel github.setup janestreet expect_test_helpers_kernel 0.13.0 v -revision 1 +revision 2 categories ocaml devel maintainers nomaintainer license MIT diff --git a/ocaml/ocaml-extlib/Portfile b/ocaml/ocaml-extlib/Portfile index 88d810aa8ea..da044b14712 100644 --- a/ocaml/ocaml-extlib/Portfile +++ b/ocaml/ocaml-extlib/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 github.setup ygrek ocaml-extlib 1.8.0 github.tarball_from archive -revision 0 +revision 1 categories ocaml devel maintainers {pmetzger @pmetzger} openmaintainer license LGPL-2.1 diff --git a/ocaml/ocaml-fieldslib/Portfile b/ocaml/ocaml-fieldslib/Portfile index b4a5146b22d..7ebd1f5f3aa 100644 --- a/ocaml/ocaml-fieldslib/Portfile +++ b/ocaml/ocaml-fieldslib/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-fieldslib -github.setup janestreet fieldslib 0.16.0 v -revision 1 +github.setup janestreet fieldslib 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description OCaml record fields as first class values long_description ${description} -checksums rmd160 df6ee4e3c8ed0cb5a9712ca8db3a87f7001660aa \ - sha256 7bf728eb9db49f639ceda39d408d619271648e8840c5822724c1f64292c47146 \ - size 3711 +checksums rmd160 377dc643ce5cdd1948d9346a3e3d673c9ff7c177 \ + sha256 3d6001f7355d2dfb0f33fb7e64f39e34bda0917277609f5ec9a0703aa17b7dfa \ + size 3744 github.tarball_from archive depends_lib-append port:ocaml-base diff --git a/ocaml/ocaml-fileutils/Portfile b/ocaml/ocaml-fileutils/Portfile index 8c70e3d5db5..aff7e6fdbce 100644 --- a/ocaml/ocaml-fileutils/Portfile +++ b/ocaml/ocaml-fileutils/Portfile @@ -6,6 +6,7 @@ PortGroup ocaml 1.1 name ocaml-fileutils github.setup gildor478 ocaml-fileutils 0.6.4 v +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-findlib/Portfile b/ocaml/ocaml-findlib/Portfile index 8425c856bc3..6bdf4698aa7 100644 --- a/ocaml/ocaml-findlib/Portfile +++ b/ocaml/ocaml-findlib/Portfile @@ -7,7 +7,7 @@ name ocaml-findlib github.setup ocaml ocamlfind 1.9.6 findlib- # Change github.tarball_from to 'releases' or 'archive' next update github.tarball_from tarball -revision 2 +revision 3 distname findlib-${version} categories ocaml devel maintainers {pmetzger @pmetzger} openmaintainer @@ -42,6 +42,19 @@ configure.args -bindir ${prefix}/bin \ configure.pre_args +# Force stdlib in path: configure's auto-detect is fooled by leftover +# ${sitelib}/stdlib/META from an OCaml-4-era findlib still active at build time. +post-configure { + set mkconfig ${worksrcpath}/Makefile.config + set want "FINDLIB_PATH=${prefix}/lib/ocaml:${prefix}/lib/ocaml/site-lib" + set fp [open $mkconfig r] + set lines [split [read $fp] "\n"] + close $fp + if {[lsearch -exact $lines $want] < 0} { + reinplace "s|^FINDLIB_PATH=.*|${want}|" $mkconfig + } +} + use_parallel_build no if {${build_arch} eq "ppc" || ${build_arch} eq "ppc64"} { diff --git a/ocaml/ocaml-fix/Portfile b/ocaml/ocaml-fix/Portfile index 520e9c1383e..321a0b8dd74 100644 --- a/ocaml/ocaml-fix/Portfile +++ b/ocaml/ocaml-fix/Portfile @@ -7,6 +7,7 @@ PortGroup ocaml 1.1 name ocaml-fix gitlab.instance https://gitlab.inria.fr gitlab.setup fpottier fix 20230505 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-fmt/Portfile b/ocaml/ocaml-fmt/Portfile index e83d94ad4b5..c185bbb4dce 100644 --- a/ocaml/ocaml-fmt/Portfile +++ b/ocaml/ocaml-fmt/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-fmt github.setup dbuenzli fmt 0.11.0 v -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-fpath/Portfile b/ocaml/ocaml-fpath/Portfile index 50da12818cd..4a78f8c79fa 100644 --- a/ocaml/ocaml-fpath/Portfile +++ b/ocaml/ocaml-fpath/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-fpath github.setup dbuenzli fpath 0.7.3 v -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-gel/Portfile b/ocaml/ocaml-gel/Portfile new file mode 100644 index 00000000000..f63494e868d --- /dev/null +++ b/ocaml/ocaml-gel/Portfile @@ -0,0 +1,24 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + +PortSystem 1.0 +PortGroup github 1.0 +PortGroup ocaml 1.1 + +name ocaml-gel +github.setup janestreet gel 0.17.0 v +revision 0 +categories ocaml devel +maintainers nomaintainer +license MIT +description A library to mark non-record fields global +long_description {*}${description}. GEL stands for Global Even if inside a Local. + +checksums rmd160 e49bff2ba13a2453bb6e6c087cbba39fb955f9cc \ + sha256 80e3c39fa654d770329d8e2e1bb792e8eb18ceb2dd16fb2d9037830ad73c434f \ + size 4255 +github.tarball_from archive + +depends_lib-append port:ocaml-base \ + port:ocaml-ppx_jane + +ocaml.build_type dune diff --git a/ocaml/ocaml-gen/Portfile b/ocaml/ocaml-gen/Portfile index 33d6913ee9c..15d6d5a9d43 100644 --- a/ocaml/ocaml-gen/Portfile +++ b/ocaml/ocaml-gen/Portfile @@ -6,6 +6,7 @@ PortGroup ocaml 1.1 name ocaml-gen github.setup c-cube gen 1.1 v +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-hacl-star/Portfile b/ocaml/ocaml-hacl-star/Portfile index 5262a96a713..81984de822f 100644 --- a/ocaml/ocaml-hacl-star/Portfile +++ b/ocaml/ocaml-hacl-star/Portfile @@ -7,7 +7,7 @@ PortGroup ocaml 1.1 name ocaml-hacl-star github.setup cryspen hacl-packages ocaml-v0.7.2 version 0.7.2 -revision 0 +revision 1 # Release tarball is the pre-packaged OCaml distribution from cryspen/hacl-packages. # It contains pre-verified C sources and bundled karamel headers, so no F* diff --git a/ocaml/ocaml-hex/Portfile b/ocaml/ocaml-hex/Portfile index 00a838124c0..db0f189c626 100644 --- a/ocaml/ocaml-hex/Portfile +++ b/ocaml/ocaml-hex/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-hex github.setup mirage ${name} 1.5.0 v -revision 0 +revision 1 categories ocaml devel license ISC diff --git a/ocaml/ocaml-int_repr/Portfile b/ocaml/ocaml-int_repr/Portfile index b360be75a5a..057a9765f20 100644 --- a/ocaml/ocaml-int_repr/Portfile +++ b/ocaml/ocaml-int_repr/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-int_repr -github.setup janestreet int_repr 0.16.0 v -revision 1 +github.setup janestreet int_repr 0.17.0 v +revision 0 categories ocaml maintainers nomaintainer license MIT description Integers of various widths long_description ${description} -checksums rmd160 9695f84f2e32908647a42d2dedb8c598cc882bf9 \ - sha256 f0efa8b2cf81039f9b73b92287906211f97d56f3988dda891898f27d79293d3a \ - size 9227 +checksums rmd160 b3a8118deee05be049bfa39418e09efa35a822b4 \ + sha256 84834341ee55934dec68f3fb6ea9328092eece8ec7f079ac3eee2a11d08c52df \ + size 9585 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-integers/Portfile b/ocaml/ocaml-integers/Portfile index a248d2e9afa..75a69ddecfa 100644 --- a/ocaml/ocaml-integers/Portfile +++ b/ocaml/ocaml-integers/Portfile @@ -5,6 +5,7 @@ PortGroup github 1.0 PortGroup ocaml 1.1 github.setup yallop ocaml-integers 0.7.0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-iri/Portfile b/ocaml/ocaml-iri/Portfile new file mode 100644 index 00000000000..cd058b75749 --- /dev/null +++ b/ocaml/ocaml-iri/Portfile @@ -0,0 +1,34 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + +PortSystem 1.0 +PortGroup ocaml 1.1 + +name ocaml-iri +version 1.2.0 +revision 0 +categories ocaml textproc +maintainers nomaintainer +license LGPL-3 +description Implementation of Internationalized Resource Identifiers (IRIs) +long_description {*}${description} + +homepage https://zoggy.frama.io/ocaml-iri/ +master_sites ${homepage}releases/ + +distname ocaml-iri-${version} + +use_bzip2 yes + +checksums rmd160 0a05e37c48cf445e414397e1c07b98cba91beb0a \ + sha256 adb25ddfedd68d4c3f10b9297b4c3c56485be8a0b286751b3586f122de032672 \ + size 21162 + +depends_lib-append port:ocaml-sedlex \ + port:ocaml-uunf \ + port:ocaml-uutf + +ocaml.build_type dune + +livecheck.type regex +livecheck.url https://framagit.org/zoggy/ocaml-iri/-/tags +livecheck.regex {ocaml-iri-(\d+\.\d+\.\d+)\.tar} diff --git a/ocaml/ocaml-jane-street-headers/Portfile b/ocaml/ocaml-jane-street-headers/Portfile index dbd1cc5fc67..975ed9d0693 100644 --- a/ocaml/ocaml-jane-street-headers/Portfile +++ b/ocaml/ocaml-jane-street-headers/Portfile @@ -5,7 +5,7 @@ PortGroup ocaml 1.1 PortGroup github 1.0 name ocaml-jane-street-headers -github.setup janestreet jane-street-headers 0.16.0 v +github.setup janestreet jane-street-headers 0.17.0 v revision 0 categories ocaml devel maintainers nomaintainer @@ -15,9 +15,9 @@ long_description {*}${description} supported_archs noarch platforms any -checksums rmd160 326d9de280280fde6031e4b2f5ecaa82e876701c \ - sha256 bfb57ae96d4925f50f443480caa709749ca3012118f5b7580b2d8c84c93ee9d4 \ - size 4905 +checksums rmd160 84e88c8b2beaa8520f6fb2f7ea1f00c782fb02de \ + sha256 78fa6084cd067b7a7d930d1fe1cb7eb9dcd1a90c73017e570213b47a3762eb4f \ + size 4940 github.tarball_from archive ocaml.build_type dune diff --git a/ocaml/ocaml-jingoo/Portfile b/ocaml/ocaml-jingoo/Portfile index e50c9182e5d..ddd0bcd63e5 100644 --- a/ocaml/ocaml-jingoo/Portfile +++ b/ocaml/ocaml-jingoo/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 name ocaml-jingoo version 1.5.2 -revision 1 +revision 2 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license BSD diff --git a/ocaml/ocaml-js_of_ocaml/Portfile b/ocaml/ocaml-js_of_ocaml/Portfile index df0ca75088d..154cdb40e7b 100644 --- a/ocaml/ocaml-js_of_ocaml/Portfile +++ b/ocaml/ocaml-js_of_ocaml/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-js_of_ocaml -github.setup ocsigen js_of_ocaml 5.9.1 -revision 2 +github.setup ocsigen js_of_ocaml 6.3.2 +revision 0 categories ocaml devel lang maintainers nomaintainer license {GPL-2+ LGPL-2.1+} description Compiler from OCaml bytecode to JavaScript long_description {*}${description} -checksums rmd160 f8dfe2f0074235de99494884bcd732a5334d3975 \ - sha256 00f92a40eeeb29a44ba0326aaefa5bba2ac522ee800a2ee64d707ca75d498084 \ - size 2240203 +checksums rmd160 64d880f90654f04365e1f27046733ea024452c5a \ + sha256 fbbe8eafc44445d199ce83d01ccb3e5f9dd2ee7922af74ab02e1a1233f77e596 \ + size 3653161 github.tarball_from archive depends_lib-append port:ocaml-ppxlib @@ -30,6 +30,7 @@ if {${subport} eq ${name} } { subport ocaml-js_of_ocaml-compiler { depends_lib-append \ port:ocaml-cmdliner \ + port:ocaml-compiler-libs \ port:ocaml-findlib \ port:ocaml-menhir \ port:ocaml-menhirLib \ diff --git a/ocaml/ocaml-jst-config/Portfile b/ocaml/ocaml-jst-config/Portfile index 7f3eb083403..9d1c3a0ef42 100644 --- a/ocaml/ocaml-jst-config/Portfile +++ b/ocaml/ocaml-jst-config/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-jst-config -github.setup janestreet jst-config 0.16.0 v -revision 1 +github.setup janestreet jst-config 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Compile-time configuration for Jane Street libraries long_description {*}${description} -checksums rmd160 ce2a4e91741721a35e5b0792857b0b23a359d4b0 \ - sha256 94d60f5d4b4bae0bfdfeab247293155f812ae8f2f660cd1812f4696b1c56d8c9 \ - size 4952 +checksums rmd160 0f7c1737a3b6e9f6053674d53f1b2f209dc2a142 \ + sha256 2cf345e33bed0ee4c325667e77dfc5bee8f12afd56318b7c9acf81ec875ecf6e \ + size 5052 github.tarball_from archive depends_build-append \ diff --git a/ocaml/ocaml-logs-syslog/Portfile b/ocaml/ocaml-logs-syslog/Portfile index 67fd032cc43..1c11e142bef 100644 --- a/ocaml/ocaml-logs-syslog/Portfile +++ b/ocaml/ocaml-logs-syslog/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-logs-syslog github.setup hannesm logs-syslog 0.5.0 v -revision 1 +revision 2 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license ISC diff --git a/ocaml/ocaml-logs/Portfile b/ocaml/ocaml-logs/Portfile index f1634456f89..9aeaa71fcc3 100644 --- a/ocaml/ocaml-logs/Portfile +++ b/ocaml/ocaml-logs/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-logs github.setup dbuenzli logs 0.10.0 v -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-lwt/Portfile b/ocaml/ocaml-lwt/Portfile index 935672d97c6..16ac7055699 100644 --- a/ocaml/ocaml-lwt/Portfile +++ b/ocaml/ocaml-lwt/Portfile @@ -4,8 +4,8 @@ PortSystem 1.0 PortGroup github 1.0 PortGroup ocaml 1.1 -github.setup ocsigen lwt 5.7.0 -revision 2 +github.setup ocsigen lwt 6.1.0 +revision 0 name ocaml-lwt categories ocaml devel @@ -23,25 +23,15 @@ depends_lib-append port:ocaml-dune-configurator \ port:ocaml-findlib \ port:ocaml-ocplib-endian -checksums rmd160 3e489440f58eafc503a5222f55da753ac094969d \ - sha256 371031c38071f6f1b1b815cbe07f436c013af8fd8c4862c57a12e37c15c8b785 \ - size 313632 +checksums rmd160 99f59823f22a1eb1fb68426342c00f86a2b9f192 \ + sha256 197ff76a70971a41b9b1d678aa4e9310db8beda4b0c9d88bb11701be5fc8c06d \ + size 326145 github.tarball_from archive -post-patch { - # We don't need the seq package - reinplace -E {s|\(libraries(.*)seq|(libraries\1|g} \ - src/core/dune - - # Fail the build if the unix module cannot be built - reinplace -E {s|\(optional\)||g} \ - src/unix/dune -} - ocaml.build_type dune subport ${name}_ppx { - revision 1 + revision 0 depends_lib-append \ port:${name} \ @@ -50,11 +40,9 @@ subport ${name}_ppx { subport ${name}_react { version 1.2.0 - revision 1 + revision 0 description Helpers for using React with Lwt - depends_build-append \ - port:ocaml-cppo depends_lib-append \ port:${name} \ port:ocaml-react diff --git a/ocaml/ocaml-markup/Portfile b/ocaml/ocaml-markup/Portfile index 18db5aab7fd..1744e187d85 100644 --- a/ocaml/ocaml-markup/Portfile +++ b/ocaml/ocaml-markup/Portfile @@ -8,7 +8,7 @@ name ocaml-markup github.setup aantron markup.ml 1.0.3 # Change github.tarball_from to 'releases' or 'archive' next update github.tarball_from tarball -revision 1 +revision 2 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license MIT diff --git a/ocaml/ocaml-memtrace/Portfile b/ocaml/ocaml-memtrace/Portfile index 8fbd494a289..2bd5c46cea9 100644 --- a/ocaml/ocaml-memtrace/Portfile +++ b/ocaml/ocaml-memtrace/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-memtrace github.setup janestreet memtrace 0.2.3 v -revision 0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-menhir/Portfile b/ocaml/ocaml-menhir/Portfile index cd78e9fb5cf..3ca84de9796 100644 --- a/ocaml/ocaml-menhir/Portfile +++ b/ocaml/ocaml-menhir/Portfile @@ -4,7 +4,7 @@ PortSystem 1.0 PortGroup ocaml 1.1 name ocaml-menhir -version 20231231 +version 20260209 revision 0 categories ocaml devel maintainers nomaintainer @@ -16,15 +16,16 @@ master_sites https://gitlab.inria.fr/fpottier/menhir/-/archive/${version} distname menhir-${version} -checksums rmd160 7ac21ec41665575553002eb450d898a822dd1609 \ - sha256 783e95e1ce7f1082c5c693810732344ac3e443a255b822acfca46dd985cfedae \ - size 1393059 +checksums rmd160 16a5bc4aee9df5c1a87467788582b2d732283630 \ + sha256 198fed60926d550b15445579f940ad9182b481c3068c03ec400018c5637b0584 \ + size 1612176 ocaml.build_type dune if {${subport} eq ${name} } { depends_lib-append port:ocaml-menhirSdk \ - port:ocaml-menhirLib + port:ocaml-menhirLib \ + port:ocaml-menhirGLR depends_run-append port:ocaml-coq-menhirlib livecheck.type regex @@ -38,6 +39,12 @@ subport ocaml-menhirLib { subport ocaml-menhirSdk { } +subport ocaml-menhirGLR { +} + +subport ocaml-menhirCST { +} + subport ocaml-coq-menhirlib { platforms any supported_archs noarch diff --git a/ocaml/ocaml-merlin/Portfile b/ocaml/ocaml-merlin/Portfile index 9a75dc47bd5..c2507503620 100644 --- a/ocaml/ocaml-merlin/Portfile +++ b/ocaml/ocaml-merlin/Portfile @@ -6,16 +6,16 @@ PortGroup ocaml 1.1 # Version must match OCaml: https://github.com/ocaml/merlin/issues/1697 name ocaml-merlin -github.setup ocaml merlin 4.14-414 v -revision 0 +github.setup ocaml merlin 5.7.1-504 v +revision 1 categories ocaml devel maintainers nomaintainer license MIT description Editor helper, provides completion, typing and source browsing in Vim and Emacs long_description {*}${description} -checksums rmd160 63d6d6faabfa091a7782cc373a26bccde5dfde79 \ - sha256 eeab97336086887fcaaa8281daff93ddaa9ebbe34ff2a244aeb92f7a6ba3899b \ - size 2463721 +checksums rmd160 1c12332f0018e7503bb7babc263d05a26042f967 \ + sha256 07f7e28348efb544fe196728de9bad9a7f586d00e5e1a5cecbbe42f2b715317e \ + size 5681882 github.tarball_from archive ocaml.build_type dune diff --git a/ocaml/ocaml-mew/Portfile b/ocaml/ocaml-mew/Portfile index bf1b5db08f3..66df61d2d36 100644 --- a/ocaml/ocaml-mew/Portfile +++ b/ocaml/ocaml-mew/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-mew github.setup kandu mew 0.1.0 -revision 0 +revision 1 categories ocaml textproc maintainers nomaintainer license MIT diff --git a/ocaml/ocaml-mew_vi/Portfile b/ocaml/ocaml-mew_vi/Portfile index 02676011e0c..73d0113fe57 100644 --- a/ocaml/ocaml-mew_vi/Portfile +++ b/ocaml/ocaml-mew_vi/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-mew_vi github.setup kandu mew_vi 0.5.0 -revision 0 +revision 1 categories ocaml textproc maintainers nomaintainer license MIT diff --git a/ocaml/ocaml-migrate-parsetree/Portfile b/ocaml/ocaml-migrate-parsetree/Portfile deleted file mode 100644 index 62231c45306..00000000000 --- a/ocaml/ocaml-migrate-parsetree/Portfile +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 - -PortSystem 1.0 -PortGroup github 1.0 -PortGroup ocaml 1.1 - -github.setup ocaml-ppx ocaml-migrate-parsetree 2.4.0 - -categories ocaml devel -maintainers {landonf @landonf} openmaintainer -license LGPL-2.1 -description Convert OCaml parsetrees between different OCaml versions -long_description Converts OCaml parsetrees, outcometree and AST mappers \ - between different OCaml versions. - -github.tarball_from releases - -checksums rmd160 3e9aabd4a3d55b191d6b069ba598e069ce344efe \ - sha256 ec49c452dc337a620556ab682bf0198bf50182550b502d8fb230a591260aa6a4 \ - size 77476 - -distname ${name}-${version} -use_bzip2 yes -extract.suffix .tbz - -depends_lib port:ocaml-ppx_derivers - -ocaml.build_type dune -dune.packages ${name} diff --git a/ocaml/ocaml-mmap/Portfile b/ocaml/ocaml-mmap/Portfile index 3c0c8e34bed..58c8de964db 100644 --- a/ocaml/ocaml-mmap/Portfile +++ b/ocaml/ocaml-mmap/Portfile @@ -6,6 +6,7 @@ PortGroup ocaml 1.1 name ocaml-mmap github.setup mirage mmap 1.2.0 v +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-mtime/Portfile b/ocaml/ocaml-mtime/Portfile index c857b45d245..207d9b7778a 100644 --- a/ocaml/ocaml-mtime/Portfile +++ b/ocaml/ocaml-mtime/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 github.setup dbuenzli mtime 2.1.0 v name ocaml-mtime -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license ISC diff --git a/ocaml/ocaml-not-ocamlfind/Portfile b/ocaml/ocaml-not-ocamlfind/Portfile index ae2fd708f89..cefda706e2a 100644 --- a/ocaml/ocaml-not-ocamlfind/Portfile +++ b/ocaml/ocaml-not-ocamlfind/Portfile @@ -7,7 +7,7 @@ PortGroup github 1.0 github.setup chetmurthy not-ocamlfind 0.14 github.tarball_from archive name ocaml-not-ocamlfind -revision 1 +revision 2 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license MIT diff --git a/ocaml/ocaml-num/Portfile b/ocaml/ocaml-num/Portfile index ee636b33c8a..7254c3997bb 100644 --- a/ocaml/ocaml-num/Portfile +++ b/ocaml/ocaml-num/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-num github.setup ocaml num 1.6 v -revision 0 +revision 1 categories ocaml devel maintainers {pmetzger @pmetzger} openmaintainer diff --git a/ocaml/ocaml-ocaml-version/Portfile b/ocaml/ocaml-ocaml-version/Portfile index 8547d745541..77bf78cfeb6 100644 --- a/ocaml/ocaml-ocaml-version/Portfile +++ b/ocaml/ocaml-ocaml-version/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-ocaml-version github.setup ocurrent ocaml-version 4.0.3 v -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-ocaml_intrinsics/Portfile b/ocaml/ocaml-ocaml_intrinsics/Portfile index 3a20108c9be..1dfe21dec80 100644 --- a/ocaml/ocaml-ocaml_intrinsics/Portfile +++ b/ocaml/ocaml-ocaml_intrinsics/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ocaml_intrinsics -github.setup janestreet ocaml_intrinsics 0.16.0 v +github.setup janestreet ocaml_intrinsics 0.17.0 v revision 0 categories ocaml devel maintainers nomaintainer @@ -14,16 +14,16 @@ description Library of intrinsics for OCaml long_description The ocaml_intrinsics library provides an OCaml interface to operations \ that have dedicated hardware instructions on some micro-architectures. -checksums rmd160 05852d582d78f41de8bc0fddb2fa6265e05460eb \ - sha256 476548e28225f6d8cce3677c8e0f0382b89d21e05ca814ee2396d4e9ea7c2e98 \ - size 35876 +checksums rmd160 5b9cfbb64e8d4cf4d043a2a33d04ad02a04e5f66 \ + sha256 d42b21dc49a05be658391e63fe64c055d52ec67c0812cf6801f1de0f22733ce2 \ + size 32720 github.tarball_from archive -# FIXME: add an implementation for these. -patch.pre_args-replace -p0 -p1 patchfiles 0001-crc_stubs.c-abort-instead-of-error-on-unsupported-pl.patch depends_build-append \ port:ocaml-dune-configurator +depends_lib-append port:ocaml-ocaml_intrinsics_kernel + ocaml.build_type dune diff --git a/ocaml/ocaml-ocaml_intrinsics/files/0001-crc_stubs.c-abort-instead-of-error-on-unsupported-pl.patch b/ocaml/ocaml-ocaml_intrinsics/files/0001-crc_stubs.c-abort-instead-of-error-on-unsupported-pl.patch index 97c26d7d553..e56f341280b 100644 --- a/ocaml/ocaml-ocaml_intrinsics/files/0001-crc_stubs.c-abort-instead-of-error-on-unsupported-pl.patch +++ b/ocaml/ocaml-ocaml_intrinsics/files/0001-crc_stubs.c-abort-instead-of-error-on-unsupported-pl.patch @@ -1,46 +1,13 @@ -From 54d66c9d3b6f08fd2917eb22afe7cc0fa8ced5a7 Mon Sep 17 00:00:00 2001 -From: barracuda156 -Date: Mon, 21 Nov 2022 00:35:47 +0800 -Subject: [PATCH] crc_stubs.c: abort instead of error on unsupported platforms +--- src/crc_stubs.c.orig ++++ src/crc_stubs.c +@@ -38,7 +38,9 @@ ---- - src/crc_stubs.c | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) - -diff --git a/src/crc_stubs.c b/src/crc_stubs.c -index 70aa270..9477adb 100644 ---- a/src/crc_stubs.c -+++ b/src/crc_stubs.c -@@ -13,7 +13,9 @@ static inline uint64_t crc64(uint64_t initial, uint64_t data) - #elif defined(__SSE4_2__) - return __builtin_ia32_crc32di(initial, data); #else + -#error "Target not supported" + /* Platform not supported, but we don't want to prevent the rest of the library from + building on it. This is a temporary solution. */ + abort(); - #endif - } - #else // not ARCH_SIXTYFOUR -@@ -24,7 +26,9 @@ static inline uint32_t crc32(uint32_t initial, uint32_t data) - #elif defined(__SSE4_2__) - return __builtin_ia32_crc32si(initial, data); - #else --#error "Target not supported" -+ /* Platform not supported, but we don't want to prevent the rest of the library from -+ building on it. This is a temporary solution. */ -+ abort(); - #endif - } - #endif // ARCH_SIXTYFOUR -@@ -45,7 +49,9 @@ static inline uint32_t crc32(uint32_t initial, uint32_t data) - } - #endif // ARCH_SIXTYFOUR - #else -- #error "Target not supported" -+ /* Platform not supported, but we don't want to prevent the rest of the library from -+ building on it. This is a temporary solution. */ -+ abort(); - uint64_t crc64(uint64_t initial, uint64_t data); - uint32_t crc32(uint32_t initial, uint32_t data); - #endif + uint64_t crc64(uint64_t initial, uint64_t data); + uint32_t crc32(uint32_t initial, uint32_t data); + diff --git a/ocaml/ocaml-ocaml_intrinsics_kernel/Portfile b/ocaml/ocaml-ocaml_intrinsics_kernel/Portfile new file mode 100644 index 00000000000..270b6d00f71 --- /dev/null +++ b/ocaml/ocaml-ocaml_intrinsics_kernel/Portfile @@ -0,0 +1,22 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + +PortSystem 1.0 +PortGroup github 1.0 +PortGroup ocaml 1.1 + +name ocaml-ocaml_intrinsics_kernel +github.setup janestreet ocaml_intrinsics_kernel 0.17.1 v +revision 0 +categories ocaml devel +maintainers nomaintainer +license MIT +description Intrinsics for OCaml +long_description Provides functions to invoke amd64 instructions (such as cmov, min/maxsd, \ + popcnt) when available, or compatible software implementation on other targets. + +checksums rmd160 d324dd6b0cdd8ba8b55a24983f5f4ded6ff95415 \ + sha256 c988b7769a59749631c3c98ba5edd1d2fe91f5dc380b5e0593c073c92f4bee01 \ + size 11922 +github.tarball_from archive + +ocaml.build_type dune diff --git a/ocaml/ocaml-ocamlbuild/Portfile b/ocaml/ocaml-ocamlbuild/Portfile index f16eb69792c..fdc63591ad5 100644 --- a/ocaml/ocaml-ocamlbuild/Portfile +++ b/ocaml/ocaml-ocamlbuild/Portfile @@ -7,7 +7,7 @@ PortGroup github 1.0 github.setup ocaml ocamlbuild 0.16.1 github.tarball_from archive name ocaml-ocamlbuild -revision 0 +revision 1 categories ocaml devel maintainers {pmetzger @pmetzger} openmaintainer license {LGPL-2.1 OpenSSLException} diff --git a/ocaml/ocaml-ocamlformat/Portfile b/ocaml/ocaml-ocamlformat/Portfile index 8d88692a765..d7e90ffb25c 100644 --- a/ocaml/ocaml-ocamlformat/Portfile +++ b/ocaml/ocaml-ocamlformat/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-ocamlformat github.setup ocaml-ppx ocamlformat 0.29.0 -revision 1 +revision 2 categories ocaml devel maintainers nomaintainer license {LGPL-2.1 MIT} @@ -27,7 +27,7 @@ if {${subport} eq ${name} } { } subport ocaml-ocamlformat-lib { - revision 0 + revision 1 depends_lib-append \ port:ocaml-astring \ diff --git a/ocaml/ocaml-ocamlgraph/Portfile b/ocaml/ocaml-ocamlgraph/Portfile index 2f9132d7ec2..d324e5ea806 100644 --- a/ocaml/ocaml-ocamlgraph/Portfile +++ b/ocaml/ocaml-ocamlgraph/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 github.setup backtracking ocamlgraph 2.2.0 name ocaml-ocamlgraph -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license LGPL-2.1 diff --git a/ocaml/ocaml-ocamlnet/Portfile b/ocaml/ocaml-ocamlnet/Portfile index de5009cbbff..66a064f3d94 100644 --- a/ocaml/ocaml-ocamlnet/Portfile +++ b/ocaml/ocaml-ocamlnet/Portfile @@ -8,7 +8,7 @@ legacysupport.newest_darwin_requires_legacy 10 name ocaml-ocamlnet version 4.1.9 -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license {BSD GPL-2 LGPL-2} @@ -29,10 +29,15 @@ checksums rmd160 e5518628bf13195b8ac45088bf78c21ae24d084c \ sha256 f98ed19979848f1949b1b001e30ac132b254d0f4a705150c6dcf9094bbec9cee \ size 4628747 +patchfiles-append patch-ocaml5.diff + depends_lib-append port:ocaml \ port:ocaml-findlib \ port:ocaml-pcre +# both install the findlib package 'shell' +conflicts ocaml-shell + # ocaml is not universal universal_variant no diff --git a/ocaml/ocaml-ocamlnet/files/patch-ocaml5.diff b/ocaml/ocaml-ocamlnet/files/patch-ocaml5.diff new file mode 100644 index 00000000000..aaa0a94926f --- /dev/null +++ b/ocaml/ocaml-ocamlnet/files/patch-ocaml5.diff @@ -0,0 +1,5800 @@ +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/configure ocamlnet-4.1.9.patched/configure +--- configure 2021-03-24 16:20:13 ++++ configure 2026-05-29 06:32:02 +@@ -615,7 +615,7 @@ + ###################################################################### + + printf "Checking for immutable strings... " +-if ocamlc -safe-string >/dev/null 2>/dev/null; then ++if true || ocamlc -safe-string >/dev/null 2>/dev/null; then + istring=1 + echo "yes" + else +@@ -779,6 +779,18 @@ + fi + + ###################################################################### ++# Bigarray ++ ++# Since OCaml-5.0.0 "bigarray" is part of the regular stdlib ++v="$(ocamlc -version)" ++case "$v" in ++ [56789]\.*) ++ true ;; ++ *) ++ requires="$requires bigarray" ;; ++esac ++ ++###################################################################### + # Netsys + + ( cd src/netsys; ./configure ) +@@ -1086,11 +1098,7 @@ + may prevent the build\n of the apache module on platforms \ + where PIC code differs from non-PIC\n such as x86_64, hppa,..." + fi +- # at some point libstr.a was renamed to libcamlstr.a +- libstr="str" +- if [ -f "$apache_ocamllibdir/libcamlstr.a" ]; then +- libstr="camlstr" +- fi ++ libstr="camlstr" + else + enable_apache=0 + echo "apxs or apache not found" +@@ -1295,7 +1303,7 @@ + # For -enable-apache + APACHE_MAJOR = $apache_major + APACHE_LIBDIR = $apache_libdir +-APACHE_OCAMLLIBS = -l$apache_camlrun -ltermcap -lunix -l$libstr ++APACHE_OCAMLLIBS = -l$apache_camlrun -ltermcap -lunixbyt -l${libstr}byt + APACHE_INCDIR = $apache_incdir + APACHE_CONFDIR = $apache_confdir + APACHE_LDFLAGS_SHLIB = $apache_ldflags_shlib +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/equeue/unixqueue_select.ml ocamlnet-4.1.9.patched/src/equeue/unixqueue_select.ml +--- src/equeue/unixqueue_select.ml 2021-03-24 16:20:14 ++++ src/equeue/unixqueue_select.ml 2026-05-29 06:31:43 +@@ -35,7 +35,7 @@ + module Fdescr = struct + type t = Unix.file_descr + +- let compare (a:t) (b:t) = Pervasives.compare a b ++ let compare (a:t) (b:t) = compare a b + + end;; + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/equeue/unixqueue_util.ml ocamlnet-4.1.9.patched/src/equeue/unixqueue_util.ml +--- src/equeue/unixqueue_util.ml 2021-03-24 16:20:14 ++++ src/equeue/unixqueue_util.ml 2026-05-29 06:31:43 +@@ -179,7 +179,7 @@ + let fd_cmp = + match Sys.os_type with + | "Win32" -> +- Pervasives.compare ++ compare + | _ -> + (fun (fd1:Unix.file_descr) fd2 -> + (Obj.magic fd1 : int) - (Obj.magic fd2 : int) +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/equeue/uq_engines.ml ocamlnet-4.1.9.patched/src/equeue/uq_engines.ml +--- src/equeue/uq_engines.ml 2021-03-24 16:20:14 ++++ src/equeue/uq_engines.ml 2026-05-29 06:31:43 +@@ -121,7 +121,7 @@ + Set.Make + (struct + type t = int +- let compare (x:t) (y:t) = Pervasives.compare x y ++ let compare (x:t) (y:t) = compare x y + end + ) + +@@ -593,57 +593,6 @@ + e#abort(); + self # set_state `Aborted + end +- +- +- +-class ['a] stream_seq_engine x0 (s : ('a -> 'a #engine) Stream.t) esys = +-object(self) +- inherit ['a] engine_mixin (`Working 0) esys +- +- val mutable x = x0 +- val mutable cur_e = aborted_engine esys +- +- initializer +- self#next() +- +- method private next() = +- match Stream.peek s with +- | None -> +- self # set_state (`Done x) +- | Some f -> +- let _ = Stream.next s in (* yep, it's "partial" *) +- let e = +- try (f x :> _ engine) +- with error -> const_engine (`Error error) esys in +- cur_e <- e; +- if is_active e#state then +- when_state +- ~is_done:(fun x1 -> +- x <- x1; +- Unixqueue.epsilon esys self#next +- (* avoids stack overflow *) +- ) +- ~is_error:(fun e -> self # set_state (`Error e)) +- ~is_aborted:(fun () -> self # set_state `Aborted) +- ~is_progressing:(fun _ -> self # sseq_count()) +- e +- else +- self # set_state e#state +- +- method abort() = +- cur_e # abort(); +- self # set_state `Aborted +- +- method private sseq_count() = +- match self#state with +- `Working n -> +- self # set_state (`Working (n+1)) +- | _ -> +- () +-end +- +- +-let stream_seq_engine = new stream_seq_engine + + + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/equeue/uq_engines.mli ocamlnet-4.1.9.patched/src/equeue/uq_engines.mli +--- src/equeue/uq_engines.mli 2021-03-24 16:20:14 ++++ src/equeue/uq_engines.mli 2026-05-29 06:31:43 +@@ -354,25 +354,6 @@ + [qseq_engine] should be preferred for recursive chains of engines. + *) + +-class ['a] stream_seq_engine : 'a -> ('a -> 'a #engine) Stream.t -> +- Unixqueue.event_system -> ['a] engine +- (** [let se = new stream_seq_engine x0 s esys]: The constructed engine [se] +- * fetches functions [f : 'a -> 'a #engine] from the stream [s], and +- * runs the engines obtained by calling these functions [e = f x] one +- * after the other. Each function call gets the result of the previous +- * engine as argument. The first call gets [x0] as argument. +- * +- * If one of the engines [e] transitions into an error or aborted state, +- * [se] will also do that. If [se] is aborted, this is passed down to +- * the currently running engine [e]. +- *) +- +- +-val stream_seq_engine : 'a -> ('a -> 'a #engine) Stream.t -> +- Unixqueue.event_system -> 'a engine +- (** Same as function *) +- +- + class ['a, 'b] sync_engine : 'a #engine -> 'b #engine -> ['a * 'b] engine + (** This engine runs two engines in parallel, and waits until both + * are [`Done] (synchronization). The product of the two [`Done] arguments +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/equeue/uq_engines_compat.mli ocamlnet-4.1.9.patched/src/equeue/uq_engines_compat.mli +--- src/equeue/uq_engines_compat.mli 2021-03-24 16:20:14 ++++ src/equeue/uq_engines_compat.mli 2026-05-29 06:31:43 +@@ -105,12 +105,6 @@ + class ['a, 'b] qseq_engine : 'a #engine -> ('a -> 'b #engine) -> ['b] engine + val qseq_engine : 'a #engine -> ('a -> 'b #engine) -> 'b engine + +-class ['a] stream_seq_engine : 'a -> ('a -> 'a #engine) Stream.t -> +- Unixqueue.event_system -> ['a] engine +- +-val stream_seq_engine : 'a -> ('a -> 'a #engine) Stream.t -> +- Unixqueue.event_system -> 'a engine +- + class ['a, 'b] sync_engine : 'a #engine -> 'b #engine -> ['a * 'b] engine + + val sync_engine : 'a #engine -> 'b #engine -> ('a * 'b) engine +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netcgi2-apache/apache.c ocamlnet-4.1.9.patched/src/netcgi2-apache/apache.c +--- src/netcgi2-apache/apache.c 2021-03-24 16:20:14 ++++ src/netcgi2-apache/apache.c 2026-05-29 06:32:02 +@@ -78,9 +78,9 @@ + table *t = Table_val (tv); + const char *res = apr_table_get(t, String_val (str)); + if (res) +- CAMLreturn (copy_string (res)); ++ CAMLreturn (caml_copy_string (res)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + static int +@@ -88,8 +88,8 @@ + { + CAMLparam0(); + CAMLlocal1(cons); /* head cell of new list */ +- cons = alloc(2, 0); /* :: */ +- Store_field(cons, 0, copy_string(val)); /* value :: */ ++ cons = caml_alloc(2, 0); /* :: */ ++ Store_field(cons, 0, caml_copy_string(val)); /* value :: */ + Store_field(cons, 1, *((value *) res)); /* :: previous list */ + *((value *) res) = cons; + CAMLreturn(1); +@@ -101,7 +101,7 @@ + CAMLparam2(tv, str); + CAMLlocal1(res); /* list */ + table *t = Table_val(tv); +- char *key = String_val(str); ++ char *key = Bytes_val(str); + res = Val_int(0); /* empty list [] */ + + /* Only iterates over values associated with [key]. */ +@@ -116,11 +116,11 @@ + { + CAMLparam0(); + CAMLlocal2(cons, pair); +- pair = alloc_tuple(2); /* (,) */ +- Store_field(pair, 0, copy_string(key)); +- Store_field(pair, 1, copy_string(val)); ++ pair = caml_alloc_tuple(2); /* (,) */ ++ Store_field(pair, 0, caml_copy_string(key)); ++ Store_field(pair, 1, caml_copy_string(val)); + /* fprintf(stderr, "(%s, %s)\n", key, val); /\* DEBUG *\/ */ +- cons = alloc(2, 0); /* :: */ ++ cons = caml_alloc(2, 0); /* :: */ + Store_field(cons, 0, pair); /* pair :: */ + Store_field(cons, 1, *((value *) res)); /* :: list */ + *((value *) res) = cons; +@@ -176,9 +176,9 @@ + CAMLparam1(sv); + server_rec *s = Server_rec_val(sv); + if (s->server_hostname) +- CAMLreturn(copy_string(s->server_hostname)); ++ CAMLreturn(caml_copy_string(s->server_hostname)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -187,9 +187,9 @@ + CAMLparam1(sv); + server_rec *s = Server_rec_val(sv); + if (s->server_admin) +- CAMLreturn(copy_string(s->server_admin)); ++ CAMLreturn(caml_copy_string(s->server_admin)); + else +- raise_not_found(); ++ caml_raise_not_found(); + } + + CAMLprim value +@@ -209,9 +209,9 @@ + CAMLparam1 (cv); \ + conn_rec *c = Conn_rec_val (cv); \ + if (c->field) \ +- CAMLreturn (copy_string (c->field)); \ ++ CAMLreturn (caml_copy_string (c->field)); \ + else \ +- raise_not_found (); \ ++ caml_raise_not_found (); \ + } + + #if AP_SERVER_MAJORVERSION_NUMBER == 1 +@@ -258,7 +258,7 @@ + if (rr) + CAMLreturn (Val_request_rec (rr)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -269,7 +269,7 @@ + if (rr) + CAMLreturn (Val_request_rec (rr)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -280,7 +280,7 @@ + if (rr) + CAMLreturn (Val_request_rec (rr)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -289,9 +289,9 @@ + CAMLparam1 (rv); + request_rec *r = Request_rec_val (rv); + if (r->the_request) +- CAMLreturn (copy_string (r->the_request)); ++ CAMLreturn (caml_copy_string (r->the_request)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -316,9 +316,9 @@ + CAMLparam1 (rv); + request_rec *r = Request_rec_val (rv); + if (r->protocol) +- CAMLreturn (copy_string (r->protocol)); ++ CAMLreturn (caml_copy_string (r->protocol)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -335,9 +335,9 @@ + CAMLparam1 (rv); + request_rec *r = Request_rec_val (rv); + if (r->hostname) +- CAMLreturn (copy_string (r->hostname)); ++ CAMLreturn (caml_copy_string (r->hostname)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -345,7 +345,7 @@ + { + CAMLparam1 (rv); + request_rec *r = Request_rec_val (rv); +- CAMLreturn (copy_double ((double) r->request_time)); ++ CAMLreturn (caml_copy_double ((double) r->request_time)); + } + + CAMLprim value +@@ -354,9 +354,9 @@ + CAMLparam1 (rv); + request_rec *r = Request_rec_val (rv); + if (r->status_line) +- CAMLreturn (copy_string (r->status_line)); ++ CAMLreturn (caml_copy_string (r->status_line)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -390,7 +390,7 @@ + { + CAMLparam1 (rv); + request_rec *r = Request_rec_val (rv); +- CAMLreturn (copy_string (r->method)); ++ CAMLreturn (caml_copy_string (r->method)); + } + + CAMLprim value +@@ -447,9 +447,9 @@ + CAMLparam1 (rv); + request_rec *r = Request_rec_val (rv); + if (r->content_type) +- CAMLreturn (copy_string (r->content_type)); ++ CAMLreturn (caml_copy_string (r->content_type)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -468,13 +468,13 @@ + request_rec *r = Request_rec_val (rv); + #if APACHE2 + if (r->user) +- CAMLreturn (copy_string (r->user)); ++ CAMLreturn (caml_copy_string (r->user)); + #else + if (r->connection->user) +- CAMLreturn (copy_string (r->connection->user)); ++ CAMLreturn (caml_copy_string (r->connection->user)); + #endif + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -483,9 +483,9 @@ + CAMLparam1 (rv); + request_rec *r = Request_rec_val (rv); + if (r->uri) +- CAMLreturn (copy_string (r->uri)); ++ CAMLreturn (caml_copy_string (r->uri)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -513,9 +513,9 @@ + CAMLparam1 (rv); + request_rec *r = Request_rec_val (rv); + if (r->filename) +- CAMLreturn (copy_string (r->filename)); ++ CAMLreturn (caml_copy_string (r->filename)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -533,9 +533,9 @@ + CAMLparam1 (rv); + request_rec *r = Request_rec_val (rv); + if (r->path_info) +- CAMLreturn (copy_string (r->path_info)); ++ CAMLreturn (caml_copy_string (r->path_info)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -553,9 +553,9 @@ + CAMLparam1 (rv); + request_rec *r = Request_rec_val (rv); + if (r->args) +- CAMLreturn (copy_string (r->args)); ++ CAMLreturn (caml_copy_string (r->args)); + else +- raise_not_found (); ++ caml_raise_not_found (); + } + + CAMLprim value +@@ -595,16 +595,16 @@ + if (r->finfo.filetype != APR_NOFILE) /* Some statbuf */ + { + atime = (r->finfo.valid & APR_FINFO_ATIME) ? +- copy_double ((double) apr_time_sec (r->finfo.atime)) : +- copy_double (0.); ++ caml_copy_double ((double) apr_time_sec (r->finfo.atime)) : ++ caml_copy_double (0.); + mtime = (r->finfo.valid & APR_FINFO_MTIME) ? +- copy_double ((double) apr_time_sec (r->finfo.mtime)) : +- copy_double (0.); ++ caml_copy_double ((double) apr_time_sec (r->finfo.mtime)) : ++ caml_copy_double (0.); + ctime = (r->finfo.valid & APR_FINFO_CTIME) ? +- copy_double ((double) apr_time_sec (r->finfo.ctime)) : +- copy_double (0.); ++ caml_copy_double ((double) apr_time_sec (r->finfo.ctime)) : ++ caml_copy_double (0.); + +- sb = alloc_small (12, 0); ++ sb = caml_alloc_small (12, 0); + Field (sb, 0) = Val_int (r->finfo.device); + Field (sb, 1) = Val_int (r->finfo.inode); + Field (sb, 2) = +@@ -621,7 +621,7 @@ + Field (sb, 10) = mtime; + Field (sb, 11) = ctime; + +- v = alloc (1, 0); /* The "Some" block. */ ++ v = caml_alloc (1, 0); /* The "Some" block. */ + Field (v, 0) = sb; + } + else +@@ -632,11 +632,11 @@ + if (r->finfo.st_mode) /* Some statbuf */ + { + /* This code copied and modified from otherlibs/unix/stat.c. */ +- atime = copy_double ((double) r->finfo.st_atime); +- mtime = copy_double ((double) r->finfo.st_mtime); +- ctime = copy_double ((double) r->finfo.st_ctime); ++ atime = caml_copy_double ((double) r->finfo.st_atime); ++ mtime = caml_copy_double ((double) r->finfo.st_mtime); ++ ctime = caml_copy_double ((double) r->finfo.st_ctime); + +- sb = alloc_small (12, 0); ++ sb = caml_alloc_small (12, 0); + Field (sb, 0) = Val_int (r->finfo.st_dev); + Field (sb, 1) = Val_int (r->finfo.st_ino); + Field (sb, 2) = +@@ -652,7 +652,7 @@ + Field (sb, 10) = mtime; + Field (sb, 11) = ctime; + +- v = alloc (1, 0); /* The "Some" block. */ ++ v = caml_alloc (1, 0); /* The "Some" block. */ + Field (v, 0) = sb; + } + else +@@ -718,8 +718,8 @@ + caml_failwith("ap_get_client_block"); + } + +- str = alloc_string (i); +- memcpy (String_val (str), buffer, i); ++ str = caml_alloc_string (i); ++ memcpy (Bytes_val (str), buffer, i); + + CAMLreturn (str); + } +@@ -734,7 +734,7 @@ + int len = Int_val(lenv); + int i; + +- i = ap_get_client_block (r, String_val(bufv) + ofs, len); ++ i = ap_get_client_block (r, Bytes_val(bufv) + ofs, len); + /* Error dealt with on the Caml side. */ + CAMLreturn(Val_int(i)); + } +@@ -755,13 +755,13 @@ + request_rec *r = Request_rec_val(rv); + #if APACHE2 + if (r->ap_auth_type) +- CAMLreturn(copy_string(r->ap_auth_type)); ++ CAMLreturn(caml_copy_string(r->ap_auth_type)); + #else + if (r->connection->ap_auth_type) +- CAMLreturn(copy_string(r->connection->ap_auth_type)); ++ CAMLreturn(caml_copy_string(r->connection->ap_auth_type)); + #endif + else +- raise_not_found(); ++ caml_raise_not_found(); + } + + +@@ -803,7 +803,7 @@ + /* Return [i] as the first component of a couple so we can deal with + * the possible errors on the Caml side. */ + if (i == DECLINED) pw = NULL; /* FIXME */ +- c = alloc_tuple (2); ++ c = caml_alloc_tuple (2); + Store_field(c, 0, Val_int(i)); + Store_field(c, 1, Val_optstring(pw)); + CAMLreturn (c); +@@ -834,7 +834,7 @@ + request_rec *r = Request_rec_val (rv); + int c = Int_val (cv); + if (ap_rputc (c, r) == EOF) +- raise_sys_error(copy_string("Netcgi_mod#out_channel#output_char")); ++ caml_raise_sys_error(caml_copy_string("Netcgi_mod#out_channel#output_char")); + CAMLreturn (Val_unit); + } + +@@ -855,8 +855,8 @@ + { + value f = *(value *) fv; + +- callback (f, Val_unit); +- remove_global_root ((value *) fv); ++ caml_callback (f, Val_unit); ++ caml_remove_global_root ((value *) fv); + return OK; + } + +@@ -868,7 +868,7 @@ + value *v = (value *) apr_palloc (r->pool, sizeof (value)); + + *v = f; +- register_global_root (v); ++ caml_register_global_root (v); + + #if APACHE2 + apr_pool_cleanup_register (r->pool, v, run_cleanup, apr_pool_cleanup_null); +@@ -894,7 +894,7 @@ + else goto not_found; + } else + not_found: +- raise_not_found (); ++ caml_raise_not_found (); + CAMLreturn (config); + } + +@@ -910,6 +910,6 @@ + else goto not_found; + } else + not_found: +- raise_not_found (); ++ caml_raise_not_found (); + CAMLreturn (config); + } +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netcgi2-apache/handler.c ocamlnet-4.1.9.patched/src/netcgi2-apache/handler.c +--- src/netcgi2-apache/handler.c 2021-03-24 16:20:14 ++++ src/netcgi2-apache/handler.c 2026-05-29 06:32:10 +@@ -177,10 +177,10 @@ + { + value arg = Val_optstring (dirname); + value *v = alloc_root_value (p); +- static value *f = NULL; ++ static const value *f = NULL; + + if(f == NULL) f = caml_named_value("netcgi2_apache_create_dir_config"); +- *v = callback(*f, arg); ++ *v = caml_callback(*f, arg); + return v; + } + +@@ -188,10 +188,10 @@ + merge_dir_config (apr_pool_t *p, void *base, void *add) + { + value *v = alloc_root_value (p); +- static value *f = NULL; ++ static const value *f = NULL; + + if(f == NULL) f = caml_named_value("netcgi2_apache_merge_dir_config"); +- *v = callback2(*f, *(value *) base, *(value *) add); ++ *v = caml_callback2(*f, *(value *) base, *(value *) add); + return v; + } + +@@ -200,10 +200,10 @@ + { + value arg = Val_server_rec (s); + value *v = alloc_root_value (p); +- static value *f = NULL; ++ static const value *f = NULL; + + if(f == NULL) f = caml_named_value("netcgi2_apache_create_server_config"); +- *v = callback(*f, arg); ++ *v = caml_callback(*f, arg); + return v; + } + +@@ -211,10 +211,10 @@ + merge_server_config (apr_pool_t *p, void *base, void *add) + { + value *v = alloc_root_value (p); +- static value *f = NULL; ++ static const value *f = NULL; + + if(f == NULL) f = caml_named_value("netcgi2_apache_merge_server_config"); +- *v = callback2(*f, *(value *) base, *(value *) add); ++ *v = caml_callback2(*f, *(value *) base, *(value *) add); + return v; + } + +@@ -244,7 +244,7 @@ + #define MAKE_HANDLER(name) \ + static int name (request_rec *r) \ + { \ +- static value *f = NULL; \ ++ static const value *f = NULL; \ + value rv, arg; \ + if (f == NULL) f = caml_named_value("netcgi2_apache_" #name); \ + assert(f); \ +@@ -274,8 +274,8 @@ + static const char * \ + name (cmd_parms *parms, void *dummy, const char *strarg) \ + { \ +- static value *f = NULL; \ +- value arg = copy_string (strarg); \ ++ static const value *f = NULL; \ ++ value arg = caml_copy_string (strarg); \ + value exn; \ + if (f == NULL) f = caml_named_value("netcgi2_apache_" #name); \ + exn = callback_exn(*f, arg); \ +@@ -296,11 +296,11 @@ + { + value *sconfig = (value *) + ap_get_module_config (parms->server->module_config, &netcgi_module); +- static value *f = NULL; +- value arg = copy_string(name); ++ static const value *f = NULL; ++ value arg = caml_copy_string(name); + value exn; + if (f == NULL) f = caml_named_value("netcgi2_apache_cmd_translate_handler"); +- exn = callback2_exn(*f, *sconfig, arg); ++ exn = caml_callback2_exn(*f, *sconfig, arg); + if (Is_exception_result (exn)) + /* FIXME: ap_pstrdup into pool? */ + return caml_format_exception (Extract_exception (exn)); +@@ -312,11 +312,11 @@ + static const char * \ + name (cmd_parms *parms, void *dconfig, const char *name) \ + { \ +- value *f = NULL; \ +- value arg = copy_string(name); \ ++ const value *f = NULL; \ ++ value arg = caml_copy_string(name); \ + value exn; \ + if (f == NULL) f = caml_named_value("netcgi2_apache_" #name); \ +- exn = callback2_exn(*f, *(value *) dconfig, arg); \ ++ exn = caml_callback2_exn(*f, *(value *) dconfig, arg); \ + if (Is_exception_result (exn)) \ + /* FIXME: ap_pstrdup into pool? */ \ + return caml_format_exception (Extract_exception (exn)); \ +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netcgi2-apache/netcgi_apache_mod.ml.in ocamlnet-4.1.9.patched/src/netcgi2-apache/netcgi_apache_mod.ml.in +--- src/netcgi2-apache/netcgi_apache_mod.ml.in 2021-03-24 16:20:14 ++++ src/netcgi2-apache/netcgi_apache_mod.ml.in 2026-05-29 06:32:02 +@@ -462,7 +462,7 @@ + if Filename.is_relative filename then + Filename.concat Conf.ocaml_libdir filename + else filename in +- reg_module_name := Some(String.capitalize(Filename.chop_extension ++ reg_module_name := Some(String.capitalize_ascii(Filename.chop_extension + (Filename.basename filename))); + try Dynlink.loadfile filename; + with Dynlink.Error(e) -> +@@ -520,7 +520,7 @@ + (fun arch -> + let arch' = Findlib.resolve_path ~base:d arch in + reg_module_name := +- Some(String.capitalize(Filename.chop_extension ++ Some(String.capitalize_ascii(Filename.chop_extension + (Filename.basename arch'))); + try Dynlink.loadfile arch'; + with Dynlink.Error(e) -> +@@ -624,4 +624,3 @@ + let _lexing_lexeme_ = Lexing.lexeme + let _queue_create_ = Queue.create + let _stack_create_ = Stack.create +-let _stream_sempty_ = Stream.sempty +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netcgi2-apache/wrappers.c ocamlnet-4.1.9.patched/src/netcgi2-apache/wrappers.c +--- src/netcgi2-apache/wrappers.c 2021-03-24 16:20:14 ++++ src/netcgi2-apache/wrappers.c 2026-05-29 06:32:02 +@@ -28,7 +28,7 @@ + value + Val_voidptr (void *ptr) + { +- value rv = alloc (1, Abstract_tag); /* XXX Is this correct? */ ++ value rv = caml_alloc (1, Abstract_tag); /* XXX Is this correct? */ + Field(rv, 0) = (value) ptr; + return rv; + } +@@ -40,8 +40,8 @@ + { + CAMLparam0(); + CAMLlocal2(rv, s); +- s = copy_string (str); +- rv = alloc_small (1, 0); ++ s = caml_copy_string (str); ++ rv = caml_alloc_small (1, 0); + Field(rv, 0) = s; + CAMLreturn(rv); + } +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netgss-system/META.in ocamlnet-4.1.9.patched/src/netgss-system/META.in +--- src/netgss-system/META.in 2021-03-24 16:20:15 ++++ src/netgss-system/META.in 2026-05-29 06:31:43 +@@ -1,5 +1,5 @@ + description = "Ocamlnet - GSSAPI bindings" +-requires = "unix,bigarray,netsys,netstring" ++requires = "unix,netsys,netstring" + version = "@VERSION@" + archive(byte) = "netgss-system.cma" + archive(native) = "netgss-system.cmxa" +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netgss-system/gssapi.c ocamlnet-4.1.9.patched/src/netgss-system/gssapi.c +--- src/netgss-system/gssapi.c 2021-03-24 16:20:15 ++++ src/netgss-system/gssapi.c 2026-05-29 06:31:44 +@@ -59,7 +59,7 @@ + fprintf(stderr, "Netgss: error from gss_release_buffer\n"); + } else { + if (tag == 1) { +- stat_free(buf->value); ++ caml_stat_free(buf->value); + } + } + } +@@ -71,13 +71,13 @@ + static void netgss_free_buffer(long tag, gss_buffer_t buf) { + netgss_free_buffer_contents(tag, buf); + /* The descriptor is always allocated by us: */ +- stat_free(buf); ++ caml_stat_free(buf); + } + + + static gss_buffer_t netgss_alloc_buffer(void) { + gss_buffer_t buf; +- buf = (gss_buffer_t) stat_alloc(sizeof(gss_buffer_desc)); ++ buf = (gss_buffer_t) caml_stat_alloc(sizeof(gss_buffer_desc)); + buf->value = NULL; + buf->length = 0; + return buf; +@@ -105,10 +105,10 @@ + gss_buffer_t buf; + if (Long_val(len) < 0 || Long_val(pos) < 0 || + Long_val(pos) > caml_string_length(s) - Long_val(len)) +- invalid_argument("buffer_of_string"); ++ caml_invalid_argument("buffer_of_string"); + buf = netgss_alloc_buffer(); + buf->length = Long_val(len); +- buf->value = stat_alloc(buf->length); ++ buf->value = caml_stat_alloc(buf->length); + memcpy(buf->value, String_val(s) + Long_val(pos), buf->length); + return twrap_gss_buffer_t(1, buf); + } +@@ -155,14 +155,14 @@ + if (tag == 0 || buf == GSS_C_NO_OID) { + /* OIDs from the provider are to be considered as read-only */ + } else { +- stat_free(buf->elements); +- stat_free(buf); ++ caml_stat_free(buf->elements); ++ caml_stat_free(buf); + } + } + + + static gss_OID netgss_alloc_oid(void) { +- return (gss_OID) stat_alloc(sizeof(gss_OID_desc)); ++ return (gss_OID) caml_stat_alloc(sizeof(gss_OID_desc)); + } + + +@@ -173,7 +173,7 @@ + } else { + out = netgss_alloc_oid(); + out->length = buf->length; +- out->elements = stat_alloc(buf->length); ++ out->elements = caml_stat_alloc(buf->length); + memcpy(out->elements, buf->elements, buf->length); + } + return out; +@@ -184,7 +184,7 @@ + gss_OID buf; + buf = netgss_alloc_oid(); + buf->length = caml_string_length(s); +- buf->elements = stat_alloc(buf->length); ++ buf->elements = caml_stat_alloc(buf->length); + memcpy(buf->elements, String_val(s), buf->length); + return twrap_gss_OID(1, buf); + } +@@ -213,14 +213,14 @@ + for (k=0; k < set->count; k++) { + netgss_free_oid(1, set->elements+k); + } +- stat_free(set->elements); +- stat_free(set); ++ caml_stat_free(set->elements); ++ caml_stat_free(set); + } + } + + + static gss_OID_set netgss_alloc_oid_set(void) { +- return (gss_OID_set) stat_alloc(sizeof(gss_OID_set_desc)); ++ return (gss_OID_set) caml_stat_alloc(sizeof(gss_OID_set_desc)); + } + + +@@ -254,7 +254,7 @@ + return twrap_gss_OID_set(1, GSS_C_NO_OID_SET); + set = netgss_alloc_oid_set(); + set->count = Wosize_val(varg); +- set->elements = stat_alloc(sizeof(gss_OID) * set->count); ++ set->elements = caml_stat_alloc(sizeof(gss_OID) * set->count); + for (k=0; kcount; k++) { + v1 = Field(varg, k); + buf = unwrap_gss_OID(v1); +@@ -308,17 +308,17 @@ + aaddr_len = caml_string_length(aaddr); + data_len = caml_string_length(data); + cb = (gss_channel_bindings_t) +- stat_alloc(sizeof(struct gss_channel_bindings_struct)); ++ caml_stat_alloc(sizeof(struct gss_channel_bindings_struct)); + cb->initiator_addrtype = Int_val(iaddrty); + cb->initiator_address.length = iaddr_len; +- cb->initiator_address.value = stat_alloc(iaddr_len); ++ cb->initiator_address.value = caml_stat_alloc(iaddr_len); + memcpy(cb->initiator_address.value, String_val(iaddr), iaddr_len); + cb->acceptor_addrtype = Int_val(aaddrty); + cb->acceptor_address.length = aaddr_len; +- cb->acceptor_address.value = stat_alloc(aaddr_len); ++ cb->acceptor_address.value = caml_stat_alloc(aaddr_len); + memcpy(cb->acceptor_address.value, String_val(aaddr), aaddr_len); + cb->application_data.length = data_len; +- cb->application_data.value = stat_alloc(data_len); ++ cb->application_data.value = caml_stat_alloc(data_len); + memcpy(cb->application_data.value, String_val(data), data_len); + return wrap_gss_channel_bindings_t(cb); + } +@@ -364,8 +364,8 @@ + + static void netgss_free_cb(gss_channel_bindings_t x) { + if (x != NULL) { +- stat_free(x->initiator_address.value); +- stat_free(x->acceptor_address.value); +- stat_free(x->application_data.value); ++ caml_stat_free(x->initiator_address.value); ++ caml_stat_free(x->acceptor_address.value); ++ caml_stat_free(x->application_data.value); + } + } +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netgss-system/reconfigure ocamlnet-4.1.9.patched/src/netgss-system/reconfigure +--- src/netgss-system/reconfigure 2021-03-24 16:20:15 ++++ src/netgss-system/reconfigure 2026-05-29 06:31:44 +@@ -133,7 +133,7 @@ + + rm -f config_checks.sh + echo "$ ocaml -I ../../tools gssapi.descr" >>$log +-ocaml -I ../../tools gssapi.descr || exit 1 ++ocaml -I +str -I ../../tools gssapi.descr || exit 1 + + . ./config_checks.sh + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/nethttpd/nethttpd_services.ml ocamlnet-4.1.9.patched/src/nethttpd/nethttpd_services.ml +--- src/nethttpd/nethttpd_services.ml 2021-03-24 16:20:14 ++++ src/nethttpd/nethttpd_services.ml 2026-05-29 06:31:44 +@@ -107,10 +107,10 @@ + try + let req_name = env # input_header_field "Host" in + let (req_host, req_port_opt) = split_host_port req_name in +- let req_host = String.lowercase req_host in ++ let req_host = String.lowercase_ascii req_host in + let req_port = match req_port_opt with Some p -> p | None -> 80 in (* CHECK *) + List.find +- (fun (n,p) -> (n = "*" || String.lowercase n = req_host) && ++ (fun (n,p) -> (n = "*" || String.lowercase_ascii n = req_host) && + (p = 0 || p = req_port)) + host.server_names + with +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netplex/Makefile ocamlnet-4.1.9.patched/src/netplex/Makefile +--- src/netplex/Makefile 2021-03-24 16:20:15 ++++ src/netplex/Makefile 2026-05-29 06:31:44 +@@ -36,7 +36,7 @@ + + netplex-admin$(EXEC_SUFFIX): netplex.cma netplex_admin.cmo + $(OCAMLC) -o netplex-admin -custom \ +- -package "bytes unix bigarray str" -linkpkg \ ++ -package "bytes unix str" -linkpkg \ + netsys_oothr.cma netsys.cma netstring.cma equeue.cma \ + rpc.cma netplex.cma netplex_admin.cmo + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netplex/netplex_config.ml ocamlnet-4.1.9.patched/src/netplex/netplex_config.ml +--- src/netplex/netplex_config.ml 2021-03-24 16:20:15 ++++ src/netplex/netplex_config.ml 2026-05-29 06:31:44 +@@ -1,5 +1,195 @@ + (* $Id$ *) + ++module Stream = Netstring_stream ++module Genlex = struct ++type token = ++ Kwd of string ++ | Ident of string ++ | Int of int ++ | Float of float ++ | String of string ++ | Char of char ++ ++(* The string buffering machinery *) ++ ++let initial_buffer = Bytes.create 32 ++ ++let buffer = ref initial_buffer ++let bufpos = ref 0 ++ ++let reset_buffer () = buffer := initial_buffer; bufpos := 0 ++ ++let store c = ++ if !bufpos >= Bytes.length !buffer then begin ++ let newbuffer = Bytes.create (2 * !bufpos) in ++ Bytes.blit !buffer 0 newbuffer 0 !bufpos; ++ buffer := newbuffer ++ end; ++ Bytes.set !buffer !bufpos c; ++ incr bufpos ++ ++let get_string () = ++ let s = Bytes.sub_string !buffer 0 !bufpos in buffer := initial_buffer; s ++ ++(* The lexer *) ++ ++let make_lexer keywords = ++ let kwd_table = Hashtbl.create 17 in ++ List.iter (fun s -> Hashtbl.add kwd_table s (Kwd s)) keywords; ++ let ident_or_keyword id = ++ try Hashtbl.find kwd_table id with ++ Not_found -> Ident id ++ and keyword_or_error c = ++ let s = String.make 1 c in ++ try Hashtbl.find kwd_table s with ++ Not_found -> raise (Stream.Error ("Illegal character " ^ s)) ++ in ++ let rec next_token (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some (' ' | '\010' | '\013' | '\009' | '\026' | '\012') -> ++ Stream.junk strm__; next_token strm__ ++ | Some ('A'..'Z' | 'a'..'z' | '_' | '\192'..'\255' as c) -> ++ Stream.junk strm__; ++ let s = strm__ in reset_buffer (); store c; ident s ++ | Some ++ ('!' | '%' | '&' | '$' | '#' | '+' | '/' | ':' | '<' | '=' | '>' | ++ '?' | '@' | '\\' | '~' | '^' | '|' | '*' as c) -> ++ Stream.junk strm__; ++ let s = strm__ in reset_buffer (); store c; ident2 s ++ | Some ('0'..'9' as c) -> ++ Stream.junk strm__; ++ let s = strm__ in reset_buffer (); store c; number s ++ | Some '\'' -> ++ Stream.junk strm__; ++ let c = ++ try char strm__ with ++ Stream.Failure -> raise (Stream.Error "") ++ in ++ begin match Stream.peek strm__ with ++ Some '\'' -> Stream.junk strm__; Some (Char c) ++ | _ -> raise (Stream.Error "") ++ end ++ | Some '\"' -> ++ Stream.junk strm__; ++ let s = strm__ in reset_buffer (); Some (String (string s)) ++ | Some '-' -> Stream.junk strm__; neg_number strm__ ++ | Some '(' -> Stream.junk strm__; maybe_comment strm__ ++ | Some c -> Stream.junk strm__; Some (keyword_or_error c) ++ | _ -> None ++ and ident (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some ++ ('A'..'Z' | 'a'..'z' | '\192'..'\255' | '0'..'9' | '_' | '\'' as c) -> ++ Stream.junk strm__; let s = strm__ in store c; ident s ++ | _ -> Some (ident_or_keyword (get_string ())) ++ and ident2 (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some ++ ('!' | '%' | '&' | '$' | '#' | '+' | '-' | '/' | ':' | '<' | '=' | ++ '>' | '?' | '@' | '\\' | '~' | '^' | '|' | '*' as c) -> ++ Stream.junk strm__; let s = strm__ in store c; ident2 s ++ | _ -> Some (ident_or_keyword (get_string ())) ++ and neg_number (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some ('0'..'9' as c) -> ++ Stream.junk strm__; ++ let s = strm__ in reset_buffer (); store '-'; store c; number s ++ | _ -> let s = strm__ in reset_buffer (); store '-'; ident2 s ++ and number (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some ('0'..'9' as c) -> ++ Stream.junk strm__; let s = strm__ in store c; number s ++ | Some '.' -> ++ Stream.junk strm__; let s = strm__ in store '.'; decimal_part s ++ | Some ('e' | 'E') -> ++ Stream.junk strm__; let s = strm__ in store 'E'; exponent_part s ++ | _ -> Some (Int (int_of_string (get_string ()))) ++ and decimal_part (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some ('0'..'9' as c) -> ++ Stream.junk strm__; let s = strm__ in store c; decimal_part s ++ | Some ('e' | 'E') -> ++ Stream.junk strm__; let s = strm__ in store 'E'; exponent_part s ++ | _ -> Some (Float (float_of_string (get_string ()))) ++ and exponent_part (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some ('+' | '-' as c) -> ++ Stream.junk strm__; let s = strm__ in store c; end_exponent_part s ++ | _ -> end_exponent_part strm__ ++ and end_exponent_part (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some ('0'..'9' as c) -> ++ Stream.junk strm__; let s = strm__ in store c; end_exponent_part s ++ | _ -> Some (Float (float_of_string (get_string ()))) ++ and string (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some '\"' -> Stream.junk strm__; get_string () ++ | Some '\\' -> ++ Stream.junk strm__; ++ let c = ++ try escape strm__ with ++ Stream.Failure -> raise (Stream.Error "") ++ in ++ let s = strm__ in store c; string s ++ | Some c -> Stream.junk strm__; let s = strm__ in store c; string s ++ | _ -> raise Stream.Failure ++ and char (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some '\\' -> ++ Stream.junk strm__; ++ begin try escape strm__ with ++ Stream.Failure -> raise (Stream.Error "") ++ end ++ | Some c -> Stream.junk strm__; c ++ | _ -> raise Stream.Failure ++ and escape (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some 'n' -> Stream.junk strm__; '\n' ++ | Some 'r' -> Stream.junk strm__; '\r' ++ | Some 't' -> Stream.junk strm__; '\t' ++ | Some ('0'..'9' as c1) -> ++ Stream.junk strm__; ++ begin match Stream.peek strm__ with ++ Some ('0'..'9' as c2) -> ++ Stream.junk strm__; ++ begin match Stream.peek strm__ with ++ Some ('0'..'9' as c3) -> ++ Stream.junk strm__; ++ Char.chr ++ ((Char.code c1 - 48) * 100 + (Char.code c2 - 48) * 10 + ++ (Char.code c3 - 48)) ++ | _ -> raise (Stream.Error "") ++ end ++ | _ -> raise (Stream.Error "") ++ end ++ | Some c -> Stream.junk strm__; c ++ | _ -> raise Stream.Failure ++ and maybe_comment (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some '*' -> ++ Stream.junk strm__; let s = strm__ in comment s; next_token s ++ | _ -> Some (keyword_or_error '(') ++ and comment (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some '(' -> Stream.junk strm__; maybe_nested_comment strm__ ++ | Some '*' -> Stream.junk strm__; maybe_end_comment strm__ ++ | Some _ -> Stream.junk strm__; comment strm__ ++ | _ -> raise Stream.Failure ++ and maybe_nested_comment (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some '*' -> Stream.junk strm__; let s = strm__ in comment s; comment s ++ | Some _ -> Stream.junk strm__; comment strm__ ++ | _ -> raise Stream.Failure ++ and maybe_end_comment (strm__ : _ Stream.t) = ++ match Stream.peek strm__ with ++ Some ')' -> Stream.junk strm__; () ++ | Some '*' -> Stream.junk strm__; maybe_end_comment strm__ ++ | Some _ -> Stream.junk strm__; comment strm__ ++ | _ -> raise Stream.Failure ++ in ++ fun input -> Stream.from (fun _count -> next_token input) ++end ++ + open Netplex_types + open Genlex + open Printf +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netplex/netplex_kit.ml ocamlnet-4.1.9.patched/src/netplex/netplex_kit.ml +--- src/netplex/netplex_kit.ml 2021-03-24 16:20:15 ++++ src/netplex/netplex_kit.ml 2026-05-29 06:31:44 +@@ -89,7 +89,7 @@ + + module PTYPE = struct + type t = parallelization_type +- let compare (x:t) (y:t) = Pervasives.compare x y ++ let compare (x:t) (y:t) = compare x y + end + + module PSet = Set.Make(PTYPE) +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netplex/netplex_workload.ml ocamlnet-4.1.9.patched/src/netplex/netplex_workload.ml +--- src/netplex/netplex_workload.ml 2021-03-24 16:20:15 ++++ src/netplex/netplex_workload.ml 2026-05-29 06:31:44 +@@ -119,7 +119,7 @@ + + module ContId = struct + type t = container_id +- let (compare : t -> t -> int) = Pervasives.compare ++ let (compare : t -> t -> int) = compare + end + + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netshm/META.in ocamlnet-4.1.9.patched/src/netshm/META.in +--- src/netshm/META.in 2021-03-24 16:20:14 ++++ src/netshm/META.in 2026-05-29 06:31:44 +@@ -1,6 +1,6 @@ + version = "@VERSION@" + description = "Ocamlnet - Shared memory" +-requires = "unix netsys bigarray" ++requires = "unix netsys" + archive(byte) = "netshm.cma" + archive(native) = "netshm.cmxa" + archive(native,gprof) = "netshm.p.cmxa" +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netshm/netshm.ml ocamlnet-4.1.9.patched/src/netshm/netshm.ml +--- src/netshm/netshm.ml 2021-03-24 16:20:14 ++++ src/netshm/netshm.ml 2026-05-29 06:31:44 +@@ -133,7 +133,7 @@ + + module Int = struct + type t = int +- let compare = (Pervasives.compare : int -> int -> int) ++ let compare = (compare : int -> int -> int) + end + + module IntMap = Map.Make(Int) +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netstring/Makefile ocamlnet-4.1.9.patched/src/netstring/Makefile +--- src/netstring/Makefile 2021-03-24 16:20:13 ++++ src/netstring/Makefile 2026-05-29 06:31:44 +@@ -3,7 +3,7 @@ + include $(TOP_DIR)/Makefile.conf + + OBJECTS = netconst.cmo netstring_str.cmo netbuffer.cmo netunichar.cmo \ +- netaux.cmo netstring_tstring.cmo \ ++ netaux.cmo netstring_tstring.cmo netstring_stream.cmo \ + netchannels.cmo netchannels_crypto.cmo netsockaddr.cmo \ + netdb.cmo netmappings_asn1.cmo netmappings.cmo netconversion.cmo \ + netulex.cmo netencoding.cmo netstream.cmo netdate.cmo \ +@@ -28,7 +28,7 @@ + + PKGNAME = netstring + +-REQUIRES += $(REGEXP_PROVIDER_MAKE) bigarray ++REQUIRES += $(REGEXP_PROVIDER_MAKE) + INCLUDES += $(INC_NETSYS) + INCLUDES += -I ../netstring-pcre + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netstring/netaccel_c.c ocamlnet-4.1.9.patched/src/netstring/netaccel_c.c +--- src/netstring/netaccel_c.c 2021-03-24 16:20:13 ++++ src/netstring/netaccel_c.c 2026-05-29 06:31:44 +@@ -25,7 +25,7 @@ + srcpos_c+len_c > Wosize_val(src) || + destpos_c < 0 || + destpos_c+len_c > Wosize_val(dest)) +- invalid_argument("Netaccel.int_blit"); ++ caml_invalid_argument("Netaccel.int_blit"); + + if (src != dest || destpos_c <= srcpos_c) { + for (i=0; i Wosize_val(src) || + destpos_c < 0 || + destpos_c+len_c > Wosize_val(dest)) +- invalid_argument("Netaccel.int_series"); ++ caml_invalid_argument("Netaccel.int_series"); + + s = n_c; + for (i=0; i string_length(s_in)) +- invalid_argument("Netaccel.read_iso88591"); ++ caml_invalid_argument("Netaccel.read_iso88591"); ++ if (p_in_c < 0 || l_in_c < 0 || p_in_c + l_in_c > caml_string_length(s_in)) ++ caml_invalid_argument("Netaccel.read_iso88591"); + + m = l_in_c; + if (slice_char_len < m) m = slice_char_len; +@@ -110,12 +110,12 @@ + ch = Byte_u(s_in, p_in_c+k); + if (ch > maxcode_c) { + Field(slice_char, k) = Val_long(-1); +- r = alloc_tuple(3); ++ r = caml_alloc_tuple(3); + Store_field(r, 0, Val_long(k)); + Store_field(r, 1, Val_long(k)); + Store_field(r, 2, enc); +- raise_with_arg(*caml_named_value("Netconversion.Malformed_code_read"), +- r); ++ caml_raise_with_arg(*caml_named_value("Netconversion.Malformed_code_read"), ++ r); + }; + Field(slice_char, k) = Val_int((signed int) ch); + }; +@@ -124,7 +124,7 @@ + Field(slice_char, m) = Val_long(-1); + }; + +- r = alloc_tuple(3); ++ r = caml_alloc_tuple(3); + Store_field(r, 0, Val_long(m)); + Store_field(r, 1, Val_long(m)); + Store_field(r, 2, enc); +@@ -164,9 +164,9 @@ + slice_char_len = Wosize_val(slice_char); + + if (slice_char_len != Wosize_val(slice_blen)) +- invalid_argument("Netaccel.read_utf8"); +- if (p_in_c < 0 || l_in_c < 0 || p_in_c + l_in_c > string_length(s_in)) +- invalid_argument("Netaccel.read_utf8"); ++ caml_invalid_argument("Netaccel.read_utf8"); ++ if (p_in_c < 0 || l_in_c < 0 || p_in_c + l_in_c > caml_string_length(s_in)) ++ caml_invalid_argument("Netaccel.read_utf8"); + + p = p_in_c; + p_max = p_in_c + l_in_c; +@@ -249,21 +249,21 @@ + Field(slice_char, n_ret) = Val_long(-1); + } + +- r = alloc_tuple(3); ++ r = caml_alloc_tuple(3); + Store_field(r, 0, Val_long(n_ret)); + Store_field(r, 1, Val_long(p-p_in_c)); +- Store_field(r, 2, hash_variant("Enc_utf8")); ++ Store_field(r, 2, caml_hash_variant("Enc_utf8")); + + CAMLreturn(r); + + malformed_code: + Field(slice_char, n) = Val_long(-1); +- r = alloc_tuple(3); ++ r = caml_alloc_tuple(3); + Store_field(r, 0, Val_long(n)); + Store_field(r, 1, Val_long(p-p_in_c)); +- Store_field(r, 2, hash_variant("Enc_utf8")); +- raise_with_arg(*caml_named_value("Netconversion.Malformed_code_read"), +- r); ++ Store_field(r, 2, caml_hash_variant("Enc_utf8")); ++ caml_raise_with_arg(*caml_named_value("Netconversion.Malformed_code_read"), ++ r); + + /* Cannot reach this point! */ + CAMLreturn(Val_unit); +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netstring/netchannels.ml ocamlnet-4.1.9.patched/src/netstring/netchannels.ml +--- src/netstring/netchannels.ml 2021-03-24 16:20:13 ++++ src/netstring/netchannels.ml 2026-05-29 06:31:44 +@@ -213,45 +213,45 @@ + if closed then self # complain_closed(); + try + if len=0 then raise Sys_blocked_io; +- let n = Pervasives.input ch buf pos len in ++ let n = input ch buf pos len in + if n=0 then raise End_of_file else n + with + Sys_blocked_io -> 0 + + method really_input buf pos len = + if closed then self # complain_closed(); +- Pervasives.really_input ch buf pos len ++ really_input ch buf pos len + + method really_input_string len = + if closed then self # complain_closed(); + #ifdef HAVE_BYTES +- Pervasives.really_input_string ch len ++ really_input_string ch len + #else + let buf = String.create len in +- Pervasives.really_input ch buf 0 len; ++ really_input ch buf 0 len; + buf + #endif + + method input_char () = + if closed then self # complain_closed(); +- Pervasives.input_char ch ++ input_char ch + + method input_line () = + if closed then self # complain_closed(); +- Pervasives.input_line ch ++ input_line ch + + method input_byte () = + if closed then self # complain_closed(); +- Pervasives.input_byte ch ++ input_byte ch + + method close_in () = + if not closed then ( +- Pervasives.close_in ch; closed <- true; onclose() ++ close_in ch; closed <- true; onclose() + ) + + method pos_in = + if closed then self # complain_closed(); +- Pervasives.pos_in ch ++ pos_in ch + end + ;; + +@@ -999,17 +999,17 @@ + + method output buf pos len = + if closed then self # complain_closed(); +- (* Pervasives.output does not support non-blocking I/O directly. ++ (* output does not support non-blocking I/O directly. + * Work around it: + *) +- let p0 = Pervasives.pos_out ch in ++ let p0 = pos_out ch in + try +- Pervasives.output ch buf pos len; ++ output ch buf pos len; + errflag := false; + len + with + | Sys_blocked_io -> +- let p1 = Pervasives.pos_out ch in ++ let p1 = pos_out ch in + errflag := false; + p1 - p0 + | error -> +@@ -1018,35 +1018,35 @@ + + method really_output buf pos len = + if closed then self # complain_closed(); +- monitored (Pervasives.output ch buf pos) len ++ monitored (output ch buf pos) len + + method really_output_string buf pos len = + if closed then self # complain_closed(); + #ifdef HAVE_BYTES +- monitored (Pervasives.output_substring ch buf pos) len ++ monitored (output_substring ch buf pos) len + #else +- monitored (Pervasives.output ch buf pos) len ++ monitored (output ch buf pos) len + #endif + + method output_char c = + if closed then self # complain_closed(); +- monitored (Pervasives.output_char ch) c ++ monitored (output_char ch) c + + method output_string s = + if closed then self # complain_closed(); +- monitored (Pervasives.output_string ch) s ++ monitored (output_string ch) s + + method output_bytes s = + if closed then self # complain_closed(); + #ifdef HAVE_BYTES +- monitored (Pervasives.output_bytes ch) s ++ monitored (output_bytes ch) s + #else +- monitored (Pervasives.output_string ch) s ++ monitored (output_string ch) s + #endif + + method output_byte b = + if closed then self # complain_closed(); +- monitored (Pervasives.output_byte ch) b ++ monitored (output_byte ch) b + + method output_buffer b = + if closed then self # complain_closed(); +@@ -1061,7 +1061,7 @@ + + method flush() = + if closed then self # complain_closed(); +- monitored Pervasives.flush ch ++ monitored flush ch + + method close_out() = + if not closed then ( +@@ -1071,9 +1071,9 @@ + exception handler + *) + if !errflag then +- Pervasives.close_out_noerr ch ++ close_out_noerr ch + else +- Pervasives.close_out ch; ++ close_out ch; + closed <- true; + with + | error -> +@@ -1082,7 +1082,7 @@ + "Netchannels.output_channel: \ + Suppressed error in close_out: %s - backtrace: %s" + (Netexn.to_string error) bt; +- Pervasives.close_out_noerr ch; ++ close_out_noerr ch; + closed <- true; + ); + onclose() +@@ -1090,7 +1090,7 @@ + + method pos_out = + if closed then self # complain_closed(); +- Pervasives.pos_out ch ++ pos_out ch + + end + ;; +@@ -1844,7 +1844,7 @@ + Suppressed error in close_out: %s - backtrace: %s" + (Netexn.to_string error) bt; + ); +- Pervasives.close_in transch_in; ++ close_in transch_in; + trans # close_out(); (* closes transch_out *) + out # close_out(); + closed := true +@@ -1859,7 +1859,7 @@ + need_clear <- true; + let len = trans # pos_out in + trans # flush(); +- Pervasives.seek_in transch_in 0; ++ seek_in transch_in 0; + let trans' = new input_channel transch_in in + ( try + out # output_channel ~len trans'; +@@ -1876,7 +1876,7 @@ + method private clear() = + (* delete the contents of the file *) + (* First empty the file and reset the output channel: *) +- Pervasives.seek_out transch_out 0; ++ seek_out transch_out 0; + Unix.ftruncate (Unix.descr_of_out_channel transch_out) 0; + (* Renew the input channel. We create a new channel to avoid problems + * with the internal buffer of the channel. +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netstring/netdate.ml ocamlnet-4.1.9.patched/src/netstring/netdate.ml +--- src/netstring/netdate.ml 2021-03-24 16:20:13 ++++ src/netstring/netdate.ml 2026-05-29 06:31:44 +@@ -5,6 +5,7 @@ + + (* Thanks to Nicolas George for contributing the parsing and format code *) + ++module Stream = Netstring_stream + open Printf + + (* Calculate local zone offset in minutes *) +@@ -1035,11 +1036,11 @@ + format ~fmt (create ?localzone ?zone ?nanos t) + + let mk_mail_date ?localzone ?zone t = +- format "%a, %d %b %Y %H:%M:%S %z" (create ?localzone ?zone t) ++ format ~fmt:"%a, %d %b %Y %H:%M:%S %z" (create ?localzone ?zone t) + ;; + + let mk_usenet_date ?localzone ?zone t = +- format "%A, %d-%b-%y %H:%M:%S %z" (create ?localzone ?zone t) ++ format ~fmt:"%A, %d-%b-%y %H:%M:%S %z" (create ?localzone ?zone t) + ;; + + let mk_internet_date ?localzone ?zone ?(digits=0) t = +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netstring/nethtml.ml ocamlnet-4.1.9.patched/src/netstring/nethtml.ml +--- src/netstring/nethtml.ml 2021-03-24 16:20:13 ++++ src/netstring/nethtml.ml 2026-05-29 06:31:44 +@@ -283,7 +283,7 @@ + + module S = struct + type t = string +- let compare = (Pervasives.compare : string -> string -> int) ++ let compare = (compare : string -> string -> int) + end + + module Strset = Set.Make(S);; +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netstring/nethttp.ml ocamlnet-4.1.9.patched/src/netstring/nethttp.ml +--- src/netstring/nethttp.ml 2021-03-24 16:20:13 ++++ src/netstring/nethttp.ml 2026-05-29 06:31:44 +@@ -3,6 +3,8 @@ + * Nethttp: Basic definitions for the HTTP protocol + *) + ++module Stream = Netstring_stream ++ + type protocol_version = + int * int + type protocol_attribute = +@@ -1009,7 +1011,7 @@ + snd + (List.stable_sort + (fun (q1, tok_param1) (q2, tok_param2) -> +- Pervasives.compare q2 q1) ++ compare q2 q1) + (List.filter + (fun (q, tok_param) -> + q > 0.0) +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netstring/netmime.ml ocamlnet-4.1.9.patched/src/netstring/netmime.ml +--- src/netstring/netmime.ml 2021-03-24 16:20:13 ++++ src/netstring/netmime.ml 2026-05-29 06:31:44 +@@ -71,7 +71,7 @@ + end = struct + type t = string + let compare (a_ci:t) (b_ci:t) = +- Pervasives.compare a_ci b_ci ++ compare a_ci b_ci + let make s = STRING_LOWERCASE s + end + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netstring/netmime_string.ml ocamlnet-4.1.9.patched/src/netstring/netmime_string.ml +--- src/netstring/netmime_string.ml 2021-03-24 16:20:13 ++++ src/netstring/netmime_string.ml 2026-05-29 06:31:44 +@@ -979,7 +979,7 @@ + | _, t -> + t :: collect scn + in +- let scn = create_mime_scanner specials options s in ++ let scn = create_mime_scanner ~specials ~scan_options:options s in + collect scn + ;; + +@@ -995,7 +995,7 @@ + let scan_encoded_text_value s = + let specials = [ ' '; '\t'; '\r'; '\n'; '('; '['; '"' ] in + let options = [ Recognize_encoded_words ] in +- let scn = create_mime_scanner specials options s in ++ let scn = create_mime_scanner ~specials ~scan_options:options s in + + let rec collect () = + match scan_token scn with +@@ -1955,7 +1955,7 @@ + + + let scan_multipart_body_and_decode s ~start_pos:i0 ~end_pos:i1 ~boundary = +- let parts = scan_multipart_body s i0 i1 boundary in ++ let parts = scan_multipart_body s ~start_pos:i0 ~end_pos:i1 ~boundary in + List.map + (fun (params, value) -> + let encoding = +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netstring/netstring_stream.ml ocamlnet-4.1.9.patched/src/netstring/netstring_stream.ml +--- src/netstring/netstring_stream.ml 1970-01-01 01:00:00 ++++ src/netstring/netstring_stream.ml 2026-05-29 06:31:44 +@@ -0,0 +1,180 @@ ++(* The Stream module from latest OCaml-4. It is no longer available in ++ OCaml-5. ++ *) ++type 'a t = 'a cell option ++ and 'a cell = { mutable count : int; mutable data : 'a data } ++ and 'a data = ++ Sempty ++ | Scons of 'a * 'a data ++ | Sapp of 'a data * 'a data ++ | Slazy of 'a data Lazy.t ++ | Sgen of 'a gen ++ | Sbuffio : buffio -> char data ++ and 'a gen = { mutable curr : 'a option option; func : int -> 'a option } ++ and buffio = ++ { ic : in_channel; buff : bytes; mutable len : int; mutable ind : int } ++ ++exception Failure ++exception Error of string ++ ++let count = function ++ | None -> 0 ++ | Some { count } -> count ++let data = function ++ | None -> Sempty ++ | Some { data } -> data ++ ++let fill_buff b = ++ b.len <- input b.ic b.buff 0 (Bytes.length b.buff); b.ind <- 0 ++ ++let rec get_data : type v. int -> v data -> v data = fun count d -> match d with ++ (* Returns either Sempty or Scons(a, _) even when d is a generator ++ or a buffer. In those cases, the item a is seen as extracted from ++ the generator/buffer. ++ The count parameter is used for calling `Sgen-functions'. *) ++ Sempty | Scons (_, _) -> d ++ | Sapp (d1, d2) -> ++ begin match get_data count d1 with ++ Scons (a, d11) -> Scons (a, Sapp (d11, d2)) ++ | Sempty -> get_data count d2 ++ | _ -> assert false ++ end ++ | Sgen {curr = Some None} -> Sempty ++ | Sgen ({curr = Some(Some a)} as g) -> ++ g.curr <- None; Scons(a, d) ++ | Sgen g -> ++ begin match g.func count with ++ None -> g.curr <- Some(None); Sempty ++ | Some a -> Scons(a, d) ++ (* Warning: anyone using g thinks that an item has been read *) ++ end ++ | Sbuffio b -> ++ if b.ind >= b.len then fill_buff b; ++ if b.len == 0 then Sempty else ++ let r = Bytes.unsafe_get b.buff b.ind in ++ (* Warning: anyone using g thinks that an item has been read *) ++ b.ind <- succ b.ind; Scons(r, d) ++ | Slazy f -> get_data count (Lazy.force f) ++ ++ ++let rec peek_data : type v. v cell -> v option = fun s -> ++ (* consult the first item of s *) ++ match s.data with ++ Sempty -> None ++ | Scons (a, _) -> Some a ++ | Sapp (_, _) -> ++ begin match get_data s.count s.data with ++ Scons(a, _) as d -> s.data <- d; Some a ++ | Sempty -> None ++ | _ -> assert false ++ end ++ | Slazy f -> s.data <- (Lazy.force f); peek_data s ++ | Sgen {curr = Some a} -> a ++ | Sgen g -> let x = g.func s.count in g.curr <- Some x; x ++ | Sbuffio b -> ++ if b.ind >= b.len then fill_buff b; ++ if b.len == 0 then begin s.data <- Sempty; None end ++ else Some (Bytes.unsafe_get b.buff b.ind) ++ ++ ++let peek = function ++ | None -> None ++ | Some s -> peek_data s ++ ++ ++let rec junk_data : type v. v cell -> unit = fun s -> ++ match s.data with ++ Scons (_, d) -> s.count <- (succ s.count); s.data <- d ++ | Sgen ({curr = Some _} as g) -> s.count <- (succ s.count); g.curr <- None ++ | Sbuffio b -> ++ if b.ind >= b.len then fill_buff b; ++ if b.len == 0 then s.data <- Sempty ++ else (s.count <- (succ s.count); b.ind <- succ b.ind) ++ | _ -> ++ match peek_data s with ++ None -> () ++ | Some _ -> junk_data s ++ ++ ++let junk = function ++ | None -> () ++ | Some data -> junk_data data ++ ++let rec nget_data n s = ++ if n <= 0 then [], s.data, 0 ++ else ++ match peek_data s with ++ Some a -> ++ junk_data s; ++ let (al, d, k) = nget_data (pred n) s in a :: al, Scons (a, d), succ k ++ | None -> [], s.data, 0 ++ ++ ++let npeek_data n s = ++ let (al, d, len) = nget_data n s in ++ s.count <- (s.count - len); ++ s.data <- d; ++ al ++ ++ ++let npeek n = function ++ | None -> [] ++ | Some d -> npeek_data n d ++ ++let next s = ++ match peek s with ++ Some a -> junk s; a ++ | None -> raise Failure ++ ++ ++let empty s = ++ match peek s with ++ Some _ -> raise Failure ++ | None -> () ++ ++ ++let iter f strm = ++ let rec do_rec () = ++ match peek strm with ++ Some a -> junk strm; ignore(f a); do_rec () ++ | None -> () ++ in ++ do_rec () ++ ++ ++(* Stream building functions *) ++ ++let from f = Some {count = 0; data = Sgen {curr = None; func = f}} ++ ++let of_list l = ++ Some {count = 0; data = List.fold_right (fun x l -> Scons (x, l)) l Sempty} ++ ++ ++let of_string s = ++ let count = ref 0 in ++ from (fun _ -> ++ (* We cannot use the index passed by the [from] function directly ++ because it returns the current stream count, with absolutely no ++ guarantee that it will start from 0. For example, in the case ++ of [Stream.icons 'c' (Stream.from_string "ab")], the first ++ access to the string will be made with count [1] already. ++ *) ++ let c = !count in ++ if c < String.length s ++ then (incr count; Some s.[c]) ++ else None) ++ ++ ++let of_bytes s = ++ let count = ref 0 in ++ from (fun _ -> ++ let c = !count in ++ if c < Bytes.length s ++ then (incr count; Some (Bytes.get s c)) ++ else None) ++ ++ ++let of_channel ic = ++ Some {count = 0; ++ data = Sbuffio {ic = ic; buff = Bytes.create 4096; len = 0; ind = 0}} ++ +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/META.in ocamlnet-4.1.9.patched/src/netsys/META.in +--- src/netsys/META.in 2021-03-24 16:20:14 ++++ src/netsys/META.in 2026-05-29 06:31:44 +@@ -1,5 +1,5 @@ + description = "Ocamlnet - OS-specific functions" +-requires = "bytes,unix,bigarray" ++requires = "bytes,unix" + version = "@VERSION@" + archive(byte) = "netsys_oothr.cma netsys.cma" + archive(native) = "netsys_oothr.cmxa netsys.cmxa" +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netlog.ml ocamlnet-4.1.9.patched/src/netsys/netlog.ml +--- src/netsys/netlog.ml 2021-03-24 16:20:14 ++++ src/netsys/netlog.ml 2026-05-29 06:31:44 +@@ -129,7 +129,7 @@ + + + let current_logger = +- ref(channel_logger Pervasives.stderr `Debug) ++ ref(channel_logger stderr `Debug) + + + let log lev msg = +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c.c ocamlnet-4.1.9.patched/src/netsys/netsys_c.c +--- src/netsys/netsys_c.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c.c 2026-05-29 06:31:59 +@@ -12,13 +12,13 @@ + #ifdef _WIN32 + switch (Descr_kind_val(fd)) { + case KIND_HANDLE: +- return copy_int64((intnat) (Handle_val(fd))); ++ return caml_copy_int64((intnat) (Handle_val(fd))); + case KIND_SOCKET: +- return copy_int64((intnat) (Socket_val(fd))); ++ return caml_copy_int64((intnat) (Socket_val(fd))); + } +- return copy_int64(0); ++ return caml_copy_int64(0); + #else +- return copy_int64(Long_val(fd)); ++ return caml_copy_int64(Long_val(fd)); + #endif + } + +@@ -45,13 +45,13 @@ + win32_maperr(e); + e = errno; + #endif +- return(unix_error_of_code(e)); ++ return(caml_unix_error_of_code(e)); + } + + CAMLprim value netsys_get_nonblock(value fd) + { + #ifdef _WIN32 +- invalid_argument("Netsys_posix.get_nonblcok not avaiable"); ++ caml_invalid_argument("Netsys_posix.get_nonblcok not avaiable"); + #else + int r; + +@@ -67,7 +67,7 @@ + _exit(Int_val(n)); + return Val_int(0); + #else +- invalid_argument("Netsys._exit not available"); ++ caml_invalid_argument("Netsys._exit not available"); + #endif + } + +@@ -76,7 +76,7 @@ + #ifdef HAVE_SYSCONF + return Val_long(sysconf(_SC_OPEN_MAX)); + #else +- invalid_argument("Netsys.sysconf_open_max not available"); ++ caml_invalid_argument("Netsys.sysconf_open_max not available"); + #endif + } + +@@ -89,7 +89,7 @@ + if (pgid == -1) uerror("getpgid", Nothing); + return Val_int(pgid); + #else +- invalid_argument("Netsys.getpgid not available"); ++ caml_invalid_argument("Netsys.getpgid not available"); + #endif + } + +@@ -102,7 +102,7 @@ + if (r == -1) uerror("setpgid", Nothing); + return Val_int(0); + #else +- invalid_argument("Netsys.setpgid not available"); ++ caml_invalid_argument("Netsys.setpgid not available"); + #endif + } + +@@ -115,7 +115,7 @@ + if (pgid == -1) uerror("tcgetpgrp", Nothing); + return Val_int(pgid); + #else +- invalid_argument("Netsys.tcgetpgrp not available"); ++ caml_invalid_argument("Netsys.tcgetpgrp not available"); + #endif + } + +@@ -128,7 +128,7 @@ + if (r == -1) uerror("tcsetpgrp", Nothing); + return Val_int(0); + #else +- invalid_argument("Netsys.tcsetpgrp not available"); ++ caml_invalid_argument("Netsys.tcsetpgrp not available"); + #endif + } + +@@ -137,10 +137,10 @@ + #ifdef HAVE_POSIX_TTY + char *s; + s = NULL; +- return copy_string(ctermid(s)); ++ return caml_copy_string(ctermid(s)); + /* ctermid is always successful; however it can return an empty string */ + #else +- invalid_argument("Netsys.ctermid not available"); ++ caml_invalid_argument("Netsys.ctermid not available"); + #endif + } + +@@ -151,9 +151,9 @@ + + s = ttyname(Int_val(fd)); + if ( s == NULL ) uerror("ttyname", Nothing); +- return copy_string(s); ++ return caml_copy_string(s); + #else +- invalid_argument("Netsys.ttyname not available"); ++ caml_invalid_argument("Netsys.ttyname not available"); + #endif + } + +@@ -166,7 +166,7 @@ + if ( sid == -1 ) uerror("getsid", Nothing); + return Val_int(sid); + #else +- invalid_argument("Netsys.getsid not available"); ++ caml_invalid_argument("Netsys.getsid not available"); + #endif + } + +@@ -179,7 +179,7 @@ + if (r == -1) uerror("setreuid", Nothing); + return Val_int(0); + #else +- invalid_argument("Netsys.setreuid not available"); ++ caml_invalid_argument("Netsys.setreuid not available"); + #endif + } + +@@ -192,7 +192,7 @@ + if (r == -1) uerror("setregid", Nothing); + return Val_int(0); + #else +- invalid_argument("Netsys.setregid not available"); ++ caml_invalid_argument("Netsys.setregid not available"); + #endif + } + +@@ -210,7 +210,7 @@ + + return Val_unit; + #else +- invalid_argument("Netsys_posix.initgroups not available"); ++ caml_invalid_argument("Netsys_posix.initgroups not available"); + #endif + } + +@@ -223,7 +223,7 @@ + uerror("fsync", Nothing); + return Val_unit; + #else +- invalid_argument("Netsys.fsync not available"); ++ caml_invalid_argument("Netsys.fsync not available"); + #endif + } + +@@ -240,7 +240,7 @@ + uerror("fdatasync", Nothing); + return Val_unit; + #else +- invalid_argument("Netsys.fdatasync not available"); ++ caml_invalid_argument("Netsys.fdatasync not available"); + #endif + } + +@@ -249,7 +249,7 @@ + if (fchdir(Int_val(fd)) == -1) uerror("fchdir", Nothing); + return Val_unit; + #else +- invalid_argument("Netsys_posix.fchdir not available"); ++ caml_invalid_argument("Netsys_posix.fchdir not available"); + #endif + } + +@@ -260,11 +260,11 @@ + value res; + d = fdopendir(Int_val(fd)); + if (d == (DIR *) NULL) uerror("fdopendir", Nothing); +- res = alloc_small(1, Abstract_tag); ++ res = caml_alloc_small(1, Abstract_tag); + DIR_Val(res) = d; + return res; + #else +- invalid_argument("Netsys_posix.fdopendir not available"); ++ caml_invalid_argument("Netsys_posix.fdopendir not available"); + #endif + } + +@@ -281,12 +281,12 @@ + uerror("realpath", Nothing); + } + else { +- name_out = copy_string(name_out_s); ++ name_out = caml_copy_string(name_out_s); + free(name_out_s); + } + return name_out; + #else +- invalid_argument("Netsys_posix.realpath not available"); ++ caml_invalid_argument("Netsys_posix.realpath not available"); + #endif + } + +@@ -299,7 +299,7 @@ + if ( e < 0 ) uerror("grantpt", Nothing); + return Val_unit; + #else +- invalid_argument("Netsys_posix.granpt not available"); ++ caml_invalid_argument("Netsys_posix.granpt not available"); + #endif + } + +@@ -312,7 +312,7 @@ + if ( e < 0 ) uerror("unlockpt", Nothing); + return Val_unit; + #else +- invalid_argument("Netsys_posix.unlockpt not available"); ++ caml_invalid_argument("Netsys_posix.unlockpt not available"); + #endif + } + +@@ -324,9 +324,9 @@ + + s = ptsname(Int_val(fd)); + if ( s == NULL ) uerror("ptsname", Nothing); +- return copy_string(s); ++ return caml_copy_string(s); + #else +- invalid_argument("Netsys_posix.ptsname not available"); ++ caml_invalid_argument("Netsys_posix.ptsname not available"); + #endif + } + +@@ -348,7 +348,7 @@ + if (fd == -1) uerror("openpt", Nothing); + return Val_int(fd); + #else +- invalid_argument("Netsys_posix.posix_openpt not available"); ++ caml_invalid_argument("Netsys_posix.posix_openpt not available"); + #endif + } + +@@ -356,7 +356,7 @@ + CAMLprim value netsys_mknod (value name, value perm, value nt) + { + #ifdef _WIN32 +- invalid_argument("Netsys_posix.mknod not available"); ++ caml_invalid_argument("Netsys_posix.mknod not available"); + #else + mode_t m; + dev_t d; +@@ -473,8 +473,8 @@ + char * p; + + /* shamelessly copied from ocaml distro */ +- cv_flags = convert_flag_list(flags, open_flag_table); +- clo_flags = convert_flag_list(flags, open_cloexec_table); ++ cv_flags = caml_convert_flag_list(flags, open_flag_table); ++ clo_flags = caml_convert_flag_list(flags, open_cloexec_table); + if (clo_flags & CLOEXEC) + cloexec = 1; + else if (clo_flags & KEEPEXEC) +@@ -484,12 +484,12 @@ + #if defined(O_CLOEXEC) + if (cloexec) cv_flags |= O_CLOEXEC; + #endif +- p = stat_alloc(string_length(path) + 1); ++ p = caml_stat_alloc(caml_string_length(path) + 1); + strcpy(p, String_val(path)); +- enter_blocking_section(); ++ caml_enter_blocking_section(); + ret = openat(Int_val(dirfd), p, cv_flags, Int_val(perm)); +- leave_blocking_section(); +- stat_free(p); ++ caml_leave_blocking_section(); ++ caml_stat_free(p); + if (ret == -1) uerror("openat", path); + #if !defined(O_CLOEXEC) + { +@@ -500,7 +500,7 @@ + #endif + CAMLreturn (Val_int(ret)); + #else +- invalid_argument("Netsys_posix.openat not available"); ++ caml_invalid_argument("Netsys_posix.openat not available"); + #endif + } + +@@ -517,15 +517,15 @@ + { + #ifdef HAVE_AT + int ret, cv_perms, cv_flags; +- cv_perms = convert_flag_list(perms, access_permission_table); +- cv_flags = convert_flag_list(flags, at_flags_table); ++ cv_perms = caml_convert_flag_list(perms, access_permission_table); ++ cv_flags = caml_convert_flag_list(flags, at_flags_table); + cv_flags &= (AT_EACCESS | AT_SYMLINK_NOFOLLOW); + ret = faccessat(Int_val(dirfd), String_val(path), cv_perms, cv_flags); + if (ret == -1) + uerror("faccessat", path); + return Val_unit; + #else +- invalid_argument("Netsys_posix.faccessat not available"); ++ caml_invalid_argument("Netsys_posix.faccessat not available"); + #endif + } + +@@ -537,7 +537,7 @@ + uerror("mkdirat", path); + return Val_unit; + #else +- invalid_argument("Netsys_posix.mkdirat not available"); ++ caml_invalid_argument("Netsys_posix.mkdirat not available"); + #endif + } + +@@ -551,7 +551,7 @@ + uerror("renameat", oldpath); + return Val_unit; + #else +- invalid_argument("Netsys_posix.renameat not available"); ++ caml_invalid_argument("Netsys_posix.renameat not available"); + #endif + } + +@@ -561,14 +561,14 @@ + { + #ifdef HAVE_AT + int cv_flags; +- cv_flags = convert_flag_list(flags, at_flags_table); ++ cv_flags = caml_convert_flag_list(flags, at_flags_table); + cv_flags &= AT_SYMLINK_FOLLOW; /* only allowed flag here */ + if (linkat(Int_val(olddirfd), String_val(oldpath), + Int_val(newdirfd), String_val(newpath), cv_flags) == -1) + uerror("linkat", oldpath); + return Val_unit; + #else +- invalid_argument("Netsys_posix.linkat not available"); ++ caml_invalid_argument("Netsys_posix.linkat not available"); + #endif + } + +@@ -577,13 +577,13 @@ + { + #ifdef HAVE_AT + int cv_flags; +- cv_flags = convert_flag_list(flags, at_flags_table); ++ cv_flags = caml_convert_flag_list(flags, at_flags_table); + cv_flags &= AT_REMOVEDIR; /* only allowed flag here */ + if (unlinkat(Int_val(dirfd), String_val(path), cv_flags) == -1) + uerror("unlinkat", path); + return Val_unit; + #else +- invalid_argument("Netsys_posix.unlinkat not available"); ++ caml_invalid_argument("Netsys_posix.unlinkat not available"); + #endif + } + +@@ -597,7 +597,7 @@ + uerror("symlinkat", oldpath); + return Val_unit; + #else +- invalid_argument("Netsys_posix.symlinkat not available"); ++ caml_invalid_argument("Netsys_posix.symlinkat not available"); + #endif + } + +@@ -609,7 +609,7 @@ + uerror("mkfifoat", path); + return Val_unit; + #else +- invalid_argument("Netsys_posix.mkfifoat not available"); ++ caml_invalid_argument("Netsys_posix.mkfifoat not available"); + #endif + } + +@@ -622,8 +622,8 @@ + len = readlinkat(Int_val(dirfd), String_val(path), buffer, sizeof(buffer)-1); + if (len == -1) uerror("readlinkat", path); + buffer[len] = '\0'; +- return copy_string(buffer); ++ return caml_copy_string(buffer); + #else +- invalid_argument("Netsys_posix.readlinkat not available"); ++ caml_invalid_argument("Netsys_posix.readlinkat not available"); + #endif + } +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c.h ocamlnet-4.1.9.patched/src/netsys/netsys_c.h +--- src/netsys/netsys_c.h 2021-03-24 16:20:14 ++++ src/netsys/netsys_c.h 2026-05-29 06:32:02 +@@ -69,6 +69,7 @@ + #include "caml/callback.h" + #include "caml/bigarray.h" + #include "caml/version.h" ++#include "caml/unixsupport.h" + + #ifndef Bytes_val + #define Bytes_val(x) String_val(x) +@@ -103,7 +104,7 @@ + int caml_page_table_add(int kind, void * start, void * end); + int caml_page_table_remove(int kind, void * start, void * end); + +-#ifdef HAVE_NEW_MODIFY ++#if defined(HAVE_NEW_MODIFY) && OCAML_VERSION < 50000 + + /* need full memory.h support */ + +@@ -171,25 +172,8 @@ + /* From unixsupport.h */ + /**********************************************************************/ + +-#define Nothing ((value) 0) +- + #ifdef _WIN32 +-#include "caml/unixsupport.h" + #define netsysw32_win_alloc_handle win_alloc_handle +-#else +- +-/* POSIX */ +- +-/* Since OCaml 3.10 there is unixsupport.h, and we could also include +- this file. +-*/ +- +-extern value unix_error_of_code (int errcode); +-extern void unix_error (int errcode, char * cmdname, value arg) Noreturn; +-extern void uerror (char * cmdname, value arg) Noreturn; +- +-#define DIR_Val(v) *((DIR **) &Field(v, 0)) +- + #endif + + /**********************************************************************/ +@@ -231,7 +215,9 @@ + /* bigarrays */ + /**********************************************************************/ + ++#if !defined(OCAML_VERSION) || OCAML_VERSION < 50400 + extern int caml_ba_element_size[]; ++#endif + + + #endif +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_clock.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_clock.c +--- src/netsys/netsys_c_clock.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_clock.c 2026-05-29 06:31:44 +@@ -23,10 +23,10 @@ + + d = Double_val(Field(tspair,0)); + if (!isfinite(d) || d < 0 || d > LONG_MAX-1) +- failwith("Netsys_posix: time value out of range"); ++ caml_failwith("Netsys_posix: time value out of range"); + n = Long_val(Field(tspair,1)); + if (n < 0 || n > 999999999) +- failwith("Netsys_posix: time value out of range"); ++ caml_failwith("Netsys_posix: time value out of range"); + i = floor(d); + r = floor((d - i) * 1E9); + r = r + n; +@@ -44,7 +44,7 @@ + static value alloc_timespec_pair(double sec, long nsec) { + CAMLparam0(); + CAMLlocal1(tsout); +- tsout = alloc(2,0); ++ tsout = caml_alloc(2,0); + Store_field(tsout, 0, caml_copy_double(sec)); + Store_field(tsout, 1, Val_long(nsec)); + CAMLreturn(tsout); +@@ -65,7 +65,7 @@ + *out = CLOCK_MONOTONIC; + break; + #else +- failwith("Netsys_posix: CLOCK_MONOTONIC is not supported"); ++ caml_failwith("Netsys_posix: CLOCK_MONOTONIC is not supported"); + #endif + } + } +@@ -98,11 +98,11 @@ + tsout = alloc_timespec_pair(t_out.tv_sec, t_out.tv_nsec); + Store_field(tsref, 0, tsout); + +- if (r == -1) unix_error(e, "nanosleep", Nothing); ++ if (r == -1) caml_unix_error(e, "nanosleep", Nothing); + + CAMLreturn(Val_unit); + #else +- invalid_argument("Netsys_posix.nanosleep not available"); ++ caml_invalid_argument("Netsys_posix.nanosleep not available"); + #endif + } + +@@ -118,13 +118,13 @@ + + clockid_val(clock, &c); + r = clock_gettime(c, &ts); +- if (r == -1) uerror("clock_gettime", Nothing); ++ if (r == -1) caml_uerror("clock_gettime", Nothing); + + tsout = alloc_timespec_pair(ts.tv_sec, ts.tv_nsec); + + CAMLreturn(tsout); + #else +- invalid_argument("Netsys_posix.clock_gettime not available"); ++ caml_invalid_argument("Netsys_posix.clock_gettime not available"); + #endif + } + +@@ -141,11 +141,11 @@ + make_timespec(tspair, &ts); + + r = clock_settime(c, &ts); +- if (r == -1) uerror("clock_settime", Nothing); ++ if (r == -1) caml_uerror("clock_settime", Nothing); + + CAMLreturn(Val_unit); + #else +- invalid_argument("Netsys_posix.clock_settime not available"); ++ caml_invalid_argument("Netsys_posix.clock_settime not available"); + #endif + } + +@@ -162,13 +162,13 @@ + clockid_val(clock, &c); + + r = clock_getres(c, &ts); +- if (r == -1) uerror("clock_getres", Nothing); ++ if (r == -1) caml_uerror("clock_getres", Nothing); + + tsout = alloc_timespec_pair(ts.tv_sec, ts.tv_nsec); + + CAMLreturn(tsout); + #else +- invalid_argument("Netsys_posix.clock_getres not available"); ++ caml_invalid_argument("Netsys_posix.clock_getres not available"); + #endif + } + +@@ -182,7 +182,7 @@ + char *s; + + r = clock_getcpuclockid(Long_val(pid), &c); +- if (r != 0) unix_error(r, "clock_getcpuclockid", Nothing); ++ if (r != 0) caml_unix_error(r, "clock_getcpuclockid", Nothing); + + v = caml_alloc_string(sizeof(clockid_t)); + s = String_val(v); +@@ -191,7 +191,7 @@ + + CAMLreturn(v); + #else +- invalid_argument("Netsys_posix.clock_getcpuclockid not available"); ++ caml_invalid_argument("Netsys_posix.clock_getcpuclockid not available"); + #endif + } + +@@ -263,7 +263,7 @@ + sev.sigev_value.sival_ptr = ne; + break; + #else +- failwith("Netsys_posix.timer_create: unsupported type of timer"); ++ caml_failwith("Netsys_posix.timer_create: unsupported type of timer"); + #endif + #endif + } +@@ -280,7 +280,7 @@ + sev.sigev_value.sival_ptr = ne; + break; + #else +- failwith("Netsys_posix.timer_create: unsupported type of timer"); ++ caml_failwith("Netsys_posix.timer_create: unsupported type of timer"); + #endif + case 1: + /* TEXP_SIGNAL */ +@@ -294,7 +294,7 @@ + switch (tcase) { + case 0: + code = timer_create(c, &sev, &tm); +- if (code == -1) uerror("timer_create", Nothing); ++ if (code == -1) caml_uerror("timer_create", Nothing); + v = caml_alloc_string(sizeof(timer_t)); + memcpy(Bytes_val(v), (char *) &tm, sizeof(timer_t)); + v_timer = caml_alloc(1, 0); +@@ -313,7 +313,7 @@ + Store_field(v, 1, v_event); + CAMLreturn(v); + #else +- invalid_argument("Netsys_posix.timer_create not available"); ++ caml_invalid_argument("Netsys_posix.timer_create not available"); + #endif + } + +@@ -346,7 +346,7 @@ + Bool_val(abstime) ? TIMER_ABSTIME : 0, + &it, + NULL); +- if (code == -1) uerror("timer_settime", Nothing); ++ if (code == -1) caml_uerror("timer_settime", Nothing); + break; + #ifdef HAVE_TIMERFD + case 1: +@@ -356,14 +356,14 @@ + Bool_val(abstime) ? TFD_TIMER_ABSTIME : 0, + &it, + NULL); +- if (code == -1) uerror("timerfd_settime", Nothing); ++ if (code == -1) caml_uerror("timerfd_settime", Nothing); + break; + #endif + }; + + return Val_unit; + #else +- invalid_argument("Netsys_posix.timer_settime not available"); ++ caml_invalid_argument("Netsys_posix.timer_settime not available"); + #endif + } + +@@ -382,14 +382,14 @@ + /* POSIX timer */ + extract_timer(Field(Field(timer, 0), 0), &tm); + code = timer_gettime(tm, &it); +- if (code == -1) uerror("timer_gettime", Nothing); ++ if (code == -1) caml_uerror("timer_gettime", Nothing); + break; + #ifdef HAVE_TIMERFD + case 1: + /* TIMERFD */ + fd = Int_val(Field(Field(timer, 0), 0)); + code = timerfd_gettime(fd, &it); +- if (code == -1) uerror("timerfd_gettime", Nothing); ++ if (code == -1) caml_uerror("timerfd_gettime", Nothing); + break; + #endif + }; +@@ -398,7 +398,7 @@ + it.it_value.tv_nsec); + return r; + #else +- invalid_argument("Netsys_posix.timer_gettime not available"); ++ caml_invalid_argument("Netsys_posix.timer_gettime not available"); + #endif + } + +@@ -413,7 +413,7 @@ + /* POSIX timer */ + extract_timer(Field(Field(timer, 0), 0), &tm); + code = timer_delete(tm); +- if (code == -1) uerror("timer_delete", Nothing); ++ if (code == -1) caml_uerror("timer_delete", Nothing); + break; + #ifdef HAVE_TIMERFD + case 1: +@@ -424,7 +424,7 @@ + } + return Val_unit; + #else +- invalid_argument("Netsys_posix.timer_delete not available"); ++ caml_invalid_argument("Netsys_posix.timer_delete not available"); + #endif + } + +@@ -435,9 +435,9 @@ + return Field(timer,1); + } + else { +- failwith("Netsys_posix.timer_event: timer is not connected with event"); ++ caml_failwith("Netsys_posix.timer_event: timer is not connected with event"); + } + #else +- invalid_argument("Netsys_posix.timer_delete not available"); ++ caml_invalid_argument("Netsys_posix.timer_delete not available"); + #endif + } +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_event.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_event.c +--- src/netsys/netsys_c_event.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_event.c 2026-05-29 06:31:44 +@@ -187,24 +187,24 @@ + p->allow_user_add = Bool_val(allow_user_add); + #ifdef HAVE_PTHREAD + x = pthread_mutex_init(&(p->mutex), NULL); +- if (x != 0) unix_error(x, "pthread_mutex_init", Nothing); ++ if (x != 0) caml_unix_error(x, "pthread_mutex_init", Nothing); + #endif + + #ifdef HAVE_EVENTFD + p->type = NE_EVENTFD; + x = eventfd(0, 0); +- if (x == -1) uerror("eventfd", Nothing); ++ if (x == -1) caml_uerror("eventfd", Nothing); + p->fd1 = x; + x = fcntl(p->fd1, F_SETFD, FD_CLOEXEC); + if (x == -1) { + e = errno; + close(p->fd1); +- unix_error(e, "fcntl", Nothing); ++ caml_unix_error(e, "fcntl", Nothing); + } + #else + p->type = NE_PIPE; + x = pipe(pipefd); +- if (x == -1) uerror("pipe", Nothing); ++ if (x == -1) caml_uerror("pipe", Nothing); + p->fd1 = pipefd[0]; + p->fd2 = pipefd[1]; + x = fcntl(p->fd1, F_SETFD, FD_CLOEXEC); +@@ -212,19 +212,19 @@ + e = errno; + close(p->fd1); + close(p->fd2); +- unix_error(e, "fcntl", Nothing); ++ caml_unix_error(e, "fcntl", Nothing); + } + x = fcntl(p->fd2, F_SETFD, FD_CLOEXEC); + if (x == -1) { + e = errno; + close(p->fd1); + close(p->fd2); +- unix_error(e, "fcntl", Nothing); ++ caml_unix_error(e, "fcntl", Nothing); + } + #endif + return r; + #else +- invalid_argument("Netsys_posix.create_event not available"); ++ caml_invalid_arggument("Netsys_posix.create_event not available"); + #endif + } + +@@ -246,13 +246,13 @@ + + p->type = NE_TIMERFD; + x = timerfd_create(clockid, 0); +- if (x == -1) uerror("timerfd_create", Nothing); ++ if (x == -1) caml_uerror("timerfd_create", Nothing); + p->fd1 = x; + x = fcntl(p->fd1, F_SETFD, FD_CLOEXEC); + if (x == -1) { + e = errno; + close(p->fd1); +- unix_error(e, "fcntl", Nothing); ++ caml_unix_error(e, "fcntl", Nothing); + } + return r; + } +@@ -268,17 +268,17 @@ + ne = *(Not_event_val(nev)); + + if (ne->fd1 == -1) +- failwith("Netsys_posix.set_nonblock_event: already destroyed"); ++ caml_failwith("Netsys_posix.set_nonblock_event: already destroyed"); + + x = fcntl(ne->fd1, F_GETFL, 0); +- if (x == -1) uerror("fcntl", Nothing); ++ if (x == -1) caml_uerror("fcntl", Nothing); + + x = fcntl(ne->fd1, F_SETFL, x | O_NONBLOCK); +- if (x == -1) uerror("fcntl", Nothing); ++ if (x == -1) caml_uerror("fcntl", Nothing); + + return Val_unit; + #else +- invalid_argument("Netsys_posix.set_nonblock_event not available"); ++ caml_invalid_argument("Netsys_posix.set_nonblock_event not available"); + #endif + } + +@@ -290,10 +290,10 @@ + int fd, code; + ne = *(Not_event_val(nev)); + if (ne->fd1 == -1) +- failwith("Netsys_posix.get_event_fd_nodup: already destroyed"); ++ caml_failwith("Netsys_posix.get_event_fd_nodup: already destroyed"); + return Val_int(ne->fd1); + #else +- invalid_argument("Netsys_posix.get_event_fd not available"); ++ caml_invalid_argument("Netsys_posix.get_event_fd not available"); + #endif + } + +@@ -306,11 +306,11 @@ + int fd; + ne = *(Not_event_val(nev)); + if (ne->fd1 == -1) +- failwith("Netsys_posix.get_event_fd: already destroyed"); ++ caml_failwith("Netsys_posix.get_event_fd: already destroyed"); + fd = ne->fd1; + return fd; + #else +- invalid_argument("Netsys_posix.get_event_fd not available"); ++ caml_invalid_argument("Netsys_posix.get_event_fd not available"); + #endif + } + +@@ -350,15 +350,15 @@ + CAMLparam1(nev); + ne = *(Not_event_val(nev)); + if (ne->fd1 == -1) +- failwith("Netsys_posix.set_event: already destroyed"); ++ caml_failwith("Netsys_posix.set_event: already destroyed"); + if (!ne->allow_user_add) +- failwith("Netsys_posix.set_event: not allowed for this type of event"); ++ caml_failwith("Netsys_posix.set_event: not allowed for this type of event"); + caml_enter_blocking_section(); + netsys_not_event_signal(ne); + caml_leave_blocking_section(); + CAMLreturn(Val_unit); + #else +- invalid_argument("Netsys_posix.set_event not available"); ++ caml_invalid_argument("Netsys_posix.set_event not available"); + #endif + } + +@@ -373,7 +373,7 @@ + ne = *(Not_event_val(nev)); + + if (ne->fd1 == -1) +- failwith("Netsys_posix.wait_event: already destroyed"); ++ caml_failwith("Netsys_posix.wait_event: already destroyed"); + + caml_enter_blocking_section(); + p.fd = ne->fd1; +@@ -383,10 +383,10 @@ + e = errno; + caml_leave_blocking_section(); + +- if (code == -1) unix_error(e, "poll", Nothing); ++ if (code == -1) caml_unix_error(e, "poll", Nothing); + CAMLreturn(Val_unit); + #else +- invalid_argument("Netsys_posix.wait_event not available"); ++ caml_invalid_argument("Netsys_posix.wait_event not available"); + #endif + } + +@@ -402,7 +402,7 @@ + ne = *(Not_event_val(nev)); + + if (ne->fd1 == -1) +- failwith("Netsys_posix.consume_event: already destroyed"); ++ caml_failwith("Netsys_posix.consume_event: already destroyed"); + + caml_enter_blocking_section(); + +@@ -426,8 +426,8 @@ + + caml_leave_blocking_section(); + +- if (code == -1) unix_error(e, "read", Nothing); +- if (!ok) unix_error(EINVAL, "read (result invalid)", Nothing); ++ if (code == -1) caml_unix_error(e, "read", Nothing); ++ if (!ok) caml_unix_error(EINVAL, "read (result invalid)", Nothing); + + ne->state = 0; + /* No need to block signals, or to use the mutex. The next signaller +@@ -436,6 +436,6 @@ + + CAMLreturn(Val_unit); + #else +- invalid_argument("Netsys_posix.wait_event not available"); ++ caml_invalid_argument("Netsys_posix.wait_event not available"); + #endif + } +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_fadvise.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_fadvise.c +--- src/netsys/netsys_c_fadvise.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_fadvise.c 2026-05-29 06:32:10 +@@ -35,7 +35,7 @@ + case 3: case 9: adv_int = POSIX_FADV_NOREUSE; break; + case 4: case 10: adv_int = POSIX_FADV_WILLNEED; break; + case 5: case 11: adv_int = POSIX_FADV_DONTNEED; break; +- default: invalid_argument("Netsys.fadvise"); ++ default: caml_invalid_argument("Netsys.fadvise"); + }; + + start_int = Int64_val(start); +@@ -54,7 +54,7 @@ + uerror("posix_fadvise64", Nothing); + return Val_unit; + #else +- invalid_argument("Netsys.fadvise not available"); ++ caml_invalid_argument("Netsys.fadvise not available"); + #endif + } + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_fallocate.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_fallocate.c +--- src/netsys/netsys_c_fallocate.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_fallocate.c 2026-05-29 06:31:44 +@@ -28,9 +28,9 @@ + len_int = Int64_val(len); + + if ( ((int64_t) ((off_t) start_int)) != start_int ) +- failwith("Netsys.fadvise: large files not supported on this OS"); ++ caml_failwith("Netsys.fadvise: large files not supported on this OS"); + if ( ((int64_t) ((off_t) len_int)) != len_int ) +- failwith("Netsys.fadvise: large files not supported on this OS"); ++ caml_failwith("Netsys.fadvise: large files not supported on this OS"); + + start_off = start_int; + len_off = len_int; +@@ -38,10 +38,10 @@ + r = posix_fallocate(Int_val(fd), start_off, len_off); + /* does not set errno! */ + if (r != 0) +- unix_error(r, "posix_fallocate64", Nothing); ++ caml_unix_error(r, "posix_fallocate64", Nothing); + return Val_unit; + #else +- invalid_argument("Netsys.fallocate not available"); ++ caml_invalid_argument("Netsys.fallocate not available"); + #endif + } + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_ioprio.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_ioprio.c +--- src/netsys/netsys_c_ioprio.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_ioprio.c 2026-05-29 06:31:44 +@@ -89,11 +89,11 @@ + ioprio = ioprio_get(IOPRIO_WHO_USER, Int_val(Field(target, 0))); + break; + default: +- failwith("netsys_ioprio_get: internal error"); ++ caml_failwith("netsys_ioprio_get: internal error"); + } + + if (ioprio == -1) +- uerror("ioprio_get", Nothing); ++ caml_uerror("ioprio_get", Nothing); + + ioprio_class = ioprio >> IOPRIO_CLASS_SHIFT; + ioprio_data = ioprio & IOPRIO_PRIO_MASK; +@@ -114,14 +114,14 @@ + result = Val_long(1); + break; + default: +- failwith("netsys_ioprio_get: Unexpected result"); ++ caml_failwith("netsys_ioprio_get: Unexpected result"); + } + + return result; + + #else + /* not ioprio_supported: */ +- unix_error(ENOSYS, "ioprio_get", Nothing); ++ caml_unix_error(ENOSYS, "ioprio_get", Nothing); + #endif + /* ioprio_supported */ + } +@@ -145,7 +145,7 @@ + ioprio_data = Int_val(Field(ioprio_arg, 0)); + break; + default: +- failwith("netsys_ioprio_set: internal error"); ++ caml_failwith("netsys_ioprio_set: internal error"); + } + } else { + switch (Long_val(ioprio_arg)) { +@@ -159,7 +159,7 @@ + ioprio_data = 7; + break; + default: +- failwith("netsys_ioprio_set: internal error"); ++ caml_failwith("netsys_ioprio_set: internal error"); + } + }; + +@@ -176,16 +176,16 @@ + sysres = ioprio_set(IOPRIO_WHO_USER, Int_val(Field(target, 0)), ioprio); + break; + default: +- failwith("netsys_ioprio_set: internal error"); ++ caml_failwith("netsys_ioprio_set: internal error"); + } + + if (sysres == -1) +- uerror("ioprio_set", Nothing); ++ caml_uerror("ioprio_set", Nothing); + + return Val_unit; + #else + /* not ioprio_supported: */ +- unix_error(ENOSYS, "ioprio_set", Nothing); ++ caml_unix_error(ENOSYS, "ioprio_set", Nothing); + #endif + /* ioprio_supported */ + } +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_locale.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_locale.c +--- src/netsys/netsys_c_locale.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_locale.c 2026-05-29 06:31:44 +@@ -39,28 +39,28 @@ + + old_locale = setlocale(LC_ALL, NULL); + if (old_locale == NULL) +- failwith("Netsys_posix.query_locale: no locale support"); +- oldcopy_locale = stat_alloc(strlen(old_locale) + 1); ++ caml_failwith("Netsys_posix.query_locale: no locale support"); ++ oldcopy_locale = caml_stat_alloc(strlen(old_locale) + 1); + strcpy(oldcopy_locale, old_locale); + + new_locale = setlocale(LC_ALL, String_val(locale)); + if (new_locale == NULL) { +- stat_free(oldcopy_locale); +- failwith("Netsys_posix.query_locale: cannot set this locale"); ++ caml_stat_free(oldcopy_locale); ++ caml_failwith("Netsys_posix.query_locale: cannot set this locale"); + } + + n = sizeof(locale_items_table) / sizeof(locale_items_table[0]); +- s = alloc(n,0); ++ s = caml_alloc(n,0); + for (k=0; kdata); + } + +@@ -72,7 +72,7 @@ + #ifdef HAVE_SYSCONF + return Val_long(sysconf(_SC_PAGESIZE)); + #else +- invalid_argument("Netsys_mem.getpagesize not available"); ++ caml_invalid_argument("Netsys_mem.getpagesize not available"); + #endif + } + +@@ -83,8 +83,8 @@ + + start = (void *) Nativeint_val(addrv); + length = Long_val(lenv); +- return alloc_bigarray_dims(BIGARRAY_C_LAYOUT | BIGARRAY_UINT8, +- 1, start, length); ++ return caml_ba_alloc_dims(CAML_BA_C_LAYOUT | CAML_BA_UINT8, ++ 1, start, length); + } + + +@@ -109,15 +109,15 @@ + + data = mmap(start, length, flags, + MAP_PRIVATE | MAP_ANON, (-1), 0); +- if (data == (void *) -1) uerror("mmap", Nothing); ++ if (data == (void *) -1) caml_uerror("mmap", Nothing); + +- r = alloc_bigarray_dims(BIGARRAY_C_LAYOUT | BIGARRAY_UINT8 | +- BIGARRAY_MAPPED_FILE, +- 1, data, length); ++ r = caml_ba_alloc_dims(CAML_BA_C_LAYOUT | CAML_BA_UINT8 | ++ CAML_BA_MAPPED_FILE, ++ 1, data, length); + + return r; + #else +- invalid_argument("Netsys_mem.alloc_memory_pages not available"); ++ caml_invalid_argument("Netsys_mem.alloc_memory_pages not available"); + #endif + } + +@@ -125,7 +125,7 @@ + CAMLprim value netsys_zero_pages(value memv, value offsv, value lenv) + { + #if defined(HAVE_MMAP) && defined(HAVE_SYSCONF) && defined(MAP_ANON) && defined (MAP_FIXED) +- struct caml_bigarray *mem = Bigarray_val(memv); ++ struct caml_ba_array *mem = Caml_ba_array_val(memv); + long offs = Long_val(offsv); + long len = Long_val(lenv); + long pgsize = sysconf(_SC_PAGESIZE); +@@ -137,17 +137,17 @@ + data2 = mmap(data, len, PROT_READ|PROT_WRITE, + MAP_PRIVATE | MAP_ANON | MAP_FIXED, + (-1), 0); +- if (data2 == (void *) -1) uerror("mmap", Nothing); ++ if (data2 == (void *) -1) caml_uerror("mmap", Nothing); + if (((void *) data) != data2) +- failwith("Netsys_mem.zero_pages assertion failed"); ++ caml_failwith("Netsys_mem.zero_pages assertion failed"); + } + } + else +- invalid_argument("Netsys_mem.zero_pages only for whole pages"); ++ caml_invalid_argument("Netsys_mem.zero_pages only for whole pages"); + + return Val_unit; + #else +- invalid_argument("Netsys_mem.zero_pages not available"); ++ caml_invalid_argument("Netsys_mem.zero_pages not available"); + #endif + } + +@@ -162,14 +162,14 @@ + value r; + + e = posix_memalign(&addr, align, size); +- if (e != 0) unix_error(e, "posix_memalign", Nothing); ++ if (e != 0) caml_unix_error(e, "posix_memalign", Nothing); + +- r = alloc_bigarray_dims(BIGARRAY_C_LAYOUT | BIGARRAY_UINT8 | +- BIGARRAY_MANAGED, +- 1, addr, size); ++ r = caml_ba_alloc_dims(CAML_BA_C_LAYOUT | CAML_BA_UINT8 | ++ CAML_BA_MANAGED, ++ 1, addr, size); + return r; + #else +- invalid_argument("Netsys_mem.alloc_aligned_memory not available"); ++ caml_invalid_argument("Netsys_mem.alloc_aligned_memory not available"); + #endif + } + +@@ -197,7 +197,7 @@ + fd = Int_val(fdv); + pos0 = Int64_val(posv); + if (((int64_t) ((off_t) pos0)) != pos0) +- failwith("Netsys_mem: large files not supported on this OS"); ++ caml_failwith("Netsys_mem: large files not supported on this OS"); + pos = pos0; + addr = (void *) Nativeint_val(addrv); + if (addr == 0) addr = NULL; +@@ -206,36 +206,36 @@ + + pagesize = sysconf(_SC_PAGESIZE); + +- if (fstat(fd, &st) == -1) uerror("fstat", Nothing); ++ if (fstat(fd, &st) == -1) caml_uerror("fstat", Nothing); + eofpos = st.st_size; + + if (size == -1) { + if (eofpos < pos) +- failwith("Netsys_mem: cannot mmap - file position exceeds file size"); ++ caml_failwith("Netsys_mem: cannot mmap - file position exceeds file size"); + basize0 = eofpos - pos; + if (((off_t) ((uintnat) basize0)) != basize0) +- failwith("Netsys_mem: cannot mmap - file too large"); ++ caml_failwith("Netsys_mem: cannot mmap - file too large"); + basize = (uintnat) basize0; + } + else { + if (size < 0) +- invalid_argument("netsys_map_file"); ++ caml_invalid_argument("netsys_map_file"); + if (eofpos - pos < size) { + if (ftruncate(fd, pos + size) == -1) +- uerror("ftruncate", Nothing); ++ caml_uerror("ftruncate", Nothing); + } + basize = size; + } + delta = (uintnat) (pos % pagesize); + eff_addr = mmap(addr, basize + delta, PROT_READ | PROT_WRITE, + shared, fd, pos - delta); +- if (eff_addr == (void*) MAP_FAILED) uerror("mmap", Nothing); ++ if (eff_addr == (void*) MAP_FAILED) caml_uerror("mmap", Nothing); + eff_addr = (void *) ((uintnat) eff_addr + delta); + +- return alloc_bigarray_dims(BIGARRAY_UINT8 | BIGARRAY_C_LAYOUT | +- BIGARRAY_MAPPED_FILE, 1, eff_addr, basize); ++ return caml_ba_alloc_dims(CAML_BA_UINT8 | CAML_BA_C_LAYOUT | ++ CAML_BA_MAPPED_FILE, 1, eff_addr, basize); + #else +- invalid_argument("Netsys_mem.memory_map_file not available"); ++ caml_invalid_argument("Netsys_mem.memory_map_file not available"); + #endif + } + +@@ -254,20 +254,20 @@ + + CAMLprim value netsys_memory_unmap_file(value memv) + { +- struct caml_bigarray *b = Bigarray_val(memv); +- if ((b->flags & BIGARRAY_MANAGED_MASK) == BIGARRAY_MAPPED_FILE) { ++ struct caml_ba_array *b = Caml_ba_array_val(memv); ++ if ((b->flags & CAML_BA_MANAGED_MASK) == CAML_BA_MAPPED_FILE) { + if (b->proxy == NULL) { + ba_unmap_file(b->data, b->dim[0]); + b->data = NULL; + b->flags = +- (b->flags & ~BIGARRAY_MANAGED_MASK) | BIGARRAY_EXTERNAL; ++ (b->flags & ~CAML_BA_MANAGED_MASK) | CAML_BA_EXTERNAL; + } + else if (b->proxy->refcount == 1) { + ba_unmap_file(b->proxy->data, b->dim[0]); + b->proxy->data = NULL; + b->data = NULL; + b->flags = +- (b->flags & ~BIGARRAY_MANAGED_MASK) | BIGARRAY_EXTERNAL; ++ (b->flags & ~CAML_BA_MANAGED_MASK) | CAML_BA_EXTERNAL; + } + } + return Val_unit; +@@ -278,26 +278,26 @@ + + CAMLprim value netsys_reshape(value bv) + { +- struct caml_bigarray *b; +- struct caml_bigarray *mem; ++ struct caml_ba_array *b; ++ struct caml_ba_array *mem; + uintnat size; + int i,k; + CAMLparam1(bv); + CAMLlocal2(memv,dimv); + +- b = Bigarray_val(bv); ++ b = Caml_ba_array_val(bv); + + /* We dont't have access to caml_ba_update_proxy. The workaround is + to call caml_ba_reshape, and to fix the returned bigarray descriptor + afterward. + */ +- dimv = alloc(b->num_dims,0); ++ dimv = caml_alloc(b->num_dims,0); + for (k=0; k < b->num_dims; k++) { + Store_field(dimv, k, Val_long(b->dim[k])); + }; + + memv = caml_ba_reshape(bv, dimv); +- mem = Bigarray_val(memv); ++ mem = Caml_ba_array_val(memv); + + /* Compute the size of the data area: */ + size = caml_ba_element_size[b->flags & CAML_BA_KIND_MASK]; +@@ -354,10 +354,14 @@ + + CAMLprim value netsys_set_color(value objv, value colv) + { ++#if OCAML_VERSION < 50000 + int col; + col = Int_val(colv); + Hd_val(objv) = Whitehd_hd(Hd_val(objv)) | (col << 8); + return Val_unit; ++#else ++ caml_invalid_argument("Netsys_mem.set_color"); ++#endif + } + + /**********************************************************************/ +@@ -375,20 +379,20 @@ + #endif + + numbytes = Long_val(lenv); +- data = ((char *) (Bigarray_val(memv)->data)) + Long_val(offv); ++ data = ((char *) (Caml_ba_array_val(memv)->data)) + Long_val(offv); + #ifdef _WIN32 + if (Descr_kind_val(fdv) == KIND_SOCKET) { + SOCKET h = Socket_val(fdv); +- enter_blocking_section(); ++ caml_enter_blocking_section(); + ret = recv(h, data, numbytes, 0); + if (ret == SOCKET_ERROR) err = WSAGetLastError(); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + ret = n; + } else { + HANDLE h = Handle_val(fdv); +- enter_blocking_section(); ++ caml_enter_blocking_section(); + if (! ReadFile(h, data, numbytes, &n, NULL)) err = GetLastError(); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + ret = n; + } + if (err) { +@@ -396,11 +400,11 @@ + ret = -1; + } + #else +- enter_blocking_section(); ++ caml_enter_blocking_section(); + ret = read(Int_val(fdv), data, (int) numbytes); +- leave_blocking_section(); /* keeps errno intact */ ++ caml_leave_blocking_section(); /* keeps errno intact */ + #endif +- if (ret == -1) uerror("mem_read", Nothing); ++ if (ret == -1) caml_uerror("mem_read", Nothing); + return Val_long(ret); + } + +@@ -416,20 +420,20 @@ + #endif + + numbytes = Long_val(lenv); +- data = ((char *) (Bigarray_val(memv)->data)) + Long_val(offv); ++ data = ((char *) (Caml_ba_array_val(memv)->data)) + Long_val(offv); + #ifdef _WIN32 + if (Descr_kind_val(fdv) == KIND_SOCKET) { + SOCKET h = Socket_val(fdv); +- enter_blocking_section(); ++ caml_enter_blocking_section(); + ret = send(h, data, numbytes, 0); + if (ret == SOCKET_ERROR) err = WSAGetLastError(); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + ret = n; + } else { + HANDLE h = Handle_val(fdv); +- enter_blocking_section(); ++ caml_enter_blocking_section(); + if (! WriteFile(h, data, numbytes, &n, NULL)) err = GetLastError(); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + ret = n; + } + if (err) { +@@ -437,11 +441,11 @@ + ret = -1; + } + #else +- enter_blocking_section(); ++ caml_enter_blocking_section(); + ret = write(Int_val(fdv), data, (int) numbytes); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + #endif +- if (ret == -1) uerror("mem_write", Nothing); ++ if (ret == -1) caml_uerror("mem_write", Nothing); + return Val_long(ret); + } + +@@ -466,8 +470,8 @@ + #endif + + numbytes = Long_val(lenv); +- data = ((char *) (Bigarray_val(memv)->data)) + Long_val(offv); +- flags = convert_flag_list(flagsv, msg_flag_table); ++ data = ((char *) (Caml_ba_array_val(memv)->data)) + Long_val(offv); ++ flags = caml_convert_flag_list(flagsv, msg_flag_table); + + #ifdef _WIN32 + s = Socket_val(fdv); +@@ -475,18 +479,18 @@ + s = Int_val(fdv); + #endif + +- enter_blocking_section(); ++ caml_enter_blocking_section(); + ret = recv(s, data, (int) numbytes, flags); + + #ifdef _WIN32 + if (ret == -1) err = WSAGetLastError(); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + if (ret == -1) win32_maperr(err); + #else +- leave_blocking_section(); ++ caml_leave_blocking_section(); + #endif + +- if (ret == -1) uerror("mem_recv", Nothing); ++ if (ret == -1) caml_uerror("mem_recv", Nothing); + return Val_long(ret); + } + +@@ -506,8 +510,8 @@ + #endif + + numbytes = Long_val(lenv); +- data = ((char *) (Bigarray_val(memv)->data)) + Long_val(offv); +- flags = convert_flag_list(flagsv, msg_flag_table); ++ data = ((char *) (Caml_ba_array_val(memv)->data)) + Long_val(offv); ++ flags = caml_convert_flag_list(flagsv, msg_flag_table); + + #ifdef _WIN32 + s = Socket_val(fdv); +@@ -515,18 +519,18 @@ + s = Int_val(fdv); + #endif + +- enter_blocking_section(); ++ caml_enter_blocking_section(); + ret = send(s, data, (int) numbytes, flags); + + #ifdef _WIN32 + if (ret == -1) err = WSAGetLastError(); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + if (ret == -1) win32_maperr(err); + #else +- leave_blocking_section(); ++ caml_leave_blocking_section(); + #endif + +- if (ret == -1) uerror("mem_send", Nothing); ++ if (ret == -1) caml_uerror("mem_send", Nothing); + return Val_long(ret); + } + +@@ -537,44 +541,48 @@ + + CAMLprim value netsys_as_value(value memv, value offv) + { +- struct caml_bigarray *b = Bigarray_val(memv); ++#if OCAML_VERSION < 50000 ++ struct caml_ba_array *b = Caml_ba_array_val(memv); + return (value) (b->data + Long_val(offv)); ++#else ++ caml_invalid_argument("Netsys_mem.as_value"); ++#endif + } + + CAMLprim value netsys_value_area_add(value memv) + { +-#ifdef FANCY_PAGE_TABLES +- struct caml_bigarray *b = Bigarray_val(memv); ++#if defined(FANCY_PAGE_TABLES) && OCAML_VERSION < 50000 ++ struct caml_ba_array *b = Caml_ba_array_val(memv); + int code; + code = caml_page_table_add(In_static_data, + b->data, + b->data + b->dim[0]); + if (code != 0) +- failwith("Netsys_mem.value_area: error"); ++ caml_failwith("Netsys_mem.value_area: error"); + return Val_unit; + #else +- invalid_argument("Netsys_mem.value_area"); ++ caml_invalid_argument("Netsys_mem.value_area"); + #endif + } + + CAMLprim value netsys_value_area_remove(value memv) + { +-#ifdef FANCY_PAGE_TABLES +- struct caml_bigarray *b = Bigarray_val(memv); ++#if defined(FANCY_PAGE_TABLES) && OCAML_VERSION < 50000 ++ struct caml_ba_array *b = Caml_ba_array_val(memv); + caml_page_table_remove(In_static_data, + b->data, + b->data + b->dim[0]); + /* Silently ignore errors... */ + return Val_unit; + #else +- invalid_argument("Netsys_mem.value_area"); ++ caml_invalid_argument("Netsys_mem.value_area"); + #endif + } + + CAMLprim value netsys_init_header(value memv, value offv, value tagv, + value sizev) + { +- struct caml_bigarray *b = Bigarray_val(memv); ++ struct caml_ba_array *b = Caml_ba_array_val(memv); + intnat off = Long_val(offv); + intnat size = Long_val(sizev); + int tag = Int_val(tagv); +@@ -582,10 +590,10 @@ + + #ifdef ARCH_SIXTYFOUR + if (off % 8 != 0) +- invalid_argument("Netsys_mem.init_header"); ++ caml_invalid_argument("Netsys_mem.init_header"); + #else + if (off % 4 != 0) +- invalid_argument("Netsys_mem.init_header"); ++ caml_invalid_argument("Netsys_mem.init_header"); + #endif + + m = (value *) (((char *) b->data) + off); +@@ -619,7 +627,7 @@ + + CAMLprim value netsys_init_string(value memv, value offv, value lenv) + { +- struct caml_bigarray *b = Bigarray_val(memv); ++ struct caml_ba_array *b = Caml_ba_array_val(memv); + intnat off = Long_val(offv); + intnat len = Long_val(lenv); + value *m; +@@ -629,10 +637,10 @@ + + #ifdef ARCH_SIXTYFOUR + if (off % 8 != 0) +- invalid_argument("Netsys_mem.init_string"); ++ caml_invalid_argument("Netsys_mem.init_string"); + #else + if (off % 4 != 0) +- invalid_argument("Netsys_mem.init_string"); ++ caml_invalid_argument("Netsys_mem.init_string"); + #endif + + m = (value *) (((char *) b->data) + off); +@@ -650,6 +658,8 @@ + } + + ++#if OCAML_VERSION < 50000 ++ + struct named_custom_ops { + char *name; + void *ops; +@@ -999,14 +1009,14 @@ + size_t size = 1; + size_t size_aligned; + size_t size_words; +- b_work = Bigarray_val(work); +- b_copy = Bigarray_val(copy); ++ b_work = Caml_ba_array_val(work); ++ b_copy = Caml_ba_array_val(copy); + for (i = 0; i < b_work->num_dims; i++) { + size = size * b_work->dim[i]; + }; + size = + size * +- caml_ba_element_size[b_work->flags & BIGARRAY_KIND_MASK]; ++ caml_ba_element_size[b_work->flags & CAML_BA_KIND_MASK]; + + size_aligned = size; + if (size%sizeof(void *) != 0) +@@ -1035,7 +1045,7 @@ + dest_cur += size_aligned; + } else if (!simulation) { + data_header = NULL; +- data_copy = stat_alloc(size_aligned); ++ data_copy = caml_stat_alloc(size_aligned); + }; + + if (!simulation) { +@@ -1197,8 +1207,8 @@ + if (netsys_queue_size(stat_queue) > 256) + netsys_queue_free(stat_queue); + } ++#endif + +- + value netsys_init_value(value memv, + value offv, + value orig, +@@ -1208,6 +1218,7 @@ + value cc + ) + { ++#if OCAML_VERSION < 50000 + int code; + value r; + intnat start_offset, bytelen; +@@ -1254,16 +1265,16 @@ + old_ops = ops; + pair = Field(target_custom_ops,0); + ops = (struct named_custom_ops*) +- stat_alloc(sizeof(struct named_custom_ops)); +- ops->name = stat_alloc(caml_string_length(Field(pair,0))+1); ++ caml_stat_alloc(sizeof(struct named_custom_ops)); ++ ops->name = caml_stat_alloc(caml_string_length(Field(pair,0))+1); + strcmp(ops->name, String_val(Field(pair,0))); + ops->ops = (void *) Nativeint_val(Field(pair,1)); + ops->next = old_ops; + target_custom_ops = Field(target_custom_ops,1); + }; + +- mem_data = ((char *) Bigarray_val(memv)->data) + off; +- mem_end = mem_data + Bigarray_val(memv)->dim[0]; ++ mem_data = ((char *) Caml_ba_array_val(memv)->data) + off; ++ mem_end = mem_data + Caml_ba_array_val(memv)->dim[0]; + + /* note: the color of the new values does not matter because bigarrays + are ignored by the GC. So we pass 0 (white). +@@ -1287,8 +1298,8 @@ + + while (ops != NULL) { + next_ops = ops->next; +- stat_free(ops->name); +- stat_free(ops); ++ caml_stat_free(ops->name); ++ caml_stat_free(ops); + ops = next_ops; + }; + +@@ -1304,17 +1315,20 @@ + + switch(code) { + case (-1): +- unix_error(errno, "netsys_init_value", Nothing); ++ caml_unix_error(errno, "netsys_init_value", Nothing); + case (-2): + #ifdef DEBUG + fprintf(stderr, "Lib err\n"); + #endif +- failwith("Netsys_mem.init_value: Library error"); ++ caml_failwith("Netsys_mem.init_value: Library error"); + case (-4): + caml_raise_constant(*caml_named_value("Netsys_mem.Out_of_space")); + default: +- failwith("Netsys_mem.init_value: Unknown error"); ++ caml_failwith("Netsys_mem.init_value: Unknown error"); + } ++#else ++ caml_invalid_argument("Netsys_mem.init_value"); ++#endif + } + + +@@ -1344,6 +1358,7 @@ + + value netsys_copy_value(value flags, value orig) + { ++#if OCAML_VERSION < 50000 + int code; + int cflags; + intnat start_offset, bytelen; +@@ -1389,8 +1404,8 @@ + */ + bigarray_ops.name = BIGARRAY_MARSHAL_ID; + bigarray_ops.ops = +- Custom_ops_val(alloc_bigarray_dims(CAML_BA_UINT8 | BIGARRAY_C_LAYOUT, +- 1, NULL, 1)); ++ Custom_ops_val(caml_ba_alloc_dims(CAML_BA_UINT8 | CAML_BA_C_LAYOUT, ++ 1, NULL, 1)); + bigarray_ops.next = &int32_ops; + + int32_ops.name = "_i"; +@@ -1490,38 +1505,45 @@ + + switch(code) { + case (-1): +- unix_error(errno, "netsys_copy_value", Nothing); ++ caml_unix_error(errno, "netsys_copy_value", Nothing); + case (-2): +- failwith("Netsys_mem.copy_value: Library error"); ++ caml_failwith("Netsys_mem.copy_value: Library error"); + case (-4): + caml_raise_constant(*caml_named_value("Netsys_mem.Out_of_space")); + default: +- failwith("Netsys_mem.copy_value: Unknown error"); ++ caml_failwith("Netsys_mem.copy_value: Unknown error"); + } ++#else ++ caml_invalid_argument("Netsys_mem.copy_value"); ++#endif + } + + + value netsys_get_custom_ops (value v) + { ++#if OCAML_VERSION < 50000 + struct custom_operations *custom_ops; + CAMLparam1(v); + CAMLlocal1(r); + + if (Is_block(v) && Tag_val(v) == Custom_tag) { + custom_ops = Custom_ops_val(v); +- r = alloc_small(2,0); ++ r = caml_alloc_small(2,0); + Field(r,0) = caml_copy_string(custom_ops->identifier); + Field(r,1) = caml_copy_nativeint((intnat) custom_ops); + } + else +- invalid_argument("Netsys_mem.get_custom_ops"); ++ caml_invalid_argument("Netsys_mem.get_custom_ops"); + + CAMLreturn(r); ++#else ++ caml_invalid_argument("Netsys_mem.get_custom_ops"); ++#endif + } + + + value netsys_is_bigarray(value v) { +- struct custom_operations *custom_ops; ++ const struct custom_operations *custom_ops; + CAMLparam1(v); + CAMLlocal1(r); + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_multicast.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_multicast.c +--- src/netsys/netsys_c_multicast.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_multicast.c 2026-05-29 06:31:44 +@@ -43,7 +43,7 @@ + return PF_INET6; + #endif + default: +- invalid_argument("Not an Internet socket"); ++ caml_invalid_argument("Not an Internet socket"); + } + + return 0; +@@ -77,7 +77,7 @@ + #endif + #endif + default: +- invalid_argument("Netsys.mcast_set_loop"); ++ caml_invalid_argument("Netsys.mcast_set_loop"); + }; + + if (r == -1) +@@ -93,7 +93,7 @@ + + #ifdef _WIN32 + if (Descr_kind_val(fd) != KIND_SOCKET) +- invalid_argument("Netsys.mcast_set_ttl"); ++ caml_invalid_argument("Netsys.mcast_set_ttl"); + fd_sock = Socket_val(fd); + #else + fd_sock = Int_val(fd); +@@ -123,7 +123,7 @@ + #endif + #endif + default: +- invalid_argument("Netsys.mcast_set_ttl"); ++ caml_invalid_argument("Netsys.mcast_set_ttl"); + }; + + if (r == -1) +@@ -141,7 +141,7 @@ + + #ifdef _WIN32 + if (Descr_kind_val(fd) != KIND_SOCKET) +- invalid_argument("Netsys.mcast_add_membership"); ++ caml_invalid_argument("Netsys.mcast_add_membership"); + fd_sock = Socket_val(fd); + #else + fd_sock = Int_val(fd); +@@ -154,8 +154,8 @@ + #ifdef IP_ADD_MEMBERSHIP + case PF_INET: { + struct ip_mreq mreq; +- if (string_length(group_addr) != 4 || string_length(if_addr) != 4 ) +- invalid_argument("Netsys.mcast_add_membership: Not an IPV4 address"); ++ if (caml_string_length(group_addr) != 4 || caml_string_length(if_addr) != 4 ) ++ caml_invalid_argument("Netsys.mcast_add_membership: Not an IPV4 address"); + memcpy(&mreq.imr_multiaddr, + &GET_INET_ADDR(group_addr), + 4); +@@ -173,8 +173,8 @@ + #ifdef IPV6_ADD_MEMBERSHIP + case PF_INET6: { + struct ipv6_mreq mreq; +- if (string_length(group_addr) != 16 || string_length(if_addr) != 16 ) +- invalid_argument("Netsys.mcast_add_membership: Not an IPV6 address"); ++ if (caml_string_length(group_addr) != 16 || caml_string_length(if_addr) != 16 ) ++ caml_invalid_argument("Netsys.mcast_add_membership: Not an IPV6 address"); + memcpy(&mreq.ipv6mr_multiaddr, + &GET_INET6_ADDR(group_addr), + 16); +@@ -193,7 +193,7 @@ + #endif + #endif + default: +- invalid_argument("Netsys.mcast_add_membership"); ++ caml_invalid_argument("Netsys.mcast_add_membership"); + }; + if (r == -1) + uerror("setsockopt",Nothing); +@@ -210,7 +210,7 @@ + + #ifdef _WIN32 + if (Descr_kind_val(fd) != KIND_SOCKET) +- invalid_argument("Netsys.mcast_drop_membership"); ++ caml_invalid_argument("Netsys.mcast_drop_membership"); + fd_sock = Socket_val(fd); + #else + fd_sock = Int_val(fd); +@@ -223,8 +223,8 @@ + #ifdef IP_DROP_MEMBERSHIP + case PF_INET: { + struct ip_mreq mreq; +- if (string_length(group_addr) != 4 || string_length(if_addr) != 4 ) +- invalid_argument("Netsys.mcast_drop_membership: Not an IPV4 address"); ++ if (caml_string_length(group_addr) != 4 || caml_string_length(if_addr) != 4 ) ++ caml_invalid_argument("Netsys.mcast_drop_membership: Not an IPV4 address"); + memcpy(&mreq.imr_multiaddr, + &GET_INET_ADDR(group_addr), + 4); +@@ -242,8 +242,8 @@ + #ifdef IPV6_DROP_MEMBERSHIP + case PF_INET6: { + struct ipv6_mreq mreq; +- if (string_length(group_addr) != 16 || string_length(if_addr) != 16 ) +- invalid_argument("Netsys.mcast_drop_membership: Not an IPV6 address"); ++ if (caml_string_length(group_addr) != 16 || caml_string_length(if_addr) != 16 ) ++ caml_invalid_argument("Netsys.mcast_drop_membership: Not an IPV6 address"); + memcpy(&mreq.ipv6mr_multiaddr, + &GET_INET6_ADDR(group_addr), + 16); +@@ -262,7 +262,7 @@ + #endif + #endif + default: +- invalid_argument("Netsys.mcast_drop_membership"); ++ caml_invalid_argument("Netsys.mcast_drop_membership"); + }; + + if (r == -1) +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_outofheap.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_outofheap.c +--- src/netsys/netsys_c_outofheap.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_outofheap.c 2026-05-29 06:31:44 +@@ -9,7 +9,7 @@ + + #include "netsys_c.h" + +-#ifdef HAVE_NEW_MODIFY ++#if defined(HAVE_NEW_MODIFY) && OCAML_VERSION < 50000 + /* implies FANCY_PAGE_TABLES */ + + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_poll.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_poll.c +--- src/netsys/netsys_c_poll.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_poll.c 2026-05-29 06:31:44 +@@ -75,7 +75,7 @@ + }; + return s; + #else +- invalid_argument("netsys_mk_poll_mem"); ++ caml_invalid_argument("netsys_mk_poll_mem"); + #endif + } + +@@ -89,7 +89,7 @@ + (*(Poll_mem_val(s)))[Int_val(k)] = p; + return Val_unit; + #else +- invalid_argument("netsys_set_poll_mem"); ++ caml_invalid_argument("netsys_set_poll_mem"); + #endif + + } +@@ -106,7 +106,7 @@ + Store_field(triple, 2, Val_int(p.revents)); + return triple; + #else +- invalid_argument("netsys_get_poll_mem"); ++ caml_invalid_argument("netsys_get_poll_mem"); + #endif + } + +@@ -120,7 +120,7 @@ + memmove(p2 + Int_val(k2), p1 + Int_val(k1), l*sizeof(struct pollfd)); + return Val_unit; + #else +- invalid_argument("netsys_blit_poll_mem"); ++ caml_invalid_argument("netsys_blit_poll_mem"); + #endif + }; + +@@ -148,15 +148,15 @@ + n = Int_val(nv); + tmo = Long_val(tv); + +- enter_blocking_section(); ++ caml_enter_blocking_section(); + r = poll(p, n, tmo); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + +- if (r == -1) uerror("poll", Nothing); ++ if (r == -1) caml_uerror("poll", Nothing); + + return Val_int(r); + #else +- invalid_argument("netsys_poll"); ++ caml_invalid_argument("netsys_poll"); + #endif + } + +@@ -224,12 +224,12 @@ + + #ifdef USABLE_EPOLL + fd = epoll_create(128); +- if (fd == -1) uerror("epoll_create", Nothing); ++ if (fd == -1) caml_uerror("epoll_create", Nothing); + code = fcntl(fd, F_SETFD, FD_CLOEXEC); + if (code == -1) { + e = errno; + close(fd); +- unix_error(e, "fcntl", Nothing); ++ caml_unix_error(e, "fcntl", Nothing); + }; + r = alloc_poll_aggreg(); + pa = *(Poll_aggreg_val(r)); +@@ -243,14 +243,14 @@ + if (cancel_fd == -1) { + e = errno; + close(fd); +- unix_error(e, "eventfd", Nothing); ++ caml_unix_error(e, "eventfd", Nothing); + }; + code = fcntl(cancel_fd, F_SETFD, FD_CLOEXEC); + if (code == -1) { + e = errno; + close(fd); + close(cancel_fd); +- unix_error(e, "fcntl", Nothing); ++ caml_unix_error(e, "fcntl", Nothing); + }; + ee.events = EPOLLIN; /* not oneshot! */ + ee.data.u64 = 1; /* reserved value */ +@@ -259,14 +259,14 @@ + e = errno; + close(fd); + close(cancel_fd); +- unix_error(e, "epoll_ctl (ADD)", Nothing); ++ caml_unix_error(e, "epoll_ctl (ADD)", Nothing); + }; + pa->cancel_fd = cancel_fd; + }; + #endif + return r; + #else +- invalid_argument("Netsys_posix.create_event_aggregator not available"); ++ caml_invalid_argument("Netsys_posix.create_event_aggregator not available"); + #endif + } + +@@ -279,14 +279,14 @@ + + pa = *(Poll_aggreg_val(pav)); + code = close(pa->fd); +- if (code == -1) uerror("close", Nothing); ++ if (code == -1) caml_uerror("close", Nothing); + if (pa->cancel_fd >= 0) { + code = close(pa->cancel_fd); +- if (code == -1) uerror("close", Nothing); ++ if (code == -1) caml_uerror("close", Nothing); + }; + return Val_unit; + #else +- invalid_argument("Netsys_posix.destroy_event_aggregator not available"); ++ caml_invalid_argument("Netsys_posix.destroy_event_aggregator not available"); + #endif + } + +@@ -299,7 +299,7 @@ + pa = *(Poll_aggreg_val(pav)); + return Val_int(pa->fd); + #else +- invalid_argument("Netsys_posix.event_aggregator_fd not available"); ++ caml_invalid_argument("Netsys_posix.event_aggregator_fd not available"); + #endif + } + +@@ -348,12 +348,12 @@ + translate_to_epoll_events(Int_val(Field(pushv, 2))) | EPOLLONESHOT; + ee.data.u64 = Long_val(Field(pushv, 0)) << 1; + code = epoll_ctl(pa->fd, EPOLL_CTL_ADD, fd, &ee); +- if (code == -1) uerror("epoll_ctl (ADD)", Nothing); ++ if (code == -1) caml_uerror("epoll_ctl (ADD)", Nothing); + #endif + + return Val_unit; + #else +- invalid_argument("Netsys_posix.add_event_source not available"); ++ caml_invalid_argument("Netsys_posix.add_event_source not available"); + #endif + } + +@@ -373,12 +373,12 @@ + + #ifdef USABLE_EPOLL + code = epoll_ctl(pa->fd, EPOLL_CTL_DEL, fd, &ee); +- if (code == -1) uerror("epoll_ctl (DEL)", Nothing); ++ if (code == -1) caml_uerror("epoll_ctl (DEL)", Nothing); + #endif + + return Val_unit; + #else +- invalid_argument("Netsys_posix.del_event_source not available"); ++ caml_invalid_argument("Netsys_posix.del_event_source not available"); + #endif + } + +@@ -394,11 +394,11 @@ + int n; + buf = 1; + n = write(pa->cancel_fd, (char *) &buf, 8); +- if (n == -1) uerror("write", Nothing); ++ if (n == -1) caml_uerror("write", Nothing); + }; + return Val_unit; + #else +- invalid_argument("Netsys_posix.interrupt_event_aggregator not available"); ++ caml_invalid_argument("Netsys_posix.interrupt_event_aggregator not available"); + #endif + } + +@@ -427,12 +427,12 @@ + EPOLLONESHOT; + ee.data.u64 = Long_val(Field(v_pushlist_hd, 0)) << 1; + code = epoll_ctl(pa->fd, EPOLL_CTL_MOD, fd, &ee); +- if (code == -1) uerror("epoll_ctl (MOD)", Nothing); ++ if (code == -1) caml_uerror("epoll_ctl (MOD)", Nothing); + #endif + }; + return Val_unit; + #else +- invalid_argument("Netsys_posix.push_event_sources not available"); ++ caml_invalid_argument("Netsys_posix.push_event_sources not available"); + #endif + } + +@@ -459,7 +459,7 @@ + code = epoll_wait(pa->fd, ee, EPOLL_NUM, tmo); + e = errno; + caml_leave_blocking_section(); +- if (code == -1) unix_error(e, "epoll_wait", Nothing); ++ if (code == -1) caml_unix_error(e, "epoll_wait", Nothing); + + r = Val_int(0); + for (k=0; kcancel_fd, (char *) &buf, 8); +- if (n == -1) unix_error(errno, "read", Nothing); ++ if (n == -1) caml_unix_error(errno, "read", Nothing); + } + else { + r_item = caml_alloc(3,0); +@@ -486,6 +486,6 @@ + + CAMLreturn(r); + #else +- invalid_argument("Netsys_posix.pull_event_sources not available"); ++ caml_invalid_argument("Netsys_posix.pull_event_sources not available"); + #endif + } +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_sem.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_sem.c +--- src/netsys/netsys_c_sem.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_sem.c 2026-05-29 06:31:44 +@@ -120,16 +120,16 @@ + int flags; + + init = Long_val(initv); +- flags = convert_flag_list(flagsv, sem_open_flag_table); ++ flags = caml_convert_flag_list(flagsv, sem_open_flag_table); + s = sem_open(String_val(namev), + flags, + Int_val(modev), + init); +- if (s == (sem_t *) SEM_FAILED) uerror("sem_open", namev); ++ if (s == (sem_t *) SEM_FAILED) caml_uerror("sem_open", namev); + r = alloc_sem_block(s, 1); + return r; + #else +- invalid_argument("Netsys.sem_open not available"); ++ caml_invalid_argument("Netsys.sem_open not available"); + #endif + } + +@@ -141,13 +141,13 @@ + + sb = Sem_block_val(srv); + if (sb->sem_ptr == NULL) +- invalid_argument ("Netsys.sem_close: stale semaphore"); ++ caml_invalid_argument ("Netsys.sem_close: stale semaphore"); + code = sem_close(sb->sem_ptr); +- if (code == -1) uerror("sem_close", Nothing); ++ if (code == -1) caml_uerror("sem_close", Nothing); + sb->sem_ptr = NULL; + return Val_unit; + #else +- invalid_argument("Netsys.sem_close not available"); ++ caml_invalid_argument("Netsys.sem_close not available"); + #endif + } + +@@ -156,10 +156,10 @@ + #ifdef HAVE_POSIX_SEM_NAMED + int code; + code = sem_unlink(String_val(namev)); +- if (code == -1) uerror("sem_unlink", Nothing); ++ if (code == -1) caml_uerror("sem_unlink", Nothing); + return Val_unit; + #else +- invalid_argument("Netsys.sem_unlink not available"); ++ caml_invalid_argument("Netsys.sem_unlink not available"); + #endif + } + +@@ -175,13 +175,13 @@ + value r; + + init = Long_val(initv); +- s = (sem_t *) (((char *) Bigarray_val(memv)->data) + Long_val(posv)); ++ s = (sem_t *) (((char *) Caml_ba_array_val(memv)->data) + Long_val(posv)); + code = sem_init(s, Bool_val(psharedv), init); +- if (code == -1) uerror("sem_init", Nothing); ++ if (code == -1) caml_uerror("sem_init", Nothing); + r = alloc_sem_block(s, 0); + return r; + #else +- invalid_argument("Netsys.sem_init not available"); ++ caml_invalid_argument("Netsys.sem_init not available"); + #endif + } + +@@ -192,11 +192,11 @@ + sem_t *s; + value r; + +- s = (sem_t *) (((char *) Bigarray_val(memv)->data) + Long_val(posv)); ++ s = (sem_t *) (((char *) Caml_ba_array_val(memv)->data) + Long_val(posv)); + r = alloc_sem_block(s, 0); + return r; + #else +- invalid_argument("Netsys.as_sem not available"); ++ caml_invalid_argument("Netsys.as_sem not available"); + #endif + } + +@@ -209,13 +209,13 @@ + + sb = Sem_block_val(srv); + if (sb->sem_ptr == NULL) +- invalid_argument ("Netsys.sem_destroy: stale semaphore"); ++ caml_invalid_argument ("Netsys.sem_destroy: stale semaphore"); + code = sem_destroy(sb->sem_ptr); +- if (code == -1) uerror("sem_destroy", Nothing); ++ if (code == -1) caml_uerror("sem_destroy", Nothing); + sb->sem_ptr = NULL; + return Val_unit; + #else +- invalid_argument("Netsys.sem_destroy not available"); ++ caml_invalid_argument("Netsys.sem_destroy not available"); + #endif + } + +@@ -229,16 +229,16 @@ + + sb = Sem_block_val(srv); + if (sb->sem_ptr == NULL) +- invalid_argument ("Netsys.sem_getvalue: stale semaphore"); ++ caml_invalid_argument ("Netsys.sem_getvalue: stale semaphore"); + code = sem_getvalue(sb->sem_ptr, &sval); +- if (code == -1) uerror("sem_getvalue", Nothing); ++ if (code == -1) caml_uerror("sem_getvalue", Nothing); + if (sval < 0) sval = 0; + #ifndef ARCH_SIXTYFOUR +- if (sval > 1073741823) unix_error(EINVAL, "sem_getvalue", Nothing); ++ if (sval > 1073741823) caml_unix_error(EINVAL, "sem_getvalue", Nothing); + #endif + return Val_int(sval); + #else +- invalid_argument("Netsys.sem_getvalue not available"); ++ caml_invalid_argument("Netsys.sem_getvalue not available"); + #endif + } + +@@ -250,12 +250,12 @@ + + sb = Sem_block_val(srv); + if (sb->sem_ptr == NULL) +- invalid_argument ("Netsys.sem_post: stale semaphore"); ++ caml_invalid_argument ("Netsys.sem_post: stale semaphore"); + code = sem_post(sb->sem_ptr); +- if (code == -1) uerror("sem_post", Nothing); ++ if (code == -1) caml_uerror("sem_post", Nothing); + return Val_unit; + #else +- invalid_argument("Netsys.sem_post not available"); ++ caml_invalid_argument("Netsys.sem_post not available"); + #endif + } + +@@ -270,19 +270,19 @@ + + sb = Sem_block_val(srv); + if (sb->sem_ptr == NULL) +- invalid_argument ("Netsys.sem_wait: stale semaphore"); ++ caml_invalid_argument ("Netsys.sem_wait: stale semaphore"); + tag = Int_val(bv); + s = sb->sem_ptr; +- enter_blocking_section(); ++ caml_enter_blocking_section(); + if (tag == 0) + code = sem_wait(s); + else + code = sem_trywait(s); +- leave_blocking_section(); +- if (code == -1) uerror("sem_wait", Nothing); ++ caml_leave_blocking_section(); ++ if (code == -1) caml_uerror("sem_wait", Nothing); + return Val_unit; + #else +- invalid_argument("Netsys.sem_wait not available"); ++ caml_invalid_argument("Netsys.sem_wait not available"); + #endif + } + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_shm.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_shm.c +--- src/netsys/netsys_c_shm.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_shm.c 2026-05-29 06:31:44 +@@ -36,15 +36,15 @@ + int ret, cv_flags; + char * p; + +- cv_flags = convert_flag_list(flags, shm_open_flag_table); +- p = stat_alloc(string_length(path) + 1); ++ cv_flags = caml_convert_flag_list(flags, shm_open_flag_table); ++ p = caml_stat_alloc(caml_string_length(path) + 1); + strcpy(p, String_val(path)); + ret = shm_open(p, cv_flags, Int_val(perm)); +- stat_free(p); ++ caml_stat_free(p); + if (ret == -1) uerror("shm_open", path); + CAMLreturn (Val_int(ret)); + #else +- invalid_argument("Netsys.shm_open not available"); ++ caml_invalid_argument("Netsys.shm_open not available"); + #endif + } + +@@ -58,7 +58,7 @@ + if (ret == -1) uerror("shm_unlink", path); + return Val_unit; + #else +- invalid_argument("Netsys.shm_unlink not available"); ++ caml_invalid_argument("Netsys.shm_unlink not available"); + #endif + } + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_spawn.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_spawn.c +--- src/netsys/netsys_c_spawn.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_spawn.c 2026-05-29 06:31:44 +@@ -112,15 +112,15 @@ + In the calling process, the mask is reset below at [exit]. + */ + code = sigfillset(&mask); +- if (code == -1) unix_error(EINVAL, "netsys_spawn/sigfillset [000]", ++ if (code == -1) caml_unix_error(EINVAL, "netsys_spawn/sigfillset [000]", + Nothing); + #ifdef HAVE_PTHREAD + code = pthread_sigmask(SIG_SETMASK, &mask, &save_mask); +- if (code != 0) unix_error(code, "netsys_spawn/pthread_sigmask [001]", ++ if (code != 0) caml_unix_error(code, "netsys_spawn/pthread_sigmask [001]", + Nothing); + #else + code = sigprocmask(SIG_SETMASK, &mask, &save_mask); +- if (code == -1) uerror("netsys_spawn/sigprocmask [002]", Nothing); ++ if (code == -1) caml_uerror("netsys_spawn/sigprocmask [002]", Nothing); + #endif + memcpy(&spawn_mask, &save_mask, sizeof(sigset_t)); + +@@ -357,8 +357,8 @@ + + /* exec the new program: */ + code = execve(String_val(v_cmd), +- sub_argv, +- sub_env); ++ (char * const *) sub_argv, ++ (char * const *) sub_env); + if (code == -1) SUB_ERROR(errno, "netsys_spawn/execve [290]"); + + SUB_ERROR(EINVAL, "netsys_spawn/assert_execve [291]"); +@@ -473,11 +473,11 @@ + } + + if (uerror_errno != 0) +- unix_error(uerror_errno, uerror_function, Nothing); ++ caml_unix_error(uerror_errno, uerror_function, Nothing); + + return return_value; + #else +- invalid_argument("netsys_spawn"); ++ caml_invalid_argument("netsys_spawn"); + #endif + } + +@@ -614,7 +614,7 @@ + flags |= POSIX_SPAWN_SETPGROUP; + break; + case 2: /* Pg_new_fg_group */ +- invalid_argument ++ caml_invalid_argument + ("Netsys_posix.posix_spawn: Pg_new_fg_group not supported"); + break; + default: +@@ -638,7 +638,7 @@ + flags |= POSIX_SPAWN_SETSIGDEF; + break; + case 1: /* Sig_ignore */ +- invalid_argument ++ caml_invalid_argument + ("Netsys_posix.posix_spawn: Sig_ignore not supported"); + break; + case 2: /* Sig_mask */ +@@ -800,15 +800,15 @@ + }; + + if (uerror_errno != 0) +- unix_error(uerror_errno, uerror_function, Nothing); ++ caml_unix_error(uerror_errno, uerror_function, Nothing); + + if (use_fork_exec != 0) +- failwith("USE_FORK_EXEC"); ++ caml_failwith("USE_FORK_EXEC"); + + return return_value; + + #else +- invalid_argument("netsys_posix_spawn not available"); ++ caml_invalid_argument("netsys_posix_spawn not available"); + #endif + } + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_c_subprocess.c ocamlnet-4.1.9.patched/src/netsys/netsys_c_subprocess.c +--- src/netsys/netsys_c_subprocess.c 2021-03-24 16:20:14 ++++ src/netsys/netsys_c_subprocess.c 2026-05-29 06:31:44 +@@ -282,7 +282,7 @@ + (struct sigchld_atom *) malloc(sigchld_list_len * + sizeof(struct sigchld_atom)); + if (sigchld_list == NULL) +- failwith("Cannot allocate memory"); ++ caml_failwith("Cannot allocate memory"); + + for (k=0; kauto_close = Bool_val(flag); + return Val_unit; + #else +- invalid_argument("netsys_set_auto_close_event_proxy"); ++ caml_invalid_argument("netsys_set_auto_close_event_proxy"); + #endif + } + +@@ -276,7 +276,7 @@ + + return Val_unit; + #else +- invalid_argument("netsys_set_event"); ++ caml_invalid_argument("netsys_set_event"); + #endif + } + +@@ -292,7 +292,7 @@ + + return Val_unit; + #else +- invalid_argument("netsys_reset_event"); ++ caml_invalid_argument("netsys_reset_event"); + #endif + } + +@@ -312,7 +312,7 @@ + + return Val_bool(n == WAIT_OBJECT_0); + #else +- invalid_argument("netsys_test_event"); ++ caml_invalid_argument("netsys_test_event"); + #endif + } + +@@ -331,10 +331,10 @@ + }; + + e = event_val(ev); +- enter_blocking_section(); ++ caml_enter_blocking_section(); + n = WaitForSingleObject(e->ev, wtmo); + err = GetLastError(); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + if (n == WAIT_FAILED) { + win32_maperr(err); + uerror("netsys_event_wait/WaitForSingleObject", Nothing); +@@ -342,7 +342,7 @@ + + return Val_bool(n == WAIT_OBJECT_0); + #else +- invalid_argument("netsys_event_wait"); ++ caml_invalid_argument("netsys_event_wait"); + #endif + } + +@@ -353,7 +353,7 @@ + e = event_val(ev); + return netsysw32_win_alloc_handle(e->ev_proxy); + #else +- invalid_argument("netsys_event_descr"); ++ caml_invalid_argument("netsys_event_descr"); + #endif + } + +@@ -383,7 +383,7 @@ + + return Val_unit; + #else +- invalid_argument("netsys_wsa_event_select"); ++ caml_invalid_argument("netsys_wsa_event_select"); + #endif + } + +@@ -391,7 +391,7 @@ + #ifdef _WIN32 + return Val_int(WSA_MAXIMUM_WAIT_EVENTS); + #else +- invalid_argument("netsys_wsa_maximum_wait_events"); ++ caml_invalid_argument("netsys_wsa_maximum_wait_events"); + #endif + } + +@@ -428,9 +428,9 @@ + tmo = tmo0; + else + tmo = INFINITE; +- enter_blocking_section(); ++ caml_enter_blocking_section(); + r = SleepEx(tmo, 1); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + + if (r == WAIT_IO_COMPLETION) { + win32_maperr(EINTR); +@@ -445,10 +445,10 @@ + else + tmo = INFINITE; + dprintf("WSAWaitForMultipleEvents start tmo=%u\n", tmo); +- enter_blocking_section(); ++ caml_enter_blocking_section(); + r = WSAWaitForMultipleEvents(n, earray, 0, tmo, 1); + err = WSAGetLastError(); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + dprintf("WSAWaitForMultipleEvents end code=%u\n", r); + + if (r == WSA_WAIT_FAILED) { +@@ -476,9 +476,9 @@ + } + } + +- invalid_argument("netsys_wsa_wait_for_multiple_events: bad return value from Win32"); ++ caml_invalid_argument("netsys_wsa_wait_for_multiple_events: bad return value from Win32"); + #else +- invalid_argument("netsys_wsa_wait_for_multiple_events"); ++ caml_invalid_argument("netsys_wsa_wait_for_multiple_events"); + #endif + } + +@@ -538,7 +538,7 @@ + + return Val_int(r); + #else +- invalid_argument("netsys_wsa_enum_network_events"); ++ caml_invalid_argument("netsys_wsa_enum_network_events"); + #endif + } + +@@ -626,20 +626,20 @@ + uerror("alloc_pipe_helper/CreateEvent", Nothing); + }; + +- rd_ovrlp = stat_alloc(sizeof(OVERLAPPED)); ++ rd_ovrlp = caml_stat_alloc(sizeof(OVERLAPPED)); + ZeroMemory(rd_ovrlp, sizeof(OVERLAPPED)); + rd_ovrlp->hEvent = rd_ev; + +- wr_ovrlp = stat_alloc(sizeof(OVERLAPPED)); ++ wr_ovrlp = caml_stat_alloc(sizeof(OVERLAPPED)); + ZeroMemory(wr_ovrlp, sizeof(OVERLAPPED)); + wr_ovrlp->hEvent = wr_ev; + +- cn_ovrlp = stat_alloc(sizeof(OVERLAPPED)); ++ cn_ovrlp = caml_stat_alloc(sizeof(OVERLAPPED)); + ZeroMemory(cn_ovrlp, sizeof(OVERLAPPED)); + if (cn_ev != INVALID_HANDLE_VALUE) + cn_ovrlp->hEvent = cn_ev; + +- ph = stat_alloc(sizeof(struct pipe_helper)); ++ ph = caml_stat_alloc(sizeof(struct pipe_helper)); + ph->pipe_handle = h; + ph->pipe_is_open = 1; + ph->pipe_is_server = 0; +@@ -680,10 +680,10 @@ + if (ph->pipe_cn_ev != INVALID_HANDLE_VALUE) + CloseHandle(ph->pipe_cn_ev); + /* do nothing about pipe_signal */ +- stat_free(ph->pipe_rd_ovrlp); +- stat_free(ph->pipe_wr_ovrlp); +- stat_free(ph->pipe_cn_ovrlp); +- stat_free(ph); ++ caml_stat_free(ph->pipe_rd_ovrlp); ++ caml_stat_free(ph->pipe_wr_ovrlp); ++ caml_stat_free(ph->pipe_cn_ovrlp); ++ caml_stat_free(ph); + } + + +@@ -1032,7 +1032,7 @@ + ph->pipe_handle); + return r; + #else +- invalid_argument("netsys_create_local_named_pipe"); ++ caml_invalid_argument("netsys_create_local_named_pipe"); + #endif + } + +@@ -1130,7 +1130,7 @@ + + return Val_unit; + #else +- invalid_argument("netsys_pipe_listen"); ++ caml_invalid_argument("netsys_pipe_listen"); + #endif + } + +@@ -1175,13 +1175,13 @@ + /* Check whether the overlapped ops are done: */ + check_for_pending_operations(ph); + if (ph->pipe_cn_ovrlp_started) { +- failwith("netsys_pipe_unlisten: cannot stop pending ConnectNamedPipe"); ++ caml_failwith("netsys_pipe_unlisten: cannot stop pending ConnectNamedPipe"); + }; + if (ph->pipe_rd_ovrlp_started) { +- failwith("netsys_pipe_unlisten: cannot stop pending ReadFile"); ++ caml_failwith("netsys_pipe_unlisten: cannot stop pending ReadFile"); + }; + if (ph->pipe_wr_ovrlp_started) { +- failwith("netsys_pipe_unlisten: cannot stop pending WriteFile"); ++ caml_failwith("netsys_pipe_unlisten: cannot stop pending WriteFile"); + }; + + dprintf("PIPE deafen %u successful\n", +@@ -1202,7 +1202,7 @@ + return Val_unit; + + #else +- invalid_argument("netsys_pipe_unlisten"); ++ caml_invalid_argument("netsys_pipe_unlisten"); + #endif + } + +@@ -1272,7 +1272,7 @@ + return r; + + #else +- invalid_argument("netsys_pipe_connect"); ++ caml_invalid_argument("netsys_pipe_connect"); + #endif + } + +@@ -1333,7 +1333,7 @@ + + return Val_int(l); + #else +- invalid_argument("netsys_pipe_read"); ++ caml_invalid_argument("netsys_pipe_read"); + #endif + } + +@@ -1400,7 +1400,7 @@ + + return Val_int(l); + #else +- invalid_argument("netsys_pipe_write"); ++ caml_invalid_argument("netsys_pipe_write"); + #endif + } + +@@ -1438,7 +1438,7 @@ + + return Val_unit; + #else +- invalid_argument("netsys_pipe_shutdown"); ++ caml_invalid_argument("netsys_pipe_shutdown"); + #endif + } + +@@ -1453,7 +1453,7 @@ + + return Val_unit; + #else +- invalid_argument("netsys_pipe_free"); ++ caml_invalid_argument("netsys_pipe_free"); + #endif + } + +@@ -1469,7 +1469,7 @@ + + return Val_int(ph->pipe_conn_state); + #else +- invalid_argument("netsys_pipe_conn_state"); ++ caml_invalid_argument("netsys_pipe_conn_state"); + #endif + } + +@@ -1487,7 +1487,7 @@ + + return alloc_event(ph->pipe_rd_ev); + #else +- invalid_argument("netsys_pipe_rd_event"); ++ caml_invalid_argument("netsys_pipe_rd_event"); + #endif + } + +@@ -1505,7 +1505,7 @@ + + return alloc_event(ph->pipe_wr_ev); + #else +- invalid_argument("netsys_pipe_wr_event"); ++ caml_invalid_argument("netsys_pipe_wr_event"); + #endif + } + +@@ -1518,7 +1518,7 @@ + + return netsysw32_win_alloc_handle(ph->pipe_descr); + #else +- invalid_argument("netsys_pipe_descr"); ++ caml_invalid_argument("netsys_pipe_descr"); + #endif + } + +@@ -1530,7 +1530,7 @@ + ph->pipe_descr_auto_close = Bool_val(flag); + return Val_unit; + #else +- invalid_argument("netsys_set_auto_close_pipe_proxy"); ++ caml_invalid_argument("netsys_set_auto_close_pipe_proxy"); + #endif + } + +@@ -1546,7 +1546,7 @@ + + return Val_unit; + #else +- invalid_argument("netsys_pipe_signal"); ++ caml_invalid_argument("netsys_pipe_signal"); + #endif + } + +@@ -1658,7 +1658,7 @@ + pass_std_handles = 1; + break; + default: +- invalid_argument("netsys_create_process [1]"); ++ caml_invalid_argument("netsys_create_process [1]"); + } + } + else { +@@ -1687,7 +1687,7 @@ + pg_flags = 0; + break; + default: +- invalid_argument("netsys_create_process [2]"); ++ caml_invalid_argument("netsys_create_process [2]"); + } + }; + opts_hd = Field(opts_hd,1); +@@ -1716,7 +1716,7 @@ + pi.hProcess, pi.dwProcessId); + return alloc_process(pi.hProcess, pi.dwProcessId); + #else +- invalid_argument("netsys_create_process"); ++ caml_invalid_argument("netsys_create_process"); + #endif + } + +@@ -1751,7 +1751,7 @@ + if (pathlen < 256) pathlen = 256; + cont = 1; + while (cont) { +- fullname = stat_alloc(pathlen); ++ fullname = caml_stat_alloc(pathlen); + code = SearchPath(path, + file, + ext, +@@ -1760,7 +1760,7 @@ + NULL); + cont = (code >= pathlen); + if (cont) { +- stat_free(fullname); ++ caml_stat_free(fullname); + pathlen = code+1; /* space for NULL byte! */ + } + } +@@ -1768,16 +1768,16 @@ + caml_leave_blocking_section(); + + if (code == 0) { +- stat_free(fullname); ++ caml_stat_free(fullname); + errno = ENOENT; + uerror("netsys_search_path", file_v); + }; + + r = caml_copy_string(fullname); +- stat_free(fullname); ++ caml_stat_free(fullname); + return r; + #else +- invalid_argument("netsys_search_path"); ++ caml_invalid_argument("netsys_search_path"); + #endif + } + +@@ -1794,7 +1794,7 @@ + } + return Val_unit; + #else +- invalid_argument("netsys_terminate_process"); ++ caml_invalid_argument("netsys_terminate_process"); + #endif + } + +@@ -1807,7 +1807,7 @@ + p0 = process_val(pv); + return netsysw32_win_alloc_handle(p0->proc_proxy); + #else +- invalid_argument("netsys_process_descr"); ++ caml_invalid_argument("netsys_process_descr"); + #endif + } + +@@ -1819,7 +1819,7 @@ + p0->auto_close = Bool_val(flag); + return Val_unit; + #else +- invalid_argument("netsys_set_auto_close_process_proxy"); ++ caml_invalid_argument("netsys_set_auto_close_process_proxy"); + #endif + } + +@@ -1834,7 +1834,7 @@ + }; + return Val_unit; + #else +- invalid_argument("netsys_close_process"); ++ caml_invalid_argument("netsys_close_process"); + #endif + } + +@@ -1846,10 +1846,10 @@ + CloseHandle(p0->proc); + if (p0->auto_close) + CloseHandle(p0->proc_proxy); +- stat_free(p0); ++ caml_stat_free(p0); + return Val_unit; + #else +- invalid_argument("netsys_close_process"); ++ caml_invalid_argument("netsys_close_process"); + #endif + } + +@@ -1870,7 +1870,7 @@ + uerror("netsys_get_process_status/WaitForSingleObject", Nothing); + }; + if (code != WAIT_OBJECT_0) { +- invalid_argument("netsys_get_process_status [1]"); ++ caml_invalid_argument("netsys_get_process_status [1]"); + }; + /* Now get the status: */ + code = GetExitCodeProcess(p0->proc, &status); +@@ -1882,7 +1882,7 @@ + return Val_int(status); + + #else +- invalid_argument("netsys_get_process_status"); ++ caml_invalid_argument("netsys_get_process_status"); + #endif + } + +@@ -1893,7 +1893,7 @@ + p0 = process_val(pv); + return alloc_event(p0->proc); + #else +- invalid_argument("netsys_as_process_event"); ++ caml_invalid_argument("netsys_as_process_event"); + #endif + } + +@@ -1915,7 +1915,7 @@ + }; + return Val_int(d); + #else +- invalid_argument("netsys_emulated_pid"); ++ caml_invalid_argument("netsys_emulated_pid"); + #endif + } + +@@ -1926,7 +1926,7 @@ + p0 = process_val(pv); + return Val_int(p0->win_pid); + #else +- invalid_argument("netsys_win_pid"); ++ caml_invalid_argument("netsys_win_pid"); + #endif + } + +@@ -1935,7 +1935,7 @@ + #ifdef _WIN32 + return Val_bool(has_console()); + #else +- invalid_argument("netsys_has_console"); ++ caml_invalid_argument("netsys_has_console"); + #endif + } + +@@ -1950,7 +1950,7 @@ + else + return Val_bool(1); + #else +- invalid_argument("netsys_is_console"); ++ caml_invalid_argument("netsys_is_console"); + #endif + } + +@@ -1962,7 +1962,7 @@ + } + return Val_unit; + #else +- invalid_argument("netsys_alloc_console"); ++ caml_invalid_argument("netsys_alloc_console"); + #endif + } + +@@ -2001,7 +2001,7 @@ + + return r; + #else +- invalid_argument("netsys_get_console_attr"); ++ caml_invalid_argument("netsys_get_console_attr"); + #endif + } + +@@ -2060,7 +2060,7 @@ + + return Val_unit; + #else +- invalid_argument("netsys_set_console_attr"); ++ caml_invalid_argument("netsys_set_console_attr"); + #endif + } + +@@ -2092,7 +2092,7 @@ + + return r; + #else +- invalid_argument("netsys_get_console_info"); ++ caml_invalid_argument("netsys_get_console_info"); + #endif + } + +@@ -2146,7 +2146,7 @@ + + return r; + #else +- invalid_argument("netsys_get_console_mode"); ++ caml_invalid_argument("netsys_get_console_mode"); + #endif + } + +@@ -2215,7 +2215,7 @@ + CloseHandle(conout); + return Val_unit; + #else +- invalid_argument("netsys_set_console_mode"); ++ caml_invalid_argument("netsys_set_console_mode"); + #endif + } + +@@ -2224,7 +2224,7 @@ + #ifdef _WIN32 + return Val_int(GetACP()); + #else +- invalid_argument("netsys_getacp"); ++ caml_invalid_argument("netsys_getacp"); + #endif + } + +@@ -2243,7 +2243,7 @@ + } + return Val_unit; + #else +- invalid_argument("netsys_init_console_codepage"); ++ caml_invalid_argument("netsys_init_console_codepage"); + #endif + } + +@@ -2338,7 +2338,7 @@ + + return Val_unit; + #else +- invalid_argument("netsys_clear_console"); ++ caml_invalid_argument("netsys_clear_console"); + #endif + } + +@@ -2347,7 +2347,7 @@ + #ifdef _WIN32 + return caml_copy_int32(GetCurrentThreadId()); + #else +- invalid_argument("netsys_get_current_thread_id"); ++ caml_invalid_argument("netsys_get_current_thread_id"); + #endif + } + +@@ -2394,7 +2394,7 @@ + + return Val_unit; + #else +- invalid_argument("netsys_cancel_synchronous_io"); ++ caml_invalid_argument("netsys_cancel_synchronous_io"); + #endif + } + +@@ -2439,7 +2439,7 @@ + for (/*nothing*/; fdlist != Val_int(0); fdlist = Field(fdlist, 1)) { + s = Field(fdlist, 0); + if (FD_ISSET(Socket_val(s), fdset)) { +- value newres = alloc_small(2, 0); ++ value newres = caml_alloc_small(2, 0); + Field(newres, 0) = s; + Field(newres, 1) = res; + res = newres; +@@ -2471,9 +2471,9 @@ + && writefds == Val_int(0) + && exceptfds == Val_int(0)) { + if ( tm > 0.0 ) { +- enter_blocking_section(); ++ caml_enter_blocking_section(); + Sleep( (int)(tm * 1000)); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + } + read_list = write_list = except_list = Val_int(0); + } else { +@@ -2487,10 +2487,10 @@ + tv.tv_usec = (int) (1e6 * (tm - (int) tm)); + tvp = &tv; + } +- enter_blocking_section(); ++ caml_enter_blocking_section(); + if (select(FD_SETSIZE, &read, &write, &except, tvp) == -1) + err = WSAGetLastError(); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + if (err) { + win32_maperr(err); + uerror("select", Nothing); +@@ -2499,7 +2499,7 @@ + write_list = fdset_to_fdlist(writefds, &write); + except_list = fdset_to_fdlist(exceptfds, &except); + } +- res = alloc_small(3, 0); ++ res = caml_alloc_small(3, 0); + Field(res, 0) = read_list; + Field(res, 1) = write_list; + Field(res, 2) = except_list; +@@ -2507,6 +2507,6 @@ + End_roots(); + return res; + #else +- invalid_argument("netsys_real_select"); ++ caml_invalid_argument("netsys_real_select"); + #endif + } +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_impl_util.ml ocamlnet-4.1.9.patched/src/netsys/netsys_impl_util.ml +--- src/netsys/netsys_impl_util.ml 2021-03-24 16:20:14 ++++ src/netsys/netsys_impl_util.ml 2026-05-29 06:31:44 +@@ -67,7 +67,7 @@ + let rec search l h = + if l < h then ( + let m = (l+h) / 2 in +- let r = Pervasives.compare x a.(m) in ++ let r = compare x a.(m) in + if r = 0 then + true + else +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_pollset_win32.ml ocamlnet-4.1.9.patched/src/netsys/netsys_pollset_win32.ml +--- src/netsys/netsys_pollset_win32.ml 2021-03-24 16:20:14 ++++ src/netsys/netsys_pollset_win32.ml 2026-05-29 06:31:44 +@@ -27,9 +27,9 @@ + let in_arr = Array.of_list in_set in + let out_arr = Array.of_list out_set in + let pri_arr = Array.of_list pri_set in +- Array.sort Pervasives.compare in_arr; +- Array.sort Pervasives.compare out_arr; +- Array.sort Pervasives.compare pri_arr; ++ Array.sort compare in_arr; ++ Array.sort compare out_arr; ++ Array.sort compare pri_arr; + Hashtbl.fold + (fun fd (ev,_) l -> + let m_in = Netsys_impl_util.mem_sorted_array fd in_arr in +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/netsys/netsys_posix.ml ocamlnet-4.1.9.patched/src/netsys/netsys_posix.ml +--- src/netsys/netsys_posix.ml 2021-03-24 16:20:14 ++++ src/netsys/netsys_posix.ml 2026-05-29 06:31:44 +@@ -337,9 +337,9 @@ + let a_inp = Array.of_list o_inp in + let a_out = Array.of_list o_out in + let a_pri = Array.of_list o_pri in +- Array.sort Pervasives.compare a_inp; +- Array.sort Pervasives.compare a_out; +- Array.sort Pervasives.compare a_pri; ++ Array.sort compare a_inp; ++ Array.sort compare a_out; ++ Array.sort compare a_pri; + let n = ref 0 in + for j = 0 to k-1 do + let c = e.(j) in +@@ -679,7 +679,7 @@ + + module PFH = struct + type t = post_fork_handler +- let compare = Pervasives.compare ++ let compare = compare + end + + module PFH_Set = Set.Make(PFH) +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/nettls-gnutls/META.in ocamlnet-4.1.9.patched/src/nettls-gnutls/META.in +--- src/nettls-gnutls/META.in 2021-03-24 16:20:15 ++++ src/nettls-gnutls/META.in 2026-05-29 06:31:44 +@@ -1,5 +1,5 @@ + description = "Ocamlnet - GnuTLS bindings" +-requires = "unix,bigarray,netsys,netstring" ++requires = "unix,netsys,netstring" + version = "@VERSION@" + archive(byte) = "nettls-gnutls.cma" + archive(native) = "nettls-gnutls.cmxa" +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/nettls-gnutls/gnutls.c ocamlnet-4.1.9.patched/src/nettls-gnutls/gnutls.c +--- src/nettls-gnutls/gnutls.c 2021-03-24 16:20:15 ++++ src/nettls-gnutls/gnutls.c 2026-05-29 06:31:44 +@@ -111,26 +111,26 @@ + static gnutls_datum_t unwrap_str_datum(value v) { + gnutls_datum_t d; + d.size = caml_string_length(v); +- d.data = stat_alloc(d.size); ++ d.data = caml_stat_alloc(d.size); + memcpy(d.data, String_val(v), d.size); + return d; + } + + static gnutls_datum_t * unwrap_str_datum_p(value v) { + gnutls_datum_t *d; +- d = stat_alloc(sizeof(gnutls_datum_t)); ++ d = caml_stat_alloc(sizeof(gnutls_datum_t)); + *d = unwrap_str_datum(v); + return d; + } + + static void free_str_datum(gnutls_datum_t d) { +- if (d.data != NULL) { stat_free(d.data); d.data = NULL; }; ++ if (d.data != NULL) { caml_stat_free(d.data); d.data = NULL; }; + } + + static void free_str_datum_p(gnutls_datum_t *d) { + if (d != NULL) { +- if (d->data != NULL) stat_free(d->data); +- stat_free(d); ++ if (d->data != NULL) caml_stat_free(d->data); ++ caml_stat_free(d); + } + } + +@@ -405,7 +405,7 @@ + b_session_callbacks_t cb; + + cb = (b_session_callbacks_t) +- stat_alloc(sizeof(struct b_session_callbacks_st)); ++ caml_stat_alloc(sizeof(struct b_session_callbacks_st)); + cb->session = s; + cb->pull_fun = Val_int(0); + cb->pull_timeout_fun = Val_int(0); +@@ -458,7 +458,7 @@ + caml_remove_generational_global_root(&(cb->db_store_fun)); + caml_remove_generational_global_root(&(cb->db_remove_fun)); + +- stat_free(cb); ++ caml_stat_free(cb); + gnutls_deinit(s); + } + +@@ -484,7 +484,7 @@ + caml_modify_generational_global_root(&(cb->pull_timeout_fun), fun); + return Val_unit; + #else +- invalid_argument("b_set_pull_timeout_callback"); ++ caml_invalid_argument("b_set_pull_timeout_callback"); + #endif + } + +@@ -510,7 +510,7 @@ + caml_modify_generational_global_root(&(cb->verify_fun), fun); + return Val_unit; + #else +- invalid_argument("b_set_verify_callback"); ++ caml_invalid_argument("b_set_verify_callback"); + #endif + } + +@@ -602,7 +602,7 @@ + ); + break; + default: +- failwith("net_gnutls_credentials_set"); ++ caml_failwith("net_gnutls_credentials_set"); + }; + net_gnutls_error_check(error_code); + attach_gnutls_session_t(sess, creds); +@@ -633,7 +633,7 @@ + code = gnutls_x509_crt_list_import(certs, &n, &data, format, + flags | GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED); + if (code == GNUTLS_E_SHORT_MEMORY_BUFFER) { +- certs = (gnutls_x509_crt_t *) stat_alloc(n * sizeof(void *)); ++ certs = (gnutls_x509_crt_t *) caml_stat_alloc(n * sizeof(void *)); + alloc_certs = 1; + code = gnutls_x509_crt_list_import(certs, &n, &data, format, + flags); +@@ -646,7 +646,7 @@ + }; + }; + if (alloc_certs) +- stat_free(certs); ++ caml_stat_free(certs); + net_gnutls_error_check(code); + CAMLreturn(array); + } +@@ -676,7 +676,7 @@ + code = gnutls_x509_crl_list_import(certs, &n, &data, format, + flags | GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED); + if (code == GNUTLS_E_SHORT_MEMORY_BUFFER) { +- certs = (gnutls_x509_crl_t *) stat_alloc(n * sizeof(void *)); ++ certs = (gnutls_x509_crl_t *) caml_stat_alloc(n * sizeof(void *)); + alloc_certs = 1; + code = gnutls_x509_crl_list_import(certs, &n, &data, format, + flags); +@@ -689,11 +689,11 @@ + }; + }; + if (alloc_certs) +- stat_free(certs); ++ caml_stat_free(certs); + net_gnutls_error_check(code); + CAMLreturn(array); + #else +- invalid_argument("gnutls_x509_crl_list_import"); ++ caml_invalid_argument("gnutls_x509_crl_list_import"); + #endif + } + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/nettls-gnutls/gnutls.descr ocamlnet-4.1.9.patched/src/nettls-gnutls/gnutls.descr +--- src/nettls-gnutls/gnutls.descr 2021-03-24 16:20:15 ++++ src/nettls-gnutls/gnutls.descr 2026-05-29 06:31:44 +@@ -560,7 +560,7 @@ + ~options: [ + `Pre("if (data_size__c < 0 || \ + data_size__c > caml_ba_byte_size(Caml_ba_array_val(data))) \ +- invalid_argument(\"gnutls_record_send\");" ++ caml_invalid_argument(\"gnutls_record_send\");" + ) + ] + "error_code/uint gnutls_record_send \ +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/nettls-gnutls/nettle.c ocamlnet-4.1.9.patched/src/nettls-gnutls/nettle.c +--- src/nettls-gnutls/nettle.c 2021-03-24 16:20:15 ++++ src/nettls-gnutls/nettle.c 2026-05-29 06:31:44 +@@ -39,12 +39,12 @@ + static net_nettle_cipher_ctx_t + net_nettle_create_cipher_ctx(net_nettle_cipher_t cipher) { + void *p; +- p = stat_alloc(cipher->context_size); ++ p = caml_stat_alloc(cipher->context_size); + return p; + } + + static void net_nettle_free(void *ctx) { +- stat_free(ctx); ++ caml_stat_free(ctx); + } + + static void net_nettle_destroy_cipher(net_nettle_cipher_t cipher) { +@@ -57,7 +57,7 @@ + const uint8_t *key) { + #ifdef HAVE_NETTLE_SET_KEY_WITH_TWO_ARGS + if (length != cipher->key_size) +- failwith("net_nettl_set_encrypt_key: key has wrong size"); ++ caml_failwith("net_nettl_set_encrypt_key: key has wrong size"); + cipher->set_encrypt_key(ctx, key); + #else + cipher->set_encrypt_key(ctx, length, key); +@@ -71,7 +71,7 @@ + const uint8_t *key) { + #ifdef HAVE_NETTLE_SET_KEY_WITH_TWO_ARGS + if (length != cipher->key_size) +- failwith("net_nettl_set_decrypt_key: key has wrong size"); ++ caml_failwith("net_nettl_set_decrypt_key: key has wrong size"); + cipher->set_decrypt_key(ctx, key); + #else + cipher->set_decrypt_key(ctx, length, key); +@@ -292,7 +292,7 @@ + + static net_nettle_gcm_aes_ctx_t net_nettle_gcm_aes_init(void) { + #ifdef HAVE_NETTLE_GCM_H +- return stat_alloc(sizeof(struct gcm_aes_ctx)); ++ return caml_stat_alloc(sizeof(struct gcm_aes_ctx)); + #else + return NULL; + #endif +@@ -321,7 +321,7 @@ + static net_nettle_hash_ctx_t + net_nettle_create_hash_ctx(net_nettle_hash_t hash) { + void *p; +- p = stat_alloc(hash->context_size); ++ p = caml_stat_alloc(hash->context_size); + return p; + } + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/nettls-gnutls/nettls_gnutls.ml ocamlnet-4.1.9.patched/src/nettls-gnutls/nettls_gnutls.ml +--- src/nettls-gnutls/nettls_gnutls.ml 2021-03-24 16:20:15 ++++ src/nettls-gnutls/nettls_gnutls.ml 2026-05-29 06:31:44 +@@ -4,7 +4,7 @@ + + module StrMap = Map.Make(String) + module StrSet = Set.Make(String) +-module OID = struct type t = Netoid.t let compare = Pervasives.compare end ++module OID = struct type t = Netoid.t let compare = compare end + module OIDMap = Map.Make(OID) + + module type GNUTLS_PROVIDER = +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/nettls-gnutls/reconfigure ocamlnet-4.1.9.patched/src/nettls-gnutls/reconfigure +--- src/nettls-gnutls/reconfigure 2021-03-24 16:20:15 ++++ src/nettls-gnutls/reconfigure 2026-05-29 06:31:44 +@@ -216,10 +216,10 @@ + + rm -f config_checks.sh + echo "$ ocaml -I ../../tools gnutls.descr" >>$log +-ocaml -I ../../tools gnutls.descr || exit 1 ++ocaml -I +str -I ../../tools gnutls.descr || exit 1 + + echo "$ ocaml -I ../../tools nettle.descr" >>$log +-ocaml -I ../../tools nettle.descr || exit 1 ++ocaml -I +str -I ../../tools nettle.descr || exit 1 + + init_checks + . ./config_checks.sh +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/rpc/rpc_client.ml ocamlnet-4.1.9.patched/src/rpc/rpc_client.ml +--- src/rpc/rpc_client.ml 2021-03-24 16:20:15 ++++ src/rpc/rpc_client.ml 2026-05-29 06:31:44 +@@ -49,7 +49,7 @@ + + module SessionUint4 = struct + type t = uint4 +- let compare = (Pervasives.compare : uint4 -> uint4 -> int) ++ let compare = (compare : uint4 -> uint4 -> int) + end + + module SessionMap = +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/rpc/rpc_proxy.ml ocamlnet-4.1.9.patched/src/rpc/rpc_proxy.ml +--- src/rpc/rpc_proxy.ml 2021-03-24 16:20:15 ++++ src/rpc/rpc_proxy.ml 2026-05-29 06:31:44 +@@ -414,7 +414,7 @@ + | `Up up -> up.serial + + let compare mc1 mc2 = +- Pervasives.compare mc1.id mc2.id ++ compare mc1.id mc2.id + + let pending_calls mc = + mc.pending_calls +@@ -1037,7 +1037,7 @@ + (* Sort the services by total load first: *) + Array.sort + (fun j1 j2 -> +- Pervasives.compare ++ compare + mset.total_load.(j1) + mset.total_load.(j2) + ) +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/rpc-auth-local/rpclocal.c ocamlnet-4.1.9.patched/src/rpc-auth-local/rpclocal.c +--- src/rpc-auth-local/rpclocal.c 2021-03-24 16:20:15 ++++ src/rpc-auth-local/rpclocal.c 2026-05-29 06:31:44 +@@ -12,6 +12,7 @@ + #include "caml/alloc.h" + #include "caml/memory.h" + #include "caml/fail.h" ++#include "caml/unixsupport.h" + + #ifndef _WIN32 + #include +@@ -30,16 +31,7 @@ + + + /**********************************************************************/ +-/* From unixsupport.h */ +-/**********************************************************************/ + +-#define Nothing ((value) 0) +- +-extern void unix_error (int errcode, char * cmdname, value arg) Noreturn; +-extern void uerror (char * cmdname, value arg) Noreturn; +- +-/**********************************************************************/ +- + /* Inspired by PostgreSQL's fe-connect.c */ + + value netsys_get_peer_credentials(value fd) { +@@ -58,7 +50,7 @@ + /* BSD, AIX, Cygwin */ + /* http://cr.yp.to/docs/secureipc.html */ + if (getpeereid(Int_val(fd), &uid, &gid) != 0) { +- uerror("getpeereid", Nothing); ++ caml_uerror("getpeereid", Nothing); + } + + #elif defined(SO_PEERCRED) +@@ -73,7 +65,7 @@ + SO_PEERCRED, + &credentials, + &len) == -1) { +- uerror("getsockopt",Nothing); ++ caml_uerror("getsockopt",Nothing); + }; + uid = credentials.uid; /* Effective user ID */ + gid = credentials.gid; /* Effective group ID */ +@@ -84,24 +76,24 @@ + ucred_t *ucred; + ucred = NULL; /* must be initialized to NULL */ + if (getpeerucred(Int_val(fd), &ucred) == -1) { +- uerror("getpeerucred",Nothing); ++ caml_uerror("getpeerucred",Nothing); + }; + if ((uid = ucred_geteuid(ucred)) == -1) { +- uerror("ucred_geteuid",Nothing); ++ caml_uerror("ucred_geteuid",Nothing); + ucred_free(ucred); + }; + if ((gid = ucred_getegid(ucred)) == -1) { +- uerror("ucred_getegid",Nothing); ++ caml_uerror("ucred_getegid",Nothing); + ucred_free(ucred); + }; + ucred_free(ucred); + } + #else +- invalid_argument("get_peer_credentials"); ++ caml_invalid_argument("get_peer_credentials"); + #endif + + /* Allocate a pair, and put the result into it: */ +- result = alloc_tuple(2); ++ result = caml_alloc_tuple(2); + Store_field(result, 0, Val_int(uid)); + Store_field(result, 1, Val_int(gid)); + +@@ -140,7 +132,7 @@ + SO_PASSCRED, + &one, + sizeof(one)) < 0) { +- uerror("setsockopt", Nothing); ++ caml_uerror("setsockopt", Nothing); + }; + + memset(&msg, 0, sizeof msg); +@@ -160,7 +152,7 @@ + */ + + if (recvmsg(Int_val(fd), &msg, MSG_PEEK) < 0) { +- uerror("recvmsg", Nothing); ++ caml_uerror("recvmsg", Nothing); + }; + + if (msg.msg_controllen == 0 || +@@ -201,12 +193,12 @@ + LOCAL_CREDS, + &one, + sizeof(one)) < 0) { +- uerror("setsockopt", Nothing); ++ caml_uerror("setsockopt", Nothing); + }; + + memset(&msg, 0, sizeof msg); + crmsgsize = CMSG_SPACE(SOCKCREDSIZE(NGROUPS_MAX)); +- crmsg = stat_alloc(crmsgsize); ++ crmsg = caml_stat_alloc(crmsgsize); + + memset(crmsg, 0, crmsgsize); + msg.msg_control = crmsg; +@@ -218,19 +210,19 @@ + iov.iov_len = 1; + + if (recvmsg(Int_val(fd), &msg, MSG_PEEK) < 0) { +- stat_free(crmsg); +- uerror("recvmsg", Nothing); ++ caml_stat_free(crmsg); ++ caml_uerror("recvmsg", Nothing); + }; + + if (msg.msg_controllen == 0 || + (msg.msg_flags & MSG_CTRUNC) != 0) { +- stat_free(crmsg); ++ caml_stat_free(crmsg); + raise_not_found(); + }; + cmp = CMSG_FIRSTHDR(&msg); + if (cmp->cmsg_level != SOL_SOCKET || + cmp->cmsg_type != SCM_CREDS) { +- stat_free(crmsg); ++ caml_stat_free(crmsg); + raise_not_found(); + }; + +@@ -241,12 +233,12 @@ + free(crmsg); + } + #else +- invalid_argument("peek_peer_credentials"); ++ caml_invalid_argument("peek_peer_credentials"); + #endif + #endif + + /* Allocate a pair, and put the result into it: */ +- result = alloc_tuple(2); ++ result = caml_alloc_tuple(2); + Store_field(result, 0, Val_int(uid)); + Store_field(result, 1, Val_int(gid)); + +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/shell/shell.ml ocamlnet-4.1.9.patched/src/shell/shell.ml +--- src/shell/shell.ml 2021-03-24 16:20:15 ++++ src/shell/shell.ml 2026-05-29 06:31:44 +@@ -111,8 +111,8 @@ + let from_string ?pos ?len ?epipe s = + P_fun (Shell_sys.from_string ?pos:pos ?len:len ?epipe:epipe s);; + +-let from_stream ?epipe s = +- P_fun (Shell_sys.from_stream ?epipe:epipe s);; ++let from_seq ?epipe s = ++ P_fun (Shell_sys.from_seq ?epipe:epipe s);; + + let from_function ~producer () = + P_fun producer;; +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/shell/shell.mli ocamlnet-4.1.9.patched/src/shell/shell.mli +--- src/shell/shell.mli 2021-03-24 16:20:15 ++++ src/shell/shell.mli 2026-05-29 06:31:44 +@@ -237,11 +237,11 @@ + * always caught, and implicitly handled by closing the pipeline. + *) + +-val from_stream : ++val from_seq : + ?epipe:(unit -> unit) -> (* default: empty function *) +- string Stream.t -> ++ string Seq.t -> + producer +- (** Creates a producer taking the data from a stream of strings. ++ (** Creates a producer taking the data from a sequence of strings. + * After the data are sent, the pipeline is closed. + * + * @param epipe This function is called when the pipeline breaks +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/shell/shell_sys.ml ocamlnet-4.1.9.patched/src/shell/shell_sys.ml +--- src/shell/shell_sys.ml 2021-03-24 16:20:15 ++++ src/shell/shell_sys.ml 2026-05-29 06:31:44 +@@ -82,7 +82,7 @@ + try + let k = ref 0 in + iter_env_vars +- (fun v' x' -> ++ ~f:(fun v' x' -> + if v' = v then begin + !e.(!k) <- v ^ "=" ^ x; + raise Exit +@@ -100,7 +100,7 @@ + let x = ref "" in + try + iter_env_vars +- (fun v' x' -> ++ ~f:(fun v' x' -> + if v' = v then begin + x := x'; + raise Exit +@@ -335,7 +335,7 @@ + ;; + + let dummy_process = +- { p_command = command "XXX" (); ++ { p_command = command ~filename:"XXX" (); + p_id = `Dummy; + p_gid = 0; + p_status = Some (Unix.WEXITED 0); +@@ -1103,7 +1103,7 @@ + from_tstring ?pos ?len ?epipe (`String s) + + +-let from_stream ++let from_seq + ?(epipe = fun () -> ()) + s = + let current_el = ref None in +@@ -1112,6 +1112,8 @@ + let fd_style = ref `Read_write in + let fd_style_set = ref false in + ++ let stream = ref s in ++ + function fd -> + if not !fd_style_set then ( + fd_style := Netsys.get_fd_style fd; +@@ -1120,14 +1122,15 @@ + (* If necessary, try to get the next stream element: *) + begin match !current_el with + None -> +- begin try +- let x = Stream.next s in +- current_el := Some x; +- current_pos := 0; +- with +- Stream.Failure -> +- () +- end ++ begin ++ match !stream() with ++ | Seq.Nil -> ++ () ++ | Cons(x, tail) -> ++ stream := tail; ++ current_el := Some x; ++ current_pos := 0; ++ end + | _ -> + () + end; +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/src/shell/shell_sys.mli ocamlnet-4.1.9.patched/src/shell/shell_sys.mli +--- src/shell/shell_sys.mli 2021-03-24 16:20:15 ++++ src/shell/shell_sys.mli 2026-05-29 06:31:44 +@@ -417,13 +417,13 @@ + (Unix.file_descr -> bool) + (** Same for tagged strings *) + +-val from_stream : ++val from_seq : + ?epipe:(unit -> unit) -> (* default: empty function *) +- string Stream.t -> ++ string Seq.t -> + (Unix.file_descr -> bool) +- (** [from_stream ?epipe s] returns a function which can be ++ (** [from_seq ?epipe s] returns a function which can be + * used as [producer] argument for [add_producer]. The data transferred +- * to the subprocess is taken from the string stream [s]. After these data ++ * to the subprocess is taken from the string sequence [s]. After these data + * are sent, the pipeline is closed. + * + * @param epipe This function is called when the pipeline breaks +@@ -431,7 +431,7 @@ + * always caught, and implicitly handled by closing the pipeline. + *) + +-val add_consumer : ++val add_consumer : + ?descr:Unix.file_descr -> (* default: stdout *) + consumer:(Unix.file_descr -> bool) -> + command -> +diff -ruN --no-dereference --exclude=*.rej --exclude=*.orig --exclude=*.c.orig ocamlnet-4.1.9.clean/tools/stubgen.ml ocamlnet-4.1.9.patched/tools/stubgen.ml +--- tools/stubgen.ml 2021-03-24 16:20:13 ++++ tools/stubgen.ml 2026-05-29 06:31:44 +@@ -447,7 +447,7 @@ + fprintf c " CAMLparam0();\n"; + fprintf c " CAMLlocal2(v,r);\n"; + if not abs.abs_nullok then +- fprintf c " if (x == NULL) failwith(\"wrap_%s: NULL pointer\");\n" tyname; ++ fprintf c " if (x == NULL) caml_failwith(\"wrap_%s: NULL pointer\");\n" tyname; + fprintf c " v = caml_alloc_custom(&abs_%s_ops, \ + sizeof(struct absstruct_%s), 0, 1);\n" + tyname tyname; +@@ -503,10 +503,10 @@ + try + let l = String.length n in + let p = String.index n '|' in +- String.capitalize (String.lowercase (String.sub n (p+1) (l-p-1))) ++ String.capitalize_ascii (String.lowercase_ascii (String.sub n (p+1) (l-p-1))) + with + | Not_found -> +- String.capitalize (String.lowercase n) ++ String.capitalize_ascii (String.lowercase_ascii n) + + + let is_opt_case n = +@@ -550,7 +550,7 @@ + cases; + fprintf c " default: break;\n"; + fprintf c " };\n"; +- fprintf c " failwith(\"wrap_%s: unexpected value\");\n" tyname; ++ fprintf c " caml_failwith(\"wrap_%s: unexpected value\");\n" tyname; + fprintf c "}\n\n"; + + fprintf c "static %s unwrap_%s(value v) {\n" tyname tyname; +@@ -568,9 +568,9 @@ + fprintf c "#endif\n" + ) + cases; +- fprintf c " default: invalid_argument(\"unwrap_%s\");\n" tyname; ++ fprintf c " default: caml_invalid_argument(\"unwrap_%s\");\n" tyname; + fprintf c " };\n"; +- fprintf c " failwith(\"unwrap_%s: unexpected value\");\n" tyname; ++ fprintf c " caml_failwith(\"unwrap_%s: unexpected value\");\n" tyname; + fprintf c "}\n"; + + if optional then +@@ -983,7 +983,7 @@ + let i1 = new_local() in + c_decls := sprintf "long %s;" i1 :: !c_decls; + let code1 = +- [ sprintf "%s = (%s) stat_alloc(Wosize_val(%s)*sizeof(%s));" ++ [ sprintf "%s = (%s) caml_stat_alloc(Wosize_val(%s)*sizeof(%s));" + n1 c_ty n el_c_ty; + sprintf "for (%s=0; %s < Wosize_val(%s); %s++) {" + i1 i1 n i1; +@@ -1000,7 +1000,7 @@ + sprintf "};" + ] + else []) @ +- [ sprintf "stat_free(%s);" n1 ] in ++ [ sprintf "caml_stat_free(%s);" n1 ] in + c_code_post_prio := List.rev code2 @ !c_code_post_prio; + | `Array_size(n_array, ty) -> + let code = +@@ -1358,14 +1358,14 @@ + fprintf c " long n__stub;\n"; + fprintf c " %s__c++;\n" n_strbuf_size; + fprintf c " n__stub = %s__c;\n" n_strbuf_size; +- fprintf c " %s__c = stat_alloc(%s__c+1);\n" n_strbuf n_strbuf_size; ++ fprintf c " %s__c = caml_stat_alloc(%s__c+1);\n" n_strbuf n_strbuf_size; + fprintf c " "; + emit_call(); + fprintf c " if (%s == 0) {\n" ret_var; + fprintf c " ((char *) %s__c)[n__stub] = 0;\n" n_strbuf; + fprintf c " %s = caml_copy_string(%s__c);\n" n_strbuf n_strbuf; + fprintf c " };\n"; +- fprintf c " stat_free(%s__c);\n" n_strbuf; ++ fprintf c " caml_stat_free(%s__c);\n" n_strbuf; + fprintf c " };\n"; + ) + else ( +@@ -1414,7 +1414,7 @@ + + if optional then ( + fprintf c "#else\n"; +- fprintf c " invalid_argument(\"%s\");\n" name; ++ fprintf c " caml_invalid_argument(\"%s\");\n" name; + fprintf c "#endif\n"; + ); + +@@ -1483,7 +1483,7 @@ + + let gen_c_head2 c = + fprintf c "static unsigned int uint_val(value v) {\n\ +- \032 if (Int_val(v) < 0) invalid_argument(\"negative integer\");\n\ ++ \032 if (Int_val(v) < 0) caml_invalid_argument(\"negative integer\");\n\ + \032 return (unsigned int) Int_val(v);\n\ + }\n\ + \n\ diff --git a/ocaml/ocaml-ocf/Portfile b/ocaml/ocaml-ocf/Portfile new file mode 100644 index 00000000000..db34d4b9fef --- /dev/null +++ b/ocaml/ocaml-ocf/Portfile @@ -0,0 +1,41 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + +PortSystem 1.0 +PortGroup ocaml 1.1 + +name ocaml-ocf +version 1.0.0 +revision 0 +categories ocaml devel +maintainers {pguyot @pguyot} openmaintainer +license GPL-3 + +description OCaml library to read and write configuration files in JSON syntax +long_description {*}${description} + +homepage https://zoggy.frama.io/ocf/ +master_sites ${homepage}releases/ + +distname ocf-${version} + +use_bzip2 yes + +checksums rmd160 22ee60caa9cac1f6179f185947eb32a31f955c84 \ + sha256 5e463d8f008ca20c273c03934161f44c5b62ae65dc37015f23506fcf9c012db4 \ + size 14091 + +depends_lib-append port:ocaml-yojson + +ocaml.build_type dune + +subport ocaml-ocf_ppx { + description Preprocessor for the Ocf library + long_description {*}${description} + + depends_lib-append port:ocaml-ocf \ + port:ocaml-ppxlib +} + +livecheck.type regex +livecheck.url https://framagit.org/zoggy/ocf/-/tags +livecheck.regex {ocf-(\d+\.\d+\.\d+)\.tar} diff --git a/ocaml/ocaml-ocp-indent/Portfile b/ocaml/ocaml-ocp-indent/Portfile index dacccc1aca4..3480ac3540c 100644 --- a/ocaml/ocaml-ocp-indent/Portfile +++ b/ocaml/ocaml-ocp-indent/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-ocp-indent github.setup OCamlPro ocp-indent 1.9.0 -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license MIT diff --git a/ocaml/ocaml-ocplib-endian/Portfile b/ocaml/ocaml-ocplib-endian/Portfile index a5f77aae5a8..220047a2b57 100644 --- a/ocaml/ocaml-ocplib-endian/Portfile +++ b/ocaml/ocaml-ocplib-endian/Portfile @@ -6,6 +6,7 @@ PortGroup ocaml 1.1 name ocaml-ocplib-endian github.setup OCamlPro ocplib-endian 1.2 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-optint/Portfile b/ocaml/ocaml-optint/Portfile index 6e5685c00d7..946373fc69e 100644 --- a/ocaml/ocaml-optint/Portfile +++ b/ocaml/ocaml-optint/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-optint github.setup mirage optint 0.3.0 v -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license ISC diff --git a/ocaml/ocaml-ounit2/Portfile b/ocaml/ocaml-ounit2/Portfile index 1754662da5a..da7ffec1ede 100644 --- a/ocaml/ocaml-ounit2/Portfile +++ b/ocaml/ocaml-ounit2/Portfile @@ -8,7 +8,7 @@ name ocaml-ounit2 github.setup gildor478 ounit 2.2.7 v # Change github.tarball_from to 'releases' or 'archive' next update github.tarball_from tarball -revision 0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-parmap/Portfile b/ocaml/ocaml-parmap/Portfile index 617edd28f9f..0c3b5192cda 100644 --- a/ocaml/ocaml-parmap/Portfile +++ b/ocaml/ocaml-parmap/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-parmap github.setup rdicosmo parmap 1.2.5 -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer diff --git a/ocaml/ocaml-parsexp/Portfile b/ocaml/ocaml-parsexp/Portfile index a5bd25119c2..66aa86e97d4 100644 --- a/ocaml/ocaml-parsexp/Portfile +++ b/ocaml/ocaml-parsexp/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-parsexp -github.setup janestreet parsexp 0.16.0 v -revision 1 +github.setup janestreet parsexp 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description S-expression parser long_description ${description} -checksums rmd160 9066df8a00da2e65033eedc23e724afbd09a1fc4 \ - sha256 859db54b077f606ce550dfac468c399f3a14d32a4ac60da166d403fe57836e9f \ - size 56904 +checksums rmd160 441a051ad376ac7a351c6cfcd3f531b632c943c4 \ + sha256 a3d10edbc4f98d16357b644d550fd1c06f4d9aa4990ab8ee6da01276c24d55b5 \ + size 58505 github.tarball_from archive depends_lib-append port:ocaml-sexplib0 diff --git a/ocaml/ocaml-patdiff/Portfile b/ocaml/ocaml-patdiff/Portfile index d5e3e7f9355..8140e5da515 100644 --- a/ocaml/ocaml-patdiff/Portfile +++ b/ocaml/ocaml-patdiff/Portfile @@ -5,8 +5,8 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-patdiff -github.setup janestreet patdiff 0.16.0 v -revision 1 +github.setup janestreet patdiff 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT @@ -14,9 +14,9 @@ description Colored patience diffs with word-level refinement long_description Patdiff is an OCaml implementation of Bram Cohenʼs patience diff algorithm, \ with a few extra conveniences for comparing code and config files. -checksums rmd160 aed4c226662123f9496ce43b1d7578c72364887e \ - sha256 6ad2774361abf60165eb51c339b928f6f221dfdf81ca7d3c552665b3dd6debdd \ - size 225561 +checksums rmd160 bbb18aa37e6445515ba977f82cb430f2ec70369b \ + sha256 f4f2b060ea39870e238f5be744e84d1d8030864a02f8fc2368866e4d3d7e1b72 \ + size 237574 github.tarball_from archive depends_lib-append port:ocaml-core \ diff --git a/ocaml/ocaml-patience_diff/Portfile b/ocaml/ocaml-patience_diff/Portfile index 2afe32357e2..825500f126f 100644 --- a/ocaml/ocaml-patience_diff/Portfile +++ b/ocaml/ocaml-patience_diff/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-patience_diff -github.setup janestreet patience_diff 0.16.0 v -revision 1 +github.setup janestreet patience_diff 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Tool and library implementing patience diff long_description Diff library using Bram Cohenʼs patience diff algorithm. -checksums rmd160 61603e73ea6a73c6c38cec1bd2a6938608eb0439 \ - sha256 4af5d390fb7bffe1bc0f874ee6f71ce549273afc6c6ee3b27688ff0ef8456f5a \ - size 22756 +checksums rmd160 ee3ae709f70fce7a8fe459e688ec3bb06916d693 \ + sha256 c1f04f48a1d374053f9014407e1baf20dab17d8b1228ea0c3e4f9c6a29f03a4c \ + size 24963 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-pcre/Portfile b/ocaml/ocaml-pcre/Portfile index b54f246d301..f51155015a9 100644 --- a/ocaml/ocaml-pcre/Portfile +++ b/ocaml/ocaml-pcre/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-pcre github.setup mmottl pcre-ocaml 7.5.0 -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license LGPL-2.1 diff --git a/ocaml/ocaml-pcre2/Portfile b/ocaml/ocaml-pcre2/Portfile index cf003962b74..879b0c2292b 100644 --- a/ocaml/ocaml-pcre2/Portfile +++ b/ocaml/ocaml-pcre2/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 github.setup camlp5 pcre2-ocaml 8.0.4 name ocaml-pcre2 -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer # Actually LGPL-2.1 with a permissive exception diff --git a/ocaml/ocaml-pp_loc/Portfile b/ocaml/ocaml-pp_loc/Portfile index 3aee00b467e..d979240d4e0 100644 --- a/ocaml/ocaml-pp_loc/Portfile +++ b/ocaml/ocaml-pp_loc/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-pp_loc github.setup Armael pp_loc 2.1.0 v -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license MIT diff --git a/ocaml/ocaml-pprint/Portfile b/ocaml/ocaml-pprint/Portfile index e0fca88c287..f95de826199 100644 --- a/ocaml/ocaml-pprint/Portfile +++ b/ocaml/ocaml-pprint/Portfile @@ -6,6 +6,7 @@ PortGroup ocaml 1.1 name ocaml-pprint github.setup fpottier pprint 20230830 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-ppx_assert/Portfile b/ocaml/ocaml-ppx_assert/Portfile index 3d30890f1f0..d24becbc177 100644 --- a/ocaml/ocaml-ppx_assert/Portfile +++ b/ocaml/ocaml-ppx_assert/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_assert -github.setup janestreet ppx_assert 0.16.0 v -revision 2 +github.setup janestreet ppx_assert 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Extension nodes to compare value and raise useful errors if they differ long_description ${description} -checksums rmd160 be04c70fa53cda0f8cf19da5423bdb84db3e10a7 \ - sha256 265ab1ea89526044728db6b035db76897749a1f3b136353acbb601559fafb065 \ - size 7419 +checksums rmd160 96598f2d497266bdb74e806a7509c7582b946ee1 \ + sha256 94c47289a6393642b1cca7d2cdb8decdbf387c3cee4faf50d9b00efc871cce8b \ + size 7495 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_base/Portfile b/ocaml/ocaml-ppx_base/Portfile index dcc81ba8603..5bc7a6f643a 100644 --- a/ocaml/ocaml-ppx_base/Portfile +++ b/ocaml/ocaml-ppx_base/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_base -github.setup janestreet ppx_base 0.16.0 v -revision 2 +github.setup janestreet ppx_base 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Base set of ppx rewriters long_description ${description} -checksums rmd160 a231f83647aba87f459cc67dbaf8645b4703b52a \ - sha256 cea0e5a30a99a8b182fcd0f67d676bd554759b34f46b78e349530eea3f49d02e \ - size 2996 +checksums rmd160 82241ba9d1af87475061d792f393287faa81ada8 \ + sha256 80e7e6c6a704114d1d0989ee9bc01bca45278096c0caf3f2c4ef28d3c12ae61c \ + size 3047 github.tarball_from archive depends_lib-append port:ocaml-ppx_cold \ diff --git a/ocaml/ocaml-ppx_bench/Portfile b/ocaml/ocaml-ppx_bench/Portfile index 99c27044ae4..808b8843c28 100644 --- a/ocaml/ocaml-ppx_bench/Portfile +++ b/ocaml/ocaml-ppx_bench/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_bench -github.setup janestreet ppx_bench 0.16.0 v -revision 2 +github.setup janestreet ppx_bench 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Syntax extension for writing in-line benchmarks in OCaml code long_description ${description} -checksums rmd160 1df9df6c9177185119dfe48e8e7ee934d5551d3e \ - sha256 0e6cb46edad0a5e405081ddb187e9e254bec01364f7e2923e55bea0e0c3e1dbd \ - size 9555 +checksums rmd160 ae17e9355f2115af771fd45148b4a1bb7da0790b \ + sha256 e5c120bf63446bff8bc87e9613160e53d54d4fd3c2e27ad5551812bc62e99b8d \ + size 9650 github.tarball_from archive depends_lib-append port:ocaml-ppxlib \ diff --git a/ocaml/ocaml-ppx_bin_prot/Portfile b/ocaml/ocaml-ppx_bin_prot/Portfile index 23f2996623b..26c5ea9cb35 100644 --- a/ocaml/ocaml-ppx_bin_prot/Portfile +++ b/ocaml/ocaml-ppx_bin_prot/Portfile @@ -5,22 +5,23 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_bin_prot -github.setup janestreet ppx_bin_prot 0.16.0 v -revision 2 +github.setup janestreet ppx_bin_prot 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Generation of binary serialization and deserialization functions from type definitions long_description ${description} -checksums rmd160 38cd8c3ba68c238d92dbde27313d915f54badbda \ - sha256 4a6463fb398d5f6476563e10a8ebbe22f0bbb1496022145d59e593a4ae2cbbed \ - size 37632 +checksums rmd160 4fc56e3a1c58760af5cbe54384d3e5b6fa1f1435 \ + sha256 a60d0534c7b93006c887fca5ed404f1221d8deb4026b50350221ac719e034013 \ + size 39491 github.tarball_from archive depends_lib-append port:ocaml-base \ port:ocaml-bin_prot \ port:ocaml-ppx_here \ - port:ocaml-ppxlib + port:ocaml-ppxlib \ + port:ocaml-ppxlib_jane ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_blob/Portfile b/ocaml/ocaml-ppx_blob/Portfile index 6ad9e39e1fa..440f3cf466a 100644 --- a/ocaml/ocaml-ppx_blob/Portfile +++ b/ocaml/ocaml-ppx_blob/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 name ocaml-ppx_blob version 0.9.0 -revision 2 +revision 3 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license Unlicense diff --git a/ocaml/ocaml-ppx_cold/Portfile b/ocaml/ocaml-ppx_cold/Portfile index c2c8f2f7386..809db30f436 100644 --- a/ocaml/ocaml-ppx_cold/Portfile +++ b/ocaml/ocaml-ppx_cold/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_cold -github.setup janestreet ppx_cold 0.16.0 v -revision 2 +github.setup janestreet ppx_cold 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Expands cold attribute long_description {*}${description} -checksums rmd160 a9b2981e4346a4f6d79dc6533fbab0727cc7108d \ - sha256 6ce67b0160db2d81bb1394d29453d15b9348a748233ca6cf6b053dea31601e68 \ - size 3814 +checksums rmd160 5d3cf1bd4cde6677f9b308b23789651aeb29630e \ + sha256 670ee6f4efef2020a4bedf91b72cc2cd97ea0d74b47dad2f8f6b72d722a7452d \ + size 3763 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_compare/Portfile b/ocaml/ocaml-ppx_compare/Portfile index d1baef84a8f..9ba6bc66818 100644 --- a/ocaml/ocaml-ppx_compare/Portfile +++ b/ocaml/ocaml-ppx_compare/Portfile @@ -5,20 +5,21 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_compare -github.setup janestreet ppx_compare 0.16.0 v -revision 2 +github.setup janestreet ppx_compare 0.17.0 v +revision 0 categories ocaml maintainers nomaintainer license MIT description Generation of fast comparison and equality functions from type expressions and definitions long_description {*}${description} -checksums rmd160 acca9159584bbcde8cbd6799b6f5b13b2c7e5472 \ - sha256 248f4d9dbf22b2f529341c6533c9d41ad34a1d0dadbfd1cbf406e68d81208abd \ - size 14041 +checksums rmd160 e45edb58355700c1a4a644faf157de91462b38e9 \ + sha256 f0b23eb78082ef4dc71a66939bbc63c6b0cc2cf6a4744a906b7a2c016cbe3098 \ + size 16468 github.tarball_from archive depends_lib-append port:ocaml-base \ - port:ocaml-ppxlib + port:ocaml-ppxlib \ + port:ocaml-ppxlib_jane ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_custom_printf/Portfile b/ocaml/ocaml-ppx_custom_printf/Portfile index 2c07ff12837..b6c550db38a 100644 --- a/ocaml/ocaml-ppx_custom_printf/Portfile +++ b/ocaml/ocaml-ppx_custom_printf/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_custom_printf -github.setup janestreet ppx_custom_printf 0.16.0 v -revision 2 +github.setup janestreet ppx_custom_printf 0.17.0 v +revision 0 categories ocaml maintainers nomaintainer license MIT description Extensions to printf-style format-strings for user-defined string conversion long_description ${description} -checksums rmd160 b77b8fd7f3aeb7e02d3b42cce1ec775266282c05 \ - sha256 6f1d36859077c061b92934bd9127b2cae008365db922385ecf4ce9780e7ef627 \ - size 9729 +checksums rmd160 192550d2b4359c5d86555ef613911b9c41048072 \ + sha256 cd3cf73c31f6b0e18677ce92ce0e6f866b0596d5ea1fc540212c422930a730a0 \ + size 9776 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_derivers/Portfile b/ocaml/ocaml-ppx_derivers/Portfile index 94b4dbb582b..f3cf4ef6874 100644 --- a/ocaml/ocaml-ppx_derivers/Portfile +++ b/ocaml/ocaml-ppx_derivers/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-ppx_derivers github.setup ocaml-ppx ppx_derivers 1.2.1 -revision 3 +revision 4 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-ppx_deriving/Portfile b/ocaml/ocaml-ppx_deriving/Portfile index a3b4b8815f4..2073e00fbd9 100644 --- a/ocaml/ocaml-ppx_deriving/Portfile +++ b/ocaml/ocaml-ppx_deriving/Portfile @@ -5,8 +5,8 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_deriving -github.setup ocaml-ppx ppx_deriving 6.0.2 v -revision 1 +github.setup ocaml-ppx ppx_deriving 6.1.1 v +revision 0 categories ocaml devel maintainers {landonf @landonf} openmaintainer @@ -16,9 +16,9 @@ long_description Common infrastructure for generating OCaml code based \ on type definitions, and a set of useful plugins for \ common tasks. -checksums rmd160 1c3d0bffce03e5ebc03410fe0fb5f8107bf9c44c \ - sha256 a76c39e2ec47a1dec804eeeb3d6300ec8d41166b8f7c29dbebf02ad21073ce40 \ - size 48443 +checksums rmd160 5df257a47f698c7604f40014ff2c45ac643e4078 \ + sha256 6fab6e1e894207db268f2103beba5ec9cdc10c066f6ed4f12e748ce97b027757 \ + size 48740 github.tarball_from archive ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_deriving_yojson/Portfile b/ocaml/ocaml-ppx_deriving_yojson/Portfile index 6edf50e04aa..7f32e269fd0 100644 --- a/ocaml/ocaml-ppx_deriving_yojson/Portfile +++ b/ocaml/ocaml-ppx_deriving_yojson/Portfile @@ -5,7 +5,7 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_deriving_yojson -github.setup whitequark ppx_deriving_yojson 3.7.0 v +github.setup ocaml-ppx ppx_deriving_yojson 3.10.0 v revision 1 categories ocaml devel @@ -16,9 +16,9 @@ long_description An OCaml ppx_deriving plugin that generates JSON serializers deserializers using the Yjoson library. distname ${version} -checksums rmd160 13a7475844844f0c5e21ed837ce80c251bda3293 \ - sha256 bd1bf64e61f29252b9a95cf5a06e2708550a1f846d3c64a835f6e90de9f9fbc0 \ - size 20027 +checksums rmd160 52eafd842b1fdf635ab7df001b4870942c4c81c4 \ + sha256 669a06f573024b5517abb1a89f0cc6eea4a217cb4f17de6cfe618001cbe7df20 \ + size 21122 github.tarball_from archive ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_diff/Portfile b/ocaml/ocaml-ppx_diff/Portfile new file mode 100644 index 00000000000..a205f7c1a7b --- /dev/null +++ b/ocaml/ocaml-ppx_diff/Portfile @@ -0,0 +1,29 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + +PortSystem 1.0 +PortGroup github 1.0 +PortGroup ocaml 1.1 + +name ocaml-ppx_diff +github.setup janestreet ppx_diff 0.17.1 v +revision 0 +categories ocaml devel +maintainers nomaintainer +license MIT +description PPX rewriter that generates the implementation of Ldiffable.S +long_description {*}${description}. Generates diffs and update functions for OCaml types. + +checksums rmd160 0658762f11d9d6cf4631f24f6c9081eb8a034b9c \ + sha256 2756c10512d8b4ce1072fe4d625a057a5e926b8c75ccd73929e6be6992e9954f \ + size 51247 +github.tarball_from archive + +depends_lib-append port:ocaml-base \ + port:ocaml-gel \ + port:ocaml-ppx_compare \ + port:ocaml-ppx_enumerate \ + port:ocaml-ppx_jane \ + port:ocaml-ppxlib \ + port:ocaml-ppxlib_jane + +ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_disable_unused_warnings/Portfile b/ocaml/ocaml-ppx_disable_unused_warnings/Portfile index a8858e2c04e..185ffdb645b 100644 --- a/ocaml/ocaml-ppx_disable_unused_warnings/Portfile +++ b/ocaml/ocaml-ppx_disable_unused_warnings/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_disable_unused_warnings -github.setup janestreet ppx_disable_unused_warnings 0.16.0 v -revision 2 +github.setup janestreet ppx_disable_unused_warnings 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Extension that disables many OCaml compiler warnings long_description ${description} -checksums rmd160 54d50868b1c7586bfb2879cba1dacb650ff52754 \ - sha256 08373b67743db84274b76e7fdcd3a71e35adffa677d91a99668aa00fb399f308 \ - size 4004 +checksums rmd160 4c9e40f9b29360ece6aa404cd2681f3e88d556a1 \ + sha256 af5dfa6bb51aa90f5c322ab4920fb46583cffc9460f583439afb2ef851310fbf \ + size 4028 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_enumerate/Portfile b/ocaml/ocaml-ppx_enumerate/Portfile index 9637f15efc4..45eb6939094 100644 --- a/ocaml/ocaml-ppx_enumerate/Portfile +++ b/ocaml/ocaml-ppx_enumerate/Portfile @@ -5,20 +5,21 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_enumerate -github.setup janestreet ppx_enumerate 0.16.0 v -revision 2 +github.setup janestreet ppx_enumerate 0.17.0 v +revision 0 categories ocaml maintainers nomaintainer license MIT description Generate a list containing all values of a finite type long_description ${description} -checksums rmd160 d178705ba4ec8faac65079d39aac1faa7c70ec96 \ - sha256 17f75b7741d49f06e3db3ef2e2aee4934c1682224b80d272f05a42b6ba506f7f \ - size 9414 +checksums rmd160 6d90cb52baca9aa8bda12d330e7d9deeff8ff0f8 \ + sha256 a27f1797b1315bdf7678fde783dff493bd348f1c5b644d7616b660bd295dad36 \ + size 9667 github.tarball_from archive depends_lib-append port:ocaml-base \ - port:ocaml-ppxlib + port:ocaml-ppxlib \ + port:ocaml-ppxlib_jane ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_expect/Portfile b/ocaml/ocaml-ppx_expect/Portfile index c4b6bf9a3ce..a310c5333f8 100644 --- a/ocaml/ocaml-ppx_expect/Portfile +++ b/ocaml/ocaml-ppx_expect/Portfile @@ -5,24 +5,23 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_expect -github.setup janestreet ppx_expect 0.16.0 v -revision 2 +github.setup janestreet ppx_expect 0.17.3 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Expect-test is a framework for writing tests in OCaml, similar to Cram long_description ${description} -checksums rmd160 a7707a77f89094e82282e2b3ab01e0b82ef4f5d0 \ - sha256 8d22d34e9a980b83401a46c3b20e40c1b78ef4ec9b2e48245611f550b5ec49a7 \ - size 48460 +checksums rmd160 5885f8a08b2d92738bfa2298fe89642fcc28bf62 \ + sha256 3027664caaa475e07e4dbcc9e67b6c7f8ddc86f2858f7c4fee89e964e0c9a7de \ + size 58454 github.tarball_from archive depends_lib-append port:ocaml-base \ port:ocaml-ppx_here \ port:ocaml-ppx_inline_test \ port:ocaml-ppxlib \ - port:ocaml-re \ port:ocaml-stdio ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_fields_conv/Portfile b/ocaml/ocaml-ppx_fields_conv/Portfile index a8b0f839d33..cf74ab5ef68 100644 --- a/ocaml/ocaml-ppx_fields_conv/Portfile +++ b/ocaml/ocaml-ppx_fields_conv/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_fields_conv -github.setup janestreet ppx_fields_conv 0.16.0 v -revision 2 +github.setup janestreet ppx_fields_conv 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Generation of accessor and iteration functions for OCaml records long_description ${description} -checksums rmd160 3dbbb861a2b382c31faeb3e8d0c9d8a661101004 \ - sha256 fb7328ee2a6a17456cbe6e7083f07f5ccb4e43786c83f7e1213119919e10972c \ - size 21481 +checksums rmd160 2ce6055abc07f8ac048072f7e1d4ea477c5327b7 \ + sha256 f22ce415852181fbea91b344f4ce4dcddbfab584741924d21ad78db25eb8e16a \ + size 23727 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_fixed_literal/Portfile b/ocaml/ocaml-ppx_fixed_literal/Portfile index 159d5ccc6b1..8d14431adda 100644 --- a/ocaml/ocaml-ppx_fixed_literal/Portfile +++ b/ocaml/ocaml-ppx_fixed_literal/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_fixed_literal -github.setup janestreet ppx_fixed_literal 0.16.0 v -revision 2 +github.setup janestreet ppx_fixed_literal 0.17.0 v +revision 0 categories ocaml maintainers nomaintainer license MIT description Simpler notation for fixed point literals long_description ${description} -checksums rmd160 998db4d4f68a94e5409d561430cd879c94ab0af6 \ - sha256 7a2d595a362d3190023e251bee75588051cfb468e76d375aa71f22cb1b2a5416 \ - size 3679 +checksums rmd160 24f5ab96b75a2441376b1b0d25a92444ef981794 \ + sha256 8523872846b1e5ee7461eb55c912be4039b183de1cf2768045a6d51701a08400 \ + size 3720 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_globalize/Portfile b/ocaml/ocaml-ppx_globalize/Portfile index c81a3c109e0..18756feafc3 100644 --- a/ocaml/ocaml-ppx_globalize/Portfile +++ b/ocaml/ocaml-ppx_globalize/Portfile @@ -5,20 +5,21 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_globalize -github.setup janestreet ppx_globalize 0.16.0 v -revision 2 +github.setup janestreet ppx_globalize 0.17.2 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description ppx rewriter that generates functions to copy local values to the global heap long_description ${description} -checksums rmd160 79a85a44c4f1d7a3cc06e04bdad02bac1713b43d \ - sha256 426855d04be2c15beb70884fd2e6d662000f63bcca0166f5629e369e645fec97 \ - size 8328 +checksums rmd160 98db3dc28deffd3826779760f13afac9c66e82d6 \ + sha256 2b6f0bca7393b8ab4e3d4a805b9de211f535f52658b9a54aa4b27dd8d31aae24 \ + size 8750 github.tarball_from archive depends_lib-append port:ocaml-base \ - port:ocaml-ppxlib + port:ocaml-ppxlib \ + port:ocaml-ppxlib_jane ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_hash/Portfile b/ocaml/ocaml-ppx_hash/Portfile index 6345c2dba5d..f886a80ac1b 100644 --- a/ocaml/ocaml-ppx_hash/Portfile +++ b/ocaml/ocaml-ppx_hash/Portfile @@ -5,22 +5,23 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_hash -github.setup janestreet ppx_hash 0.16.0 v -revision 2 +github.setup janestreet ppx_hash 0.17.0 v +revision 0 categories ocaml maintainers nomaintainer license MIT description ppx writer that generates hash functions from type expressions and definitions long_description {*}${description} -checksums rmd160 ddb2512f7aa7f055beb38d5d88eab173ed270150 \ - sha256 eefad2003ae76216bf086d5c313012aac1df0be708aaf0b4e24c81f6c51a03cf \ - size 28660 +checksums rmd160 a07958a6919b29df5cb47e4e94afa0683c93045c \ + sha256 8c8acae276a349d412eab9112cc3afa996d26ad4a01f2882121fc0adee0dd05e \ + size 29329 github.tarball_from archive depends_lib-append port:ocaml-base \ port:ocaml-ppx_compare \ port:ocaml-ppx_sexp_conv \ - port:ocaml-ppxlib + port:ocaml-ppxlib \ + port:ocaml-ppxlib_jane ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_here/Portfile b/ocaml/ocaml-ppx_here/Portfile index ddc320ff297..6342932e64b 100644 --- a/ocaml/ocaml-ppx_here/Portfile +++ b/ocaml/ocaml-ppx_here/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_here -github.setup janestreet ppx_here 0.16.0 v -revision 2 +github.setup janestreet ppx_here 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description ppx rewriter that defines an extension node whose value is its source position long_description {*}${description} -checksums rmd160 e3d94449fb1fcb3c4d649d1058813f7350be2b21 \ - sha256 072fd8ce903ce95ff75ddcca4898d250fe7a5d276b3011b67df1473d9ef95669 \ - size 5034 +checksums rmd160 2cb6b00e1e207b98183ff0d448b47f4b3563f2be \ + sha256 27ac69db34a5ff0efbf6e3c52d52dda46d1e5d5db4d14fb4d8c20370b932a913 \ + size 5138 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_ignore_instrumentation/Portfile b/ocaml/ocaml-ppx_ignore_instrumentation/Portfile index d36875e12fa..ec5874f9511 100644 --- a/ocaml/ocaml-ppx_ignore_instrumentation/Portfile +++ b/ocaml/ocaml-ppx_ignore_instrumentation/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_ignore_instrumentation -github.setup janestreet ppx_ignore_instrumentation 0.16.0 v -revision 2 +github.setup janestreet ppx_ignore_instrumentation 0.17.0 v +revision 0 categories ocaml maintainers nomaintainer license MIT description Ignore Jane Street specific instrumentation extensions long_description ${description} -checksums rmd160 35fd1b0fe7b2cb1af47a6e272dad7bcb15d7c140 \ - sha256 4e8613957fdeed68d35bda53d657cffe3bc9804e25777283e859799dbb12da7b \ - size 3712 +checksums rmd160 77df119e1c96ef05fd5206b9274520051e487aa8 \ + sha256 529aa92cc08a2ccb76fa361326fa7d4bbdfa2a7489c4f1c3a295658d3c758311 \ + size 3737 github.tarball_from archive depends_lib-append port:ocaml-ppxlib diff --git a/ocaml/ocaml-ppx_import/Portfile b/ocaml/ocaml-ppx_import/Portfile index 770d9e3acc9..c829638f549 100644 --- a/ocaml/ocaml-ppx_import/Portfile +++ b/ocaml/ocaml-ppx_import/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 github.setup ocaml-ppx ppx_import 1.12.0 v name ocaml-ppx_import -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license MIT diff --git a/ocaml/ocaml-ppx_inline_test/Portfile b/ocaml/ocaml-ppx_inline_test/Portfile index 4f9db402d1b..b0b54c2735c 100644 --- a/ocaml/ocaml-ppx_inline_test/Portfile +++ b/ocaml/ocaml-ppx_inline_test/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_inline_test -github.setup janestreet ppx_inline_test 0.16.1 v -revision 2 +github.setup janestreet ppx_inline_test 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Syntax extension for writing in-line tests in OCaml code long_description ${description} -checksums rmd160 b80fd983d0358cad236c53eeaaf15b3081952e3f \ - sha256 ea4e61e50529d76774904752f642e18eaf21dfe11844a084b133ccbc41e4295d \ - size 21965 +checksums rmd160 03656fd63a55287ab382f123204ef1b795bd12f0 \ + sha256 f77d12f2115e83f6b82929a7cec1a5602be47cf13a04a09e1ac2a9b68445e833 \ + size 24988 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_jane/Portfile b/ocaml/ocaml-ppx_jane/Portfile index 8de00fc185d..aa5d9753187 100644 --- a/ocaml/ocaml-ppx_jane/Portfile +++ b/ocaml/ocaml-ppx_jane/Portfile @@ -5,20 +5,21 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_jane -github.setup janestreet ppx_jane 0.16.0 v -revision 2 +github.setup janestreet ppx_jane 0.17.0 v +revision 1 categories ocaml devel maintainers nomaintainer license MIT description ppx_driver including all standard ppx rewriters long_description ${description} -checksums rmd160 ade858b83873da05ebb954120fafbb2d3a4016d2 \ - sha256 4c5ee082ae1d3d1372355ca85deb9f667324c8d6a50c13cc2124e880281c6306 \ - size 4688 +checksums rmd160 791c6310515549b1b6b897f3b34111ece89fcf2f \ + sha256 4dcf29dbb093f57fdda18b659739b255b66dc5566b6c4c8a35caa3ce8666fa65 \ + size 4497 github.tarball_from archive depends_lib-append port:ocaml-base_quickcheck \ + port:ocaml-ppx_string_conv \ port:ocaml-ppx_assert \ port:ocaml-ppx_base \ port:ocaml-ppx_bench \ diff --git a/ocaml/ocaml-ppx_let/Portfile b/ocaml/ocaml-ppx_let/Portfile index ee92128784b..1a5aaf7ce4b 100644 --- a/ocaml/ocaml-ppx_let/Portfile +++ b/ocaml/ocaml-ppx_let/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_let -github.setup janestreet ppx_let 0.16.0 v -revision 2 +github.setup janestreet ppx_let 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description ppx rewriter for monadic and applicative let bindings, match expressions and if expressions long_description ${description} -checksums rmd160 b3e45e7e83304f0a56fc6174554c5bd2546290cd \ - sha256 8ccc4f27668e9daf613f6dc779bcd9bdc6cd678826cd35c401be65566c436043 \ - size 15460 +checksums rmd160 37e17f07725c9b6ed0ced90e63d2f02a2f69dbbe \ + sha256 ea6c563e00e1461abe3c423d509970fde7e3c8aeb674f55157ab5aa4befbaf68 \ + size 15718 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_log/Portfile b/ocaml/ocaml-ppx_log/Portfile index 115ac417025..18c368347bd 100644 --- a/ocaml/ocaml-ppx_log/Portfile +++ b/ocaml/ocaml-ppx_log/Portfile @@ -5,24 +5,33 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_log -github.setup janestreet ppx_log 0.16.0 v -revision 2 +github.setup janestreet ppx_log 0.17.0 v +revision 0 categories ocaml maintainers nomaintainer license MIT description ppx rewriter that defines extension nodes for logging long_description ${description} -checksums rmd160 3c2c6bfc39988252e0362008cf61cc324a1872cc \ - sha256 e0105f1a22199231be9258ced23300c4c4404d1b65e367a332848c4356cc7032 \ - size 6706 +checksums rmd160 3d94135e5de720972e22d081a167ccac90be805e \ + sha256 2208f047b699d0661e94415868e8e9e4a6e5287a8eceaf7318f572ccd622859a \ + size 37668 github.tarball_from archive depends_lib-append port:ocaml-base \ + port:ocaml-ppx_compare \ + port:ocaml-ppx_enumerate \ + port:ocaml-ppx_expect \ + port:ocaml-ppx_fields_conv \ port:ocaml-ppx_here \ + port:ocaml-ppx_let \ port:ocaml-ppx_sexp_conv \ port:ocaml-ppx_sexp_message \ + port:ocaml-ppx_sexp_value \ + port:ocaml-ppx_string \ + port:ocaml-ppx_variants_conv \ port:ocaml-ppxlib \ - port:ocaml-sexplib + port:ocaml-sexplib \ + port:ocaml-stdio ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_module_timer/Portfile b/ocaml/ocaml-ppx_module_timer/Portfile index 55aa1571938..049cf6e353c 100644 --- a/ocaml/ocaml-ppx_module_timer/Portfile +++ b/ocaml/ocaml-ppx_module_timer/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_module_timer -github.setup janestreet ppx_module_timer 0.16.0 v -revision 2 +github.setup janestreet ppx_module_timer 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Extension to record module start-up times long_description ${description} -checksums rmd160 150fbb030ad058b5726bd66c22d7efc6b7a0254d \ - sha256 54b49c7fe3b2d7d72874e21286eb8424903db60ebd730441eb310620df597478 \ - size 7281 +checksums rmd160 a02b1630031dcf5feb596e3bf824c9f9cb7c3d79 \ + sha256 fcc39a8623f7c4e1bb40ce6ed5e9af596938f88f5718f01417ed39b11fc5e264 \ + size 7315 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_optcomp/Portfile b/ocaml/ocaml-ppx_optcomp/Portfile index e648f4357d7..6bfd4aa113e 100644 --- a/ocaml/ocaml-ppx_optcomp/Portfile +++ b/ocaml/ocaml-ppx_optcomp/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_optcomp -github.setup janestreet ppx_optcomp 0.16.0 v -revision 2 +github.setup janestreet ppx_optcomp 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Optional compilation for OCaml long_description ${description} -checksums rmd160 2f9cc9a3f4ffa5f2b78c8a3979559d7de1438123 \ - sha256 22782ce22423612eecf9bc49d36ba51dd32416feed7b28e81364fb27211aff02 \ - size 16789 +checksums rmd160 3d5e591f5925c1c34b3634ce42daff8f86782a38 \ + sha256 2efe65a0210ed7bda8ddd9e076385b76619f23ac3aee1db5b6140ac1a1feb99d \ + size 16785 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_optional/Portfile b/ocaml/ocaml-ppx_optional/Portfile index 2864639f5dd..15b66c7d5f1 100644 --- a/ocaml/ocaml-ppx_optional/Portfile +++ b/ocaml/ocaml-ppx_optional/Portfile @@ -5,20 +5,21 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_optional -github.setup janestreet ppx_optional 0.16.0 v -revision 2 +github.setup janestreet ppx_optional 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description ppx rewriter that rewrites simple match statements with an if-then-else expression long_description ${description} -checksums rmd160 5a77af406e10bb7ec8022d8fd157f9541d12fc06 \ - sha256 e6654625008e75ec3e55163d6dd8b360e8724ea108583ecb8b65ba37ac853a5f \ - size 8333 +checksums rmd160 419759e40f9b74619087938a6723498b3c576d4d \ + sha256 809acb833048508f48c74422a5f74e4ef621807376eb5753b98bbd8f3df409bc \ + size 10620 github.tarball_from archive depends_lib-append port:ocaml-base \ - port:ocaml-ppxlib + port:ocaml-ppxlib \ + port:ocaml-ppxlib_jane ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_pipebang/Portfile b/ocaml/ocaml-ppx_pipebang/Portfile index 1474e7499cf..77ba8e7164b 100644 --- a/ocaml/ocaml-ppx_pipebang/Portfile +++ b/ocaml/ocaml-ppx_pipebang/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_pipebang -github.setup janestreet ppx_pipebang 0.16.0 v -revision 2 +github.setup janestreet ppx_pipebang 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description ppx rewriter that inlines reverse application operators |> and |! long_description ${description} -checksums rmd160 5494f68229eb29d119e348c03baf8fe7e6107de5 \ - sha256 9435f425b6ee9d736cee5ed8579402be085656c4d31dd2bd4c256363ed7bdc8c \ - size 3755 +checksums rmd160 40a9c58413ccfe96b76745a123062bfab9709de6 \ + sha256 b50995e2e31fa1f93c2468780f5f082e0859782f8826cc05ad3ec2ad4f8c02ff \ + size 3844 github.tarball_from archive depends_lib-append port:ocaml-ppxlib diff --git a/ocaml/ocaml-ppx_sexp_conv/Portfile b/ocaml/ocaml-ppx_sexp_conv/Portfile index 5b4c991caff..0179d4add2d 100644 --- a/ocaml/ocaml-ppx_sexp_conv/Portfile +++ b/ocaml/ocaml-ppx_sexp_conv/Portfile @@ -5,21 +5,22 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_sexp_conv -github.setup janestreet ppx_sexp_conv 0.16.0 v -revision 2 +github.setup janestreet ppx_sexp_conv 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description ppx syntax extension that generates code for converting OCaml types to and from s-expressions long_description ${description} -checksums rmd160 6a08336df29df9404e67408e7fb3513711ef8fe9 \ - sha256 3b7065f4ec2f8b72df688c7b5604cea82a733fdccab4317c758a64710fc71e87 \ - size 66918 +checksums rmd160 106081380ffa414b83005f4cb4cd4d67a0746f82 \ + sha256 b850556d05203aa6d97fcbe4be75abc9679b161be059e474c0d934bc0e12fe86 \ + size 68305 github.tarball_from archive depends_lib-append port:ocaml-base \ port:ocaml-ppxlib \ + port:ocaml-ppxlib_jane \ port:ocaml-sexplib0 ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_sexp_message/Portfile b/ocaml/ocaml-ppx_sexp_message/Portfile index 859a068789f..2109a083de5 100644 --- a/ocaml/ocaml-ppx_sexp_message/Portfile +++ b/ocaml/ocaml-ppx_sexp_message/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_sexp_message -github.setup janestreet ppx_sexp_message 0.16.0 v -revision 2 +github.setup janestreet ppx_sexp_message 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description ppx rewriter for easy construction of s-expressions long_description ${description} -checksums rmd160 0bb779595fc94d5d90a57dbfa76705d18311f15d \ - sha256 4f2e0c32d371895e2e5ad3266942d6a20bd66f8ab824653209bf41a40fea028e \ - size 8435 +checksums rmd160 fd7483c76260beaba6c3946c29f394afde28bb86 \ + sha256 2a02e4943106f4e87a3b2e17e5127859a4d01a4bdbe477f2084858a9962c47ee \ + size 8720 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_sexp_value/Portfile b/ocaml/ocaml-ppx_sexp_value/Portfile index c8a1905897b..aaba07ddf43 100644 --- a/ocaml/ocaml-ppx_sexp_value/Portfile +++ b/ocaml/ocaml-ppx_sexp_value/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_sexp_value -github.setup janestreet ppx_sexp_value 0.16.0 v -revision 2 +github.setup janestreet ppx_sexp_value 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description ppx rewriter that simplifies building s-expressions from OCaml values long_description ${description} -checksums rmd160 008f94611b8fb018d36a3aee12eeaab759527953 \ - sha256 06345d475a918ca9160ce58b323f6ca4388288015efaaaf82915be25afb20947 \ - size 8460 +checksums rmd160 6357d51a15c4894535df86eda6b4d4dead835ee3 \ + sha256 599e72775285dc5a3042e4717d79f6ff1cb713ef5d7b2c46c5ee2443ad2d6e3c \ + size 8486 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_stable/Portfile b/ocaml/ocaml-ppx_stable/Portfile index 0cd0629d808..cc186ea1435 100644 --- a/ocaml/ocaml-ppx_stable/Portfile +++ b/ocaml/ocaml-ppx_stable/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_stable -github.setup janestreet ppx_stable 0.16.0 v -revision 2 +github.setup janestreet ppx_stable 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Stable types conversions generator long_description ppx extension for easier implementation of conversion functions between almost identical types -checksums rmd160 df57b145bb0bccc5c45c663b57fbf6294f4a8ccd \ - sha256 55cda9b7c2a8f3e86a499f205b8fd863cc600e7feafa41049b3c9b27a9235a62 \ - size 18298 +checksums rmd160 9b686a99a92f1574c2d9443927bad216facfbcb6 \ + sha256 51837bc110f9f1d963c4e292d206265646f0ef0c7c8a72f67dbfd2ccb0b4a874 \ + size 24861 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_stable_witness/Portfile b/ocaml/ocaml-ppx_stable_witness/Portfile index 53682dc0f95..c36d063ee29 100644 --- a/ocaml/ocaml-ppx_stable_witness/Portfile +++ b/ocaml/ocaml-ppx_stable_witness/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_stable_witness -github.setup janestreet ppx_stable_witness 0.16.0 v -revision 2 +github.setup janestreet ppx_stable_witness 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description ppx extension for deriving a witness that a type is intended to be stable long_description ${description} -checksums rmd160 cdd4aa0b7c9e3b7334cb53bf3e058ebb6e1d55dc \ - sha256 f397aa471a92da2272e96787dc64e9ba10e1464a6ef821c1edf68a7601ae2736 \ - size 7641 +checksums rmd160 fbd744c1a6a06e9636969bcd58b9fdd5ed6d49e8 \ + sha256 052db5d52ccacaab30ead1a4192ad021ee00c235a73c09b7918acabcee4a0cda \ + size 7625 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_string/Portfile b/ocaml/ocaml-ppx_string/Portfile index 71d61c843de..63b31d6a801 100644 --- a/ocaml/ocaml-ppx_string/Portfile +++ b/ocaml/ocaml-ppx_string/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_string -github.setup janestreet ppx_string 0.16.0 v -revision 2 +github.setup janestreet ppx_string 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Extension providing a syntax for string interpolation long_description ${description} -checksums rmd160 2eae939c10a48891bc8d3f18253cb1512f3a355d \ - sha256 c29664a9a34a26540e00ab2b9b08d2181e970c54f30e0e3dcb5fb28764217dd8 \ - size 6105 +checksums rmd160 366ebf33e0083b6e7f96288180046b66dcfbc975 \ + sha256 06b4e061fb5e2b2a85298c9829cc31a1af0a9b8e63fdee9048c76ec8d52d16ef \ + size 7812 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_string_conv/Portfile b/ocaml/ocaml-ppx_string_conv/Portfile new file mode 100644 index 00000000000..edefde0dad2 --- /dev/null +++ b/ocaml/ocaml-ppx_string_conv/Portfile @@ -0,0 +1,27 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + +PortSystem 1.0 +PortGroup github 1.0 +PortGroup ocaml 1.1 + +name ocaml-ppx_string_conv +github.setup janestreet ppx_string_conv 0.17.0 v +revision 0 +categories ocaml devel +maintainers nomaintainer +license MIT +description PPX extension for generating of_string and to_string functions +long_description ${description}. Part of the Jane Street PPX rewriters collection. + +checksums rmd160 8a2b039c6e100250cc3962554c793b6c59eafe37 \ + sha256 2e43def9a3f13f46ac8465fa81d51784d080083539b88d3c6e8a649d5ae0fdb0 \ + size 10083 +github.tarball_from archive + +depends_lib-append port:ocaml-base \ + port:ocaml-capitalization \ + port:ocaml-ppx_let \ + port:ocaml-ppx_string \ + port:ocaml-ppxlib + +ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_tools/Portfile b/ocaml/ocaml-ppx_tools/Portfile index fa48760ef2d..7dcc5766009 100644 --- a/ocaml/ocaml-ppx_tools/Portfile +++ b/ocaml/ocaml-ppx_tools/Portfile @@ -6,6 +6,7 @@ PortGroup ocaml 1.1 name ocaml-ppx_tools github.setup ocaml-ppx ppx_tools 6.6 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer @@ -19,6 +20,13 @@ checksums rmd160 2b68da8a83942a1bdcb46e6caae463938f8781b4 \ size 19265 github.tarball_from archive +# Fix compatibility with OCaml 5.x parsetree changes +patchfiles patch-ocaml54-labeled-tuples.diff \ + patch-ocaml52-54-parsetree.diff + +# ast_convenience.mli has trailing spaces; -l ignores whitespace in context matching +patch.args-append -l + depends_build port:ocaml-cppo ocaml.build_type dune diff --git a/ocaml/ocaml-ppx_tools/files/patch-ocaml52-54-parsetree.diff b/ocaml/ocaml-ppx_tools/files/patch-ocaml52-54-parsetree.diff new file mode 100644 index 00000000000..b3cc109d3b5 --- /dev/null +++ b/ocaml/ocaml-ppx_tools/files/patch-ocaml52-54-parsetree.diff @@ -0,0 +1,364 @@ +--- src/ast_convenience.mli 2022-09-26 22:01:08 ++++ src/ast_convenience.mli 2026-06-07 21:48:28 +@@ -28,16 +28,24 @@ + + (** {2 Provides a unified abstraction over differences in Parsetree.constant and Asttypes.constant + * types defined in ocaml 4.03 and 4.02 respectively}*) +-module Constant : sig ++module Constant : sig ++#if OCAML_VERSION >= (5, 4, 0) ++ type t = Parsetree.constant_desc = ++ Pconst_integer of string * char option ++ | Pconst_char of char ++ | Pconst_string of string * Location.t * string option ++ | Pconst_float of string * char option ++#else + type t = Parsetree.constant = +- Pconst_integer of string * char option +- | Pconst_char of char ++ Pconst_integer of string * char option ++ | Pconst_char of char + #if OCAML_VERSION >= (4, 11, 0) + | Pconst_string of string * Location.t * string option + #else + | Pconst_string of string * string option + #endif +- | Pconst_float of string * char option ++ | Pconst_float of string * char option ++#endif + + (** Convert Asttypes.constant to Constant.t *) + val of_constant : Parsetree.constant -> t +--- src/ast_convenience.ml 2026-06-07 22:04:43 ++++ src/ast_convenience.ml 2026-06-07 22:14:45 +@@ -26,6 +26,17 @@ + end + + module Constant = struct ++#if OCAML_VERSION >= (5, 4, 0) ++ type t = Parsetree.constant_desc = ++ Pconst_integer of string * char option ++ | Pconst_char of char ++ | Pconst_string of string * Location.t * string option ++ | Pconst_float of string * char option ++ ++ let of_constant x = x.pconst_desc ++ ++ let to_constant x = {pconst_desc = x; pconst_loc = Location.none} ++#else + type t = Parsetree.constant = + Pconst_integer of string * char option + | Pconst_char of char +@@ -39,6 +50,7 @@ + let of_constant x = x + + let to_constant x = x ++#endif + + end + +@@ -86,19 +98,30 @@ + let cons ?loc ?attrs hd tl = constr ?loc ?attrs "::" [hd; tl] + let list ?loc ?attrs l = List.fold_right (cons ?loc ?attrs) l (nil ?loc ?attrs ()) + #if OCAML_VERSION >= (4, 11, 0) +-let str ?(loc = !default_loc) ?attrs s = Exp.constant ~loc ?attrs (Pconst_string (s, loc, None)) ++let str ?(loc = !default_loc) ?attrs s = Exp.constant ~loc ?attrs (Constant.to_constant (Pconst_string (s, loc, None))) + #else +-let str ?loc ?attrs s = Exp.constant ?loc ?attrs (Pconst_string (s, None)) ++let str ?loc ?attrs s = Exp.constant ?loc ?attrs (Constant.to_constant (Pconst_string (s, None))) + #endif +-let int ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_integer (string_of_int x, None)) +-let int32 ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_integer (Int32.to_string x, Some 'l')) +-let int64 ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_integer (Int64.to_string x, Some 'L')) +-let char ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_char x) +-let float ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_float (string_of_float x, None)) ++let int ?loc ?attrs x = Exp.constant ?loc ?attrs (Constant.to_constant (Pconst_integer (string_of_int x, None))) ++let int32 ?loc ?attrs x = Exp.constant ?loc ?attrs (Constant.to_constant (Pconst_integer (Int32.to_string x, Some 'l'))) ++let int64 ?loc ?attrs x = Exp.constant ?loc ?attrs (Constant.to_constant (Pconst_integer (Int64.to_string x, Some 'L'))) ++let char ?loc ?attrs x = Exp.constant ?loc ?attrs (Constant.to_constant (Pconst_char x)) ++let float ?loc ?attrs x = Exp.constant ?loc ?attrs (Constant.to_constant (Pconst_float (string_of_float x, None))) + let record ?loc ?attrs ?over l = + Exp.record ?loc ?attrs (List.map (fun (s, e) -> (lid ~loc:e.pexp_loc s, e)) l) over ++#if OCAML_VERSION >= (5, 2, 0) ++let func ?(loc = !default_loc) ?attrs l = ++ Exp.function_ ~loc ?attrs [] None (Pfunction_cases (List.map (fun (p, e) -> Exp.case p e) l, loc, [])) ++#else + let func ?loc ?attrs l = Exp.function_ ?loc ?attrs (List.map (fun (p, e) -> Exp.case p e) l) ++#endif ++#if OCAML_VERSION >= (5, 2, 0) ++let lam ?(loc = !default_loc) ?attrs ?(label = Label.nolabel) ?default pat exp = ++ let param = {pparam_desc = Pparam_val (label, default, pat); pparam_loc = loc} in ++ Exp.function_ ~loc ?attrs [param] None (Pfunction_body exp) ++#else + let lam ?loc ?attrs ?(label = Label.nolabel) ?default pat exp = Exp.fun_ ?loc ?attrs label default pat exp ++#endif + let app ?loc ?attrs f l = if l = [] then f else Exp.apply ?loc ?attrs f (List.map (fun a -> Label.nolabel, a) l) + let evar ?loc ?attrs s = Exp.ident ?loc ?attrs (lid ?loc s) + let let_in ?loc ?attrs ?(recursive = false) b body = +@@ -126,18 +149,20 @@ + let plist ?loc ?attrs l = List.fold_right (pcons ?loc ?attrs) l (pnil ?loc ?attrs ()) + + #if OCAML_VERSION >= (4, 11, 0) +-let pstr ?(loc = !default_loc) ?attrs s = Pat.constant ~loc ?attrs (Pconst_string (s, loc, None)) ++let pstr ?(loc = !default_loc) ?attrs s = Pat.constant ~loc ?attrs (Constant.to_constant (Pconst_string (s, loc, None))) + #else +-let pstr ?loc ?attrs s = Pat.constant ?loc ?attrs (Pconst_string (s, None)) ++let pstr ?loc ?attrs s = Pat.constant ?loc ?attrs (Constant.to_constant (Pconst_string (s, None))) + #endif +-let pint ?loc ?attrs x = Pat.constant ?loc ?attrs (Pconst_integer (string_of_int x, None)) +-let pchar ?loc ?attrs x = Pat.constant ?loc ?attrs (Pconst_char x) +-let pfloat ?loc ?attrs x = Pat.constant ?loc ?attrs (Pconst_float (string_of_float x, None)) ++let pint ?loc ?attrs x = Pat.constant ?loc ?attrs (Constant.to_constant (Pconst_integer (string_of_int x, None))) ++let pchar ?loc ?attrs x = Pat.constant ?loc ?attrs (Constant.to_constant (Pconst_char x)) ++let pfloat ?loc ?attrs x = Pat.constant ?loc ?attrs (Constant.to_constant (Pconst_float (string_of_float x, None))) + + let tconstr ?loc ?attrs c l = Typ.constr ?loc ?attrs (lid ?loc c) l + + let get_str = function +-#if OCAML_VERSION >= (4, 11, 0) ++#if OCAML_VERSION >= (5, 4, 0) ++ | {pexp_desc=Pexp_constant {pconst_desc=Pconst_string (s, _, _); _}; _} -> Some s ++#elif OCAML_VERSION >= (4, 11, 0) + | {pexp_desc=Pexp_constant (Pconst_string (s, _, _)); _} -> Some s + #else + | {pexp_desc=Pexp_constant (Pconst_string (s, _)); _} -> Some s +@@ -145,7 +170,9 @@ + | _ -> None + + let get_str_with_quotation_delimiter = function +-#if OCAML_VERSION >= (4, 11, 0) ++#if OCAML_VERSION >= (5, 4, 0) ++ | {pexp_desc=Pexp_constant {pconst_desc=Pconst_string (s, _, d); _}; _} -> Some (s, d) ++#elif OCAML_VERSION >= (4, 11, 0) + | {pexp_desc=Pexp_constant (Pconst_string (s, _, d)); _} -> Some (s, d) + #else + | {pexp_desc=Pexp_constant (Pconst_string (s, d)); _} -> Some (s, d) +--- src/ast_mapper_class.mli 2022-09-26 22:01:08 ++++ src/ast_mapper_class.mli 2026-06-07 22:14:52 +@@ -22,8 +22,14 @@ + method class_type: class_type -> class_type + method class_type_declaration: class_type_declaration -> class_type_declaration + method class_type_field: class_type_field -> class_type_field +-#if OCAML_VERSION >= (4, 11, 0) ++#if OCAML_VERSION >= (5, 4, 0) + method constant : constant -> constant ++ method directive_argument: directive_argument -> directive_argument ++ method package_type: package_type -> package_type ++ method toplevel_directive: toplevel_directive -> toplevel_directive ++ method toplevel_phrase: toplevel_phrase -> toplevel_phrase ++#elif OCAML_VERSION >= (4, 11, 0) ++ method constant : constant -> constant + #endif + method constructor_arguments: constructor_arguments -> constructor_arguments + method constructor_declaration: constructor_declaration -> constructor_declaration +--- src/ast_mapper_class.ml 2026-06-07 22:04:43 ++++ src/ast_mapper_class.ml 2026-06-07 22:08:22 +@@ -84,6 +84,9 @@ + (List.map (map_tuple (map_loc sub) (sub # typ)) l) + #endif + | Ptyp_extension x -> extension ~loc ~attrs (sub # extension x) ++#if OCAML_VERSION >= (5, 2, 0) ++ | Ptyp_open (_, t) -> sub # typ t ++#endif + + let map_type_declaration sub + {ptype_name; ptype_params; ptype_cstrs; +@@ -288,6 +291,10 @@ + #endif + | Pmod_apply (m1, m2) -> + apply ~loc ~attrs (sub # module_expr m1) (sub # module_expr m2) ++#if OCAML_VERSION >= (5, 2, 0) ++ | Pmod_apply_unit me -> ++ apply_unit ~loc ~attrs (sub # module_expr me) ++#endif + | Pmod_constraint (m, mty) -> + constraint_ ~loc ~attrs (sub # module_expr m) (sub # module_type mty) + | Pmod_unpack e -> unpack ~loc ~attrs (sub # expr e) +@@ -419,7 +426,11 @@ + poly ~loc ~attrs (sub # expr e) (map_opt (sub # typ) t) + | Pexp_object cls -> object_ ~loc ~attrs (sub # class_structure cls) + | Pexp_newtype (s, e) -> newtype ~loc ~attrs s (sub # expr e) ++#if OCAML_VERSION >= (5, 2, 0) ++ | Pexp_pack (me, pt) -> pack ~loc ~attrs (sub # module_expr me) pt ++#else + | Pexp_pack me -> pack ~loc ~attrs (sub # module_expr me) ++#endif + | Pexp_open (od, e) -> + open_ ~loc ~attrs (sub # open_declaration od) (sub # expr e) + | Pexp_letop x -> +@@ -466,6 +477,9 @@ + | Ppat_exception p -> exception_ ~loc ~attrs (sub # pat p) + | Ppat_extension x -> extension ~loc ~attrs (sub # extension x) + | Ppat_open (l, p) -> open_ ~loc ~attrs (map_loc sub l) (sub # pat p) ++#if OCAML_VERSION >= (5, 4, 0) ++ | Ppat_effect (p1, p2) -> effect_ ~loc ~attrs (sub # pat p1) (sub # pat p2) ++#endif + end + + module CE = struct +@@ -697,7 +711,20 @@ + | PPat (x, g) -> PPat (this # pat x, map_opt (this # expr) g) + | PSig x -> PSig (this # signature x) + +-#if OCAML_VERSION >= (4, 11, 0) ++#if OCAML_VERSION >= (5, 4, 0) ++ method constant (c : Parsetree.constant) = ++ {c with pconst_desc = match c.pconst_desc with ++ | Pconst_integer (str, suffix) -> Pconst_integer (str, suffix) ++ | Pconst_char ch -> Pconst_char ch ++ | Pconst_string (str, loc, delim) -> ++ Pconst_string (str, this # location loc, delim) ++ | Pconst_float (str, suffix) -> Pconst_float (str, suffix)} ++ ++ method directive_argument (x : Parsetree.directive_argument) = x ++ method package_type (x : Parsetree.package_type) = x ++ method toplevel_directive (x : Parsetree.toplevel_directive) = x ++ method toplevel_phrase (x : Parsetree.toplevel_phrase) = x ++#elif OCAML_VERSION >= (4, 11, 0) + method constant = function + | Pconst_integer (str, suffix) -> Pconst_integer (str, suffix) + | Pconst_char c -> Pconst_char c +@@ -757,4 +784,10 @@ + value_binding = (fun _ -> this # value_binding); + value_description = (fun _ -> this # value_description); + with_constraint = (fun _ -> this # with_constraint); ++#if OCAML_VERSION >= (5, 4, 0) ++ directive_argument = (fun _ -> this # directive_argument); ++ package_type = (fun _ -> this # package_type); ++ toplevel_directive = (fun _ -> this # toplevel_directive); ++ toplevel_phrase = (fun _ -> this # toplevel_phrase); ++#endif + } +--- src/genlifter.ml 2026-06-07 22:04:43 ++++ src/genlifter.ml 2026-06-07 22:26:10 +@@ -75,7 +75,11 @@ + let prefix = + let open Longident in + match tylid with ++#if OCAML_VERSION >= (5, 4, 0) ++ | Ldot (m, _) -> String.concat "." (Longident.flatten m.txt) ^ "." ++#else + | Ldot (m, _) -> String.concat "." (Longident.flatten m) ^ "." ++#endif + | Lident _ -> "" + | Lapply _ -> assert false + in +@@ -137,9 +141,15 @@ + [str ""; list (List.map snd l)]]]] + in + concrete (func (List.map case l)) ++#if OCAML_VERSION >= (5, 3, 0) ++ | Type_abstract _, Some t -> ++ concrete (tyexpr_fun env t) ++ | Type_abstract _, None -> ++#else + | Type_abstract, Some t -> + concrete (tyexpr_fun env t) + | Type_abstract, None -> ++#endif + (* Generate an abstract method to lift abstract types *) + meths := Cf.(method_ (mknoloc (print_fun ty)) Public (virtual_ t)) :: !meths + | Type_open, _ -> +@@ -210,6 +220,17 @@ + let open Longident in + let open Parsetree in + match e.pexp_desc with ++#if OCAML_VERSION >= (5, 2, 0) ++ | Pexp_function ++ ([{pparam_desc = Pparam_val (Asttypes.Nolabel, None, ++ {ppat_desc = Ppat_var{txt=id;_};_}); _}], None, ++ Pfunction_body {pexp_desc = ++ Pexp_apply ++ (f, ++ [Asttypes.Nolabel ++ ,{pexp_desc= Pexp_ident{txt=Lident id2;_};_}]);_}) ++ when id = id2 -> f ++#else + | Pexp_fun + (Asttypes.Nolabel, None, + {ppat_desc = Ppat_var{txt=id;_};_}, +@@ -219,6 +240,7 @@ + [Asttypes.Nolabel + ,{pexp_desc= Pexp_ident{txt=Lident id2;_};_}]);_}) + when id = id2 -> f ++#endif + | _ -> e + in + {super with expr} +@@ -226,7 +248,11 @@ + let args = + let open Arg in + [ ++#if OCAML_VERSION >= (5, 4, 0) ++ "-I", String (fun s -> Load_path.add_dir ~hidden:false (Misc.expand_directory Config.standard_library s)), ++#else + "-I", String (fun s -> Load_path.add_dir (Misc.expand_directory Config.standard_library s)), ++#endif + " Add to the list of include directories"; + ] + +@@ -234,7 +260,9 @@ + Printf.sprintf "%s [options] \n" Sys.argv.(0) + + let main () = +-#if OCAML_VERSION >= (5, 0, 0) ++#if OCAML_VERSION >= (5, 4, 0) ++ Load_path.init ~auto_include:Load_path.no_auto_include ~visible:[Config.standard_library] ~hidden:[]; ++#elif OCAML_VERSION >= (5, 0, 0) + Load_path.init ~auto_include:Load_path.no_auto_include [Config.standard_library]; + #else + Load_path.init [Config.standard_library]; +--- src/ppx_metaquot.ml 2022-09-26 22:01:08 ++++ src/ppx_metaquot.ml 2026-06-07 22:41:16 +@@ -70,11 +70,19 @@ + let prefix ty s = + let open Longident in + match Longident.parse ty [@ocaml.warning "-3"] with ++#if OCAML_VERSION >= (5, 4, 0) ++ | Ldot(m, _) -> String.concat "." (Longident.flatten m.txt) ^ "." ^ s ++#else + | Ldot(m, _) -> String.concat "." (Longident.flatten m) ^ "." ^ s ++#endif + | _ -> s + + let append ?loc ?attrs e e' = ++#if OCAML_VERSION >= (5, 4, 0) ++ let fn = Location.mknoloc (Longident.(Ldot (Location.mknoloc (Lident "List"), Location.mknoloc "append"))) in ++#else + let fn = Location.mknoloc (Longident.(Ldot (Lident "List", "append"))) in ++#endif + Exp.apply ?loc ?attrs (Exp.ident fn) [Nolabel, e; Nolabel, e'] + + class exp_builder = +--- src/dumpast.ml 2022-09-26 22:01:08 ++++ src/dumpast.ml 2026-06-07 22:41:19 +@@ -21,7 +21,11 @@ + Oval_constr (Oide_ident { printed_name = c }, args) + method list x = Oval_list x + method array x = Oval_list (Array.to_list x) ++#if OCAML_VERSION >= (5, 4, 0) ++ method tuple x = Oval_tuple (List.map (fun v -> (None, v)) x) ++#else + method tuple x = Oval_tuple x ++#endif + method int x = Oval_int x + method string x = Oval_string (x, max_int, Ostr_string) + method char x = Oval_char x +--- src/dune 2022-09-26 22:01:08 ++++ src/dune 2026-06-07 22:41:27 +@@ -15,6 +15,7 @@ + (modules ppx_metaquot) + (ppx.driver (main Ppx_metaquot.Main.main)) + (ppx_runtime_libraries ppx_tools) ++ (preprocess (action (run %{bin:cppo} -V OCAML:%{ocaml_version} %{input-file}))) + (libraries compiler-libs.common ppx_tools ast_lifter)) + + (executable +@@ -26,6 +27,7 @@ + (executable + (name dumpast) + (modules dumpast) ++ (preprocess (action (run %{bin:cppo} -V OCAML:%{ocaml_version} %{input-file}))) + (libraries compiler-libs.common compiler-libs.bytecomp ast_lifter)) + + (executable diff --git a/ocaml/ocaml-ppx_tools/files/patch-ocaml54-labeled-tuples.diff b/ocaml/ocaml-ppx_tools/files/patch-ocaml54-labeled-tuples.diff new file mode 100644 index 00000000000..94543b9f83c --- /dev/null +++ b/ocaml/ocaml-ppx_tools/files/patch-ocaml54-labeled-tuples.diff @@ -0,0 +1,169 @@ +--- src/ast_convenience.ml.orig 2022-09-26 22:01:08 ++++ src/ast_convenience.ml 2026-05-29 06:35:20 +@@ -42,17 +42,32 @@ + + end + ++#if OCAML_VERSION >= (5, 4, 0) + let may_tuple ?loc tup = function + | [] -> None + | [x] -> Some x ++ | l -> Some (tup ?loc ?attrs:None (List.map (fun x -> (None, x)) l)) ++ ++let may_pat_tuple ?loc tup = function ++ | [] -> None ++ | [x] -> Some ([], x) ++ | l -> Some ([], tup ?loc ?attrs:None (List.map (fun x -> (None, x)) l) Closed) ++#elif OCAML_VERSION >= (4, 13, 0) ++let may_tuple ?loc tup = function ++ | [] -> None ++ | [x] -> Some x + | l -> Some (tup ?loc ?attrs:None l) + +-#if OCAML_VERSION >= (4, 13, 0) + let may_pat_tuple ?loc tup = function + | [] -> None + | [x] -> Some ([], x) + | l -> Some ([], tup ?loc ?attrs:None l) + #else ++let may_tuple ?loc tup = function ++ | [] -> None ++ | [x] -> Some x ++ | l -> Some (tup ?loc ?attrs:None l) ++ + let may_pat_tuple ?loc tup x = may_tuple ?loc tup x + #endif + +@@ -63,7 +78,11 @@ + let tuple ?loc ?attrs = function + | [] -> unit ?loc ?attrs () + | [x] -> x ++#if OCAML_VERSION >= (5, 4, 0) ++ | xs -> Exp.tuple ?loc ?attrs (List.map (fun x -> (None, x)) xs) ++#else + | xs -> Exp.tuple ?loc ?attrs xs ++#endif + let cons ?loc ?attrs hd tl = constr ?loc ?attrs "::" [hd; tl] + let list ?loc ?attrs l = List.fold_right (cons ?loc ?attrs) l (nil ?loc ?attrs ()) + #if OCAML_VERSION >= (4, 11, 0) +@@ -99,7 +118,11 @@ + let ptuple ?loc ?attrs = function + | [] -> punit ?loc ?attrs () + | [x] -> x ++#if OCAML_VERSION >= (5, 4, 0) ++ | xs -> Pat.tuple ?loc ?attrs (List.map (fun x -> (None, x)) xs) Closed ++#else + | xs -> Pat.tuple ?loc ?attrs xs ++#endif + let plist ?loc ?attrs l = List.fold_right (pcons ?loc ?attrs) l (pnil ?loc ?attrs ()) + + #if OCAML_VERSION >= (4, 11, 0) +--- src/genlifter.ml.orig 2022-09-26 22:01:08 ++++ src/genlifter.ml 2026-05-29 06:35:36 +@@ -160,9 +160,17 @@ + | exception Not_found -> + use_existentials := true; + selfcall "existential" [x]) ++#if OCAML_VERSION >= (5, 4, 0) ++ | Ttuple tl -> ++ let tl = List.map snd tl in ++ let p, e = gentuple env tl in ++ let_in [Vb.mk (Pat.tuple (List.map (fun x -> (None, x)) p) Closed) x] ++ (selfcall "tuple" [list e]) ++#else + | Ttuple tl -> + let p, e = gentuple env tl in + let_in [Vb.mk (Pat.tuple p) x] (selfcall "tuple" [list e]) ++#endif + | Tconstr (path, [t], _) when Path.same path Predef.path_list -> + selfcall "list" [app (evar "List.map") [tyexpr_fun env t; x]] + | Tconstr (path, [t], _) when Path.same path Predef.path_array -> +--- src/ast_mapper_class.ml.orig 2022-09-26 22:01:08 ++++ src/ast_mapper_class.ml 2026-05-29 06:43:00 +@@ -56,7 +56,12 @@ + | Ptyp_var s -> var ~loc ~attrs s + | Ptyp_arrow (lab, t1, t2) -> + arrow ~loc ~attrs lab (sub # typ t1) (sub # typ t2) ++#if OCAML_VERSION >= (5, 4, 0) ++ | Ptyp_tuple tyl -> ++ tuple ~loc ~attrs (List.map (fun (l, t) -> (l, sub # typ t)) tyl) ++#else + | Ptyp_tuple tyl -> tuple ~loc ~attrs (List.map (sub # typ) tyl) ++#endif + | Ptyp_constr (lid, tl) -> + constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tl) + | Ptyp_object (l, o) -> +@@ -67,7 +72,15 @@ + | Ptyp_variant (rl, b, ll) -> + variant ~loc ~attrs (List.map (row_field sub) rl) b ll + | Ptyp_poly (sl, t) -> poly ~loc ~attrs sl (sub # typ t) ++#if OCAML_VERSION >= (5, 4, 0) ++ | Ptyp_package pt -> ++ package ~loc ~attrs (Typ.package_type ++ ~loc:pt.ppt_loc ~attrs:pt.ppt_attrs ++ (map_loc sub pt.ppt_path) ++ (List.map (map_tuple (map_loc sub) (sub # typ)) pt.ppt_cstrs)) ++#else + | Ptyp_package (lid, l) -> + package ~loc ~attrs (map_loc sub lid) + (List.map (map_tuple (map_loc sub) (sub # typ)) l) ++#endif + | Ptyp_extension x -> extension ~loc ~attrs (sub # extension x) +@@ -323,15 +336,44 @@ + | Pexp_constant x -> constant ~loc ~attrs x + | Pexp_let (r, vbs, e) -> + let_ ~loc ~attrs r (List.map (sub # value_binding) vbs) (sub # expr e) ++#if OCAML_VERSION >= (5, 2, 0) ++ | Pexp_function (params, constraint_, body) -> ++ let map_param p = ++ let pparam_desc = match p.pparam_desc with ++ | Pparam_val (lab, def, pat) -> ++ Pparam_val (lab, map_opt (sub # expr) def, sub # pat pat) ++ | Pparam_newtype _ as x -> x ++ in ++ { p with pparam_desc } ++ in ++ let constraint_ = match constraint_ with ++ | None -> None ++ | Some (Pconstraint t) -> Some (Pconstraint (sub # typ t)) ++ | Some (Pcoerce (t1, t2)) -> ++ Some (Pcoerce (map_opt (sub # typ) t1, sub # typ t2)) ++ in ++ let body = match body with ++ | Pfunction_body e -> Pfunction_body (sub # expr e) ++ | Pfunction_cases (cases, loc2, attrs2) -> ++ Pfunction_cases (sub # cases cases, loc2, attrs2) ++ in ++ function_ ~loc ~attrs (List.map map_param params) constraint_ body ++#else + | Pexp_fun (lab, def, p, e) -> + fun_ ~loc ~attrs lab (map_opt (sub # expr) def) (sub # pat p) + (sub # expr e) + | Pexp_function pel -> function_ ~loc ~attrs (sub # cases pel) ++#endif + | Pexp_apply (e, l) -> + apply ~loc ~attrs (sub # expr e) (List.map (map_snd (sub # expr)) l) + | Pexp_match (e, pel) -> match_ ~loc ~attrs (sub # expr e) (sub # cases pel) + | Pexp_try (e, pel) -> try_ ~loc ~attrs (sub # expr e) (sub # cases pel) ++#if OCAML_VERSION >= (5, 4, 0) ++ | Pexp_tuple el -> ++ tuple ~loc ~attrs (List.map (fun (l, e) -> (l, sub # expr e)) el) ++#else + | Pexp_tuple el -> tuple ~loc ~attrs (List.map (sub # expr) el) ++#endif + | Pexp_construct (lid, arg) -> + construct ~loc ~attrs (map_loc sub lid) (map_opt (sub # expr) arg) + | Pexp_variant (lab, eo) -> +@@ -402,7 +444,12 @@ + | Ppat_alias (p, s) -> alias ~loc ~attrs (sub # pat p) (map_loc sub s) + | Ppat_constant c -> constant ~loc ~attrs c + | Ppat_interval (c1, c2) -> interval ~loc ~attrs c1 c2 ++#if OCAML_VERSION >= (5, 4, 0) ++ | Ppat_tuple (pl, cf) -> ++ tuple ~loc ~attrs (List.map (fun (l, p) -> (l, sub # pat p)) pl) cf ++#else + | Ppat_tuple pl -> tuple ~loc ~attrs (List.map (sub # pat) pl) ++#endif + | Ppat_construct (l, p) -> + construct ~loc ~attrs (map_loc sub l) (map_pat_opt sub (sub # pat) p) + | Ppat_variant (l, p) -> variant ~loc ~attrs l (map_opt (sub # pat) p) diff --git a/ocaml/ocaml-ppx_tools_versioned/Portfile b/ocaml/ocaml-ppx_tools_versioned/Portfile deleted file mode 100644 index 146e9c61bf2..00000000000 --- a/ocaml/ocaml-ppx_tools_versioned/Portfile +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 - -PortSystem 1.0 -PortGroup github 1.0 -PortGroup ocaml 1.1 - -name ocaml-ppx_tools_versioned -github.setup ocaml-ppx ppx_tools_versioned 5.2.3 - -categories ocaml devel -maintainers {landonf @landonf} openmaintainer -license MIT -description A variant of ppx_tools based on ocaml-migrate-parsetree. -long_description A variant of ppx_tools based on ocaml-migrate-parsetree, \ - providing tools for authors of OCaml syntactic tools. -platforms darwin - -github.tarball_from archive - -distname ${version} -worksrcdir ${github.project}-${version} - -checksums rmd160 2b5b4d687a30bcb44b5496c33f44eb86d8d77c24 \ - sha256 f132c738342bebee4d32832a479a2832dd776ac741dad8b17e7a2df49c284c85 \ - size 76957 - -depends_lib port:ocaml-migrate-parsetree - -ocaml.build_type dune - -use_parallel_build no \ No newline at end of file diff --git a/ocaml/ocaml-ppx_tydi/Portfile b/ocaml/ocaml-ppx_tydi/Portfile index 7c855f3dac9..03bd63cc4c6 100644 --- a/ocaml/ocaml-ppx_tydi/Portfile +++ b/ocaml/ocaml-ppx_tydi/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_tydi -github.setup janestreet ppx_tydi 0.16.0 v -revision 2 +github.setup janestreet ppx_tydi 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Let expressions, inferring pattern type from expression long_description ${description} -checksums rmd160 3f800fd0ea55505c5d597822db2149f171d44600 \ - sha256 3dc321a790e7228de9487fa93fc2976be5bc41e733486c64c03eced01ad0e3ff \ - size 4583 +checksums rmd160 337db731d1db81b8ee3e93e6f2d7f1cb04488c6d \ + sha256 3ec2b25c91fdf195cdb596ec26d62953970fb1a28b61919965c9334c0e6ca8cf \ + size 4628 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_typerep_conv/Portfile b/ocaml/ocaml-ppx_typerep_conv/Portfile index fb98a3b6d83..c6a26eca0df 100644 --- a/ocaml/ocaml-ppx_typerep_conv/Portfile +++ b/ocaml/ocaml-ppx_typerep_conv/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_typerep_conv -github.setup janestreet ppx_typerep_conv 0.16.0 v -revision 2 +github.setup janestreet ppx_typerep_conv 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Automatic generation of runtime types from type definitions long_description ${description} -checksums rmd160 afa9ab8dbc6b5b18e339b6d29b8136f0649fa879 \ - sha256 e35cf53870f7c9aa3bf12072cbb23f0c4ed4dc6f0ee8a62b13bdfd9b77bb52e9 \ - size 9421 +checksums rmd160 2f3220fd2a594381253a3291b79597159830b984 \ + sha256 d58ae0dc8a66f06829f3a63efb9b2c43f8f9c486b34e3229422efedfcf690e57 \ + size 9459 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppx_variants_conv/Portfile b/ocaml/ocaml-ppx_variants_conv/Portfile index 0fdd65e83bf..ac7747009cc 100644 --- a/ocaml/ocaml-ppx_variants_conv/Portfile +++ b/ocaml/ocaml-ppx_variants_conv/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppx_variants_conv -github.setup janestreet ppx_variants_conv 0.16.0 v -revision 2 +github.setup janestreet ppx_variants_conv 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Generation of accessor and iteration functions for OCaml variant types long_description ${description} -checksums rmd160 cae5c6375add380c911a917830a94747881d0c87 \ - sha256 a4ef1446de2ab91492ca56c46cdae8491f2bb398797e69bf7ae794ddce4adad1 \ - size 12331 +checksums rmd160 dd9a699cd671db11afe509ba120e675500b27cc7 \ + sha256 06c710404b360aae7effe1fbaf36b3a0f7fde934a1712ce32029838e49a02e82 \ + size 12379 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-ppxfind/Portfile b/ocaml/ocaml-ppxfind/Portfile deleted file mode 100644 index dfc076cc149..00000000000 --- a/ocaml/ocaml-ppxfind/Portfile +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 - -PortSystem 1.0 -PortGroup github 1.0 -PortGroup ocaml 1.1 - -name ocaml-ppxfind -github.setup diml ppxfind 1.3 - -categories ocaml devel -maintainers {landonf @landonf} openmaintainer -license BSD -description Apply OCaml PPX rewriters from the command line -long_description A command line tool that supports applying PPX rewriters. - -platforms darwin - -github.tarball_from releases - -checksums rmd160 92cde2a839c01f49da99c82680a73f8e88d22045 \ - sha256 d49db026d0e74212c4b475b4e628aa57508c7452a0682d8c96e80c130ab892e4 \ - size 3808 - -use_bzip2 yes -extract.suffix .tbz - -ocaml.build_type dune - -depends_lib port:ocaml-migrate-parsetree diff --git a/ocaml/ocaml-ppxlib/Portfile b/ocaml/ocaml-ppxlib/Portfile index d751d38104d..68b78463566 100644 --- a/ocaml/ocaml-ppxlib/Portfile +++ b/ocaml/ocaml-ppxlib/Portfile @@ -5,10 +5,7 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ppxlib -# NB: 0.36.0+ bumps the internal AST to 5.2.0 and requires updating -# ppx_deriving, sedlex, bisect_ppx, lwt, the entire Jane Street -# ppx_* v0.16 to v0.17 suite, and OCaml 5.3+ (via ppxlib_jane). -github.setup ocaml-ppx ppxlib 0.35.0 +github.setup ocaml-ppx ppxlib 0.38.0 revision 0 categories ocaml devel @@ -19,9 +16,9 @@ long_description Ppxlib is the standard library for ppx rewriters and other \ programs that manipulate the in-memory reprensation of the \ OCaml parsetree. -checksums rmd160 8a79ce87e4c9295af3c79cce8254015648f88329 \ - sha256 94cff5e18339d8582319beb8e9caa320c3482d9000c1269dad421565a2e8ce57 \ - size 588917 +checksums rmd160 93f5cbae8c5260f84858eff1d0d57082edbb0378 \ + sha256 cb88f34179731182aa73bb25e4d081f94a6a9a7f99b1f818ddb2969f97123b19 \ + size 674990 github.tarball_from archive conflicts ocaml-migrate-parsetree diff --git a/ocaml/ocaml-ppxlib_jane/Portfile b/ocaml/ocaml-ppxlib_jane/Portfile new file mode 100644 index 00000000000..50fa4169b1f --- /dev/null +++ b/ocaml/ocaml-ppxlib_jane/Portfile @@ -0,0 +1,23 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + +PortSystem 1.0 +PortGroup github 1.0 +PortGroup ocaml 1.1 + +name ocaml-ppxlib_jane +github.setup janestreet ppxlib_jane 0.17.4 v +revision 0 +categories ocaml devel +maintainers nomaintainer +license MIT +description Utilities for working with Jane Street AST constructs +long_description {*}${description} + +checksums rmd160 efb4e05ae0fa31ae3f4dbe89022f4d534666e66a \ + sha256 10c4d1a162a8f51eecf35d68118a96aa5f375350ff3abb357b41968faa7b4ef3 \ + size 42650 +github.tarball_from archive + +depends_lib-append port:ocaml-ppxlib + +ocaml.build_type dune diff --git a/ocaml/ocaml-process/Portfile b/ocaml/ocaml-process/Portfile index 773b8f44c40..145a6be8763 100644 --- a/ocaml/ocaml-process/Portfile +++ b/ocaml/ocaml-process/Portfile @@ -7,7 +7,7 @@ PortGroup ocaml 1.1 github.setup dsheets ocaml-process 0.2.1 # Change github.tarball_from to 'releases' or 'archive' next update github.tarball_from tarball -revision 1 +revision 2 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-protocol_version_header/Portfile b/ocaml/ocaml-protocol_version_header/Portfile index 2598411dbe6..b7db859eb66 100644 --- a/ocaml/ocaml-protocol_version_header/Portfile +++ b/ocaml/ocaml-protocol_version_header/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-protocol_version_header -github.setup janestreet protocol_version_header 0.16.0 v -revision 1 +github.setup janestreet protocol_version_header 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Protocol-aware version negotiation long_description ${description} -checksums rmd160 f5e18f11c0b8a61365cb41890f4e0ae5e93d1e0e \ - sha256 459f0ae7c21629eaf89ddaad49c236b3acf1780dbd4f726199d3a1b7a138ce6f \ - size 9189 +checksums rmd160 d7868a58b6f9d7d164f3f40f8dc3ba5a73dac77a \ + sha256 18b0838b2d92e4b367b157b0ced6dec9d09c31a5e81a299a1bf25853a490adfd \ + size 9374 github.tarball_from archive depends_lib-append port:ocaml-core \ diff --git a/ocaml/ocaml-ptime/Portfile b/ocaml/ocaml-ptime/Portfile index 28af6e2a25e..207d6da2e88 100644 --- a/ocaml/ocaml-ptime/Portfile +++ b/ocaml/ocaml-ptime/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-ptime github.setup dbuenzli ptime 1.2.0 v -revision 1 +revision 2 categories ocaml devel maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-re/Portfile b/ocaml/ocaml-re/Portfile index 0c5fa2e76f4..71b961ea5e7 100644 --- a/ocaml/ocaml-re/Portfile +++ b/ocaml/ocaml-re/Portfile @@ -6,6 +6,7 @@ PortGroup ocaml 1.1 name ocaml-re github.setup ocaml ocaml-re 1.11.0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-react/Portfile b/ocaml/ocaml-react/Portfile index 64fdb5816e6..0228136aef8 100644 --- a/ocaml/ocaml-react/Portfile +++ b/ocaml/ocaml-react/Portfile @@ -5,6 +5,7 @@ PortGroup ocaml 1.1 name ocaml-react version 1.2.2 +revision 1 categories ocaml devel license ISC maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-record_builder/Portfile b/ocaml/ocaml-record_builder/Portfile index abf6b1d2e06..8286a0d5e6b 100644 --- a/ocaml/ocaml-record_builder/Portfile +++ b/ocaml/ocaml-record_builder/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-record_builder -github.setup janestreet record_builder 0.16.0 v -revision 1 +github.setup janestreet record_builder 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Library which provides traversal of records with an applicative long_description ${description} -checksums rmd160 9e715ec07f665400211353403ffd4db46f1a67d1 \ - sha256 501d45424e9b04ad20bc9498a6dad4896d8fce7b827b9bc5f3e90f7788a44e9c \ - size 6967 +checksums rmd160 28e932d0432e0432352422c66e357d807fd4b5b8 \ + sha256 cef79df7f3626255f8452ed6235377be9eae0503fec4ffd111447e43450de6e2 \ + size 7013 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-result/Portfile b/ocaml/ocaml-result/Portfile index 9935f2f5100..5d027d5de87 100644 --- a/ocaml/ocaml-result/Portfile +++ b/ocaml/ocaml-result/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-result github.setup janestreet result 1.5 -revision 1 +revision 2 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-rresult/Portfile b/ocaml/ocaml-rresult/Portfile index 8253522434d..fbe49d15ca7 100644 --- a/ocaml/ocaml-rresult/Portfile +++ b/ocaml/ocaml-rresult/Portfile @@ -5,7 +5,7 @@ PortGroup ocaml 1.1 name ocaml-rresult version 0.7.0 -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license ISC diff --git a/ocaml/ocaml-sedlex/Portfile b/ocaml/ocaml-sedlex/Portfile index 3ace45aef15..e2de54c79bd 100644 --- a/ocaml/ocaml-sedlex/Portfile +++ b/ocaml/ocaml-sedlex/Portfile @@ -5,8 +5,8 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-sedlex -github.setup ocaml-community sedlex 3.3 v -revision 1 +github.setup ocaml-community sedlex 3.7 v +revision 0 github.tarball_from archive @@ -18,9 +18,9 @@ long_description sedlex is a lexer generator for OCaml, similar to ocamllex. Unlike ocamllex, sedlex supports Unicode, and lexer specifications \ are embedded in regular OCaml source files. -checksums rmd160 fcfd6a99a0322e0f4ef2ca71620c433cb59e2745 \ - sha256 b056013790ad1884d38048c320475e79f0c384b4fbe3c14a8ec9febda47c88a3 \ - size 128967 +checksums rmd160 fe069725ca6e21a56b49f3630ec20026c859afc9 \ + sha256 edb489710f5f937e69c7c11bb165fca91595d35059990c877c79f292b3e00851 \ + size 143594 depends_lib-append port:ocaml-gen \ port:ocaml-ppxlib diff --git a/ocaml/ocaml-seq/Portfile b/ocaml/ocaml-seq/Portfile index 627b2c4f6a2..3b48220a2ef 100644 --- a/ocaml/ocaml-seq/Portfile +++ b/ocaml/ocaml-seq/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-seq github.setup c-cube seq 0.3.1 v -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license LGPL-2.1 diff --git a/ocaml/ocaml-sexp_pretty/Portfile b/ocaml/ocaml-sexp_pretty/Portfile index 27a29a47f12..2928fbe49a3 100644 --- a/ocaml/ocaml-sexp_pretty/Portfile +++ b/ocaml/ocaml-sexp_pretty/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-sexp_pretty -github.setup janestreet sexp_pretty 0.16.0 v -revision 1 +github.setup janestreet sexp_pretty 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Library for pretty-printing s-expressions long_description Library for pretty-printing s-expressions, using better indentation rules than the default pretty printer in Sexplib. -checksums rmd160 bf2641624e21caeb127f269dd64d0ec090e6905c \ - sha256 9d15e7be22a7d27d1e037571491c58ffd0165f01082110e748e073a99cd7864b \ - size 22557 +checksums rmd160 8c6612eb070d9ed685c327fef4a4dd3fe1522ca3 \ + sha256 48caa552235e331f349a70580e756cea0d8335d9cccc46f3fe47142e04bad2f8 \ + size 22605 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-sexplib/Portfile b/ocaml/ocaml-sexplib/Portfile index 5124f0a1b84..666403d5093 100644 --- a/ocaml/ocaml-sexplib/Portfile +++ b/ocaml/ocaml-sexplib/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-sexplib -github.setup janestreet sexplib 0.16.0 v -revision 1 +github.setup janestreet sexplib 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description S-expressions for OCaml long_description ${description} -checksums rmd160 1235619db906a03cfd83eadc0c04ef66f631c136 \ - sha256 02d0542527191f99f7b2fde684386bfca086d8f8e42e8488561bcd269a6a5472 \ - size 55015 +checksums rmd160 abb3fdafc7583f96c735fdd8c9d4c923d3d1cc5a \ + sha256 da863b42b81235fdcf45eb32c04fb8bde22ff446a779cfb6f989730a35103160 \ + size 55490 github.tarball_from archive depends_lib-append port:ocaml-num \ diff --git a/ocaml/ocaml-sexplib0/Portfile b/ocaml/ocaml-sexplib0/Portfile index 0975ad0f8e7..2a41b4f16a7 100644 --- a/ocaml/ocaml-sexplib0/Portfile +++ b/ocaml/ocaml-sexplib0/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-sexplib0 github.setup janestreet sexplib0 0.17.0 v -revision 0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-sha/Portfile b/ocaml/ocaml-sha/Portfile index 3675c0ed883..76a822a8005 100644 --- a/ocaml/ocaml-sha/Portfile +++ b/ocaml/ocaml-sha/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 github.setup djs55 ocaml-sha 1.15.4 v github.tarball_from archive -revision 0 +revision 1 categories ocaml devel security maintainers {pguyot @pguyot} openmaintainer license ISC diff --git a/ocaml/ocaml-shell/Portfile b/ocaml/ocaml-shell/Portfile index 7d70ca420bf..10d2219d44a 100644 --- a/ocaml/ocaml-shell/Portfile +++ b/ocaml/ocaml-shell/Portfile @@ -5,8 +5,8 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-shell -github.setup janestreet shell 0.16.0 v -revision 2 +github.setup janestreet shell 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT @@ -14,9 +14,9 @@ description Implementation of fork&exec and related functionality. long_description Yet another implementation of fork&exec and related functionality. \ Functions for invoking executables and for running bash in a subprocess. -checksums rmd160 e0d4fe47ecfc5b3e91dcca04f414d77a71b54c2f \ - sha256 c8875d651cbf552ea82fdcfebfed90c858d3d6810fd2748bf01786550878e906 \ - size 40799 +checksums rmd160 b777ecbdd5181f146b23b0ea7192364a4337937e \ + sha256 d6f76ca1c3e7fa523da5affe9c1ebb74fe17bec2a2f22c239746b72905bc5f61 \ + size 40642 github.tarball_from archive depends_lib-append port:ocaml-core \ @@ -26,4 +26,7 @@ depends_lib-append port:ocaml-core \ port:ocaml-textutils \ port:ocaml-spawn +# both install the findlib package 'shell' +conflicts ocaml-ocamlnet + ocaml.build_type dune diff --git a/ocaml/ocaml-spawn/Portfile b/ocaml/ocaml-spawn/Portfile index a8affdb6db4..8d8aaf25f0d 100644 --- a/ocaml/ocaml-spawn/Portfile +++ b/ocaml/ocaml-spawn/Portfile @@ -5,8 +5,8 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-spawn -github.setup janestreet spawn 0.15.1 v -revision 1 +github.setup janestreet spawn 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT @@ -16,9 +16,9 @@ long_description Spawn is a small library exposing only one function: Spawn.s a few missing features of Unix.create_process such as providing \ a working directory as well as improving error reporting and performance. -checksums rmd160 a27c733ea0e8aea3a2889397b8c35fcdb66f79aa \ - sha256 9afdee314fab6c3fcd689ab6eb5608d6b78078e6dede3953a47debde06c19d50 \ - size 15861 +checksums rmd160 a7e6bd08ffe1765ee020ab875669292dbce6202b \ + sha256 07c7aaae69c910af584e963c4a15323bd6988741843dfd3c8d11994b3e27ce59 \ + size 18629 github.tarball_from archive depends_test-append port:ocaml-ppx_expect diff --git a/ocaml/ocaml-splittable_random/Portfile b/ocaml/ocaml-splittable_random/Portfile index fec4e91eae4..fe5af09d473 100644 --- a/ocaml/ocaml-splittable_random/Portfile +++ b/ocaml/ocaml-splittable_random/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-splittable_random -github.setup janestreet splittable_random 0.16.0 v -revision 1 +github.setup janestreet splittable_random 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description PRNG that can be split into independent streams long_description ${description} -checksums rmd160 358bba4fc948496e0d3c4092024b9fa0689222e3 \ - sha256 4d08f7e4d56f2b432ba3ee5f66d807983038b834ddac1d23d0ab3a528244be15 \ - size 9978 +checksums rmd160 cd7a4a6b1078570a3d310ab2d2792231d122d22c \ + sha256 4f8adcade214d1f84e1073a35f4751154e73853649df581cce68d20dc6337ad2 \ + size 10190 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-sqlite3/Portfile b/ocaml/ocaml-sqlite3/Portfile index 4410ec78612..4d404e5a299 100644 --- a/ocaml/ocaml-sqlite3/Portfile +++ b/ocaml/ocaml-sqlite3/Portfile @@ -6,6 +6,7 @@ PortGroup ocaml 1.1 name ocaml-sqlite3 github.setup mmottl sqlite3-ocaml 5.1.0 +revision 1 github.tarball_from releases categories ocaml devel databases diff --git a/ocaml/ocaml-stdcompat/Portfile b/ocaml/ocaml-stdcompat/Portfile index 4ab1fa584db..1da03fc3380 100644 --- a/ocaml/ocaml-stdcompat/Portfile +++ b/ocaml/ocaml-stdcompat/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-stdcompat github.setup ocamllibs stdcompat 21.1 -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license LGPL-2.1 @@ -19,3 +19,9 @@ checksums rmd160 8acc7845017247b6759b64643489c1601b96f536 \ github.tarball_from archive ocaml.build_type dune + +# OCaml 5.4 support backported from upstream PR #70 via Debian: +# https://sources.debian.org/src/ocaml-stdcompat/21.1-2/debian/patches/ +patchfiles-append 0001-Add-OCaml-5.4-support.patch \ + 0002-Fix-OCaml-5.4.0-patch.patch \ + 0003-Add-5.4.1-to-known-OCaml-versions.patch diff --git a/ocaml/ocaml-stdcompat/files/0001-Add-OCaml-5.4-support.patch b/ocaml/ocaml-stdcompat/files/0001-Add-OCaml-5.4-support.patch new file mode 100644 index 00000000000..96f028839cf --- /dev/null +++ b/ocaml/ocaml-stdcompat/files/0001-Add-OCaml-5.4-support.patch @@ -0,0 +1,100 @@ +From: Stephane Glondu +Date: Thu, 18 Dec 2025 08:44:57 +0100 +Subject: Add OCaml 5.4 support + +Origin: https://github.com/ocamllibs/stdcompat/pull/70 +--- + stdcompat__array.ml.in | 19 +++++++++++++++++++ + stdcompat__arrayLabels_s.mli.in | 4 ++++ + stdcompat__array_s.mli.in | 6 ++++++ + tools/compiler_version.ml | 2 ++ + tools/compiler_version.mli | 1 + + 5 files changed, 32 insertions(+) + +diff --git a/stdcompat__array.ml.in b/stdcompat__array.ml.in +index 8bb2998..7b88e49 100644 +--- stdcompat__array.ml.in ++++ stdcompat__array.ml.in +@@ -229,3 +229,22 @@ let rec find_mapi_from index f array = + let find_mapi f array = + find_mapi_from 0 f array + @END_BEFORE_5_1_0@ ++ ++@BEGIN_BEFORE_5_4_0@ ++(* copied from OCaml 5.4 stdlib/array.ml *) ++let equal eq a b = ++ if length a <> length b then false else ++ let i = ref 0 in ++ let len = length a in ++ while !i < len && eq (unsafe_get a !i) (unsafe_get b !i) do incr i done; ++ !i = len ++ ++let compare cmp a b = ++ let len_a = length a and len_b = length b in ++ let diff = len_a - len_b in ++ if diff <> 0 then (if diff < 0 then -1 else 1) else ++ let i = ref 0 and c = ref 0 in ++ while !i < len_a && !c = 0 ++ do c := cmp (unsafe_get a !i) (unsafe_get b !i); incr i done; ++ !c ++@END_BEFORE_5_4_0@ +diff --git a/stdcompat__arrayLabels_s.mli.in b/stdcompat__arrayLabels_s.mli.in +index c09705b..bf1ba30 100644 +--- stdcompat__arrayLabels_s.mli.in ++++ stdcompat__arrayLabels_s.mli.in +@@ -267,4 +267,8 @@ external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get" + external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set" + (** Alias for {!ArrayLabels.unsafe_set} *) + ++(* OCaml 5.4 *) ++val equal : eq:('a -> 'a -> bool) -> 'a array -> 'a array -> bool ++val compare : cmp:('a -> 'a -> int) -> 'a array -> 'a array -> int ++ + end +diff --git a/stdcompat__array_s.mli.in b/stdcompat__array_s.mli.in +index 837ac58..97b20ff 100644 +--- stdcompat__array_s.mli.in ++++ stdcompat__array_s.mli.in +@@ -258,4 +258,10 @@ external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get" + external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set" + (** Alias for {!Array.unsafe_set} *) + ++(* OCaml 5.4 *) ++ ++val equal : ('a -> 'a -> bool) -> 'a array -> 'a array -> bool ++val compare : ('a -> 'a -> int) -> 'a array -> 'a array -> int ++ + end ++ +diff --git a/tools/compiler_version.ml b/tools/compiler_version.ml +index f675a20..856f9d1 100644 +--- tools/compiler_version.ml ++++ tools/compiler_version.ml +@@ -87,6 +87,7 @@ let v5_1_1 = mk 5 1 1 + let v5_2_0 = mk 5 2 0 + let v5_2_1 = mk 5 2 1 + let v5_3_0 = mk 5 3 0 ++let v5_4_0 = mk 5 4 0 + + let known_versions = + [ +@@ -133,6 +134,7 @@ let known_versions = + v5_2_0; + v5_2_1; + v5_3_0; ++ v5_4_0; + ] + + let is_known v = List.mem v known_versions +diff --git a/tools/compiler_version.mli b/tools/compiler_version.mli +index c3ab3d6..ed05e36 100644 +--- tools/compiler_version.mli ++++ tools/compiler_version.mli +@@ -51,6 +51,7 @@ val v5_1_1 : t + val v5_2_0 : t + val v5_2_1 : t + val v5_3_0 : t ++val v5_4_0 : t + + val known_versions : t list + diff --git a/ocaml/ocaml-stdcompat/files/0002-Fix-OCaml-5.4.0-patch.patch b/ocaml/ocaml-stdcompat/files/0002-Fix-OCaml-5.4.0-patch.patch new file mode 100644 index 00000000000..4228d8adf6c --- /dev/null +++ b/ocaml/ocaml-stdcompat/files/0002-Fix-OCaml-5.4.0-patch.patch @@ -0,0 +1,22 @@ +From: Stephane Glondu +Date: Thu, 18 Dec 2025 09:33:47 +0100 +Subject: Fix OCaml 5.4.0 patch + +--- + stdcompat__format_s.mli.in | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/stdcompat__format_s.mli.in b/stdcompat__format_s.mli.in +index 9c2883d..253749b 100644 +--- stdcompat__format_s.mli.in ++++ stdcompat__format_s.mli.in +@@ -44,6 +44,9 @@ type tag = string + type formatter_out_functions = Format.formatter_out_functions = + { + out_string: string -> int -> int -> unit ; ++@BEGIN_FROM_5_4_0@ ++ out_width: string -> pos:int -> len:int -> int ; ++@END_FROM_5_4_0@ + out_flush: unit -> unit ; + out_newline: unit -> unit ; + out_spaces: int -> unit ; diff --git a/ocaml/ocaml-stdcompat/files/0003-Add-5.4.1-to-known-OCaml-versions.patch b/ocaml/ocaml-stdcompat/files/0003-Add-5.4.1-to-known-OCaml-versions.patch new file mode 100644 index 00000000000..7576c5057cd --- /dev/null +++ b/ocaml/ocaml-stdcompat/files/0003-Add-5.4.1-to-known-OCaml-versions.patch @@ -0,0 +1,28 @@ +From: Stephane Glondu +Date: Mon, 2 Mar 2026 09:42:46 +0100 +Subject: Add 5.4.1 to known OCaml versions + +--- + tools/compiler_version.ml | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/tools/compiler_version.ml b/tools/compiler_version.ml +index 856f9d1..630af62 100644 +--- tools/compiler_version.ml ++++ tools/compiler_version.ml +@@ -88,6 +88,7 @@ let v5_2_0 = mk 5 2 0 + let v5_2_1 = mk 5 2 1 + let v5_3_0 = mk 5 3 0 + let v5_4_0 = mk 5 4 0 ++let v5_4_1 = mk 5 4 1 + + let known_versions = + [ +@@ -135,6 +136,7 @@ let known_versions = + v5_2_1; + v5_3_0; + v5_4_0; ++ v5_4_1; + ] + + let is_known v = List.mem v known_versions diff --git a/ocaml/ocaml-stdint/Portfile b/ocaml/ocaml-stdint/Portfile index cd866c70539..6f577c7e94a 100644 --- a/ocaml/ocaml-stdint/Portfile +++ b/ocaml/ocaml-stdint/Portfile @@ -5,6 +5,7 @@ PortGroup github 1.0 PortGroup ocaml 1.1 github.setup andrenth ocaml-stdint 0.7.2 +revision 1 categories ocaml devel license MIT maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-stdio/Portfile b/ocaml/ocaml-stdio/Portfile index 37c23acd243..578bb70d399 100644 --- a/ocaml/ocaml-stdio/Portfile +++ b/ocaml/ocaml-stdio/Portfile @@ -5,8 +5,9 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-stdio -github.setup janestreet stdio 0.16.0 v -revision 1 +github.setup janestreet stdio 0.17.0 v +revision 0 +github.tarball_from archive categories ocaml devel maintainers {landonf @landonf} openmaintainer @@ -16,16 +17,9 @@ long_description Stdio implements simple input/output functionalities for OCa re-exporting the input/output functions of the OCaml standard \ libraries using a more consistent API. -# Strip everything but . from version -set janestreet_ver [regsub {^([^\.]+\.[^\.]+).*} ${version} {\1}] -master_sites https://ocaml.janestreet.com/ocaml-core/v${janestreet_ver}/files/ - -distname stdio-${git.branch} - -checksums rmd160 7769b050c8972a5b1a65d4a430fd75052e5413b4 \ - sha256 61f0b75950614ac5378c6ec0d822cce6463402d919d5810b736fc46522b3a73e \ - size 7779 -github.tarball_from archive +checksums rmd160 a2f91b327b8ce91e668c2c9ab8b145819192bf7e \ + sha256 e7cb473d4bffcf419f307c658cf2599fab03a2b4fe655bfd0be699f8f7af176e \ + size 7982 depends_lib port:ocaml-base diff --git a/ocaml/ocaml-stdlib-shims/Portfile b/ocaml/ocaml-stdlib-shims/Portfile index 71c8736d4ef..a9621412a51 100644 --- a/ocaml/ocaml-stdlib-shims/Portfile +++ b/ocaml/ocaml-stdlib-shims/Portfile @@ -8,7 +8,7 @@ name ocaml-stdlib-shims github.setup ocaml stdlib-shims 0.3.0 # Change github.tarball_from to 'releases' or 'archive' next update github.tarball_from tarball -revision 1 +revision 2 categories ocaml devel maintainers {landonf @landonf} openmaintainer license LGPL diff --git a/ocaml/ocaml-stringext/Portfile b/ocaml/ocaml-stringext/Portfile index abf67a9595d..8bacdd362b7 100644 --- a/ocaml/ocaml-stringext/Portfile +++ b/ocaml/ocaml-stringext/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 name ocaml-stringext version 1.6.0 -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license MIT diff --git a/ocaml/ocaml-syntax-shims/Portfile b/ocaml/ocaml-syntax-shims/Portfile index 6e09366e17f..24139c4bb3e 100644 --- a/ocaml/ocaml-syntax-shims/Portfile +++ b/ocaml/ocaml-syntax-shims/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-syntax-shims github.setup ocaml-ppx ocaml-syntax-shims 1.0.0 -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license MIT diff --git a/ocaml/ocaml-syslog-message/Portfile b/ocaml/ocaml-syslog-message/Portfile index 3632416e534..997845da004 100644 --- a/ocaml/ocaml-syslog-message/Portfile +++ b/ocaml/ocaml-syslog-message/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-syslog-message github.setup verbosemode syslog-message 1.2.0 -revision 1 +revision 2 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license BSD diff --git a/ocaml/ocaml-syslog/Portfile b/ocaml/ocaml-syslog/Portfile index 4096e5cfd21..07216cdf4f4 100644 --- a/ocaml/ocaml-syslog/Portfile +++ b/ocaml/ocaml-syslog/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 name ocaml-syslog version 2.0.2 -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license MIT diff --git a/ocaml/ocaml-textutils/Portfile b/ocaml/ocaml-textutils/Portfile index 206d6208912..124397df764 100644 --- a/ocaml/ocaml-textutils/Portfile +++ b/ocaml/ocaml-textutils/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-textutils -github.setup janestreet textutils 0.16.0 v -revision 2 +github.setup janestreet textutils 0.17.0 v +revision 0 categories ocaml textproc maintainers nomaintainer license MIT description Text output utilities long_description ${description} -checksums rmd160 ef05892c3703d7796aef51c208fc862f5afb7584 \ - sha256 028dff69c62b67bbee52619019761b7c11e4c50d3b54f7e7befda545352fa731 \ - size 15746 +checksums rmd160 6a18a742076661e84825f345353e90bf31b3bce9 \ + sha256 b2681af1f4029245a5c187c4f0834ac470ada6ffc69db7c7e219b3244f88b3d5 \ + size 17310 github.tarball_from archive depends_lib-append port:ocaml-core \ diff --git a/ocaml/ocaml-textutils_kernel/Portfile b/ocaml/ocaml-textutils_kernel/Portfile index f8899e400f6..c9cf83c328c 100644 --- a/ocaml/ocaml-textutils_kernel/Portfile +++ b/ocaml/ocaml-textutils_kernel/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-textutils_kernel -github.setup janestreet textutils_kernel 0.16.0 v -revision 2 +github.setup janestreet textutils_kernel 0.17.0 v +revision 0 categories ocaml textproc maintainers nomaintainer license MIT description The subset of textutils using only core_kernel and working in JavaScript long_description ${description} -checksums rmd160 57b1f9f04ae5075aa09c7dccb987bf1c2cafd2f9 \ - sha256 a7bb2996d9547f7003bbdb781cd113353ac026b4780f46e00adf647805d97582 \ - size 19413 +checksums rmd160 491972dd0ebe8d6b60dcc79b23e1647959e21711 \ + sha256 793902157823c4112948514201a9e5c05126212b2b8d8b05a3cac786f752aa89 \ + size 19590 github.tarball_from archive depends_lib-append port:ocaml-core \ diff --git a/ocaml/ocaml-time_now/Portfile b/ocaml/ocaml-time_now/Portfile index f331793452e..1117468807d 100644 --- a/ocaml/ocaml-time_now/Portfile +++ b/ocaml/ocaml-time_now/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-time_now -github.setup janestreet time_now 0.16.0 v -revision 1 +github.setup janestreet time_now 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Reports the current time long_description {*}${description} -checksums rmd160 cbba636024171bab54071723e21705349fb8b556 \ - sha256 1796c6ac4c06fb85eb068bd223244c8d25abd4b95cb567c18a9223168107999d \ - size 3729 +checksums rmd160 fd3dd0ca221d8c7b3a02d61facf05cd20d1801da \ + sha256 fc85d6e46c4eb9370de9385f7bbfa6d57b4e48a9e96b20009007226b73f9530c \ + size 4717 github.tarball_from archive depends_lib-append port:ocaml-base \ diff --git a/ocaml/ocaml-timezone/Portfile b/ocaml/ocaml-timezone/Portfile index 234cdec6e4d..a781f8605c7 100644 --- a/ocaml/ocaml-timezone/Portfile +++ b/ocaml/ocaml-timezone/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-timezone -github.setup janestreet timezone 0.16.0 v -revision 1 +github.setup janestreet timezone 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Timezone for OCaml long_description Timezone handles parsing timezone data and create Timezone.t that can later be used to manipulate time in core (using Time and Time_ns modules). -checksums rmd160 0038a0cc9904b4b5049c24e253d0017e1a14637d \ - sha256 0acd70fb2a889f58caeba276433e6208f8346e25f0feb0f7721b5916dfc04937 \ - size 9881 +checksums rmd160 6871ab602bad259ff04370f9ed5de835e278905d \ + sha256 43026ee35551b996c627b0759e20da1a01609a3fd999eb6ba3149632dd625adf \ + size 10007 github.tarball_from archive depends_lib-append port:ocaml-core \ diff --git a/ocaml/ocaml-topkg/Portfile b/ocaml/ocaml-topkg/Portfile index 3b1b9a1fdf2..29f209263d9 100644 --- a/ocaml/ocaml-topkg/Portfile +++ b/ocaml/ocaml-topkg/Portfile @@ -5,6 +5,7 @@ PortGroup ocaml 1.1 name ocaml-topkg version 1.0.7 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-trie/Portfile b/ocaml/ocaml-trie/Portfile index 5aa1b226e3b..8b5c9e07e53 100644 --- a/ocaml/ocaml-trie/Portfile +++ b/ocaml/ocaml-trie/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-trie github.setup kandu trie 1.0.0 -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license MIT diff --git a/ocaml/ocaml-typerep/Portfile b/ocaml/ocaml-typerep/Portfile index d050a4a15c0..9e5c8d4e617 100644 --- a/ocaml/ocaml-typerep/Portfile +++ b/ocaml/ocaml-typerep/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-typerep -github.setup janestreet typerep 0.16.0 v -revision 1 +github.setup janestreet typerep 0.17.1 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description Runtime types for OCaml long_description ${description} -checksums rmd160 ec8397490b7a659bde5677e823812c8a74865016 \ - sha256 943ef91a18d26d530873630a76fc12bc0f0ce5ee8133be69f1e3026525357b11 \ - size 23002 +checksums rmd160 29b7dcd960c47977daa530a4fb4dc0ea912955e5 \ + sha256 7af8e3d7398500573c97c7ba3605cf9e971aea5447df7178ef104ef819e8b3e4 \ + size 23072 github.tarball_from archive depends_lib-append port:ocaml-base diff --git a/ocaml/ocaml-ulex/Portfile b/ocaml/ocaml-ulex/Portfile index aeab7e05b69..a88bc6f2d52 100644 --- a/ocaml/ocaml-ulex/Portfile +++ b/ocaml/ocaml-ulex/Portfile @@ -5,9 +5,8 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-ulex -github.setup whitequark ulex 1.2 v -# Change github.tarball_from to 'releases' or 'archive' next update -github.tarball_from tarball +github.setup whitequark ulex 1.3 v +github.tarball_from archive revision 1 categories ocaml devel textproc license BSD @@ -16,13 +15,16 @@ maintainers {landonf @landonf} openmaintainer description lexer generator for Unicode and OCaml long_description ulex is a lexer generator for Unicode and OCaml written by Alain Frisch. -checksums rmd160 4945c11a9fa4d988c872cdd7fe9008a55cccfd0c \ - sha256 055a1e064d1b62629f373bd73e17e9bdd51b2e44e0497ec5109d9c8743025a6d \ - size 19942 +checksums rmd160 22139fb4fcf687597c8183537a4170f52b0fb4b5 \ + sha256 3394fc482f58e8f787c99395eb47b727228416bead8a700555d499a26754f938 \ + size 20453 + +patchfiles patch-camlp5-8.diff depends_lib port:ocaml \ port:ocaml-findlib \ - port:ocaml-camlp4 + port:camlp5 \ + port:ocaml-camlp-streams depends_build port:ocaml-ocamlbuild @@ -31,3 +33,7 @@ use_configure no ocaml.use_findlib yes build.target all.opt + +# The Makefile passes DESTDIR directly as `-destdir` to ocamlfind install, +# so we must point it at the site-lib directory rather than the raw destroot. +destroot.destdir DESTDIR=${destroot}${prefix}/lib/ocaml/site-lib diff --git a/ocaml/ocaml-ulex/files/patch-camlp5-8.diff b/ocaml/ocaml-ulex/files/patch-camlp5-8.diff new file mode 100644 index 00000000000..f1befdac4ef --- /dev/null +++ b/ocaml/ocaml-ulex/files/patch-camlp5-8.diff @@ -0,0 +1,24 @@ +--- pa_ulex.ml.orig ++++ pa_ulex.ml +@@ -264,14 +264,16 @@ + + + let () = +- let old_parse_implem = !Pcaml.parse_implem in +- let new_parse_implem s = +- let (items,d) = old_parse_implem s in ++ let old_transform = !(Pcaml.transduce_implem.transform) in ++ Pcaml.set_ast_transform Pcaml.transduce_implem (fun (items, d) -> ++ let (items, d) = match old_transform with ++ | Some f -> f (items, d) ++ | None -> (items, d) ++ in + let parts = List.map partition (Ulex.partitions ()) in + let tables = List.map table (get_tables ()) in + (<:str_item< declare $list:tables@parts$ end >>, loc) :: items, d +- in +- Pcaml.parse_implem := new_parse_implem ++ ) + + + (*let change_ids suffix = object diff --git a/ocaml/ocaml-unidecode/Portfile b/ocaml/ocaml-unidecode/Portfile index 5e7154f233a..db8e18ddce6 100644 --- a/ocaml/ocaml-unidecode/Portfile +++ b/ocaml/ocaml-unidecode/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 name ocaml-unidecode version 0.5.0 -revision 0 +revision 1 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license GPL diff --git a/ocaml/ocaml-uopt/Portfile b/ocaml/ocaml-uopt/Portfile new file mode 100644 index 00000000000..b4a755569f5 --- /dev/null +++ b/ocaml/ocaml-uopt/Portfile @@ -0,0 +1,24 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + +PortSystem 1.0 +PortGroup github 1.0 +PortGroup ocaml 1.1 + +name ocaml-uopt +github.setup janestreet uopt 0.17.0 v +revision 0 +categories ocaml devel +maintainers nomaintainer +license MIT +description An option-like type that incurs no allocation +long_description ${description}, without requiring a reserved value in the underlying type + +checksums rmd160 be1e4dfa6d5f83856489f9bcdb44dce08db9dd31 \ + sha256 a6534df59d54cfa50ac22c4406d425b098e94b198cee48c3d82e15a348577cc6 \ + size 5880 +github.tarball_from archive + +depends_lib-append port:ocaml-base \ + port:ocaml-ppx_jane + +ocaml.build_type dune diff --git a/ocaml/ocaml-uri/Portfile b/ocaml/ocaml-uri/Portfile index 9b586f3df1e..14918d6cbf1 100644 --- a/ocaml/ocaml-uri/Portfile +++ b/ocaml/ocaml-uri/Portfile @@ -5,7 +5,7 @@ PortGroup ocaml 1.1 PortGroup github 1.0 github.setup mirage ocaml-uri 4.4.0 v -revision 2 +revision 3 categories ocaml devel maintainers {pguyot @pguyot} openmaintainer license ISC diff --git a/ocaml/ocaml-utop/Portfile b/ocaml/ocaml-utop/Portfile index 49b44438e3f..1031ea361ed 100644 --- a/ocaml/ocaml-utop/Portfile +++ b/ocaml/ocaml-utop/Portfile @@ -5,8 +5,8 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-utop -github.setup ocaml-community utop 2.15.0 -revision 1 +github.setup ocaml-community utop 2.17.0 +revision 0 categories ocaml devel editors maintainers nomaintainer license BSD @@ -14,9 +14,9 @@ description Universal toplevel (i.e. REPL) for OCaml long_description utop is an improved toplevel (i.e. Read-Eval-Print Loop) for OCaml. It can run in a terminal or in Emacs. \ It supports line editing, history, real-time and context sensitive completion, colors and more. -checksums rmd160 6095c2ee01ee635d691b269efe58f6ada20200dd \ - sha256 7659dea0a7f7a5b16e30024ee681445179f8c0f87630e5cdae554280dacd6fac \ - size 418750 +checksums rmd160 d09f93a5710a138c3b1de03ee20112a66eb6ea67 \ + sha256 379d1f11d58b707728a883cdbcf79582d8899eef9f8d49ada7af50d5f6d9d80d \ + size 421273 github.tarball_from archive depends_lib-append port:ocaml-cppo \ diff --git a/ocaml/ocaml-uucp/Portfile b/ocaml/ocaml-uucp/Portfile index dc573886e37..54fafcf64be 100644 --- a/ocaml/ocaml-uucp/Portfile +++ b/ocaml/ocaml-uucp/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-uucp github.setup dbuenzli uucp 15.1.0 v -revision 1 +revision 2 categories ocaml textproc maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-uunf/Portfile b/ocaml/ocaml-uunf/Portfile index f283b32c8a8..ba29c815264 100644 --- a/ocaml/ocaml-uunf/Portfile +++ b/ocaml/ocaml-uunf/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-uunf github.setup dbuenzli uunf 15.1.0 v -revision 1 +revision 2 categories ocaml textproc maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-uuseg/Portfile b/ocaml/ocaml-uuseg/Portfile index e55915043a3..15189c956e7 100644 --- a/ocaml/ocaml-uuseg/Portfile +++ b/ocaml/ocaml-uuseg/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-uuseg github.setup dbuenzli uuseg 15.1.0 v -revision 1 +revision 2 categories ocaml textproc maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-uutf/Portfile b/ocaml/ocaml-uutf/Portfile index 9b61786e522..fad96e5caa6 100644 --- a/ocaml/ocaml-uutf/Portfile +++ b/ocaml/ocaml-uutf/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-uutf github.setup dbuenzli uutf 1.0.4 v -revision 0 +revision 1 categories ocaml devel maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-variantslib/Portfile b/ocaml/ocaml-variantslib/Portfile index b477842acc2..f14f1321b10 100644 --- a/ocaml/ocaml-variantslib/Portfile +++ b/ocaml/ocaml-variantslib/Portfile @@ -5,17 +5,17 @@ PortGroup github 1.0 PortGroup ocaml 1.1 name ocaml-variantslib -github.setup janestreet variantslib 0.16.0 v -revision 1 +github.setup janestreet variantslib 0.17.0 v +revision 0 categories ocaml devel maintainers nomaintainer license MIT description OCaml variants as first class values long_description ${description} -checksums rmd160 0b3b6675ddc9cbff0cc43a8a564dea227c766434 \ - sha256 4a4f74d1ba234a1ff0f751ea2d86f94fdd1f0809e0fe6c20aab9eae8dec4d2a1 \ - size 2982 +checksums rmd160 3984fa8bfa72d3fd462743ff80c396c8eb7d8c92 \ + sha256 9874b69aec9cfe6331970eb2271f7c24e5433ba696c1a9ea5a429862b62338ab \ + size 3014 github.tarball_from archive depends_lib-append port:ocaml-base diff --git a/ocaml/ocaml-visitors/Portfile b/ocaml/ocaml-visitors/Portfile index 497e5499740..357cf8e16ab 100644 --- a/ocaml/ocaml-visitors/Portfile +++ b/ocaml/ocaml-visitors/Portfile @@ -6,8 +6,8 @@ PortGroup ocaml 1.1 name ocaml-visitors gitlab.instance https://gitlab.inria.fr -gitlab.setup fpottier visitors 20210608 -revision 2 +gitlab.setup fpottier visitors 20251114 +revision 0 categories ocaml devel maintainers {landonf @landonf} openmaintainer @@ -16,9 +16,9 @@ description An OCaml syntax extension for generating visitor classes long_description An OCaml syntax extension (a ppx_deriving plugin) which generates \ object-oriented visitors for traversing and transforming data structures. -checksums rmd160 906a41b1db3f2dd798caf44842a562fb2fae00d4 \ - sha256 eb2067ea95ecfc89ac6a9fb0473d6292167ca4b1f38b2ce53f54ba3a40a958bb \ - size 509440 +checksums rmd160 acbadb5ffafd52248328602956e463584d0308ca \ + sha256 56f62d1df3d798182ccbaa73f60a0d08fabf12a876b91216c018c968b609fd47 \ + size 520074 depends_lib-append port:ocaml-ppxlib \ port:ocaml-ppx_deriving \ diff --git a/ocaml/ocaml-wasm/Portfile b/ocaml/ocaml-wasm/Portfile index 50256825aff..6624eaf68d0 100644 --- a/ocaml/ocaml-wasm/Portfile +++ b/ocaml/ocaml-wasm/Portfile @@ -7,7 +7,7 @@ PortGroup ocaml 1.1 name ocaml-wasm github.setup WebAssembly spec 2.0.2 opam- github.tarball_from archive -revision 0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-xmlm/Portfile b/ocaml/ocaml-xmlm/Portfile index 1d8fe7e653b..cc8b4c3da9f 100644 --- a/ocaml/ocaml-xmlm/Portfile +++ b/ocaml/ocaml-xmlm/Portfile @@ -5,6 +5,7 @@ PortGroup ocaml 1.1 name ocaml-xmlm version 1.4.0 +revision 1 categories ocaml devel textproc maintainers nomaintainer license ISC diff --git a/ocaml/ocaml-yojson/Portfile b/ocaml/ocaml-yojson/Portfile index 6906f52a41b..6f63e82353d 100644 --- a/ocaml/ocaml-yojson/Portfile +++ b/ocaml/ocaml-yojson/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-yojson github.setup ocaml-community yojson 2.2.2 -revision 0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-zarith/Portfile b/ocaml/ocaml-zarith/Portfile index e447b16a417..78ea300bdab 100644 --- a/ocaml/ocaml-zarith/Portfile +++ b/ocaml/ocaml-zarith/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-zarith github.setup ocaml Zarith 1.14 release- -revision 0 +revision 1 categories ocaml devel maintainers {landonf @landonf} openmaintainer diff --git a/ocaml/ocaml-zed/Portfile b/ocaml/ocaml-zed/Portfile index 8147ccb574a..2f010a5dcf7 100644 --- a/ocaml/ocaml-zed/Portfile +++ b/ocaml/ocaml-zed/Portfile @@ -6,7 +6,7 @@ PortGroup ocaml 1.1 name ocaml-zed github.setup ocaml-community zed 3.2.3 -revision 1 +revision 2 categories ocaml textproc maintainers nomaintainer license BSD diff --git a/ocaml/ocamlsdl/Portfile b/ocaml/ocamlsdl/Portfile index a0b5511028b..47557d3dee5 100644 --- a/ocaml/ocamlsdl/Portfile +++ b/ocaml/ocamlsdl/Portfile @@ -3,7 +3,7 @@ PortGroup ocaml 1.0 name ocamlsdl version 0.9.1 -revision 5 +revision 6 categories ocaml devel multimedia license LGPL maintainers nomaintainer @@ -13,7 +13,6 @@ long_description \ framebuffer across multiple platforms. OCamlSDL is an OCaml interface to the SDL and might be used to write multimedia\ applications in Objective Caml. homepage http://ocamlsdl.sourceforge.net/ -platforms darwin master_sites sourceforge:project/${name}/OCamlSDL/${name}-${version} checksums rmd160 9ed03415db7dabe652efa78e80ddfae221f09d20 \ sha256 abfb295b263dc11e97fffdd88ea1a28b46df8cc2b196777093e4fe7f509e4f8f @@ -31,3 +30,12 @@ pre-destroot { xinstall -m 755 -d ${destroot}${prefix}/share/doc/${name} file copy ${worksrcpath}/doc/html ${destroot}${prefix}/share/doc/${name} } + +# ocamlsdl (SDL 1.2 bindings, last released 2013) does not build on OCaml 5 +# and has no OCaml-5-capable upstream; SDL2 replacements (tsdl, OCamlSDL2) +# have incompatible APIs. +known_fail yes +pre-fetch { + ui_error "${name} (SDL 1.2 bindings) does not build on OCaml 5 and has no OCaml-5-capable upstream." + return -code error "incompatible OCaml version" +} diff --git a/ocaml/opam/Portfile b/ocaml/opam/Portfile index f8f84e135f4..6a4d21a27f2 100644 --- a/ocaml/opam/Portfile +++ b/ocaml/opam/Portfile @@ -10,7 +10,7 @@ legacysupport.newest_darwin_requires_legacy 13 github.setup ocaml opam 2.5.1 name opam -revision 0 +revision 1 categories ocaml sysutils license LGPL-2 maintainers {@pmetzger pmetzger} openmaintainer @@ -82,4 +82,12 @@ platform darwin { build.env-append \ DUNE_CONFIG__COPY_FILE=portable } + + # The dune bootstrap compiles blake3 AVX-512 assembly with the system + # clang. Xcode 9.x and earlier (clang < 1000) reject the source unless + # -mavx512f/-mavx512vl/-mavx512bw are passed; Xcode 10+ accepts it as-is. + if {${xcodeversion} ne "none" && [vercmp ${xcodeversion} 10.0] < 0} { + patchfiles-append \ + patch-dune-avx512-asm.diff + } } diff --git a/ocaml/opam/files/patch-dune-avx512-asm.diff b/ocaml/opam/files/patch-dune-avx512-asm.diff new file mode 100644 index 00000000000..b027943cba0 --- /dev/null +++ b/ocaml/opam/files/patch-dune-avx512-asm.diff @@ -0,0 +1,18 @@ +--- a/boot/duneboot.ml ++++ b/boot/duneboot.ml +@@ -1093,7 +1093,14 @@ + `Right + { flags = + (match asm.assembler with +- | `C_comp -> [ "-c"; fn; "-o"; out_file ] ++ | `C_comp -> ++ let avx512_flags = ++ if String.is_prefix ~prefix:"blake3_avx512" ++ (Filename.basename fn) ++ then [ "-mavx512f"; "-mavx512vl"; "-mavx512bw" ] ++ else [] ++ in ++ avx512_flags @ [ "-c"; fn; "-o"; out_file ] + | `Msvc_asm -> [ "/nologo"; "/quiet"; "/Fo" ^ out_file; "/c"; fn ]) + ; assembler = asm.assembler + ; out_file diff --git a/science/flashdot/Portfile b/science/flashdot/Portfile index a69d8340cc2..4c38d098815 100644 --- a/science/flashdot/Portfile +++ b/science/flashdot/Portfile @@ -2,7 +2,7 @@ PortSystem 1.0 name flashdot version 0.7.8 -revision 4 +revision 5 categories science maintainers nomaintainer description FlashDot is a generator for psychophysical experiments. @@ -12,7 +12,6 @@ long_description \ It is controlled by a simple experiment building language and allows \ experiment generation with either a text or a graphical editor. homepage http://www.flashdot.info/ -platforms darwin fetch.type svn worksrcdir src svn.url https://svn.code.sf.net/p/flashdot/code/trunk/src/ @@ -22,3 +21,12 @@ svn.method checkout depends_lib port:ocaml port:ocamlsdl port:ocaml-gsl port:lablgl use_parallel_build no + +# Depends on ocamlsdl (SDL 1.2 bindings, last released 2013), which does not +# build on OCaml 5 and has no OCaml-5-capable upstream; SDL2 replacements +# (tsdl, OCamlSDL2) have incompatible APIs. flashdot itself is abandoned. +known_fail yes +pre-fetch { + ui_error "${name} depends on ocamlsdl, which does not build on OCaml 5 and has no OCaml-5-capable upstream." + return -code error "incompatible OCaml version" +} diff --git a/science/lscsoft-deps/Portfile b/science/lscsoft-deps/Portfile index 3467c2a4ca1..e121665a743 100644 --- a/science/lscsoft-deps/Portfile +++ b/science/lscsoft-deps/Portfile @@ -8,7 +8,6 @@ version 20200805 revision 10 categories science maintainers nomaintainer -platforms any supported_archs noarch description LSCSoft dependencies meta-port diff --git a/science/ocaml-mpi/Portfile b/science/ocaml-mpi/Portfile index 600ab203bd5..ea7f3de0c08 100644 --- a/science/ocaml-mpi/Portfile +++ b/science/ocaml-mpi/Portfile @@ -6,7 +6,7 @@ PortGroup github 1.0 github.setup xavierleroy ocamlmpi 1.17 v github.tarball_from tarball name ocaml-mpi -revision 0 +revision 1 categories science devel ocaml maintainers nomaintainer license LGPL-2 diff --git a/textproc/ocaml-higlo/Portfile b/textproc/ocaml-higlo/Portfile new file mode 100644 index 00000000000..f4e7d767bf6 --- /dev/null +++ b/textproc/ocaml-higlo/Portfile @@ -0,0 +1,34 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + +PortSystem 1.0 +PortGroup ocaml 1.1 + +name ocaml-higlo +version 0.10.0 +revision 0 +categories textproc devel ocaml +maintainers {pguyot @pguyot} openmaintainer +license LGPL-3 + +description Syntax highlighting library for OCaml +long_description {*}${description} + +homepage https://zoggy.frama.io/higlo/ +master_sites ${homepage}releases/ + +distname higlo-${version} + +use_bzip2 yes + +checksums rmd160 a646a8d7c21136067ab1bdbfba32c05a0c6677c5 \ + sha256 dbfc94fbf2fa9a96e4e9295ca0e9420cfc738574112ebae79c0ad96c483067d2 \ + size 15134 + +depends_lib-append port:ocaml-sedlex \ + port:ocaml-xtmpl + +ocaml.build_type dune + +livecheck.type regex +livecheck.url https://framagit.org/zoggy/higlo/-/tags +livecheck.regex {higlo-(\d+\.\d+\.\d+)\.tar} diff --git a/textproc/ocaml-xtmpl/Portfile b/textproc/ocaml-xtmpl/Portfile index 5c7e7c09ac9..76cab58a8ca 100644 --- a/textproc/ocaml-xtmpl/Portfile +++ b/textproc/ocaml-xtmpl/Portfile @@ -1,32 +1,44 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 + PortSystem 1.0 -PortGroup ocaml 1.0 +PortGroup ocaml 1.1 name ocaml-xtmpl -version 0.6 -revision 2 +version 1.2.0 +revision 0 categories textproc devel ocaml maintainers nomaintainer -platforms darwin license GPL-3 -description Xtmpl is a small XML templating library for OCaml -long_description ${description} +description Xml templating library for OCaml +long_description {*}${description} homepage https://www.good-eris.net/xtmpl/ -master_sites http://zoggy.github.com/xtmpl/ +master_sites ${homepage}releases/ distname xtmpl-${version} -checksums rmd160 ee488e0eae0b2a0f7d56621b91ba6f3fa487556e \ - sha256 4faca7b99e1b807d2bfdaaf4874a3932c667a2143f12da99eb467743a7d67e5d +use_bzip2 yes -depends_lib port:ocaml port:ocaml-findlib port:ocaml-xmlm +checksums rmd160 73bfe0f29543fbf9acad4353c9535152f0da5ebe \ + sha256 72140fa4583aa369ad056ddba8d9929ccd6693d96fd286d691e23333efc090d9 \ + size 37001 +depends_lib-append port:ocaml-logs \ + port:ocaml-re \ + port:ocaml-sedlex \ + port:ocaml-uutf \ + port:ocaml-iri -configure { - reinplace "s|ocamlfind|${ocamlfind_wrapper}|g" ${worksrcpath}/Makefile +ocaml.build_type dune + +subport ocaml-xtmpl_ppx { + description Xml templating library for OCaml, ppx extension + long_description {*}${description} + + depends_lib-append port:ocaml-xtmpl \ + port:ocaml-ppxlib } livecheck.type regex -livecheck.url ${master_sites}download.html -livecheck.regex xtmpl-(\[0-9\.]+)${extract.suffix} - +livecheck.url https://framagit.org/zoggy/xtmpl/-/tags +livecheck.regex {xtmpl-(\d+\.\d+\.\d+)\.tar} diff --git a/textproc/wyrd/Portfile b/textproc/wyrd/Portfile index 6ec3bdb1bb1..3ce3f977915 100644 --- a/textproc/wyrd/Portfile +++ b/textproc/wyrd/Portfile @@ -24,6 +24,8 @@ long_description Wyrd is a text-based front-end to Remind, a sophisticated \ homepage https://web.archive.org/web/20160326073411/http://pessimization.com/software/wyrd/ master_sites https://web.archive.org/web/20160308150852/http://pessimization.com/software/wyrd/ +known_fail yes + depends_build port:ocaml-camlp4 depends_lib port:ncurses \ @@ -44,8 +46,4 @@ configure.args --enable-utf8 # ranlib: archive member: libcurses_stubs.a(OLORS) size too large (archive member extends past the end of the file) use_parallel_build no -# Error: This expression has type string but an expression was expected of type -# bytes -build.env OCAMLPARAM=safe-string=0,_ - livecheck.type none diff --git a/www/ocaml-ocamlrss/Portfile b/www/ocaml-ocamlrss/Portfile index e01bc930543..1a2f91faedc 100644 --- a/www/ocaml-ocamlrss/Portfile +++ b/www/ocaml-ocamlrss/Portfile @@ -5,9 +5,8 @@ PortGroup ocaml 1.0 name ocaml-ocamlrss version 2.2.0 -revision 4 +revision 5 categories www devel ocaml -platforms darwin license LGPL-3 maintainers nomaintainer description OCaml-RSS is a small OCaml library providing functions to parse and print RSS 2.0 files @@ -23,6 +22,17 @@ distname ocamlrss-${version} depends_lib port:ocaml port:ocaml-findlib port:ocaml-xmlm port:ocaml-ocamlnet +post-extract { + # OCaml 5: Pervasives module was removed, use Stdlib instead + # OCaml 5: String.lowercase removed, use String.lowercase_ascii + fs-traverse f ${worksrcpath} { + if {[string match "*.ml" ${f}] || [string match "*.mli" ${f}]} { + reinplace "s|Pervasives\\.|Stdlib.|g" ${f} + reinplace {s|String\.lowercase\([^_a-zA-Z0-9']\)|String.lowercase_ascii\1|g} ${f} + } + } +} + configure { reinplace "s|ocamlfind|${ocamlfind_wrapper}|g" ${worksrcpath}/Makefile } diff --git a/www/stog/Portfile b/www/stog/Portfile index 38d0a201995..a0b8930f2b6 100644 --- a/www/stog/Portfile +++ b/www/stog/Portfile @@ -1,47 +1,45 @@ # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 PortSystem 1.0 -PortGroup ocaml 1.0 +PortGroup ocaml 1.1 name stog -version 0.8.0 -revision 3 +version 1.1.0 +revision 0 categories www ocaml -platforms darwin license GPL-3 maintainers nomaintainer -description stog is a static web site generator, able to handle blog posts as well as regular pages -long_description ${description} +description Static web site compiler, able to handle blog posts as well as regular pages +long_description {*}${description} homepage https://www.good-eris.net/stog/ -master_sites ${homepage} +master_sites ${homepage}releases/ -checksums rmd160 33fe3f6972eb0cbf9f6c79816248cfcdeaefef6e \ - sha256 11de9abe83f8e8b38fb19fd97ee31799be4b34de8297086c285f470c2b73338c +use_bzip2 yes -depends_lib port:ocaml port:ocaml-findlib port:ocaml-xmlm \ - port:ocaml-ocamlrss port:ocaml-xtmpl port:ocaml-pcre \ - port:ocaml-config-file -depends_run port:highlight port:texlive-bin \ - path:bin/dvisvgm:dvisvgm +checksums rmd160 2e5bcd1676dfefc1696bb1d9f313b32dcf9ab8a1 \ + sha256 85ab39a8f456c0fb2cdf5572f3f7a341c7323407e43550ae096a0d844a481f8a \ + size 2679386 -patchfiles patch-Makefile.diff +depends_lib-append port:ocaml-dune-build-info \ + port:ocaml-dune-site \ + port:ocaml-fmt \ + port:ocaml-higlo \ + port:ocaml-logs \ + port:ocaml-lwt \ + port:ocaml-lwt_ppx \ + port:ocaml-menhir \ + port:ocaml-ocf \ + port:ocaml-ocf_ppx \ + port:ocaml-ppx_blob \ + port:ocaml-ptime \ + port:ocaml-uri \ + port:ocaml-uutf \ + port:ocaml-xtmpl \ + port:ocaml-xtmpl_ppx -configure { - reinplace "s|ocamlfind|${ocamlfind_wrapper}|g" ${worksrcpath}/Makefile -} - -use_parallel_build no - -destroot.args BINDIR=${prefix}/bin - -post-destroot { - xinstall -m 755 -d ${destroot}${prefix}/share/doc/${name} - xinstall -m 644 -W ${worksrcpath} README Changes LICENSE \ - ${destroot}${prefix}/share/doc/${name} -} +ocaml.build_type dune livecheck.type regex livecheck.url ${homepage}install.html livecheck.regex stog-(\[0-9.\]+)${extract.suffix} - diff --git a/www/stog/files/patch-Makefile.diff b/www/stog/files/patch-Makefile.diff deleted file mode 100644 index c86b669fbcd..00000000000 --- a/www/stog/files/patch-Makefile.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- work/stog-0.8.0/Makefile 2013-03-19 17:36:52.000000000 +0100 -+++ Makefile 2013-05-26 11:30:51.000000000 +0200 -@@ -218,7 +218,7 @@ - install-bin: - $(CP) $(MAIN) $(MAIN_BYTE) $(OCAML_SESSION) \ - $(MK_STOG) $(MK_STOG_BYTE) $(MK_STOG_OCAML) \ -- `dirname \`which $(OCAMLC)\``/ -+ $(DESTDIR)$(BINDIR) - - uninstall: uninstall-lib uninstall-bin - diff --git a/x11/advi/Portfile b/x11/advi/Portfile index a7d082b241a..b6bd0ec750d 100644 --- a/x11/advi/Portfile +++ b/x11/advi/Portfile @@ -5,11 +5,10 @@ PortGroup active_variants 1.1 name advi version 1.10.2 -revision 4 +revision 5 categories x11 graphics license LGPL maintainers nomaintainer -platforms darwin description TeX DVI previewer long_description Active-DVI is an O'Caml Unix-platform DVI previewer and a \ programmable presenter for slides written in LaTeX. @@ -34,6 +33,16 @@ depends_lib port:ocaml \ port:xpm \ port:freetype +# advi 1.10.2 only supports OCaml < 5; upstream advi 2.x (github.com/diremy/advi) +# requires camlimages >= 5.0.5 and ocaml >= 5.3, but has no released tag yet. +# Mark broken on OCaml 5 until upstream cuts a release. +known_fail yes +pre-fetch { + ui_error "${name} @${version} requires OCaml < 5; upstream has not released a" + ui_error "version compatible with the OCaml 5.x compiler shipped by port:ocaml." + return -code error "incompatible OCaml version" +} + # see https://trac.macports.org/ticket/43747 build.env-append LANG=C @@ -42,7 +51,6 @@ build.env-append LANG=C # string build.env-append OCAMLPARAM="safe-string=0,_" -require_active_variants camlimages graph post-activate { system "${prefix}/bin/mktexlsr" diff --git a/x11/lablgtk2/Portfile b/x11/lablgtk2/Portfile index 1a0d5b83e2f..73d6e17ed06 100644 --- a/x11/lablgtk2/Portfile +++ b/x11/lablgtk2/Portfile @@ -5,11 +5,11 @@ PortGroup ocaml 1.0 PortGroup active_variants 1.1 PortGroup github 1.0 -github.setup garrigue lablgtk 2.18.13 -revision 1 -checksums rmd160 db8f42ccbbc74ee35d04aee27b8a24d2f269a569 \ - sha256 7b9e680452458fd351cf8622230d62c3078db528446384268cd0dc37be82143c \ - size 1073083 +github.setup garrigue lablgtk 2.18.14 +revision 0 +checksums rmd160 86cec9c9a25ef1034d7e4a9700c75b4549c3c82e \ + sha256 b3b746d4aa8a2bf7d63b1eca9f5319aac0c1888c5c54cf0581f8d895fd78c277 \ + size 1073165 github.tarball_from archive name lablgtk2 @@ -25,22 +25,20 @@ long_description LablGTK2 is is an OCaml interface to gtk+ 2.x. \ strongly typed, yet very comfortable, object-oriented \ interface to gtk+. -github.tarball_from archive - homepage https://garrigue.github.io/lablgtk/ depends_build path:bin/pkg-config:pkgconfig depends_lib port:ocaml \ port:ocaml-findlib \ + port:ocaml-camlp-streams \ path:lib/pkgconfig/gtk+-2.0.pc:gtk2 \ - port:libglade2 \ port:libgnomecanvas \ port:libgnomeui configure.args --with-libdir=${ocamlfind_dir} \ --without-gl \ - --with-glade \ + --without-glade \ --with-gnomecanvas \ --with-gnomeui \ --without-panel \