Gentoo Archives: gentoo-commits

From: "José María Alonso" <nimiux@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/lisp:master commit in: dev-lisp/clozurecl/, dev-lisp/clozurecl/files/
Date: Sun, 10 Dec 2017 14:54:46
Message-Id: 1512917679.9c244e879a3a9be69e1dfdb199213fdc59ce29a2.nimiux@gentoo
1 commit: 9c244e879a3a9be69e1dfdb199213fdc59ce29a2
2 Author: Chema Alonso Josa <nimiux <AT> gentoo <DOT> org>
3 AuthorDate: Sun Dec 10 14:54:39 2017 +0000
4 Commit: José María Alonso <nimiux <AT> gentoo <DOT> org>
5 CommitDate: Sun Dec 10 14:54:39 2017 +0000
6 URL: https://gitweb.gentoo.org/proj/lisp.git/commit/?id=9c244e87
7
8 dev-lisp/clozurecl: Sync with main repo
9
10 dev-lisp/clozurecl/clozurecl-1.11-r1.ebuild | 93 ---------------
11 ...ecl-1.11-r2.ebuild => clozurecl-1.11-r3.ebuild} | 2 +
12 ...recl-1.11-r2.ebuild => clozurecl-1.11.5.ebuild} | 31 +++--
13 dev-lisp/clozurecl/files/ccl-1.11-glibc-2.26.patch | 41 +++++++
14 dev-lisp/clozurecl/files/ccl-format.patch | 128 ---------------------
15 5 files changed, 57 insertions(+), 238 deletions(-)
16
17 diff --git a/dev-lisp/clozurecl/clozurecl-1.11-r1.ebuild b/dev-lisp/clozurecl/clozurecl-1.11-r1.ebuild
18 deleted file mode 100644
19 index c5f9a551..00000000
20 --- a/dev-lisp/clozurecl/clozurecl-1.11-r1.ebuild
21 +++ /dev/null
22 @@ -1,93 +0,0 @@
23 -# Copyright 1999-2017 Gentoo Foundation
24 -# Distributed under the terms of the GNU General Public License v2
25 -
26 -EAPI=6
27 -
28 -inherit eutils multilib toolchain-funcs
29 -
30 -MY_PN=ccl
31 -MY_P=${MY_PN}-${PV}
32 -
33 -DESCRIPTION="Common Lisp implementation, derived from Digitool's MCL product"
34 -HOMEPAGE="http://ccl.clozure.com/"
35 -SRC_URI="
36 - x86? ( ftp://ftp.clozure.com/pub/release/${PV}/${MY_P}-linuxx86.tar.gz )
37 - amd64? ( ftp://ftp.clozure.com/pub/release/${PV}/${MY_P}-linuxx86.tar.gz )
38 - doc? ( http://ccl.clozure.com/docs/ccl.html )"
39 - # ppc? ( ftp://ftp.clozure.com/pub/release/${PV}/${MY_P}-linuxppc.tar.gz )
40 - # ppc64? ( ftp://ftp.clozure.com/pub/release/${PV}/${MY_P}-linuxppc.tar.gz )"
41 -
42 -LICENSE="LLGPL-2.1"
43 -SLOT="0"
44 -# KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
45 -KEYWORDS="~amd64 ~x86"
46 -IUSE="doc"
47 -
48 -RDEPEND=">=dev-lisp/asdf-2.33-r3:="
49 -DEPEND="${RDEPEND}
50 - !dev-lisp/openmcl"
51 -
52 -S="${WORKDIR}"/${MY_PN}
53 -ENVD="${T}"/50ccl
54 -
55 -src_configure() {
56 - if use x86; then
57 - CCL_RUNTIME=lx86cl; CCL_HEADERS=x86-headers; CCL_KERNEL=linuxx8632
58 - elif use amd64; then
59 - CCL_RUNTIME=lx86cl64; CCL_HEADERS=x86-headers64; CCL_KERNEL=linuxx8664
60 - elif use ppc; then
61 - CCL_RUNTIME=ppccl; CCL_HEADERS=headers; CCL_KERNEL=linuxppc
62 - elif use ppc64; then
63 - CCL_RUNTIME=ppccl64; CCL_HEADERS=headers64; CCL_KERNEL=linuxppc64
64 - fi
65 -}
66 -
67 -src_prepare() {
68 - default
69 - epatch "${FILESDIR}"/ccl-format.patch
70 - cp /usr/share/common-lisp/source/asdf/build/asdf.lisp tools/ || die
71 -}
72 -
73 -src_compile() {
74 - emake -C lisp-kernel/${CCL_KERNEL} clean
75 - emake -C lisp-kernel/${CCL_KERNEL} all CC="$(tc-getCC)"
76 -
77 - unset CCL_DEFAULT_DIRECTORY
78 - ./${CCL_RUNTIME} -n -b -Q -e '(ccl:rebuild-ccl :full t)' -e '(ccl:quit)' || die "Compilation failed"
79 -
80 - # remove non-owner write permissions on the full-image
81 - chmod go-w ${CCL_RUNTIME}{,.image} || die
82 -
83 - esvn_clean
84 -}
85 -
86 -src_install() {
87 - local install_dir=/usr/$(get_libdir)/${PN}
88 -
89 - exeinto ${install_dir}
90 - # install executable
91 - doexe ${CCL_RUNTIME}
92 - # install core image
93 - cp ${CCL_RUNTIME}.image "${D}"/${install_dir} || die
94 - # install optional libraries
95 - dodir ${install_dir}/tools
96 - cp tools/*fsl "${D}"/${install_dir}/tools || die
97 -
98 - # until we figure out which source files are necessary for runtime
99 - # optional features and which aren't, we install all sources
100 - find . -type f -name '*fsl' -delete || die
101 - rm -f lisp-kernel/${CCL_KERNEL}/*.o || die
102 - cp -a compiler level-0 level-1 lib library \
103 - lisp-kernel scripts tools xdump contrib \
104 - "${D}"/${install_dir} || die
105 - cp -a ${CCL_HEADERS} "${D}"/${install_dir} || die
106 -
107 - make_wrapper ccl "${install_dir}/${CCL_RUNTIME}"
108 -
109 - echo "CCL_DEFAULT_DIRECTORY=${install_dir}" > "${ENVD}"
110 - doenvd "${ENVD}"
111 -
112 - dodoc doc/release-notes.txt
113 - use doc && dodoc "${DISTDIR}"/ccl.html
114 - use doc && dodoc -r examples
115 -}
116
117 diff --git a/dev-lisp/clozurecl/clozurecl-1.11-r2.ebuild b/dev-lisp/clozurecl/clozurecl-1.11-r3.ebuild
118 similarity index 95%
119 copy from dev-lisp/clozurecl/clozurecl-1.11-r2.ebuild
120 copy to dev-lisp/clozurecl/clozurecl-1.11-r3.ebuild
121 index 8c1c342d..5482af1a 100644
122 --- a/dev-lisp/clozurecl/clozurecl-1.11-r2.ebuild
123 +++ b/dev-lisp/clozurecl/clozurecl-1.11-r3.ebuild
124 @@ -56,6 +56,8 @@ src_configure() {
125 src_prepare() {
126 default
127 eapply "${FILESDIR}/${MY_PN}-format.patch"
128 + # bug #638304 https://github.com/Clozure/ccl/commit/a87d61b88e1f48a563335062668970f7e6290ecf
129 + eapply "${FILESDIR}/${MY_P}-glibc-2.26.patch"
130 # https://lists.clozure.com/pipermail/openmcl-devel/2016-September/011399.html
131 sed -i "s/-dynamic/-no_pie/" "${S}/lisp-kernel/darwinx8664/Makefile" || die
132 cp "${EPREFIX}/usr/share/common-lisp/source/asdf/build/asdf.lisp" tools/ || die
133
134 diff --git a/dev-lisp/clozurecl/clozurecl-1.11-r2.ebuild b/dev-lisp/clozurecl/clozurecl-1.11.5.ebuild
135 similarity index 75%
136 rename from dev-lisp/clozurecl/clozurecl-1.11-r2.ebuild
137 rename to dev-lisp/clozurecl/clozurecl-1.11.5.ebuild
138 index 8c1c342d..7eeebd9c 100644
139 --- a/dev-lisp/clozurecl/clozurecl-1.11-r2.ebuild
140 +++ b/dev-lisp/clozurecl/clozurecl-1.11.5.ebuild
141 @@ -11,16 +11,16 @@ MY_P=${MY_PN}-${PV}
142 DESCRIPTION="Common Lisp implementation, derived from Digitool's MCL product"
143 HOMEPAGE="https://ccl.clozure.com"
144 SRC_URI="
145 - x86? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-linuxx86.tar.gz )
146 - amd64? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-linuxx86.tar.gz )
147 - arm? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-linuxarm.tar.gz )
148 - x86-macos? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-darwinx86.tar.gz )
149 - x64-macos? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-darwinx86.tar.gz )
150 - x86-solaris? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-solarisx86.tar.gz )
151 - x64-solaris? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-solarisx86.tar.gz )
152 + x86? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-linuxx86.tar.gz )
153 + amd64? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-linuxx86.tar.gz )
154 + arm? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-linuxarm.tar.gz )
155 + x86-macos? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-darwinx86.tar.gz )
156 + x64-macos? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-darwinx86.tar.gz )
157 + x86-solaris? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-solarisx86.tar.gz )
158 + x64-solaris? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-solarisx86.tar.gz )
159 doc? ( ${HOMEPAGE}/docs/ccl.html )"
160
161 -LICENSE="LLGPL-2.1"
162 +LICENSE="Apache-2.0"
163 SLOT="0"
164 KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
165 IUSE="doc"
166 @@ -31,6 +31,11 @@ DEPEND="${RDEPEND}"
167 S="${WORKDIR}"/${MY_PN}
168 ENVD="${T}/50ccl"
169
170 +src_prepare() {
171 + default
172 + cp "${EPREFIX}/usr/share/common-lisp/source/asdf/build/asdf.lisp" tools/ || die
173 +}
174 +
175 src_configure() {
176 if use x86-macos; then
177 CCL_RUNTIME=dx86cl; CCL_HEADERS=darwin-x86-headers; CCL_KERNEL=darwinx8632
178 @@ -53,14 +58,6 @@ src_configure() {
179 fi
180 }
181
182 -src_prepare() {
183 - default
184 - eapply "${FILESDIR}/${MY_PN}-format.patch"
185 - # https://lists.clozure.com/pipermail/openmcl-devel/2016-September/011399.html
186 - sed -i "s/-dynamic/-no_pie/" "${S}/lisp-kernel/darwinx8664/Makefile" || die
187 - cp "${EPREFIX}/usr/share/common-lisp/source/asdf/build/asdf.lisp" tools/ || die
188 -}
189 -
190 src_compile() {
191 emake -C lisp-kernel/${CCL_KERNEL} clean
192 emake -C lisp-kernel/${CCL_KERNEL} all CC="$(tc-getCC)"
193 @@ -82,7 +79,7 @@ src_install() {
194
195 find . -type f -name '*fsl' -delete || die
196 rm -f lisp-kernel/${CCL_KERNEL}/*.o || die
197 - cp -a compiler contrib level-0 level-1 lib library lisp-kernel scripts \
198 + cp -a compiler level-0 level-1 lib library lisp-kernel scripts \
199 tools xdump ${CCL_HEADERS} ${CCL_RUNTIME} ${CCL_RUNTIME}.image \
200 "${D}/${prefix_dir#/}" || die
201
202
203 diff --git a/dev-lisp/clozurecl/files/ccl-1.11-glibc-2.26.patch b/dev-lisp/clozurecl/files/ccl-1.11-glibc-2.26.patch
204 new file mode 100644
205 index 00000000..3a9bdf64
206 --- /dev/null
207 +++ b/dev-lisp/clozurecl/files/ccl-1.11-glibc-2.26.patch
208 @@ -0,0 +1,41 @@
209 +diff -U2 -r ccl.orig/lisp-kernel/platform-linuxx8632.h ccl/lisp-kernel/platform-linuxx8632.h
210 +--- ccl.orig/lisp-kernel/platform-linuxx8632.h 2015-11-07 02:10:11.000000000 +0600
211 ++++ ccl/lisp-kernel/platform-linuxx8632.h 2017-11-21 23:50:31.630113003 +0700
212 +@@ -21,5 +21,7 @@
213 + #define PLATFORM_WORD_SIZE PLATFORM_WORD_SIZE_32
214 +
215 +-typedef struct ucontext ExceptionInformation;
216 ++#include <ucontext.h>
217 ++
218 ++typedef ucontext_t ExceptionInformation;
219 +
220 + #define MAXIMUM_MAPPABLE_MEMORY (9U<<28)
221 +diff -U2 -r ccl.orig/lisp-kernel/platform-linuxx8664.h ccl/lisp-kernel/platform-linuxx8664.h
222 +--- ccl.orig/lisp-kernel/platform-linuxx8664.h 2015-11-07 02:10:11.000000000 +0600
223 ++++ ccl/lisp-kernel/platform-linuxx8664.h 2017-11-21 23:51:44.693114350 +0700
224 +@@ -21,5 +21,7 @@
225 + #define PLATFORM_WORD_SIZE PLATFORM_WORD_SIZE_64
226 +
227 +-typedef struct ucontext ExceptionInformation;
228 ++#include <ucontext.h>
229 ++
230 ++typedef ucontext_t ExceptionInformation;
231 +
232 + #define MAXIMUM_MAPPABLE_MEMORY (512L<<30L)
233 +diff -U2 -r ccl.orig/lisp-kernel/x86-exceptions.c ccl/lisp-kernel/x86-exceptions.c
234 +--- ccl.orig/lisp-kernel/x86-exceptions.c 2015-11-07 02:10:11.000000000 +0600
235 ++++ ccl/lisp-kernel/x86-exceptions.c 2017-11-21 23:55:00.816117965 +0700
236 +@@ -1678,5 +1678,5 @@
237 + void *puc;
238 + siginfo_t info;
239 +- struct ucontext uc;
240 ++ ucontext_t uc;
241 + struct _fpstate fpstate;
242 + char retcode[8];
243 +@@ -2426,5 +2426,5 @@
244 + change copy_ucontext().
245 + */
246 +- stack.ss_size -= sizeof(struct ucontext);
247 ++ stack.ss_size -= sizeof(ucontext_t);
248 + #endif
249 + if (sigaltstack(&stack, NULL) != 0) {
250
251 diff --git a/dev-lisp/clozurecl/files/ccl-format.patch b/dev-lisp/clozurecl/files/ccl-format.patch
252 deleted file mode 100644
253 index c2df37c2..00000000
254 --- a/dev-lisp/clozurecl/files/ccl-format.patch
255 +++ /dev/null
256 @@ -1,128 +0,0 @@
257 -diff -r -U1 ccl.orig/lib/format.lisp ccl/lib/format.lisp
258 ---- ccl.orig/lib/format.lisp 2015-11-07 02:10:10.000000000 +0600
259 -+++ ccl/lib/format.lisp 2015-11-20 22:51:51.736191995 +0600
260 -@@ -1296,5 +1296,2 @@
261 -
262 --
263 --
264 --
265 - ;;; Given a non-negative floating point number, SCALE-EXPONENT returns a
266 -@@ -1305,41 +1302,74 @@
267 -
268 --
269 --(defconstant long-log10-of-2 0.30103d0)
270 --
271 --#|
272 --(defun scale-exponent (x)
273 -- (if (floatp x )
274 -- (scale-expt-aux (abs x) 0.0d0 1.0d0 1.0d1 1.0d-1 long-log10-of-2)
275 -- (report-bad-arg x 'float)))
276 --
277 --#|this is the slisp code that was in the place of the error call above.
278 -- before floatp was put in place of shortfloatp.
279 -- ;(scale-expt-aux x (%sp-l-float 0) (%sp-l-float 1) %long-float-ten
280 -- ; %long-float-one-tenth long-log10-of-2)))
281 --|#
282 --
283 --; this dies with floating point overflow (?) if fed least-positive-double-float
284 --
285 --(defun scale-expt-aux (x zero one ten one-tenth log10-of-2)
286 -- (let ((exponent (nth-value 1 (decode-float x))))
287 -- (if (= x zero)
288 -- (values zero 1)
289 -- (let* ((e (round (* exponent log10-of-2)))
290 -- (x (if (minusp e) ;For the end ranges.
291 -- (* x ten (expt ten (- -1 e)))
292 -- (/ x ten (expt ten (1- e))))))
293 -- (do ((d ten (* d ten))
294 -- (y x (/ x d))
295 -- (e e (1+ e)))
296 -- ((< y one)
297 -- (do ((m ten (* m ten))
298 -- (z y (* z m))
299 -- (e e (1- e)))
300 -- ((>= z one-tenth) (values x e)))))))))
301 --|#
302 --
303 --(defun scale-exponent (n)
304 -- (let ((exp (nth-value 1 (decode-float n))))
305 -- (values (round (* exp long-log10-of-2)))))
306 --
307 -+(defconstant single-float-min-e
308 -+ (nth-value 1 (decode-float least-positive-single-float)))
309 -+(defconstant double-float-min-e
310 -+ (nth-value 1 (decode-float least-positive-double-float)))
311 -+
312 -+;;; Adapted from CMUCL.
313 -+
314 -+;; This is a modified version of the scale computation from Burger and
315 -+;; Dybvig's paper "Printing floating-point quickly and accurately."
316 -+;; We only want the exponent, so most things not needed for the
317 -+;; computation of the exponent have been removed. We also implemented
318 -+;; the floating-point log approximation given in Burger and Dybvig.
319 -+;; This is very noticeably faster for large and small numbers. It is
320 -+;; slower for intermediate sized numbers.
321 -+(defun accurate-scale-exponent (v)
322 -+ (declare (type float v))
323 -+ (if (zerop v)
324 -+ 1
325 -+ (let ((float-radix 2) ; b
326 -+ (float-digits (float-digits v)) ; p
327 -+ (min-e
328 -+ (etypecase v
329 -+ (single-float single-float-min-e)
330 -+ (double-float double-float-min-e))))
331 -+ (multiple-value-bind (f e)
332 -+ (integer-decode-float v)
333 -+ (let ( ;; FIXME: these even tests assume normal IEEE rounding
334 -+ ;; mode. I wonder if we should cater for non-normal?
335 -+ (high-ok (evenp f)))
336 -+ ;; We only want the exponent here.
337 -+ (labels ((flog (x)
338 -+ (declare (type (float (0.0)) x))
339 -+ (let ((xd (etypecase x
340 -+ (single-float
341 -+ (float x 1d0))
342 -+ (double-float
343 -+ x))))
344 -+ (ceiling (- (the (double-float -400d0 400d0)
345 -+ (log xd 10d0))
346 -+ 1d-10))))
347 -+ (fixup (r s m+ k)
348 -+ (if (if high-ok
349 -+ (>= (+ r m+) s)
350 -+ (> (+ r m+) s))
351 -+ (+ k 1)
352 -+ k))
353 -+ (scale (r s m+)
354 -+ (let* ((est (flog v))
355 -+ (scale (the integer (10-to-e (abs est)))))
356 -+ (if (>= est 0)
357 -+ (fixup r (* s scale) m+ est)
358 -+ (fixup (* r scale) s (* m+ scale) est)))))
359 -+ (let (r s m+)
360 -+ (if (>= e 0)
361 -+ (let* ((be (expt float-radix e))
362 -+ (be1 (* be float-radix)))
363 -+ (if (/= f (expt float-radix (1- float-digits)))
364 -+ (setf r (* f be 2)
365 -+ s 2
366 -+ m+ be)
367 -+ (setf r (* f be1 2)
368 -+ s (* float-radix 2)
369 -+ m+ be1)))
370 -+ (if (or (= e min-e)
371 -+ (/= f (expt float-radix (1- float-digits))))
372 -+ (setf r (* f 2)
373 -+ s (* (expt float-radix (- e)) 2)
374 -+ m+ 1)
375 -+ (setf r (* f float-radix 2)
376 -+ s (* (expt float-radix (- 1 e)) 2)
377 -+ m+ float-radix)))
378 -+ (scale r s m+))))))))
379 -
380 -@@ -1922,3 +1952,3 @@
381 - (format-error "incompatible values for k and d")))
382 -- (when (not exp) (setq exp (scale-exponent number)))
383 -+ (when (not exp) (setq exp (accurate-scale-exponent (abs number))))
384 - AGAIN