diff --git a/gnu/local.mk b/gnu/local.mk index c524666a12..3b0e6b0c2c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1044,9 +1044,6 @@ dist_patch_DATA = \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ %D%/packages/patches/dynaconf-unvendor-deps.patch \ - %D%/packages/patches/ecl-16-format-directive-limit.patch \ - %D%/packages/patches/ecl-16-ignore-stderr-write-error.patch \ - %D%/packages/patches/ecl-16-libffi.patch \ %D%/packages/patches/efibootmgr-remove-extra-decl.patch \ %D%/packages/patches/efivar-211.patch \ %D%/packages/patches/eigen-fix-strict-aliasing-bug.patch \ diff --git a/gnu/packages/patches/ecl-16-format-directive-limit.patch b/gnu/packages/patches/ecl-16-format-directive-limit.patch deleted file mode 100644 index 237db92722..0000000000 --- a/gnu/packages/patches/ecl-16-format-directive-limit.patch +++ /dev/null @@ -1,83 +0,0 @@ -Patch backported by Sage. - -Fix from upstream that happens to work around -https://trac.sagemath.org/ticket/23011 -diff --git a/src/lsp/format.lsp b/src/lsp/format.lsp -index 77ca799..53b887c 100644 ---- a/src/lsp/format.lsp -+++ b/src/lsp/format.lsp -@@ -307,11 +307,13 @@ - :start (format-directive-start struct) - :end (format-directive-end struct)))) - -+(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) -@@ -550,24 +552,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)) - - -@@ -639,11 +641,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/gnu/packages/patches/ecl-16-ignore-stderr-write-error.patch b/gnu/packages/patches/ecl-16-ignore-stderr-write-error.patch deleted file mode 100644 index 42d213c0e9..0000000000 --- a/gnu/packages/patches/ecl-16-ignore-stderr-write-error.patch +++ /dev/null @@ -1,17 +0,0 @@ -Patch adapted from Sage. -diff -Naur ecl-16.1.2.orig/src/c/file.d ecl-16.1.2/src/c/file.d ---- ecl-16.1.2.orig/src/c/file.d 2016-05-11 13:10:51.867673867 +1200 -+++ ecl-16.1.2/src/c/file.d 2016-05-11 14:44:48.121907307 +1200 -@@ -3354,8 +3354,10 @@ - ecl_disable_interrupts(); - do { - out = fwrite(c, sizeof(char), n, IO_STREAM_FILE(strm)); -- } while (out < n && restartable_io_error(strm, "fwrite")); -- ecl_enable_interrupts(); -+ /* Ignore write errors to stderr to avoid an infinite loop */ -+ } while (out < n && (IO_STREAM_FILE(strm) != stderr) && restartable_io_error(strm, "fwrite")); -+ -+ ecl_enable_interrupts(); - return out; - } - diff --git a/gnu/packages/patches/ecl-16-libffi.patch b/gnu/packages/patches/ecl-16-libffi.patch deleted file mode 100644 index fc06a07606..0000000000 --- a/gnu/packages/patches/ecl-16-libffi.patch +++ /dev/null @@ -1,16 +0,0 @@ -Patch adapted from Sage. Allows building ECL on libffi 3.3. -diff --git a/src/c/ffi.d b/src/c/ffi.d -index 8861303e..8a959c23 100644 ---- a/src/c/ffi.d -+++ b/src/c/ffi.d -@@ -133,8 +133,8 @@ static struct { - #elif defined(X86_WIN64) - {@':win64', FFI_WIN64}, - #elif defined(X86_ANY) || defined(X86) || defined(X86_64) -- {@':cdecl', FFI_SYSV}, -- {@':sysv', FFI_SYSV}, -+ {@':cdecl', FFI_UNIX64}, -+ {@':sysv', FFI_UNIX64}, - {@':unix64', FFI_UNIX64}, - #endif - }; diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm index 4542bc1c88..3d8c07b813 100644 --- a/gnu/packages/sagemath.scm +++ b/gnu/packages/sagemath.scm @@ -170,27 +170,6 @@ (define-public libhomfly (license license:public-domain) (home-page "https://github.com/miguelmarco/libhomfly"))) -;; Sage 9.1 doesn't build with ECL 20. This won't be necessary once 9.2 is -;; released. See https://trac.sagemath.org/ticket/22191 -(define-public ecl-16 - (package - (inherit ecl) - (version "16.1.3") - (source - (origin - (method url-fetch) - (uri (string-append - "https://common-lisp.net/project/ecl/static/files/release/ecl" - "-" version ".tgz")) - (sha256 - (base32 "0m0j24w5d5a9dwwqyrg0d35c0nys16ijb4r0nyk87yp82v38b9bn")) - (patches (search-patches - "ecl-16-libffi.patch" - "ecl-16-ignore-stderr-write-error.patch" - "ecl-16-format-directive-limit.patch")))) - ;; Current ECL uses LGPL 2.1+ - (license license:lgpl2.0+))) - (define-public pynac (package (name "pynac")