You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
ocaml: update to 5.4.1; cascade ecosystem updates
Port to OCaml 5: mldonkey, ocaml-dypgen, ocamldot, ocaml-ftp, ocaml-bisect_ppx, ocaml-ocamlnet
New ports: ocaml-capitalization, ocaml-gel, ocaml-ocaml_intrinsics_kernel,
ocaml-ppx_diff, ocaml-ppx_string_conv, ocaml-ppxlib_jane,
ocaml-iri, ocaml-ocf (+ocf_ppx), ocaml-higlo
New subport: ocaml-xtmpl_ppx
Remove ocaml-configurator (merged into ocaml-dune)
Also removed ocaml-migrate-parsetree, ocaml-ppx_find and
ocaml-ppx_tools_versioned as they are leaves and ocaml-migrate-parsetree
is marked deprecated upstream and incompatible with OCaml 5.4
Update stog, fstar, camlimages, lablgtk2 and many others
ocaml-mysql: update to 1.2.4; switch mysql5 dependency to mariadb-10.11
opam: fix dune bootstrap of AVX-512 asm with older Xcode
wyrd: mark known_fail (abandoned upstream, incompatible with OCaml 5)
i386/ppc/ppc64 support is completely untested
Signed-off-by: Paul Guyot <pguyot@kallisys.net>
This commit is contained in:
committed by
Perry E. Metzger
parent
307e138893
commit
4c8893022e
@@ -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}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.*
|
||||
@@ -4,7 +4,7 @@ PortSystem 1.0
|
||||
|
||||
name omake
|
||||
version 0.10.7
|
||||
revision 0
|
||||
revision 1
|
||||
categories devel
|
||||
maintainers nomaintainer
|
||||
license GPL-2
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ PortSystem 1.0
|
||||
|
||||
name swig
|
||||
version 4.4.1
|
||||
revision 0
|
||||
revision 1
|
||||
checksums sha1 da62a4e797d09bc1a1febb0618c98249d69d3557 \
|
||||
rmd160 89e899c774904400c54689f3c99b2b6ade469864 \
|
||||
sha256 40162a706c56f7592d08fd52ef5511cb7ac191f3593cf07306a0a554c6281fcf \
|
||||
|
||||
@@ -4,7 +4,7 @@ PortSystem 1.0
|
||||
|
||||
name swig3
|
||||
version 3.0.12
|
||||
revision 5
|
||||
revision 6
|
||||
checksums rmd160 41877e9de3ff598731ef36161f77fa66dec3c301 \
|
||||
sha256 7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d \
|
||||
size 8149820
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
+17
-17
@@ -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
|
||||
}
|
||||
|
||||
#
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
--- lib/dune.orig
|
||||
+++ lib/dune
|
||||
@@ -5,6 +5,7 @@
|
||||
(libraries
|
||||
ppx_deriving.std
|
||||
ppx_deriving_yojson
|
||||
+ str
|
||||
zarith
|
||||
pprint
|
||||
unix
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user