BR libatomic_ops-static instead of -devel (bz 889173).

Pull in upstream patches for bugs discovered post-release.
Documentation needs docbook 5 schemas and XSL.
This commit is contained in:
Jerry James 2012-12-20 16:41:31 -07:00
parent 72bc747563
commit 58995c0e0b
3 changed files with 265 additions and 3 deletions

173
ecl-12.12.1-fixes.patch Normal file
View File

@ -0,0 +1,173 @@
ENSURE-DIRECTORIES-EXIST ignores the host and device from the original
pathname when creating the directories.
diff --git a/src/lsp/mislib.lsp b/src/lsp/mislib.lsp
index 0f6eb45..9b37225 100644
--- a/src/lsp/mislib.lsp
+++ b/src/lsp/mislib.lsp
@@ -282,7 +282,7 @@ where CREATED is true only if we succeeded on creating all directories."
:defaults full-pathname)))
(dolist (item (pathname-directory full-pathname))
(setf d (nconc d (list item)))
- (let* ((p (make-pathname :directory d)))
+ (let* ((p (make-pathname :directory d :defaults *default-pathname-defaults*)))
(unless (or (symbolp item) (si::file-kind p nil))
(setf created t)
(let ((ps (namestring p)))
ffi:definline referenced a symbol from the C package without package prefix.
diff --git a/src/lsp/ffi.lsp b/src/lsp/ffi.lsp
index a38288c..8b66a2e 100644
--- a/src/lsp/ffi.lsp
+++ b/src/lsp/ffi.lsp
@@ -681,7 +681,7 @@ the actual arguments are of the specified type."
;; defCbody must go first, because it clears symbol-plist of fun
(defCbody ,fun ,arg-types ,type ,code)
(declaim (ftype (function ,arg-types ,type) ,fun))
- (def-inline ,fun :always ,arg-types ,type ,code)))
+ (c::def-inline ,fun :always ,arg-types ,type ,code)))
(defmacro defla (&rest body)
"Syntax: (defla name lambda-list &body body)" "
Write SCALE-FLOAT so that it cannot lead to infinite loops.
diff --git a/src/lsp/format.lsp b/src/lsp/format.lsp
index a44b810..d18054f 100644
--- a/src/lsp/format.lsp
+++ b/src/lsp/format.lsp
@@ -196,6 +196,20 @@
;; Note that we have to compute the exponential _every_ _time_ in the loop
;; because multiplying just by 10.0l0 every time would lead to a greater
;; loss of precission.
+ (let ((ex (round (* exponent #.(log 2l0 10)))))
+ (declare (fixnum ex))
+ (if (minusp ex)
+ (loop for y of-type long-float
+ = (* x (the long-float (expt 10.0l0 (- ex))))
+ while (<= y 0.1l0)
+ do (decf ex)
+ finally (return (values y (the fixnum (+ delta ex)))))
+ (loop for y of-type long-float
+ = (/ x (the long-float (expt 10.0l0 ex)))
+ while (> y 1.0l0)
+ do (incf ex)
+ finally (return (values y (the fixnum (+ delta ex)))))))
+ #+(or)
(loop with ex of-type fixnum
= (round (* exponent #.(log 2l0 10)))
for y of-type long-float
(CONCATENATE 'SIMPLE-BASE-STRING ...) returns an ordinary string.
diff --git a/src/lsp/seq.lsp b/src/lsp/seq.lsp
index ee24580..16ff41f 100644
--- a/src/lsp/seq.lsp
+++ b/src/lsp/seq.lsp
@@ -72,7 +72,7 @@
(setq elt-type 'BASE-CHAR
length (if (endp args) '* (first args))))
#+unicode
- ((BASE-STRING BASE-SIMPLE-STRING)
+ ((BASE-STRING SIMPLE-BASE-STRING)
(setq elt-type 'BASE-CHAR
length (if (endp args) '* (first args))))
#+unicode
Null terminate the base-strings created by make-array.
diff --git a/src/c/array.d b/src/c/array.d
index d844602..e6b8e76 100644
--- a/src/c/array.d
+++ b/src/c/array.d
@@ -552,6 +552,13 @@ ecl_array_allocself(cl_object x)
return;
}
#endif
+ case ecl_aet_bc: {
+ cl_index elt_size = 1;
+ x->vector.self.bc = (ecl_base_char *)ecl_alloc_atomic(d+1);
+ /* Null terminate the string */
+ x->vector.self.bc[d] = 0;
+ break;
+ }
case ecl_aet_bit:
d = (d + (CHAR_BIT-1)) / CHAR_BIT;
x->vector.self.bit = (byte *)ecl_alloc_atomic(d);
@@ -574,7 +581,7 @@ ecl_alloc_simple_vector(cl_index l, cl_elttype aet)
case ecl_aet_bc:
x = ecl_alloc_compact_object(t_base_string, l+1);
x->base_string.self = ECL_COMPACT_OBJECT_EXTRA(x);
- memset(x->base_string.self, 0, l+1);
+ x->base_string.self[l] = 0;
break;
#ifdef ECL_UNICODE
case ecl_aet_ch:
In type propagators, the function name is rarely use: declare it ignorable.
diff --git a/src/cmp/cmptype-prop.lsp b/src/cmp/cmptype-prop.lsp
index f266ef0..0b6ae1d 100644
--- a/src/cmp/cmptype-prop.lsp
+++ b/src/cmp/cmptype-prop.lsp
@@ -71,7 +71,7 @@
(setf lambda-list (append lambda-list (list '&rest var))
body (list* `(declare (ignorable ,var)) body))))
`(setf (gethash ',fname *p0-dispatch-table*)
- #'(lambda ,lambda-list ,@body)))
+ #'(lambda ,lambda-list (declare (ignorable ,(first lambda-list))) ,@body)))
(defun copy-type-propagator (orig dest-list)
(loop with function = (gethash orig *p0-dispatch-table*)
Missing argument to LOGAND.
diff --git a/src/cmp/cmpopt-bits.lsp b/src/cmp/cmpopt-bits.lsp
index f097e19..0e27fbc 100644
--- a/src/cmp/cmpopt-bits.lsp
+++ b/src/cmp/cmpopt-bits.lsp
@@ -75,7 +75,7 @@
;;; TYPE PROPAGATION
;;;
-(def-type-propagator logand (&rest args)
+(def-type-propagator logand (fname &rest args)
(values args
(if args
(dolist (int-type '((UNSIGNED-BYTE 8) FIXNUM) 'integer)
Some statements from si::bc-disassemble were written to the wrong stream.
diff --git a/src/c/disassembler.d b/src/c/disassembler.d
index c45bc29..4680982 100644
--- a/src/c/disassembler.d
+++ b/src/c/disassembler.d
@@ -156,10 +156,10 @@ disassemble_tagbody(cl_object bytecodes, cl_opcode *vector) {
print_noarg("TAGBODY");
for (i=0; i<ntags; i++) {
GET_LABEL(destination, vector);
- ecl_princ_str("\n\tTAG\t", ECL_T);
- ecl_princ(ecl_make_fixnum(i), ECL_T);
- ecl_princ_str(" @@ ", ECL_T);
- ecl_princ(ecl_make_fixnum(destination - base), ECL_T);
+ ecl_princ_str("\n\tTAG\t", ECL_NIL);
+ ecl_princ(ecl_make_fixnum(i), ECL_NIL);
+ ecl_princ_str(" @@ ", ECL_NIL);
+ ecl_princ(ecl_make_fixnum(destination - base), ECL_NIL);
}
vector = disassemble(bytecodes, vector);
print_noarg("\t\t; tagbody");
@@ -189,9 +189,9 @@ disassemble(cl_object bytecodes, cl_opcode *vector) {
if (line_format != ECL_NIL) {
cl_format(3, ECL_T, line_format, line_no);
} else {
- ecl_princ_char('\n', ECL_T);
- ecl_princ(line_no, ECL_T);
- ecl_princ_char('\t', ECL_T);
+ ecl_princ_char('\n', ECL_NIL);
+ ecl_princ(line_no, ECL_NIL);
+ ecl_princ_char('\t', ECL_NIL);
}
switch (GET_OPCODE(vector)) {

View File

@ -0,0 +1,77 @@
--- ecl-doc/ecl.ent.orig 2012-07-27 15:01:05.000000000 -0600
+++ ecl-doc/ecl.ent 2012-12-20 16:28:04.651420313 -0700
@@ -2,20 +2,20 @@
<!ENTITY tex "TeX">
<!ENTITY latex "LaTeX">
<!ENTITY CommonLisp "Common Lisp">
-<!ENTITY ECL "<application>ECL</application>">
-<!ENTITY CMUCL "<application>CMUCL</application>">
-<!ENTITY SBCL "<application>SBCL</application>">
-<!ENTITY FFI "<application>FFI</application>">
-<!ENTITY UFFI "<link linkend='part.uffi'><application>UFFI</application></link>">
-<!ENTITY CFFI "<application>CFFI</application>">
-<!ENTITY ASDF "<application>ASDF</application>">
-<!ENTITY FASL "<acronym>FASL</acronym>">
-<!ENTITY ANSI "<xref linkend='bib.ANSI'/>">
-<!ENTITY AMOP "<xref linkend='bib.AMOP'/>">
-<!ENTITY CLOS "<acronym>CLOS</acronym>">
-<!ENTITY PCL "<acronym>PCL</acronym>">
-<!ENTITY Steele84 "<xref linkend='bib.CLTL2'/>">
-<!ENTITY HyperSpec "<xref linkend='bib.HyperSpec'/>">
+<!ENTITY ECL "<application xmlns='http://docbook.org/ns/docbook'>ECL</application>">
+<!ENTITY CMUCL "<application xmlns='http://docbook.org/ns/docbook'>CMUCL</application>">
+<!ENTITY SBCL "<application xmlns='http://docbook.org/ns/docbook'>SBCL</application>">
+<!ENTITY FFI "<application xmlns='http://docbook.org/ns/docbook'>FFI</application>">
+<!ENTITY UFFI "<link xmlns='http://docbook.org/ns/docbook' linkend='part.uffi'><application xmlns='http://docbook.org/ns/docbook'>UFFI</application></link>">
+<!ENTITY CFFI "<application xmlns='http://docbook.org/ns/docbook'>CFFI</application>">
+<!ENTITY ASDF "<application xmlns='http://docbook.org/ns/docbook'>ASDF</application>">
+<!ENTITY FASL "<acronym xmlns='http://docbook.org/ns/docbook'>FASL</acronym>">
+<!ENTITY ANSI "<xref xmlns='http://docbook.org/ns/docbook' linkend='bib.ANSI'/>">
+<!ENTITY AMOP "<xref xmlns='http://docbook.org/ns/docbook' linkend='bib.AMOP'/>">
+<!ENTITY CLOS "<acronym xmlns='http://docbook.org/ns/docbook'>CLOS</acronym>">
+<!ENTITY PCL "<acronym xmlns='http://docbook.org/ns/docbook'>PCL</acronym>">
+<!ENTITY Steele84 "<xref xmlns='http://docbook.org/ns/docbook' linkend='bib.CLTL2'/>">
+<!ENTITY HyperSpec "<xref xmlns='http://docbook.org/ns/docbook' linkend='bib.HyperSpec'/>">
<!ENTITY GFDL SYSTEM "tmp/COPYING.GFDL.xml">
<!ENTITY optional "&amp;optional">
<!ENTITY rest "&amp;rest">
@@ -25,21 +25,21 @@
<!ENTITY body "&amp;body">
<!ENTITY whole "&amp;whole">
<!ENTITY environment "&amp;environment">
-<!ENTITY uffi "<application><emphasis>UFFI</emphasis></application>">
-<!ENTITY ffi "<acronym>FFI</acronym>">
-<!ENTITY LW "<application>Lispworks</application>">
-<!ENTITY OpenMCL "<application>OpenMCL</application>">
-<!ENTITY MCL "<application>MCL</application>">
-<!ENTITY ACL "<application>AllegroCL</application>">
-<!ENTITY t "<constant>T</constant>">
-<!ENTITY nil "<constant>NIL</constant>">
-<!ENTITY NULL "<constant>NULL</constant>">
-<!ENTITY C "<acronym>C</acronym>">
-<!ENTITY defsystem "<application>defsystem</application>">
+<!ENTITY uffi "<application xmlns='http://docbook.org/ns/docbook'><emphasis>UFFI</emphasis></application>">
+<!ENTITY ffi "<acronym xmlns='http://docbook.org/ns/docbook'>FFI</acronym>">
+<!ENTITY LW "<application xmlns='http://docbook.org/ns/docbook'>Lispworks</application>">
+<!ENTITY OpenMCL "<application xmlns='http://docbook.org/ns/docbook'>OpenMCL</application>">
+<!ENTITY MCL "<application xmlns='http://docbook.org/ns/docbook'>MCL</application>">
+<!ENTITY ACL "<application xmlns='http://docbook.org/ns/docbook'>AllegroCL</application>">
+<!ENTITY t "<constant xmlns='http://docbook.org/ns/docbook'>T</constant>">
+<!ENTITY nil "<constant xmlns='http://docbook.org/ns/docbook'>NIL</constant>">
+<!ENTITY NULL "<constant xmlns='http://docbook.org/ns/docbook'>NULL</constant>">
+<!ENTITY C "<acronym xmlns='http://docbook.org/ns/docbook'>C</acronym>">
+<!ENTITY defsystem "<application xmlns='http://docbook.org/ns/docbook'>defsystem</application>">
<!ENTITY clhs "http://www.lispworks.com/documentation/HyperSpec/Body/">
-<!ENTITY cygwin "<ulink url='http://www.cygwin.com/'><application>Cygwin</application></ulink>">
-<!ENTITY mingw "<ulink url='http://mingw.sourceforge.net/'><application>Mingw</application></ulink>">
-<!ENTITY OCL "<link linkend='ansi.OCL'>[Only in Common Lisp]</link>">
+<!ENTITY cygwin "<ulink xmlns='http://docbook.org/ns/docbook' url='http://www.cygwin.com/'><application xmlns='http://docbook.org/ns/docbook'>Cygwin</application></ulink>">
+<!ENTITY mingw "<ulink xmlns='http://docbook.org/ns/docbook' url='http://mingw.sourceforge.net/'><application xmlns='http://docbook.org/ns/docbook'>Mingw</application></ulink>">
+<!ENTITY OCL "<link xmlns='http://docbook.org/ns/docbook' linkend='ansi.OCL'>[Only in Common Lisp]</link>">
<!ENTITY ANSI-C-Dict "Common Lisp and C equivalence">
-<!ENTITY nil "<symbol>nil</symbol>">
-<!ENTITY t "<symbol>t</symbol>">
\ No newline at end of file
+<!ENTITY nil "<symbol xmlns='http://docbook.org/ns/docbook'>nil</symbol>">
+<!ENTITY t "<symbol xmlns='http://docbook.org/ns/docbook'>t</symbol>">
\ No newline at end of file

View File

@ -1,6 +1,6 @@
Name: ecl
Version: 12.12.1
Release: 2%{?dist}
Release: 3%{?dist}
Summary: Embeddable Common-Lisp
Group: Development/Languages
@ -31,15 +31,20 @@ Patch0: %{name}-12.12.1-warnings.patch
# http://trac.sagemath.org/sage_trac/ticket/11752
# http://www.mail-archive.com/ecls-list@lists.sourceforge.net/msg00644.html
Patch1: %{name}-12.12.1-signal_handling_thread.patch
# Bug-fixing patches cherry picked from upstream's git.
Patch2: %{name}-12.12.1-fixes.patch
# Work around xsltproc requiring namespace declarations for entities.
Patch3: %{name}-12.12.1-xsltproc.patch
BuildRequires: libX11-devel
BuildRequires: pkgconfig
BuildRequires: gmp-devel
BuildRequires: gc-devel
BuildRequires: libatomic_ops-devel
BuildRequires: libatomic_ops-static
BuildRequires: libffi-devel
BuildRequires: emacs-common
BuildRequires: docbook-dtds
BuildRequires: docbook5-schemas
BuildRequires: docbook5-style-xsl
BuildRequires: xmlto
BuildRequires: desktop-file-utils
Requires: gcc
@ -68,6 +73,8 @@ Gray streams.
%setup -q -T -D -a 1
%patch0
%patch1
%patch2 -p1
%patch3
# Remove spurious executable bits
chmod a-x src/CHANGELOG
@ -149,6 +156,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >&/dev/null ||:
%changelog
* Thu Dec 20 2012 Jerry James <loganjerry@gmail.com> - 12.12.1-3
- BR libatomic_ops-static instead of -devel (bz 889173)
- Pull in upstream patches for bugs discovered post-release
- Documentation needs docbook 5 schemas and XSL
* Sat Dec 08 2012 Rex Dieter <rdieter@fedoraproject.org> 12.12.1-2
- track libecl soname, so bumps aren't a surprise