update to latest in mercurial (lots of fixes), re-enable ppc64, aarch64, disable s390x

This commit is contained in:
Tom Callaway 2018-02-26 12:32:08 -05:00
commit 6043f8d9a2
6 changed files with 90 additions and 72 deletions

1
.gitignore vendored
View file

@ -2,3 +2,4 @@
/clisp-2.49-20161111hg.tar.xz
/clisp-2.49-20161113hg.tar.xz
/clisp-2.49-20170224hg.tar.xz
/clisp-2.49.93-20180224hg.tar.xz

View file

@ -1,11 +1,12 @@
--- src/record.d.orig 2017-02-24 10:42:57.482011489 -0700
+++ src/record.d 2017-02-24 10:52:21.862184109 -0700
@@ -1540,7 +1540,7 @@ global maygc object update_instance (obj
ptr->inst_class_version = obj;
clr_break_sem_1(); /* permit interrupts again */
}
- ASSERT(Record_flags(STACK_(2+4+2*kept_slots)) & instflags_forwarded_B);
+ ASSERT(record_flags(TheInstance(STACK_(2+4+2*kept_slots))) & instflags_forwarded_B);
dotimesL(kept_slots,kept_slots, {
var object new_slotinfo = popSTACK();
ASSERT(atomp(new_slotinfo));
diff -up clisp-2.49.93/src/record.d.alias clisp-2.49.93/src/record.d
--- clisp-2.49.93/src/record.d.alias 2018-02-26 11:40:53.668845947 -0500
+++ clisp-2.49.93/src/record.d 2018-02-26 11:41:22.225164509 -0500
@@ -1539,7 +1539,7 @@ global maygc object update_instance (obj
ptr->inst_class_version = obj;
clr_break_sem_1(); /* permit interrupts again */
}
- ASSERT(Record_flags(STACK_(2+4+2*kept_slots)) & instflags_forwarded_B);
+ ASSERT(record_flags(TheInstance(STACK_(2+4+2*kept_slots))) & instflags_forwarded_B);
dotimesL(kept_slots,kept_slots, {
var object new_slotinfo = popSTACK();
ASSERT(atomp(new_slotinfo));

View file

@ -1,5 +1,6 @@
--- src/aridecl.d.orig 2017-02-24 10:37:24.000000000 -0700
+++ src/aridecl.d 2017-02-24 10:43:07.072929454 -0700
diff -up clisp-2.49.93/src/aridecl.d.negshift clisp-2.49.93/src/aridecl.d
--- clisp-2.49.93/src/aridecl.d.negshift 2018-02-26 11:22:55.000000000 -0500
+++ clisp-2.49.93/src/aridecl.d 2018-02-26 11:37:34.006610477 -0500
@@ -163,9 +163,9 @@
/* Creates a single float from sign (0 or -1), exponent and mantissa: */
#define make_FF(sign,exp,mant) \
@ -13,9 +14,10 @@
/* Single Float 0.0 : */
#define FF_0 make_FF(0,0,0)
/* Single Float 1.0 : */
--- src/lispbibl.d.orig 2017-02-24 10:42:57.481011497 -0700
+++ src/lispbibl.d 2017-02-24 10:43:07.078929402 -0700
@@ -1203,9 +1203,9 @@ typedef signed int signean;
diff -up clisp-2.49.93/src/lispbibl.d.negshift clisp-2.49.93/src/lispbibl.d
--- clisp-2.49.93/src/lispbibl.d.negshift 2018-02-26 11:37:33.998610668 -0500
+++ clisp-2.49.93/src/lispbibl.d 2018-02-26 11:37:34.008610429 -0500
@@ -1360,9 +1360,9 @@ typedef signed int signean;
#endif
#endif
/* Minus bit number n (0<=n<32) */
@ -27,7 +29,7 @@
%% export_def(bit(n));
%% #if notused
%% export_def(bitm(n));
@@ -3029,7 +3029,7 @@ typedef signed_int_with_n_bits(intVsize)
@@ -5488,7 +5488,7 @@ typedef signed_int_with_n_bits(intVsize)
#define vbit(n) (LL(1)<<(n))
#define vbitm(n) (LL(2)<<((n)-1))
#define vbit_test(x,n) ((x) & vbit(n))
@ -36,7 +38,7 @@
#else
#define vbit bit
#define vbitm bitm
@@ -5363,7 +5363,7 @@ typedef unsigned_int_with_n_bits(char_in
@@ -8060,7 +8060,7 @@ typedef unsigned_int_with_n_bits(char_in
> delta: a constant
< result: incremented fixnum */
#define fixnum_inc(obj,delta) \
@ -45,8 +47,9 @@
%% export_def(fixnum_inc(obj,delta));
/* posfixnum(x) is a fixnum with value x>=0. */
--- src/spvw_gcmark.d.orig 2017-02-24 10:37:24.000000000 -0700
+++ src/spvw_gcmark.d 2017-02-24 10:43:07.078929402 -0700
diff -up clisp-2.49.93/src/spvw_gcmark.d.negshift clisp-2.49.93/src/spvw_gcmark.d
--- clisp-2.49.93/src/spvw_gcmark.d.negshift 2018-02-26 11:22:55.000000000 -0500
+++ clisp-2.49.93/src/spvw_gcmark.d 2018-02-26 11:38:05.018870433 -0500
@@ -43,7 +43,7 @@ local void gc_mark (object obj)
goto down; /* and descent */ \
}
@ -100,7 +103,7 @@
+ { curr = objectplus(pred,((oint)-(soint)offsetofa(record_,recdata))<<(oint_addr_shift-addr_shift)); /* record becomes current object */ \
pred = prepred; goto up; /* go further up */ \
}
#ifdef STANDARD_HEAPCODES
#ifdef ONE_FREE_BIT_HEAPCODES
@@ -348,7 +348,7 @@ local void gc_mark (object obj)
curr = currently marked object, store in *pred */
var object prepred = *(gcv_object_t*)ThePointer(pred); /* old predecessor */

View file

@ -1,6 +1,7 @@
--- src/control.d.orig 2017-02-24 10:37:24.000000000 -0700
+++ src/control.d 2017-02-24 10:42:57.475011548 -0700
@@ -1591,7 +1591,7 @@ LISPFUN(maplap,seclass_default,2,0,rest,
diff -up clisp-2.49.93/src/control.d.volatile clisp-2.49.93/src/control.d
--- clisp-2.49.93/src/control.d.volatile 2018-02-26 11:22:55.000000000 -0500
+++ clisp-2.49.93/src/control.d 2018-02-26 11:31:38.737088256 -0500
@@ -1602,7 +1602,7 @@ LISPFUN(maplap,seclass_default,2,0,rest,
LISPSPECFORM(tagbody, 0,0,body)
{ /* (TAGBODY {tag | statement}), CLTL p. 130 */
@ -9,9 +10,10 @@
{ /* build GENV-frame: */
var gcv_object_t* top_of_frame = STACK; /* pointer to frame */
pushSTACK(aktenv.go_env);
--- src/eval.d.orig 2017-02-24 10:37:24.000000000 -0700
+++ src/eval.d 2017-02-24 10:42:57.479011514 -0700
@@ -710,10 +710,10 @@ global void throw_to (object tag) {
diff -up clisp-2.49.93/src/eval.d.volatile clisp-2.49.93/src/eval.d
--- clisp-2.49.93/src/eval.d.volatile 2018-02-26 11:22:55.000000000 -0500
+++ clisp-2.49.93/src/eval.d 2018-02-26 11:32:25.995960520 -0500
@@ -708,10 +708,10 @@ global void throw_to (object tag) {
global maygc void invoke_handlers (object cond) {
/* Also deactivates the handler being called, and all newer handlers.
the handler-ranges, which are screened off: */
@ -24,8 +26,8 @@
while (1) {
/* search in Stack starting at FRAME for a suitable HANDLER-Frame: */
if (!(other_ranges == NULL) && (FRAME == other_ranges->low_limit)) {
@@ -726,7 +726,7 @@ global maygc void invoke_handlers (objec
if (framecode(FRAME_(0)) == HANDLER_frame_info) { /* Handler-Frame? */
@@ -725,7 +725,7 @@ global maygc void invoke_handlers (objec
if (frame_info == HANDLER_frame_info || frame_info == C_HANDLER_frame_info) { /* Handler-Frame? */
/* loop over types of the vectors #(type1 label1 ... typem labelm): */
var uintL m2 = Svector_length(Car(FRAME_(frame_handlers))); /* 2*m */
- var uintL i = 0;
@ -33,7 +35,7 @@
do {
pushSTACK(cond); /* save cond */
pushSTACK(cond);
@@ -2398,7 +2398,7 @@ local maygc void trace_call (object fun,
@@ -2432,7 +2432,7 @@ local maygc void trace_call (object fun,
/* But ':ALLOW-OTHER-KEYS NIL' hides a subsequent ':ALLOW-OTHER-KEYS T' \
(see CLHS 3.4.1.4.1.1). */ \
var bool allow_hidden = false; /* true if seen ':ALLOW-OTHER-KEYS NIL' */ \
@ -42,7 +44,7 @@
while (check_count--) { \
var object kw = NEXT(argptr); /* next Argument */ \
var object val = NEXT(argptr); /* and value for it */ \
@@ -2441,7 +2441,7 @@ local maygc void trace_call (object fun,
@@ -2475,7 +2475,7 @@ local maygc void trace_call (object fun,
> found_statement: what is to be done, if value found */
#define find_keyword_value(notfound_statement,found_statement) \
{ var gcv_object_t* argptr = rest_args_pointer; \
@ -51,7 +53,7 @@
dotimesC(find_count,argcount, { \
if (eq(NEXT(argptr),keyword)) goto kw_found; /* right keyword? */ \
argptr skipSTACKop -1; /* NEXT */ \
@@ -2460,8 +2460,9 @@ local maygc void trace_call (object fun,
@@ -2494,8 +2494,9 @@ local maygc void trace_call (object fun,
< mv_count/mv_space: values
< STACK: cleaned up, = args_pointer
can trigger GC */
@ -63,7 +65,7 @@
{
/* 1st step: finish building of APPLY-frame: */
var sp_jmp_buf my_jmp_buf;
@@ -2649,7 +2650,7 @@ local maygc Values funcall_iclosure (obj
@@ -2683,7 +2684,7 @@ local maygc Values funcall_iclosure (obj
pushSTACK(NIL); /* start of list */
if (argcount>0) {
var gcv_object_t* ptr = args_pointer STACKop -(uintP)argcount;
@ -72,7 +74,7 @@
dotimespC(count,argcount, {
var object new_cons = allocate_cons();
Car(new_cons) = BEFORE(ptr);
@@ -2664,7 +2665,7 @@ local maygc Values funcall_iclosure (obj
@@ -2698,7 +2699,7 @@ local maygc Values funcall_iclosure (obj
/* process &KEY-parameters: */
if (!numberp(TheIclosure(closure)->clos_keywords)) {
/* Keyword-parameters present */
@ -81,7 +83,7 @@
/* argcount = number of remaining arguments */
/* halve argcount --> number of pairs Key.Value: */
if (argcount%2) { /* number was odd -> not paired: */
@@ -2936,7 +2937,7 @@ local Values eval_ffunction (object fun)
@@ -2970,7 +2971,7 @@ local Values eval_ffunction (object fun)
> form: form
< mv_count/mv_space: values
can trigger GC */
@ -90,7 +92,7 @@
{
start:
/* Test for Keyboard-Interrupt: */
@@ -2991,7 +2992,7 @@ modexp maygc Values eval (object form)
@@ -3025,7 +3026,7 @@ modexp maygc Values eval (object form)
> form: Form
< mv_count/mv_space: values
can trigger GC */
@ -99,7 +101,7 @@
var sp_jmp_buf my_jmp_buf;
/* build EVAL-Frame: */
{
@@ -5734,7 +5735,8 @@ local maygc Values funcall_closure (obje
@@ -5769,7 +5770,8 @@ local maygc Values funcall_closure (obje
#define GOTO_ERROR(label) goto label
#define DEBUG_CHECK_BYTEPTR(b) do{}while(0)
#endif
@ -109,7 +111,7 @@
const uintB* byteptr_in)
{
GCTRIGGER_IF(true, {
@@ -5763,7 +5765,7 @@ local /*maygc*/ Values interpret_bytecod
@@ -5798,7 +5800,7 @@ local /*maygc*/ Values interpret_bytecod
#endif
TRACE_CALL(closure,'B','C');
/* situate closure in STACK, below the arguments: */
@ -118,9 +120,10 @@
#ifndef FAST_SP
/* If there is no fast SP-Access, one has to introduce
an extra pointer: */
--- src/lispbibl.d.orig 2017-02-24 10:41:33.223732185 -0700
+++ src/lispbibl.d 2017-02-24 10:42:57.481011497 -0700
@@ -9103,7 +9103,7 @@ All other long words on the LISP-Stack a
diff -up clisp-2.49.93/src/lispbibl.d.volatile clisp-2.49.93/src/lispbibl.d
--- clisp-2.49.93/src/lispbibl.d.volatile 2018-02-26 11:22:55.000000000 -0500
+++ clisp-2.49.93/src/lispbibl.d 2018-02-26 11:31:38.742088137 -0500
@@ -11836,7 +11836,7 @@ All other long words on the LISP-Stack a
#define FAST_SP
#endif
#elif defined(GNU) && defined(SP_register)
@ -129,8 +132,9 @@
#ifdef SPARC64
#define SP() (__SP+2048)
#else
--- src/record.d.orig 2017-02-24 10:37:24.000000000 -0700
+++ src/record.d 2017-02-24 10:42:57.482011489 -0700
diff -up clisp-2.49.93/src/record.d.volatile clisp-2.49.93/src/record.d
--- clisp-2.49.93/src/record.d.volatile 2018-02-26 11:22:56.000000000 -0500
+++ clisp-2.49.93/src/record.d 2018-02-26 11:31:38.743088113 -0500
@@ -1406,7 +1406,7 @@ LISPFUNNR(punbound,0) { /* not Foldable
> obj: the same CLOS instance, not a forward pointer
< result: the same CLOS instance, not a forward pointer
@ -140,9 +144,10 @@
/* Note about the handling of multiple consecutive class redefinitions:
When there are multiple class redefinitions before an instance gets to
be updated, we call UPDATE-INSTANCE-FOR-REDEFINED-CLASS once for each
--- src/spvw.d.orig 2017-02-24 10:37:24.000000000 -0700
+++ src/spvw.d 2017-02-24 10:42:57.482011489 -0700
@@ -3466,7 +3466,7 @@ local inline void main_actions (struct a
diff -up clisp-2.49.93/src/spvw.d.volatile clisp-2.49.93/src/spvw.d
--- clisp-2.49.93/src/spvw.d.volatile 2018-02-26 11:22:55.000000000 -0500
+++ clisp-2.49.93/src/spvw.d 2018-02-26 11:31:38.743088113 -0500
@@ -3888,7 +3888,7 @@ local inline void main_actions (struct a
var gcv_object_t* top_of_frame = STACK; /* pointer over frame */
var sp_jmp_buf returner; /* return point */
var const char* const* fileptr = &p->argv_init_files[0];
@ -151,7 +156,7 @@
finish_entry_frame(DRIVER,returner,,goto done_driver_init_files;);
do {
pushSTACK(asciz_to_string(*fileptr++,O(misc_encoding)));
@@ -3484,8 +3484,8 @@ local inline void main_actions (struct a
@@ -3906,8 +3906,8 @@ local inline void main_actions (struct a
if (p->argv_compile_filecount > 0) {
var gcv_object_t* top_of_frame = STACK; /* pointer over frame */
var sp_jmp_buf returner; /* return point */
@ -162,9 +167,10 @@
finish_entry_frame(DRIVER,returner,,goto done_driver_compile_files;);
do {
var uintC argcount = 1;
--- src/stream.d.orig 2017-02-24 10:37:24.000000000 -0700
+++ src/stream.d 2017-02-24 10:42:57.484011471 -0700
@@ -5839,7 +5839,7 @@ local maygc void clear_output_unbuffered
diff -up clisp-2.49.93/src/stream.d.volatile clisp-2.49.93/src/stream.d
--- clisp-2.49.93/src/stream.d.volatile 2018-02-26 11:22:56.000000000 -0500
+++ clisp-2.49.93/src/stream.d 2018-02-26 11:31:38.746088041 -0500
@@ -5875,7 +5875,7 @@ local maygc void clear_output_unbuffered
close_ochannel(stream, abort);
> stream : Channel-Stream
> abort: flag: non-0 => ignore errors */
@ -173,7 +179,7 @@
pushSTACK(stream);
MAYBE_IGNORE_ERRORS(abort,oconv_unshift_output_unbuffered(stream));
stream = STACK_0;
@@ -8325,7 +8325,7 @@ local void closed_buffered (object strea
@@ -8358,7 +8358,7 @@ local void closed_buffered (object strea
> stream : File-Stream.
> abort: flag: non-0 => ignore errors
changed in stream: all Components except name and truename */
@ -182,7 +188,7 @@
/* Handle=NIL (Stream already closed) -> finished: */
if (nullp(BufferedStream_channel(stream)))
return;
@@ -9310,7 +9310,7 @@ local maygc char** lisp_completion (char
@@ -9326,7 +9326,7 @@ local maygc char** lisp_completion (char
}
sstring_un_realloc(m);
var uintL charcount = Sstring_length(m);

View file

@ -1,26 +1,25 @@
# Mercurial snapshot
%global hgver 20170224hg
%global hgver 20180224hg
Name: clisp
Summary: ANSI Common Lisp implementation
Version: 2.49
Release: 27.%{hgver}%{?dist}
Version: 2.49.93
Release: 0.1.%{hgver}%{?dist}
License: GPLv2
URL: http://www.clisp.org/
# The source for this package was pulled from upstream's mercurial repository.
# Use the following commands to generate the tarball:
# hg clone -u cf1453aed337 http://hg.code.sf.net/p/clisp/clisp clisp-2.49
# rm -fr clisp-2.49/.hg*
# tar cvJf clisp-2.49-20170224hg.tar.xz clisp-2.49
# hg clone -u b55b8196c9f2 http://hg.code.sf.net/p/clisp/clisp clisp-2.49.93
# rm -fr clisp-2.49.93/.hg*
# tar cvJf clisp-2.49.93-20180224hg.tar.xz clisp-2.49.93
Source0: %{name}-%{version}-%{hgver}.tar.xz
#Source0: http://downloads.sourceforge.net/clisp/%%{name}-%%{version}.tar.bz2
# http://sourceforge.net/tracker/?func=detail&aid=3529607&group_id=1355&atid=301355
Patch0: %{name}-format.patch
# Patch0: %%{name}-format.patch
# http://sourceforge.net/tracker/?func=detail&aid=3529615&group_id=1355&atid=301355
Patch1: %{name}-arm.patch
# Patch1: %%{name}-arm.patch
# http://sourceforge.net/tracker/?func=detail&aid=3572511&group_id=1355&atid=301355
Patch2: %{name}-libsvm.patch
# Patch2: %%{name}-libsvm.patch
# http://sourceforge.net/tracker/?func=detail&aid=3572516&group_id=1355&atid=301355
Patch3: %{name}-db.patch
# Linux-specific fixes. Sent upstream 25 Jul 2012.
@ -54,8 +53,11 @@ BuildRequires: pcre-devel
BuildRequires: postgresql-devel
BuildRequires: zlib-devel
# See Red Hat bugs 238954 (ppc64) and 925155 (aarch64)
ExcludeArch: %{power64} aarch64
# 2018-02-26
# On s390x, it builds, but does not run properly:
# ./lisp.run -B . -N locale -E UTF-8 -Emisc 1:1 -Epathname 1:1 -norc -m 2MW -lp ../src/ -x '(and (load "../src/init.lisp") (sys::%saveinitmem) (ext::exit)) (ext::exit t)'
# *** stack smashing detected ***: <unknown> terminated
ExcludeArch: s390x
Requires: emacs-filesystem
Requires: vim-filesystem
@ -98,14 +100,14 @@ Files necessary for linking CLISP programs.
%prep
%setup -q
%patch0
%patch1
%patch2
# %%patch0
# %%patch1
# %%patch2
%patch3
%patch4
%patch5
%patch6
%patch7
%patch5 -p1
%patch6 -p1
%patch7 -p1
# Convince CLisp to build against compat-readline5 instead of readline.
# This is to avoid pulling the GPLv3 readline 6 into a GPLv2 CLisp binary.
@ -175,7 +177,7 @@ ulimit -s unlimited
--with-module=zlib \
--with-libreadline-prefix=$PWD/readline \
--with-ffcall \
--cbc \
--cbcx \
build \
%ifarch ppc %{power64}
CPPFLAGS="-DNO_GENERATIONAL_GC -DNO_MULTIMAP_FILE -DNO_SINGLEMAP -I/usr/include/readline5 -I/usr/include/libsvm" \
@ -423,6 +425,11 @@ ln -s ../../src/modules.c build/full/modules.c
%changelog
* Mon Feb 26 2018 Tom Callaway <spot@fedoraproject.org> - 2.49.93-0.1.20180224hg
- update to latest in mercurial (lots of fixes)
- re-enable ppc64, aarch64
- disable s390x (builds, but does not run properly)
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.49-27.20170224hg
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

View file

@ -1 +1 @@
SHA512 (clisp-2.49-20170224hg.tar.xz) = e5ebccc48254ce82e707d9bf1e4f8f6711502bb541aa9958e25e1ced5a2aae286071adefbe2969018402e29056d49887a3dc36df7542cffffa05f1bc84b59d07
SHA512 (clisp-2.49.93-20180224hg.tar.xz) = 61465a5b148b2bbea431407d41c00bbaaa473e01e5d29e2218421222b829ee8f1d9b91b3609af1d4a8b90f953dee5891379072a677251dc1fbead87065a02770