Hi,
The following diff backports a commit
(https://gitlab.com/embeddable-common-lisp/ecl/-/commit/f3d4cf4b66ab6c3cd8629ab6d0c7f7c50d7fd8a4)
to fix a compiler bug.
This bug is on the way to update lang/sbcl to more recent version (I tested
compiling sbcl-2.3.6 with ecl on amd64).
While here, some smalls changes:
- V isn't present in PLIST, no need to add it to SUBST_VARS
- the licence is wrong: it is LGPLv2 or later
- use --enable-gmp=system instead of --with-system-gmp to unify the way system
libraries are configured
Comments or OK ?
--
Sebastien Marie
diff /home/semarie/repos/openbsd/ports
commit - d5e6a0c0580dc3232cdef998743855ad7ea2aaa7
path + /home/semarie/repos/openbsd/ports
blob - a2867ce45cd5dfb740d810a62664d2b1f2cc5c8a
file + lang/ecl/Makefile
--- lang/ecl/Makefile
+++ lang/ecl/Makefile
@@ -5,13 +5,14 @@ HOMEPAGE =https://common-lisp.net/project/ecl/
DISTNAME = ecl-$V
SHARED_LIBS += ecl 8.0
+REVISION = 0
+
HOMEPAGE = https://common-lisp.net/project/ecl/
MAINTAINER = Timo Myyra
-SUBST_VARS = V
EXTRACT_SUFX = .tgz
-# GPLv2 or later
+# LGPLv2 or later
PERMIT_PACKAGE = Yes
MASTER_SITES = ${HOMEPAGE}static/files/release/
@@ -27,7 +28,7 @@ CONFIGURE_ARGS += --enable-boehm=system \
CONFIGURE_ARGS += --enable-boehm=system \
--enable-libatomic=system \
- --with-system-gmp \
+ --enable-gmp=system \
--with-gmp-prefix=${LOCALBASE}
# etags gets picked up if it's installed, and dumps core while
blob - /dev/null
file + lang/ecl/patches/patch-src_cmp_cmpc-wt_lsp (mode 640)
--- /dev/null
+++ lang/ecl/patches/patch-src_cmp_cmpc-wt_lsp
@@ -0,0 +1,25 @@
+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 - /dev/null
file + lang/ecl/patches/patch-src_cmp_cmploc_lsp (mode 640)
--- /dev/null
+++ lang/ecl/patches/patch-src_cmp_cmploc_lsp
@@ -0,0 +1,36 @@
+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 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 vv)
++ (declare (ignore vv))
+ (wt value))
+
+ (defun wt-character (value vv)
++ (declare (ignore vv))
+ ;; We do not use the '...' format because this creates objects of type
+ ;; 'char' which have sign problems
+ (wt value))
blob - /dev/null
file + lang/ecl/patches/patch-src_cmp_cmptables_lsp (mode 640)
--- /dev/null
+++ lang/ecl/patches/patch-src_cmp_cmptables_lsp
@@ -0,0 +1,14 @@
+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 .