On Mon, Aug 12 2024, Sebastien Marie wrote: > Hi, > > Just some comments. > > Timo Myyrä <timo.my...@bittivirhe.fi> writes: > >> Hi, >> >> Here's a bit long overdue update for the ECL port. >> Lightly tested on amd64. >> >> timo >> >> diff /usr/ports >> commit - 91c62197c95d894e5fecbb4866735eb37d9ec02a >> path + /usr/ports >> blob - 5d1ff4982781db1ed5fc9dfa5c1fb5c2680b06af >> file + lang/ecl/Makefile >> --- lang/ecl/Makefile >> +++ lang/ecl/Makefile >> @@ -1,9 +1,9 @@ >> COMMENT = embeddable common-lisp >> CATEGORIES = lang >> >> -V = 21.2.1 >> +V = 24.5.10 >> DISTNAME = ecl-$V >> -SHARED_LIBS += ecl 8.0 >> +SHARED_LIBS += ecl 9.0 >> >> REVISION = 0 > > REVISION should be removed > > > And the regress doesn't work anymore: ecl use explicitly /bin/bash for > testing. > > So I also have: > > -TEST_DEPENDS = ${BASE_PKGPATH} > +TEST_DEPENDS = ${FULLPKGNAME}:${BUILD_PKGPATH} \ > + shells/bash > > And a patch for src/tests/Makefile.in > > blob - /dev/null > file + lang/ecl/patches/patch-src_tests_Makefile_in (mode 644) > --- /dev/null > +++ lang/ecl/patches/patch-src_tests_Makefile_in > @@ -0,0 +1,12 @@ > +Index: src/tests/Makefile.in > +--- src/tests/Makefile.in.orig > ++++ src/tests/Makefile.in > +@@ -2,7 +2,7 @@ > + # vim: set filetype=makefile tabstop=8 shiftwidth=4 expandtab: > + > + ECL=@prefix@/@bindir@/ecl@EXEEXT@ > +-SHELL=/bin/bash -o pipefail > ++SHELL=bash -o pipefail > + > + .PHONY: all check ansi-test > + > > > Thanks.
Here is an updated diff which drops REVISION and uses /bin/ksh for the regression tests. Note that tests fail with "Signals delivery fails constantly at GC #x" error. This is fixed by devel/boehm-gc update send earlier. Timo diff /usr/ports commit - 8e4b8dff34f8c8a46b16f8f5f305a301d14bbf3d path + /usr/ports blob - 5d1ff4982781db1ed5fc9dfa5c1fb5c2680b06af file + lang/ecl/Makefile --- lang/ecl/Makefile +++ lang/ecl/Makefile @@ -1,12 +1,10 @@ COMMENT = embeddable common-lisp CATEGORIES = lang -V = 21.2.1 +V = 24.5.10 DISTNAME = ecl-$V -SHARED_LIBS += ecl 8.0 +SHARED_LIBS += ecl 9.0 -REVISION = 0 - HOMEPAGE = https://common-lisp.net/project/ecl/ MAINTAINER = Timo Myyra <timo.my...@bittivirhe.fi> blob - 5da17098084bbc837811a12478849c7eb0b6024e file + lang/ecl/distinfo --- lang/ecl/distinfo +++ lang/ecl/distinfo @@ -1,2 +1,2 @@ -SHA256 (ecl-21.2.1.tgz) = sVp13PhLj2LmhyDMqxOT+WEcB4/NOv3WOaEIbK0BCQA= -SIZE (ecl-21.2.1.tgz) = 7875088 +SHA256 (ecl-24.5.10.tgz) = 5Opluxhh4OSVOGv6i8ZzvQFOltPPnZHpA4+RQ1y+Yis= +SIZE (ecl-24.5.10.tgz) = 8130112 blob - a7763bffb61f13d0e7ff85917530a01dd3294ba7 file + lang/ecl/patches/patch-src_Makefile_in --- lang/ecl/patches/patch-src_Makefile_in +++ lang/ecl/patches/patch-src_Makefile_in @@ -1,7 +1,7 @@ Index: src/Makefile.in --- src/Makefile.in.orig +++ src/Makefile.in -@@ -213,29 +213,13 @@ install: +@@ -201,29 +201,13 @@ install: $(INSTALL_DATA) ecl/$$i $(DESTDIR)$(includedir)/ecl/$$i; \ done $(INSTALL_SCRIPT) bin/ecl-config $(DESTDIR)$(bindir) blob - a863e03254c2b802909d695af5cb0e2066962947 file + /dev/null --- lang/ecl/patches/patch-src_cmp_cmpc-wt_lsp +++ /dev/null @@ -1,25 +0,0 @@ -backport https://gitlab.com/embeddable-common-lisp/ecl/-/commit/f3d4cf4b66ab6c3cd8629ab6d0c7f7c50d7fd8a4 - -Index: src/cmp/cmpc-wt.lsp ---- src/cmp/cmpc-wt.lsp.orig -+++ src/cmp/cmpc-wt.lsp -@@ -19,18 +19,7 @@ - (defun wt1 (form) - (cond ((not (floatp form)) - (typecase form -- (INTEGER -- (princ form *compiler-output1*) -- (princ -- (cond ((typep form (rep-type->lisp-type :int)) "") -- ((typep form (rep-type->lisp-type :unsigned-int)) "U") -- ((typep form (rep-type->lisp-type :long)) "L") -- ((typep form (rep-type->lisp-type :unsigned-long)) "UL") -- ((typep form (rep-type->lisp-type :long-long)) "LL") -- ((typep form (rep-type->lisp-type :unsigned-long-long)) "ULL") -- (t (baboon :format-control "wt1: The number ~A doesn't fit any integer type." form))) -- *compiler-output1*)) -- ((or STRING CHARACTER) -+ ((or INTEGER STRING CHARACTER) - (princ form *compiler-output1*)) - (VAR (wt-var form)) - (t (wt-loc form)))) blob - 12ec82db34881b8159569d96e80a0e9649a32f3c file + /dev/null --- lang/ecl/patches/patch-src_cmp_cmploc_lsp +++ /dev/null @@ -1,36 +0,0 @@ -backport https://gitlab.com/embeddable-common-lisp/ecl/-/commit/f3d4cf4b66ab6c3cd8629ab6d0c7f7c50d7fd8a4 - -Index: src/cmp/cmploc.lsp ---- src/cmp/cmploc.lsp.orig -+++ src/cmp/cmploc.lsp -@@ -181,10 +181,30 @@ - (defun wt-temp (temp) - (wt "T" temp)) - -+(defun wt-fixnum (value &optional vv) -+ (declare (ignore vv)) -+ (princ value *compiler-output1*) -+ ;; Specify explicit type suffix as a workaround for MSVC. C99 -+ ;; standard compliant compilers don't need type suffixes and choose -+ ;; the correct type themselves. Note that we cannot savely use -+ ;; anything smaller than a long long here, because we might perform -+ ;; some other computation on the integer constant which could -+ ;; overflow if we use a smaller integer type (overflows in long long -+ ;; computations are taken care of by the compiler before we get to -+ ;; this point). -+ #+msvc (princ (cond ((typep value (rep-type->lisp-type :long-long)) "LL") -+ ((typep value (rep-type->lisp-type :unsigned-long-long)) "ULL") -+ (t (baboon :format-control -+ "wt-fixnum: The number ~A doesn't fit any integer type." -+ value))) -+ *compiler-output1*)) -+ - (defun wt-number (value &optional vv) -+ (declare (ignore vv)) - (wt value)) - - (defun wt-character (value &optional vv) -+ (declare (ignore vv)) - ;; We do not use the '...' format because this creates objects of type - ;; 'char' which have sign problems - (wt value)) blob - de0ed9460bb9ad8243472f0df36eda19d4ff6501 file + /dev/null --- lang/ecl/patches/patch-src_cmp_cmpmain_lsp +++ /dev/null @@ -1,20 +0,0 @@ -Override system library detection to just use *ecl-library-directory*. -The original check fails now that library symlink is removed. - -Index: src/cmp/cmpmain.lsp ---- src/cmp/cmpmain.lsp.orig -+++ src/cmp/cmpmain.lsp -@@ -960,12 +960,7 @@ from the C language code. NIL means \"do not create t - - (defun ecl-library-directory () - "Finds the directory in which the ECL core library was installed." -- (cond ((and *ecl-library-directory* -- (probe-file (merge-pathnames (compile-file-pathname "ecl" :type -- #+dlopen :shared-library -- #-dlopen :static-library) -- *ecl-library-directory*))) -- *ecl-library-directory*) -+ (cond ((and *ecl-library-directory* *ecl-library-directory*)) - ((probe-file "SYS:BUILD-STAMP") - (setf *ecl-library-directory* (namestring (translate-logical-pathname "SYS:")))) - ((error "Unable to find library directory")))) blob - da8c42c65fdf000191a00817fdcccef3bd834dd5 file + /dev/null --- lang/ecl/patches/patch-src_cmp_cmptables_lsp +++ /dev/null @@ -1,14 +0,0 @@ -backport https://gitlab.com/embeddable-common-lisp/ecl/-/commit/f3d4cf4b66ab6c3cd8629ab6d0c7f7c50d7fd8a4 - -Index: src/cmp/cmptables.lsp ---- src/cmp/cmptables.lsp.orig -+++ src/cmp/cmptables.lsp -@@ -182,7 +182,7 @@ - - (temp . wt-temp) - (lcl . wt-lcl-loc) -- (fixnum-value . wt-number) -+ (fixnum-value . wt-fixnum) - (long-float-value . wt-number) - (double-float-value . wt-number) - (single-float-value . wt-number) blob - b1ed44ccf695851e25a0ef172bc031cabf9204aa file + lang/ecl/patches/patch-src_compile_lsp_in --- lang/ecl/patches/patch-src_compile_lsp_in +++ lang/ecl/patches/patch-src_compile_lsp_in @@ -1,29 +1,41 @@ Index: src/compile.lsp.in --- src/compile.lsp.in.orig +++ src/compile.lsp.in -@@ -91,19 +91,19 @@ - "@LDFLAGS@ @LIBPREFIX@ecl.@LIBEXT@ @CORE_LIBS@ @FASL_LIBS@ @LIBS@") +@@ -91,21 +91,21 @@ + (setf c::*ld-libs* "@LIBPREFIX@ecl.@LIBEXT@ @CORE_LIBS@ @FASL_LIBS@ @LIBS@") #+(and :wants-dlopen (not nonstop)) - (setf c::*ld-flags* -- "@LDFLAGS@ @SHAREDPREFIX@ecl.@SHAREDEXT@ @LIBS@" -+ "@LDFLAGS@ -L. -lecl @LIBS@" + (setf c::*ld-libs* +- "@SHAREDPREFIX@ecl.@SHAREDEXT@ @LIBS@" ++ "-L. -lecl @LIBS@" c::*ld-shared-flags* -- "@SHARED_LDFLAGS@ @LDFLAGS@ @SHAREDPREFIX@ecl.@SHAREDEXT@ @FASL_LIBS@ @LIBS@" -+ "@SHARED_LDFLAGS@ @LDFLAGS@ -L. -lecl @FASL_LIBS@ @LIBS@" +- "@SHARED_LDFLAGS@ @LDFLAGS@" ++ "-L. -lecl @LDFLAGS@" c::*ld-bundle-flags* -- "@BUNDLE_LDFLAGS@ @LDFLAGS@ @SHAREDPREFIX@ecl.@SHAREDEXT@ @FASL_LIBS@ @LIBS@") -+ "@BUNDLE_LDFLAGS@ @LDFLAGS@ -L. -lecl @FASL_LIBS@ @LIBS@") +- "@BUNDLE_LDFLAGS@ @LDFLAGS@" ++ "@BUNDLE_LDFLAGS@ -L. -lecl @LDFLAGS@" + c::*ld-program-flags* +- "@PROGRAM_LDFLAGS@ @LDFLAGS@") ++ "@PROGRAM_LDFLAGS@ -L. -lecl @LDFLAGS@") ;;; FIXME: The nonstop platform does not support soname #+(and :wants-dlopen nonstop) - (setf c::*ld-flags* -- "@LDFLAGS@ -Wld=-l@SHAREDPREFIX@ecl.@SHAREDEXT@ @LIBS@" -+ "@LDFLAGS@ -Wld=-L.,-lecl @LIBS@" + (setf c::*ld-libs* +- "-Wld=-l@SHAREDPREFIX@ecl.@SHAREDEXT@ @LIBS@" ++ "-Wld=-L.,-lecl @LIBS@" c::*ld-shared-flags* -- "@SHARED_LDFLAGS@ @LDFLAGS@ -Wld=-l@SHAREDPREFIX@ecl.@SHAREDEXT@ @FASL_LIBS@ @LIBS@" -+ "@SHARED_LDFLAGS@ @LDFLAGS@ -Wld=-L.,-lecl @FASL_LIBS@ @LIBS@" +- "@SHARED_LDFLAGS@ @LDFLAGS@ -Wld=-l@SHAREDPREFIX@ecl.@SHAREDEXT@" ++ "@LDFLAGS@ -Wld=-L.,-lecl" c::*ld-bundle-flags* -- "@BUNDLE_LDFLAGS@ @LDFLAGS@ -Wld=-l@SHAREDPREFIX@ecl.@SHAREDEXT@ @FASL_LIBS@ @LIBS@") -+ "@BUNDLE_LDFLAGS@ @LDFLAGS@ -Wld=-L.,-lecl @FASL_LIBS@ @LIBS@") +- "@BUNDLE_LDFLAGS@ @LDFLAGS@ -Wld=-l@SHAREDPREFIX@ecl.@SHAREDEXT@") ++ "@BUNDLE_LDFLAGS@ @LDFLAGS@ -Wld=-L.,-lecl") ;;; ;;; * Avoid name clashes with user supplied code. +@@ -199,7 +199,7 @@ + (si::pathname-translations "SYS" '(("**;*.*.*" "@ecldir\@/**/*.*"))) + + #+WANTS-CMP +-(build-module "cmp" +cmp-module-files+ ++(build-module "cmp" +cmp-module-files+ + :dir "build:@ECL_CMPDIR@;" :prefix "CMP" + :builtin #+:BUILTIN-CMP t #-:BUILTIN-CMP nil) + blob - 92f3a072896154a44addbc12977a4174daf41491 file + lang/ecl/patches/patch-src_configure --- lang/ecl/patches/patch-src_configure +++ lang/ecl/patches/patch-src_configure @@ -1,21 +1,26 @@ Index: src/configure --- src/configure.orig +++ src/configure -@@ -5240,7 +5240,7 @@ LSP_FEATURES="(cons :android ${LSP_FEATURES})" +@@ -6194,7 +6194,7 @@ LSP_FEATURES="(cons :android ${LSP_FEATURES})" BUNDLE_LDFLAGS="-shared ${LDFLAGS}" ECL_LDRPATH="-Wl,--rpath,~A" - clibs="-lpthread ${clibs}" + GC_CFLAGS="-DGC_PTHREAD_SIGMASK_NEEDED" clibs="-lpthread ${clibs}" - SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.SOVERSION" + SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.${ECLLIB_VERSION}" SONAME_LDFLAGS="-Wl,-soname,SONAME" ;; solaris*) -@@ -9910,7 +9910,7 @@ if test ${enable_shared} = "yes"; then +@@ -11339,7 +11339,7 @@ if test ${enable_shared} = "yes"; then - $as_echo "#define ENABLE_DLOPEN 1" >>confdefs.h + printf "%s\n" "#define ENABLE_DLOPEN 1" >>confdefs.h - LSP_LIBRARIES="${SHAREDPREFIX}ecl.${SHAREDEXT}" + LSP_LIBRARIES="${SHAREDPREFIX}ecl.${SHAREDEXT}.${ECLLIB_VERSION}" LSP_FEATURES="(cons :wants-dlopen ${LSP_FEATURES})" +@@ -12859,4 +12859,3 @@ fi + + + for i in $srcdir/c/*/; do mkdir -p c/`basename $i`; done +- blob - /dev/null file + lang/ecl/patches/patch-src_tests_Makefile_in (mode 644) --- /dev/null +++ lang/ecl/patches/patch-src_tests_Makefile_in @@ -0,0 +1,12 @@ +Index: src/tests/Makefile.in +--- src/tests/Makefile.in.orig ++++ src/tests/Makefile.in +@@ -2,7 +2,7 @@ + # vim: set filetype=makefile tabstop=8 shiftwidth=4 expandtab: + + ECL=@prefix@/@bindir@/ecl@EXEEXT@ +-SHELL=/bin/bash -o pipefail ++SHELL=/bin/ksh -o pipefail + + .PHONY: all check ansi-test + blob - 6f52b9a35b64e3b2cf2b66dc865d82556417b4fa file + lang/ecl/pkg/PLIST --- lang/ecl/pkg/PLIST +++ lang/ecl/pkg/PLIST @@ -28,6 +28,7 @@ include/ecl/object.h include/ecl/page.h include/ecl/stack-resize.h include/ecl/stacks.h +include/ecl/threads.h lib/ecl/ lib/ecl/COPYING lib/ecl/LICENSE