Skip to content
Snippets Groups Projects
Commit c8f8758f authored by Celeste's avatar Celeste Committed by Kevin Daudt
Browse files

community/ecl: upgrade to 23.9.9

parent 3f380bfa
No related branches found
No related tags found
1 merge request!51377community/ecl: upgrade to 23.9.9
# Contributor: Lucas Ramage <ramage.lucas@protonmail.com> # Contributor: Lucas Ramage <ramage.lucas@protonmail.com>
# Maintainer: Lucas Ramage <ramage.lucas@protonmail.com> # Maintainer: Lucas Ramage <ramage.lucas@protonmail.com>
pkgname=ecl pkgname=ecl
pkgver=21.2.1 pkgver=23.9.9
pkgrel=3 pkgrel=0
pkgdesc="Embeddable Common Lisp" pkgdesc="Embeddable Common Lisp"
arch="all" arch="all"
url="https://common-lisp.net/project/ecl" url="https://common-lisp.net/project/ecl"
options="!check" options="!check"
license="LGPL-2.1-or-later" license="LGPL-2.1-or-later"
makedepends="gmp-dev libffi-dev gc-dev texinfo" makedepends="gmp-dev libffi-dev gc-dev texinfo"
source="https://common-lisp.net/project/ecl/static/files/release/ecl-$pkgver.tgz source="https://common-lisp.net/project/ecl/static/files/release/ecl-$pkgver.tgz"
fix-integer-suffixes.patch
"
subpackages="$pkgname-doc $pkgname-dev" subpackages="$pkgname-doc $pkgname-dev"
prepare() { prepare() {
default_prepare default_prepare
update_config_sub update_config_sub
update_config_guess
} }
build() { build() {
...@@ -31,13 +28,17 @@ build() { ...@@ -31,13 +28,17 @@ build() {
--localstatedir=/var/state/ecl \ --localstatedir=/var/state/ecl \
--enable-boehm=system \ --enable-boehm=system \
--with-cxx --with-cxx
make -j1 make
}
check() {
make check
} }
package() { package() {
make DESTDIR="$pkgdir" install make DESTDIR="$pkgdir" install
} }
sha512sums=" sha512sums="
0849bebe1a8073ea8027cfb172c1d7781d43adb6a8b80585bd08d5674b80422d1648b6fbf718cc17a51c5de6c696514523b4d13a82e8113bf9365c95d3c28648 ecl-21.2.1.tgz c8f1dcf2bffad7358c3d4e5bb0924cbb69afaf79871e6444bd780a594e1e96e6c547346b7c9c5184a6b12ce920a6a959334cf2a85c3f3ea0e0c8f22f72fb84df ecl-23.9.9.tgz
aa739683f6256f282eecf79907efb5eac11bd97bd04c5e7cf1ca935e78c9d27d8728b11ad3dbde1250a73ed9bf1aaf4f545bce5541a8139bc18753c41bdbfc17 fix-integer-suffixes.patch
" "
Taken from https://gitlab.com/embeddable-common-lisp/ecl/-/commit/f3d4cf4b66ab6c3cd8629ab6d0c7f7c50d7fd8a4
with "src/cmp/cmppass2-loc.lsp" changed to its old name "src/cmp/cmploc.lsp"
diff --git a/src/cmp/cmpc-wt.lsp b/src/cmp/cmpc-wt.lsp
index 2f5f4063ca7050975d8468a322165dcd098f713e..1a681455c5e3888fffdc59637900a0123e339758 100644
--- a/src/cmp/cmpc-wt.lsp
+++ b/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))))
diff --git a/src/cmp/cmppass2-loc.lsp b/src/cmp/cmppass2-loc.lsp
index c6ec0a6637e399268cfaf8fd1021ca0ef08f7432..a1fa9fd8704e1eaba0561e1df23bba254451c30b 100644
--- a/src/cmp/cmploc.lsp
+++ b/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))
diff --git a/src/cmp/cmptables.lsp b/src/cmp/cmptables.lsp
index 814f5f8410ce50b3a9b00d626bb9c641ecd526a9..e649bf8834fb355b188de4123c38d3b0a4b7ae5b 100644
--- a/src/cmp/cmptables.lsp
+++ b/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)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment