summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/ecl/Makefile6
-rw-r--r--lang/ecl/distinfo6
-rw-r--r--lang/ecl/files/extra-patch-src_Makefile.in8
-rw-r--r--lang/ecl/files/extra-patch-src_aclocal.m422
-rw-r--r--lang/ecl/files/extra-patch-src_lsp_format.lsp78
-rw-r--r--lang/ecl/files/patch-75877dd.c47
-rw-r--r--lang/ecl/pkg-plist15
7 files changed, 71 insertions, 111 deletions
diff --git a/lang/ecl/Makefile b/lang/ecl/Makefile
index 373c081f9c50..03c5a41b5d34 100644
--- a/lang/ecl/Makefile
+++ b/lang/ecl/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= ecl
-PORTVERSION= 16.1.3
-PORTREVISION= 2
+PORTVERSION= 20.4.24
CATEGORIES= lang lisp
MASTER_SITES= https://common-lisp.net/project/ecl/static/files/release/
@@ -21,7 +20,7 @@ LIB_DEPENDS= libgmp.so:math/gmp \
libgc.so:devel/boehm-gc
MAKE_JOBS_UNSAFE= yes
-USES= autoreconf gmake localbase perl5 tar:tgz
+USES= autoreconf gmake localbase perl5 tar:tgz makeinfo
USE_PERL5= build
GNU_CONFIGURE= yes
AUTORECONF_WRKSRC= ${WRKSRC}/src
@@ -30,6 +29,7 @@ CONFIGURE_ARGS= --with-system-gmp \
--enable-boehm=system \
--enable-libatomic=system
USE_LDCONFIG= yes
+INFO= ecl
OPTIONS_DEFINE= ASDF DFFI SAGE SOCKETS THREADS X11
OPTIONS_DEFAULT=ASDF DFFI SAGE SOCKETS THREADS
diff --git a/lang/ecl/distinfo b/lang/ecl/distinfo
index 265469dc1888..e50a29ca2f21 100644
--- a/lang/ecl/distinfo
+++ b/lang/ecl/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1565942436
-SHA256 (ecl-16.1.3.tgz) = 76a585c616e8fa83a6b7209325a309da5bc0ca68e0658f396f49955638111254
-SIZE (ecl-16.1.3.tgz) = 7459212
+TIMESTAMP = 1592221665
+SHA256 (ecl-20.4.24.tgz) = 670838edf258a936b522fdb620da336de7e575aa0d27e34841727252726d0f07
+SIZE (ecl-20.4.24.tgz) = 7815444
diff --git a/lang/ecl/files/extra-patch-src_Makefile.in b/lang/ecl/files/extra-patch-src_Makefile.in
index 470074a365ac..a16c32a1c4f4 100644
--- a/lang/ecl/files/extra-patch-src_Makefile.in
+++ b/lang/ecl/files/extra-patch-src_Makefile.in
@@ -1,8 +1,6 @@
-Patch from SageMath
-
---- src/Makefile.in.orig 2016-12-19 10:25:00 UTC
+--- src/Makefile.in.orig 2020-04-24 10:54:52 UTC
+++ src/Makefile.in
-@@ -304,10 +304,14 @@ install:
+@@ -220,10 +220,14 @@ install:
if test -s $$i ; then \
if echo $$i | grep dll; then \
$(INSTALL_LIBRARY) $$i $(DESTDIR)$(bindir); \
@@ -16,6 +14,6 @@ Patch from SageMath
+ if [ "x@IMPLIB_NAME@" != "x" -a -f "@IMPLIB_NAME@" ]; then \
+ $(INSTALL_LIBRARY) @IMPLIB_NAME@ $(DESTDIR)$(libdir); \
+ fi
- if [ "x@SONAME3@" != "x" -a -f "@SONAME3@" ]; then \
+ if [ "x@SONAME3@" != "x" -a -f "@SONAME3@" -a "@SONAME@" != "@SONAME3@" ]; then \
( $(INSTALL_LIBRARY) @SONAME3@ $(DESTDIR)$(libdir) && \
cd $(DESTDIR)$(libdir) && $(RM) -f @SONAME2@ @SONAME1@ @SONAME@ && \
diff --git a/lang/ecl/files/extra-patch-src_aclocal.m4 b/lang/ecl/files/extra-patch-src_aclocal.m4
index 45b0a49f6816..7627ad8dc2b8 100644
--- a/lang/ecl/files/extra-patch-src_aclocal.m4
+++ b/lang/ecl/files/extra-patch-src_aclocal.m4
@@ -1,6 +1,6 @@
---- src/aclocal.m4.orig 2016-12-19 10:25:00 UTC
+--- src/aclocal.m4.orig 2020-04-24 10:54:52 UTC
+++ src/aclocal.m4
-@@ -231,6 +231,8 @@ AC_SUBST(LIBPREFIX)dnl Name components of a statically
+@@ -246,6 +246,8 @@ AC_SUBST(LIBPREFIX)dnl Name components of a statically
AC_SUBST(LIBEXT)
AC_SUBST(SHAREDEXT)dnl Name components of a dynamically linked library
AC_SUBST(SHAREDPREFIX)
@@ -9,7 +9,7 @@
AC_SUBST(OBJEXT)dnl These are set by autoconf
AC_SUBST(EXEEXT)
AC_SUBST(INSTALL_TARGET)dnl Which type of installation: flat directory or unix like.
-@@ -240,6 +242,8 @@ ECL_GC_DIR=bdwgc
+@@ -257,6 +259,8 @@ ECL_GC_DIR=bdwgc
ECL_LDRPATH=''
SHAREDEXT='so'
SHAREDPREFIX='lib'
@@ -18,16 +18,16 @@
LIBPREFIX='lib'
LIBEXT='a'
PICFLAG='-fPIC'
-@@ -251,6 +255,8 @@ THREAD_OBJ="$THREAD_OBJ c/threads/process c/threads/qu
+@@ -268,6 +272,8 @@ THREAD_OBJ="$THREAD_OBJ threads/process threads/queue
clibs='-lm'
SONAME=''
SONAME_LDFLAGS=''
+IMPLIB_NAME=''
+IMPLIB_LDFLAGS=''
case "${host_os}" in
- linux-androideabi)
+ linux-android*)
thehost='android'
-@@ -366,10 +372,14 @@ case "${host_os}" in
+@@ -385,10 +391,14 @@ case "${host_os}" in
shared='yes'
THREAD_CFLAGS='-D_THREAD_SAFE'
THREAD_LIBS='-lpthread'
@@ -45,14 +45,14 @@
PICFLAG=''
if test "x$host_cpu" = "xx86_64" ; then
# Our GMP library is too old and does not support
-@@ -387,10 +397,14 @@ case "${host_os}" in
+@@ -405,10 +415,14 @@ case "${host_os}" in
enable_threads='yes'
THREAD_CFLAGS='-D_THREAD_SAFE'
THREAD_GC_FLAGS='--enable-threads=win32'
-- SHARED_LDFLAGS=''
-- BUNDLE_LDFLAGS=''
-+ SHARED_LDFLAGS="-shared -Wl,--enable-auto-image-base ${LDFLAGS}"
-+ BUNDLE_LDFLAGS="-shared -Wl,--enable-auto-image-base ${LDFLAGS}"
+- SHARED_LDFLAGS="-Wl,--stack,${ECL_DEFAULT_C_STACK_SIZE}"
+- BUNDLE_LDFLAGS="-Wl,--stack,${ECL_DEFAULT_C_STACK_SIZE}"
++ SHARED_LDFLAGS="-shared -Wl,--stack,${ECL_DEFAULT_C_STACK_SIZE} -Wl,--enable-auto-image-base ${LDFLAGS}"
++ BUNDLE_LDFLAGS="-shared -Wl,--stack,${ECL_DEFAULT_C_STACK_SIZE} -Wl,--enable-auto-image-base ${LDFLAGS}"
SHAREDPREFIX=''
SHAREDEXT='dll'
+ IMPLIB_PREFIX='lib'
diff --git a/lang/ecl/files/extra-patch-src_lsp_format.lsp b/lang/ecl/files/extra-patch-src_lsp_format.lsp
deleted file mode 100644
index be222eb2d241..000000000000
--- a/lang/ecl/files/extra-patch-src_lsp_format.lsp
+++ /dev/null
@@ -1,78 +0,0 @@
---- src/lsp/format.lsp.orig 2016-12-19 10:25:00 UTC
-+++ src/lsp/format.lsp
-@@ -308,11 +308,14 @@
- :start (format-directive-start struct)
- :end (format-directive-end struct))))
-
-+;; Patch borrowed from SageMath
-+(defconstant +format-directive-limit+ (1+ (char-code #\~)))
-+
- #+formatter
- (defparameter *format-directive-expanders*
-- (make-array char-code-limit :initial-element nil))
-+ (make-array +format-directive-limit+ :initial-element nil))
- (defparameter *format-directive-interpreters*
-- (make-array char-code-limit :initial-element nil))
-+ (make-array +format-directive-limit+ :initial-element nil))
-
- (defparameter *default-format-error-control-string* nil)
- (defparameter *default-format-error-offset* nil)
-@@ -545,24 +548,24 @@
- (write-string directive stream)
- (interpret-directive-list stream (cdr directives) orig-args args))
- (#-ecl format-directive #+ecl vector
-+ (multiple-value-bind
-+ (new-directives new-args)
-+ (let* ((code (char-code (format-directive-character directive)))
-+ (function
-+ (and (< code +format-directive-limit+)
-+ (svref *format-directive-interpreters* code)))
-+ (*default-format-error-offset*
-+ (1- (format-directive-end directive))))
-+ (unless function
-+ (error 'format-error
-+ :complaint "Unknown format directive."))
- (multiple-value-bind
- (new-directives new-args)
-- (let ((function
-- (svref *format-directive-interpreters*
-- (char-code (format-directive-character
-- directive))))
-- (*default-format-error-offset*
-- (1- (format-directive-end directive))))
-- (unless function
-- (error 'format-error
-- :complaint "Unknown format directive."))
-- (multiple-value-bind
-- (new-directives new-args)
-- (funcall function stream directive
-- (cdr directives) orig-args args)
-- (values new-directives new-args)))
-- (interpret-directive-list stream new-directives
-- orig-args new-args)))))
-+ (funcall function stream directive
-+ (cdr directives) orig-args args)
-+ (values new-directives new-args)))
-+ (interpret-directive-list stream new-directives
-+ orig-args new-args)))))
- args))
-
-
-@@ -634,11 +637,12 @@
- (values `(write-string ,directive stream)
- more-directives))
- (format-directive
-- (let ((expander
-- (aref *format-directive-expanders*
-- (char-code (format-directive-character directive))))
-- (*default-format-error-offset*
-- (1- (format-directive-end directive))))
-+ (let* ((code (char-code (format-directive-character directive)))
-+ (expander
-+ (and (< code +format-directive-limit+)
-+ (svref *format-directive-expanders* code)))
-+ (*default-format-error-offset*
-+ (1- (format-directive-end directive))))
- (if expander
- (funcall expander directive more-directives)
- (error 'format-error
diff --git a/lang/ecl/files/patch-75877dd.c b/lang/ecl/files/patch-75877dd.c
new file mode 100644
index 000000000000..6b77554cb666
--- /dev/null
+++ b/lang/ecl/files/patch-75877dd.c
@@ -0,0 +1,47 @@
+From 75877dd8f0d534552284ba4380ba65baa74f028f Mon Sep 17 00:00:00 2001
+From: Marius Gerbershagen
+Date: Sun, 28 Jun 2020 11:02:15 +0200
+Subject: [PATCH] fpe: fix ECL_WITH_LISP_FPE macro
+
+We can't use ecl_process_env_unsafe() == NULL to check if ECL has
+booted because the return value of ecl_process_env_unsafe is
+unpredictable before ECL has booted. The reason is that
+ecl_process_env_unsafe calls pthread_getspecific with an uninitialized
+key stored in cl_env_key. But another call to pthread_setspecific
+might have already registered a key which happens to be the same as
+the not yet initialized cl_env_key, yielding a non-NULL value.
+---
+ src/h/impl/math_fenv.h | 17 ++++++++---------
+ 1 file changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/src/h/impl/math_fenv.h b/src/h/impl/math_fenv.h
+index 0a93c8e0a..9630f4c6c 100644
+--- src/h/impl/math_fenv.h
++++ src/h/impl/math_fenv.h
+@@ -72,15 +72,14 @@
+
+ #if defined(HAVE_FENV_H) && !defined(ECL_AVOID_FPE_H)
+ # if defined(HAVE_FEENABLEEXCEPT)
+-# define ECL_WITH_LISP_FPE_BEGIN do { \
+- fenv_t __fenv; \
+- fegetenv(&__fenv); \
+- cl_env_ptr __the_env = ecl_process_env_unsafe(); \
+- if (__the_env) { \
+- int bits = __the_env->trap_fpe_bits; \
+- fedisableexcept(FE_ALL_EXCEPT & ~bits); \
+- feenableexcept(FE_ALL_EXCEPT & bits); \
+- } \
++# define ECL_WITH_LISP_FPE_BEGIN do { \
++ fenv_t __fenv; \
++ fegetenv(&__fenv); \
++ if (ecl_get_option(ECL_OPT_BOOTED) > 0) { \
++ int bits = ecl_process_env()->trap_fpe_bits; \
++ fedisableexcept(FE_ALL_EXCEPT & ~bits); \
++ feenableexcept(FE_ALL_EXCEPT & bits); \
++ } \
+ feclearexcept(FE_ALL_EXCEPT);
+ # else
+ # define ECL_WITH_LISP_FPE_BEGIN do { \
+--
+GitLab
+
diff --git a/lang/ecl/pkg-plist b/lang/ecl/pkg-plist
index 3c4ca1427ab9..6f112ac1162b 100644
--- a/lang/ecl/pkg-plist
+++ b/lang/ecl/pkg-plist
@@ -8,6 +8,7 @@ include/ecl/configpre-int.h
include/ecl/configpre.h
include/ecl/cons.h
include/ecl/cs.h
+include/ecl/ecl_atomics.h
include/ecl/ecl-cmp.h
include/ecl/ecl-inl.h
include/ecl/ecl.h
@@ -21,6 +22,7 @@ include/ecl/legacy.h
include/ecl/number.h
include/ecl/object.h
include/ecl/page.h
+include/ecl/stack-resize.h
include/ecl/stacks.h
lib/ecl
lib/ecl-%%VERSION%%/COPYING
@@ -32,8 +34,6 @@ lib/ecl-%%VERSION%%/cmp.asd
lib/ecl-%%VERSION%%/cmp.fas
%%SOCKETS%%lib/ecl-%%VERSION%%/deflate.asd
%%SOCKETS%%lib/ecl-%%VERSION%%/deflate.fas
-lib/ecl-%%VERSION%%/defsystem.asd
-lib/ecl-%%VERSION%%/defsystem.fas
lib/ecl-%%VERSION%%/dpp
lib/ecl-%%VERSION%%/ecl-cdb.asd
lib/ecl-%%VERSION%%/ecl-cdb.fas
@@ -202,27 +202,20 @@ lib/ecl-%%VERSION%%/help.doc
%%ASDF%%lib/ecl-%%VERSION%%/libasdf.a
lib/ecl-%%VERSION%%/libcmp.a
%%SOCKETS%%lib/ecl-%%VERSION%%/libdeflate.a
-lib/ecl-%%VERSION%%/libdefsystem.a
lib/ecl-%%VERSION%%/libecl-cdb.a
%%SOCKETS%%lib/ecl-%%VERSION%%/libecl-curl.a
lib/ecl-%%VERSION%%/libecl-help.a
%%SOCKETS%%lib/ecl-%%VERSION%%/libecl-quicklisp.a
lib/ecl-%%VERSION%%/libpackage-locks.a
-lib/ecl-%%VERSION%%/libprofile.a
%%SOCKETS%%lib/ecl-%%VERSION%%/libql-minitar.a
-lib/ecl-%%VERSION%%/librt.a
%%SOCKETS%%lib/ecl-%%VERSION%%/libsb-bsd-sockets.a
lib/ecl-%%VERSION%%/libserve-event.a
lib/ecl-%%VERSION%%/package-locks.asd
lib/ecl-%%VERSION%%/package-locks.fas
%%ASDF%%lib/ecl-%%VERSION%%/prebuilt-asdf.asd
%%SOCKETS%%lib/ecl-%%VERSION%%/libsockets.a
-lib/ecl-%%VERSION%%/profile.asd
-lib/ecl-%%VERSION%%/profile.fas
%%SOCKETS%%lib/ecl-%%VERSION%%/ql-minitar.asd
%%SOCKETS%%lib/ecl-%%VERSION%%/ql-minitar.fas
-lib/ecl-%%VERSION%%/rt.asd
-lib/ecl-%%VERSION%%/rt.fas
%%SOCKETS%%lib/ecl-%%VERSION%%/sb-bsd-sockets.asd
%%SOCKETS%%lib/ecl-%%VERSION%%/sb-bsd-sockets.fas
lib/ecl-%%VERSION%%/serve-event.asd
@@ -230,9 +223,9 @@ lib/ecl-%%VERSION%%/serve-event.fas
%%SOCKETS%%lib/ecl-%%VERSION%%/sockets.asd
%%SOCKETS%%lib/ecl-%%VERSION%%/sockets.fas
lib/libecl.so
-lib/libecl.so.16
-lib/libecl.so.16.1
lib/libecl.so.%%VERSION%%
+lib/libecl.so.20
+lib/libecl.so.20.4
man/man1/ecl-config.1.gz
man/man1/ecl.1.gz
@dir include/ecl/gc