diff --git a/build/pkgs/ecl/checksums.ini b/build/pkgs/ecl/checksums.ini index 9d0155a893c..80617cdf7db 100644 --- a/build/pkgs/ecl/checksums.ini +++ b/build/pkgs/ecl/checksums.ini @@ -1,5 +1,5 @@ tarball=ecl-VERSION.tgz -sha1=96daa970ae31821c44d9e8ee344f62106d6d79a0 -md5=93ba832d2ec609d49132a7076e5c14ae -cksum=3753868648 +sha1=c41838960964c6e0b9b83a08bca1f717ccc6951e +md5=0c9e0437dbf3a7f1b00da32b7794a3b0 +cksum=1854014871 upstream_url=https://common-lisp.net/project/ecl/static/files/release/ecl-VERSION.tgz diff --git a/build/pkgs/ecl/package-version.txt b/build/pkgs/ecl/package-version.txt index 809c8bfa98f..e7f93e0d579 100644 --- a/build/pkgs/ecl/package-version.txt +++ b/build/pkgs/ecl/package-version.txt @@ -1 +1 @@ -20.4.24.p1 +21.2.1 diff --git a/build/pkgs/ecl/patches/0001-unicode-fix-ecl_string_case-for-non-ascii-characters.patch b/build/pkgs/ecl/patches/0001-unicode-fix-ecl_string_case-for-non-ascii-characters.patch deleted file mode 100644 index 56befbe9c1f..00000000000 --- a/build/pkgs/ecl/patches/0001-unicode-fix-ecl_string_case-for-non-ascii-characters.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 29239fa1b38f55b9a263b9582a43bae18cb5980d Mon Sep 17 00:00:00 2001 -From: Marius Gerbershagen -Date: Wed, 6 May 2020 20:58:20 +0200 -Subject: [PATCH 1/3] unicode: fix ecl_string_case for non-ascii characters - -Problem reported and fix provided by Vladimir Sedach on the ecl-devel -mailing list. ---- - src/c/character.d | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/src/c/character.d b/src/c/character.d -index a69b6e4b..c3ef328a 100644 ---- a/src/c/character.d -+++ b/src/c/character.d -@@ -99,6 +99,7 @@ cl_both_case_p(cl_object c) - int - ecl_string_case(cl_object s) - { -+ /* Returns 1 if string is all uppercase, -1 if all lowercase, and 0 if mixed case */ - int upcase; - cl_index i; - ecl_base_char *text; -@@ -106,16 +107,16 @@ ecl_string_case(cl_object s) - switch (ecl_t_of(s)) { - #ifdef ECL_UNICODE - case t_string: -- s = si_coerce_to_base_string(s); - #endif - case t_base_string: -- text = (ecl_base_char*)s->base_string.self; - for (i = 0, upcase = 0; i < s->base_string.dim; i++) { -- if (ecl_upper_case_p(text[i])) { -+ ecl_character c = ecl_char(s, i); -+ -+ if (ecl_upper_case_p(c)) { - if (upcase < 0) - return 0; - upcase = +1; -- } else if (ecl_lower_case_p(text[i])) { -+ } else if (ecl_lower_case_p(c)) { - if (upcase > 0) - return 0; - upcase = -1; --- -2.26.2 - diff --git a/build/pkgs/ecl/patches/0002-cosmetic-fix-some-compiler-warnings.patch b/build/pkgs/ecl/patches/0002-cosmetic-fix-some-compiler-warnings.patch deleted file mode 100644 index 9ebcb224707..00000000000 --- a/build/pkgs/ecl/patches/0002-cosmetic-fix-some-compiler-warnings.patch +++ /dev/null @@ -1,941 +0,0 @@ -From 1a835fa016fc65e7d19beaa416afc574bd79f7e6 Mon Sep 17 00:00:00 2001 -From: Marius Gerbershagen -Date: Sun, 26 Apr 2020 18:45:40 +0200 -Subject: [PATCH 2/3] cosmetic: fix some compiler warnings - ---- - contrib/bytecmp/bytecmp.lsp | 2 +- - src/c/alloc_2.d | 4 ++++ - src/c/clos/cache.d | 4 ++-- - src/c/compiler.d | 12 ++++++------ - src/c/disassembler.d | 2 -- - src/c/ffi/mmap.d | 2 +- - src/c/interpreter.d | 1 - - src/c/number.d | 2 +- - src/c/numbers/number_equalp.d | 1 - - src/c/pathname.d | 2 ++ - src/c/printer/float_to_digits.d | 2 -- - src/c/printer/write_symbol.d | 22 ++++++++++++---------- - src/c/printer/write_ugly.d | 2 +- - src/c/sequence.d | 2 +- - src/c/threads/queue.d | 2 ++ - src/c/unixfsys.d | 4 +++- - src/clos/combin.lsp | 1 + - src/clos/generic.lsp | 2 +- - src/clos/kernel.lsp | 4 ++-- - src/clos/method.lsp | 3 +++ - src/clos/print.lsp | 3 +++ - src/clos/std-accessors.lsp | 1 + - src/cmp/cmpc-machine.lsp | 4 ---- - src/cmp/cmpenv-declaim.lsp | 1 + - src/cmp/cmpenv-declare.lsp | 6 +++--- - src/cmp/cmpenv-fun.lsp | 2 +- - src/cmp/cmpinline.lsp | 2 +- - src/cmp/cmplam.lsp | 1 + - src/cmp/cmplet.lsp | 2 +- - src/cmp/cmploc.lsp | 1 + - src/cmp/cmpmain.lsp | 4 ++++ - src/cmp/cmpmulti.lsp | 2 +- - src/cmp/cmpname.lsp | 2 +- - src/cmp/cmpnum.lsp | 2 ++ - src/cmp/cmpopt-printer.lsp | 6 +++--- - src/cmp/cmpopt-sequence.lsp | 3 +++ - src/cmp/cmpopt.lsp | 4 ++-- - src/cmp/cmpprop.lsp | 2 ++ - src/cmp/cmptop.lsp | 1 + - src/cmp/cmptype-assert.lsp | 6 +++--- - src/cmp/cmpvar.lsp | 15 ++++++++------- - src/cmp/proclamations.lsp | 2 +- - src/h/bytecodes.h | 1 + - src/lsp/defstruct.lsp | 4 ++-- - src/lsp/ffi.lsp | 6 ++++-- - src/lsp/setf.lsp | 1 - - 46 files changed, 94 insertions(+), 66 deletions(-) - -diff --git a/contrib/bytecmp/bytecmp.lsp b/contrib/bytecmp/bytecmp.lsp -index c71b7d8c..1a233b4d 100755 ---- a/contrib/bytecmp/bytecmp.lsp -+++ b/contrib/bytecmp/bytecmp.lsp -@@ -81,7 +81,7 @@ - (defun bc-compile-file-pathname (name &key (output-file name) (type :fasl) - verbose print c-file h-file data-file - shared-data-file system-p load external-format) -- (declare (ignore load c-file h-file data-file shared-data-file system-p verbose print)) -+ (declare (ignore load c-file h-file data-file shared-data-file system-p verbose print external-format)) - (let ((extension "fasc")) - (case type - ((:fasl :fas) (setf extension "fasc")) -diff --git a/src/c/alloc_2.d b/src/c/alloc_2.d -index dbeb1ead..a2223334 100644 ---- a/src/c/alloc_2.d -+++ b/src/c/alloc_2.d -@@ -191,11 +191,13 @@ static struct ecl_type_information { - size_t t; - } type_info[t_end]; - -+#ifdef GBC_BOEHM_PRECISE - static void - error_wrong_tag(cl_type t) - { - ecl_internal_error("Collector called with invalid tag number."); - } -+#endif - - cl_index - ecl_object_byte_size(cl_type t) -@@ -764,6 +766,7 @@ extern void (*GC_push_other_roots)(); - static void (*old_GC_push_other_roots)(); - static void stacks_scanner(); - -+#ifdef GBC_BOEHM_PRECISE - static cl_index - to_bitmap(void *x, void *y) - { -@@ -773,6 +776,7 @@ to_bitmap(void *x, void *y) - n /= sizeof(void*); - return 1 << n; - } -+#endif - - void - init_alloc(void) -diff --git a/src/c/clos/cache.d b/src/c/clos/cache.d -index 0f66f2db..9f8a59fd 100644 ---- a/src/c/clos/cache.d -+++ b/src/c/clos/cache.d -@@ -36,6 +36,7 @@ empty_cache(ecl_cache_ptr cache) - #endif - } - -+#ifndef ECL_THREADS - static void - clear_one_from_cache(ecl_cache_ptr cache, cl_object target) - { -@@ -51,8 +52,7 @@ clear_one_from_cache(ecl_cache_ptr cache, cl_object target) - } - } - } -- --#ifdef ECL_THREADS -+#else - static void - clear_list_from_cache(ecl_cache_ptr cache) - { -diff --git a/src/c/compiler.d b/src/c/compiler.d -index e67cd2b2..a4d02806 100644 ---- a/src/c/compiler.d -+++ b/src/c/compiler.d -@@ -847,7 +847,7 @@ c_block(cl_env_ptr env, cl_object body, int old_flags) { - struct cl_compiler_env old_env; - cl_object name = pop(&body); - cl_object block_record; -- cl_index labelz, pc, loc, constants; -+ cl_index labelz, pc, constants; - int flags; - - if (!ECL_SYMBOLP(name)) -@@ -858,7 +858,7 @@ c_block(cl_env_ptr env, cl_object body, int old_flags) { - pc = current_pc(env); - - flags = maybe_values_or_reg0(old_flags); -- loc = c_register_block(env, name); -+ c_register_block(env, name); - block_record = ECL_CONS_CAR(env->c_env->variables); - if (Null(name)) { - asm_op(env, OP_DO); -@@ -1063,7 +1063,7 @@ c_case(cl_env_ptr env, cl_object clause, int flags) { - - static int - c_catch(cl_env_ptr env, cl_object args, int flags) { -- cl_index labelz, loc; -+ cl_index labelz; - cl_object old_env; - - /* Compile evaluation of tag */ -@@ -1071,7 +1071,7 @@ c_catch(cl_env_ptr env, cl_object args, int flags) { - - /* Compile binding of tag */ - old_env = env->c_env->variables; -- loc = c_register_block(env, ecl_make_fixnum(0)); -+ c_register_block(env, ecl_make_fixnum(0)); - asm_op(env, OP_CATCH); - - /* Compile jump point */ -@@ -3039,7 +3039,7 @@ c_default(cl_env_ptr env, cl_object var, cl_object stmt, cl_object flag, cl_obje - cl_object - ecl_make_lambda(cl_env_ptr env, cl_object name, cl_object lambda) { - cl_object reqs, opts, rest, key, keys, auxs, allow_other_keys; -- cl_object specials, doc, decl, body, output; -+ cl_object specials, decl, body, output; - cl_index handle; - struct cl_compiler_env *old_c_env, new_c_env; - -@@ -3057,7 +3057,7 @@ ecl_make_lambda(cl_env_ptr env, cl_object name, cl_object lambda) { - keys = env->values[4]; - allow_other_keys = env->values[5]; - auxs = env->values[6]; -- doc = env->values[7]; -+ /* doc = env->values[7]; unused */; - specials = env->values[8]; - decl = env->values[9]; - body = env->values[10]; -diff --git a/src/c/disassembler.d b/src/c/disassembler.d -index b134c56c..46c78259 100644 ---- a/src/c/disassembler.d -+++ b/src/c/disassembler.d -@@ -53,13 +53,11 @@ print_oparg_arg(const char *s, cl_fixnum n, cl_object x) { - static void - disassemble_lambda(cl_object bytecodes) { - const cl_env_ptr env = ecl_process_env(); -- cl_object *data; - cl_opcode *vector; - - ecl_bds_bind(env, @'*print-pretty*', ECL_NIL); - - /* Print required arguments */ -- data = bytecodes->bytecodes.data->vector.self.t; - cl_print(1,bytecodes->bytecodes.data); - - /* Name of LAMBDA */ -diff --git a/src/c/ffi/mmap.d b/src/c/ffi/mmap.d -index ee1f49b6..23ed9e4b 100644 ---- a/src/c/ffi/mmap.d -+++ b/src/c/ffi/mmap.d -@@ -53,7 +53,7 @@ - @':element-type', element_type, - @':if-exists', if_exists, - @':if-does-not-exist', if_does_not_exist, -- @':external-format', @':default', -+ @':external-format', external_format, - @':cstream', ECL_NIL); - fd = ecl_to_int(si_file_stream_fd(stream)); - if (Null(length)) -diff --git a/src/c/interpreter.d b/src/c/interpreter.d -index 22b78af6..34fd2a1c 100644 ---- a/src/c/interpreter.d -+++ b/src/c/interpreter.d -@@ -314,7 +314,6 @@ ecl_interpret(cl_object frame, cl_object env, cl_object bytecodes) - frame_aux.stack = frame_aux.base = 0; - frame_aux.size = 0; - frame_aux.env = the_env; -- BEGIN: - BEGIN_SWITCH { - CASE(OP_NOP); { - reg0 = ECL_NIL; -diff --git a/src/c/number.d b/src/c/number.d -index ba28cfe5..c6511af6 100644 ---- a/src/c/number.d -+++ b/src/c/number.d -@@ -611,7 +611,7 @@ si_complex_float(cl_object r, cl_object i) - { - cl_type tr = ecl_t_of(r); - cl_type ti = ecl_t_of(i); -- cl_object result; -+ cl_object result = OBJNULL; - switch (tr) { - case t_singlefloat: - if (ti != tr) { ecl_type_error(@'si::complex-float',"imag part", i, @'single-float'); } -diff --git a/src/c/numbers/number_equalp.d b/src/c/numbers/number_equalp.d -index 678f509e..2add2691 100644 ---- a/src/c/numbers/number_equalp.d -+++ b/src/c/numbers/number_equalp.d -@@ -36,7 +36,6 @@ - int - ecl_number_equalp(cl_object x, cl_object y) - { -- double dx; - /* INV: (= fixnum bignum) => 0 */ - /* INV: (= fixnum ratio) => 0 */ - /* INV: (= bignum ratio) => 0 */ -diff --git a/src/c/pathname.d b/src/c/pathname.d -index 3617ce93..0507e606 100644 ---- a/src/c/pathname.d -+++ b/src/c/pathname.d -@@ -659,7 +659,9 @@ ecl_parse_namestring(cl_object s, cl_index start, cl_index end, cl_index *ep, - if (!ecl_stringp(device)) { - return ECL_NIL; - } -+#if defined(ECL_MS_WINDOWS_HOST) - maybe_parse_host: -+#endif - /* Files have no effective device. */ - if (@string-equal(2, device, @':file') == ECL_T) - device = ECL_NIL; -diff --git a/src/c/printer/float_to_digits.d b/src/c/printer/float_to_digits.d -index 2d9fdd8a..384dceb6 100644 ---- a/src/c/printer/float_to_digits.d -+++ b/src/c/printer/float_to_digits.d -@@ -161,10 +161,8 @@ generate(cl_object digits, float_approx *approx) - static void - change_precision(float_approx *approx, cl_object position, cl_object relativep) - { -- cl_fixnum pos; - if (Null(position)) - return; -- pos = ecl_fixnum(position); - if (!Null(relativep)) { - cl_object k = ecl_make_fixnum(0); - cl_object l = ecl_make_fixnum(1); -diff --git a/src/c/printer/write_symbol.d b/src/c/printer/write_symbol.d -index 1e1d4e2b..a39bab97 100644 ---- a/src/c/printer/write_symbol.d -+++ b/src/c/printer/write_symbol.d -@@ -102,13 +102,15 @@ needs_to_be_escaped(cl_object s, cl_object readtable, cl_object print_case) - return 0; - } - --#define buffer_write_char(c, buffer, stream, buffer_ndx, buffer_size) \ -- ecl_char_set(buffer, buffer_ndx++, c); \ -- if (buffer_ndx >= buffer_size) { \ -- si_fill_pointer_set(buffer, ecl_make_fixnum(buffer_size)); \ -- si_do_write_sequence(buffer, stream, ecl_make_fixnum(0), ECL_NIL);\ -- buffer_ndx = 0; \ -+static inline void -+buffer_write_char(char c, cl_object buffer, cl_object stream, cl_index *buffer_ndx, cl_index buffer_size) { -+ ecl_char_set(buffer, (*buffer_ndx)++, c); -+ if (*buffer_ndx >= buffer_size) { -+ si_fill_pointer_set(buffer, ecl_make_fixnum(buffer_size)); -+ si_do_write_sequence(buffer, stream, ecl_make_fixnum(0), ECL_NIL); -+ *buffer_ndx = 0; - } -+} - - static void - write_symbol_string(cl_object s, int action, cl_object print_case, -@@ -124,13 +126,13 @@ write_symbol_string(cl_object s, int action, cl_object print_case, - cl_index buffer_size = ecl_fixnum(cl_array_total_size(buffer)); - cl_index buffer_ndx = 0; - if (escape) -- buffer_write_char('|', buffer, stream, buffer_ndx, buffer_size); -+ buffer_write_char('|', buffer, stream, &buffer_ndx, buffer_size); - capitalize = 1; - for (i = 0; i < s->base_string.fillp; i++) { - ecl_character c = ecl_char(s, i); - if (escape) { - if (c == '|' || c == '\\') { -- buffer_write_char('\\', buffer, stream, buffer_ndx, buffer_size); -+ buffer_write_char('\\', buffer, stream, &buffer_ndx, buffer_size); - } - } else if (action != ecl_case_preserve) { - if (ecl_upper_case_p(c)) { -@@ -155,10 +157,10 @@ write_symbol_string(cl_object s, int action, cl_object print_case, - capitalize = !ecl_alphanumericp(c); - } - } -- buffer_write_char(c, buffer, stream, buffer_ndx, buffer_size); -+ buffer_write_char(c, buffer, stream, &buffer_ndx, buffer_size); - } - if (escape) -- buffer_write_char('|', buffer, stream, buffer_ndx, buffer_size); -+ buffer_write_char('|', buffer, stream, &buffer_ndx, buffer_size); - si_fill_pointer_set(buffer, ecl_make_fixnum(buffer_ndx)); - si_do_write_sequence(buffer, stream, ecl_make_fixnum(0), ECL_NIL); - si_put_buffer_string(buffer); -diff --git a/src/c/printer/write_ugly.d b/src/c/printer/write_ugly.d -index ae07a388..d99672ee 100644 ---- a/src/c/printer/write_ugly.d -+++ b/src/c/printer/write_ugly.d -@@ -120,7 +120,7 @@ write_float(cl_object f, cl_object stream) - static void /* XXX: do not cons new floats here! */ - write_complex_float(cl_object f, cl_object stream) - { -- cl_object real, imag; -+ cl_object real = OBJNULL, imag = OBJNULL; - switch (ecl_t_of(f)) { - case t_csfloat: - real = ecl_make_single_float(crealf(ecl_csfloat(f))); -diff --git a/src/c/sequence.d b/src/c/sequence.d -index a39d2760..fa77b7c9 100644 ---- a/src/c/sequence.d -+++ b/src/c/sequence.d -@@ -189,7 +189,7 @@ ecl_copy_seq(cl_object sequence) - return ecl_subseq(sequence, 0, MOST_POSITIVE_FIXNUM); - } - --@(defun subseq (sequence start &optional end &aux x) -+@(defun subseq (sequence start &optional end) - cl_index_pair p; - @ - p = ecl_sequence_start_end(@[subseq], sequence, start, end); -diff --git a/src/c/threads/queue.d b/src/c/threads/queue.d -index 727e5c32..81ee4337 100755 ---- a/src/c/threads/queue.d -+++ b/src/c/threads/queue.d -@@ -84,6 +84,7 @@ wait_queue_delete(cl_env_ptr the_env, cl_object q, cl_object item) - * THREAD SCHEDULER & WAITING - */ - -+#if !defined(HAVE_SIGPROCMASK) - static cl_object - bignum_set_time(cl_object bignum, struct ecl_timeval *time) - { -@@ -194,6 +195,7 @@ ecl_wait_on_timed(cl_env_ptr env, cl_object (*condition)(cl_env_ptr, cl_object), - ecl_bds_unwind1(the_env); - return output; - } -+#endif - - /********************************************************************** - * BLOCKING WAIT QUEUE ALGORITHM -diff --git a/src/c/unixfsys.d b/src/c/unixfsys.d -index 9e4ecbab..3d169db3 100644 ---- a/src/c/unixfsys.d -+++ b/src/c/unixfsys.d -@@ -351,7 +351,7 @@ file_truename(cl_object pathname, cl_object filename, int flags) - * the other hand, if the link is broken – return file - * truename "as is". */ - struct stat filestatus; -- if (safe_stat(filename->base_string.self, &filestatus) < 0) { -+ if (safe_stat((char*) filename->base_string.self, &filestatus) < 0) { - @(return pathname kind); - } - filename = si_readlink(filename); -@@ -560,7 +560,9 @@ ecl_file_len(int f) - } - #endif - } -+#if defined(ECL_MS_WINDOWS_HOST) - FAILURE_CLOBBER: -+#endif - ecl_enable_interrupts(); - { - cl_object c_error = _ecl_strerror(errno); -diff --git a/src/clos/combin.lsp b/src/clos/combin.lsp -index b4cead1d..fccb5e4d 100644 ---- a/src/clos/combin.lsp -+++ b/src/clos/combin.lsp -@@ -211,6 +211,7 @@ - o)) - - (defun find-method-combination (gf method-combination-type-name method-combination-options) -+ (declare (ignore gf)) - (make-method-combination method-combination-type-name - (search-method-combination method-combination-type-name) - method-combination-options -diff --git a/src/clos/generic.lsp b/src/clos/generic.lsp -index dba4b531..9993ebf4 100644 ---- a/src/clos/generic.lsp -+++ b/src/clos/generic.lsp -@@ -181,7 +181,7 @@ - - (defmethod shared-initialize ((gfun standard-generic-function) slot-names - &rest initargs) -- (declare (ignore initargs slot-names)) -+ (declare (ignore slot-names)) - (call-next-method) - (when (generic-function-methods gfun) - (compute-g-f-spec-list gfun)) -diff --git a/src/clos/kernel.lsp b/src/clos/kernel.lsp -index a0b9b2ed..31594f9d 100644 ---- a/src/clos/kernel.lsp -+++ b/src/clos/kernel.lsp -@@ -355,7 +355,7 @@ - (with-early-accessors (+standard-generic-function-slots+ - +eql-specializer-slots+ - +standard-method-slots+) -- (flet ((nupdate-spec-how-list (spec-how-list specializers gf) -+ (flet ((nupdate-spec-how-list (spec-how-list specializers) - ;; update the spec-how of the gfun - ;; computing the or of the previous value and the new one - (setf spec-how-list (or spec-how-list -@@ -379,7 +379,7 @@ - (a-p-o (generic-function-argument-precedence-order gf))) - (dolist (method (generic-function-methods gf)) - (setf spec-how-list -- (nupdate-spec-how-list spec-how-list (method-specializers method) gf))) -+ (nupdate-spec-how-list spec-how-list (method-specializers method)))) - (setf (generic-function-spec-list gf) - (loop for type in spec-how-list - for i from 0 -diff --git a/src/clos/method.lsp b/src/clos/method.lsp -index 3e607b5e..2866e0a8 100644 ---- a/src/clos/method.lsp -+++ b/src/clos/method.lsp -@@ -102,6 +102,7 @@ - (when (eq (first method-lambda) 'lambda) - (multiple-value-bind (declarations body documentation) - (si::find-declarations (cddr method-lambda)) -+ (declare (ignore documentation)) - (let (block) - (when (and (null (rest body)) - (listp (setf block (first body))) -@@ -177,6 +178,7 @@ - (values method-lambda declarations documentation)))) - - (defun make-method-lambda (gf method method-lambda env) -+ (declare (ignore method gf)) - (multiple-value-bind (call-next-method-p next-method-p-p in-closure-p) - (walk-method-lambda method-lambda env) - (values `(lambda (.combined-method-args. *next-methods*) -@@ -190,6 +192,7 @@ - (defun add-call-next-method-closure (method-lambda) - (multiple-value-bind (declarations real-body documentation) - (si::find-declarations (cddr method-lambda)) -+ (declare (ignore documentation)) - `(lambda ,(second method-lambda) - ,@declarations - (let* ((.closed-combined-method-args. -diff --git a/src/clos/print.lsp b/src/clos/print.lsp -index ea392516..afa7d83b 100644 ---- a/src/clos/print.lsp -+++ b/src/clos/print.lsp -@@ -112,12 +112,15 @@ - (no-make-load-form object))))) - - (defmethod make-load-form ((object standard-object) &optional environment) -+ (declare (ignore environment)) - (no-make-load-form object)) - - (defmethod make-load-form ((object structure-object) &optional environment) -+ (declare (ignore environment)) - (no-make-load-form object)) - - (defmethod make-load-form ((object condition) &optional environment) -+ (declare (ignore environment)) - (no-make-load-form object)) - - (defun no-make-load-form (object) -diff --git a/src/clos/std-accessors.lsp b/src/clos/std-accessors.lsp -index fd8431f0..ff83156e 100644 ---- a/src/clos/std-accessors.lsp -+++ b/src/clos/std-accessors.lsp -@@ -23,6 +23,7 @@ - ;;; - - (defun safe-slot-definition-location (slotd &optional default) -+ (declare (ignore default)) - (cond ((listp slotd) - (error "List instead of a slot definition object")) - (t -diff --git a/src/cmp/cmpc-machine.lsp b/src/cmp/cmpc-machine.lsp -index 95e9d024..eff6d6fb 100644 ---- a/src/cmp/cmpc-machine.lsp -+++ b/src/cmp/cmpc-machine.lsp -@@ -130,10 +130,6 @@ - :from-lisp from-lisp - :from-lisp-unsafe from-lisp-unsafe)))) - --(defun make-rep-type-hash (all-c-types) -- (let ((table (make-hash-table :size 128 :test 'eq))) -- table)) -- - (defun default-machine () - (let* ((all-c-types (append +this-machine-c-types+ +all-machines-c-types+)) - (table (make-hash-table :size 128 :test 'eq)) -diff --git a/src/cmp/cmpenv-declaim.lsp b/src/cmp/cmpenv-declaim.lsp -index 4428915d..c93efbe0 100644 ---- a/src/cmp/cmpenv-declaim.lsp -+++ b/src/cmp/cmpenv-declaim.lsp -@@ -36,6 +36,7 @@ - env)) - (multiple-value-bind (body specials types ignored others doc all) - (c1body `((DECLARE ,@args)) nil) -+ (declare (ignore body doc all)) - (when ignored - (cmpwarn-style "IGNORE/IGNORABLE declarations in DECLAIM are ignored")) - (reduce #'add-one-declaration others -diff --git a/src/cmp/cmpenv-declare.lsp b/src/cmp/cmpenv-declare.lsp -index 2996e739..25de42bc 100644 ---- a/src/cmp/cmpenv-declare.lsp -+++ b/src/cmp/cmpenv-declare.lsp -@@ -33,10 +33,10 @@ - (defun validate-alien-declaration (names-list error) - (dolist (new-declaration names-list) - (unless (symbolp new-declaration) -- (cmperr "The declaration ~s is not a symbol" new-declaration)) -+ (funcall error "The declaration ~s is not a symbol" new-declaration)) - (when (type-name-p new-declaration) -- (cmperr "Symbol name ~S cannot be both the name of a type and of a declaration" -- new-declaration)))) -+ (funcall error "Symbol name ~S cannot be both the name of a type and of a declaration" -+ new-declaration)))) - - (defun alien-declaration-p (name &optional (env *cmp-env*)) - (and (symbolp name) -diff --git a/src/cmp/cmpenv-fun.lsp b/src/cmp/cmpenv-fun.lsp -index 7bc1e9a8..681602d6 100644 ---- a/src/cmp/cmpenv-fun.lsp -+++ b/src/cmp/cmpenv-fun.lsp -@@ -91,7 +91,7 @@ - (values nil nil)))) - - (defun get-local-return-type (fun &optional (env *cmp-env*)) -- (let ((x (cmp-env-search-ftype (fun-name fun)))) -+ (let ((x (cmp-env-search-ftype (fun-name fun) env))) - (if x - (values (second x) t) - (values nil nil)))) -diff --git a/src/cmp/cmpinline.lsp b/src/cmp/cmpinline.lsp -index a44a0a10..b0ff9596 100644 ---- a/src/cmp/cmpinline.lsp -+++ b/src/cmp/cmpinline.lsp -@@ -182,7 +182,7 @@ - (wt-nl-open-brace) - (incf *inline-blocks*)) - --(defun close-inline-blocks (&optional new-line) -+(defun close-inline-blocks () - (loop for i of-type fixnum from 0 below *inline-blocks* - do (wt-nl-close-brace))) - -diff --git a/src/cmp/cmplam.lsp b/src/cmp/cmplam.lsp -index 29f02ed6..c6e313ff 100644 ---- a/src/cmp/cmplam.lsp -+++ b/src/cmp/cmplam.lsp -@@ -335,6 +335,7 @@ The function thus belongs to the type of functions that ecl_make_cfun accepts." - (maxarg call-arguments-limit)) - (destructuring-bind (requireds optionals rest key-flag keywords a-o-k) - (c1form-arg 0 lambda) -+ (declare (ignore keywords)) - (setf minarg (length requireds)) - (when (and (null rest) (not key-flag) (not a-o-k)) - (setf maxarg (+ minarg (/ (length optionals) 3))))) -diff --git a/src/cmp/cmplet.lsp b/src/cmp/cmplet.lsp -index 08694a51..cdd789cd 100644 ---- a/src/cmp/cmplet.lsp -+++ b/src/cmp/cmplet.lsp -@@ -311,7 +311,7 @@ - (when env (pop-debug-lexical-env)))) - (c2expr body)) - -- (close-inline-blocks :line)) -+ (close-inline-blocks)) - - (defun discarded (var form body &aux last) - (labels ((last-form (x &aux (args (c1form-args x))) -diff --git a/src/cmp/cmploc.lsp b/src/cmp/cmploc.lsp -index b2d2115c..c6ec0a66 100644 ---- a/src/cmp/cmploc.lsp -+++ b/src/cmp/cmploc.lsp -@@ -218,6 +218,7 @@ - ;;; - - (defun set-unknown-loc (loc) -+ (declare (ignore loc)) - (unknown-location 'set-loc *destination*)) - - (defun set-loc (loc &aux fd) -diff --git a/src/cmp/cmpmain.lsp b/src/cmp/cmpmain.lsp -index a9858ef5..dd2a4be4 100755 ---- a/src/cmp/cmpmain.lsp -+++ b/src/cmp/cmpmain.lsp -@@ -48,6 +48,8 @@ the environment variable TMPDIR to a different value." template)) - verbose print c-file h-file data-file - system-p load external-format source-truename - source-offset) -+ (declare (ignore verbose print c-file h-file data-file load -+ external-format source-truename source-offset)) - (let* ((format '()) - (extension '())) - (unless type-supplied-p -@@ -145,6 +147,7 @@ the environment variable TMPDIR to a different value." template)) - (defun linker-cc (o-pathname object-files &key - (type :program) - (ld-flags (split-program-options *ld-flags*))) -+ (declare (ignore type)) - (safe-run-program - *ld* - `("-o" ,(brief-namestring o-pathname) -@@ -995,6 +998,7 @@ from the C language code. NIL means \"do not create the file\"." - *safety* *space* *speed* *debug*)) - - (defmacro with-compilation-unit (options &rest body) -+ (declare (ignore options)) - `(progn ,@body)) - - (ext:package-lock "CL" t) -diff --git a/src/cmp/cmpmulti.lsp b/src/cmp/cmpmulti.lsp -index f8cb77c8..a27c6693 100644 ---- a/src/cmp/cmpmulti.lsp -+++ b/src/cmp/cmpmulti.lsp -@@ -166,7 +166,7 @@ - (declare (si::c-local)) - (if (plusp i) (values-loc i) 'VALUE0)) - --(defun do-m-v-setq (vars form use-bind &aux min-values max-values) -+(defun do-m-v-setq (vars form use-bind) - ;; This routine moves values from the multiple-value stack into the - ;; variables VARS. The amount of values is not known (or at least we only - ;; know that there is some number between MIN-VALUES and MAX-VALUES). If -diff --git a/src/cmp/cmpname.lsp b/src/cmp/cmpname.lsp -index dbd34091..4774816a 100644 ---- a/src/cmp/cmpname.lsp -+++ b/src/cmp/cmpname.lsp -@@ -161,7 +161,7 @@ initialization from the C code which wants to use it." - c) - (t - #\p))) -- (disambiguation (c) -+ (disambiguation (kind) - (case kind - ((:object :c) "") - ((:fasl :fas) "fas_") -diff --git a/src/cmp/cmpnum.lsp b/src/cmp/cmpnum.lsp -index 78ae3260..fab4e0b6 100644 ---- a/src/cmp/cmpnum.lsp -+++ b/src/cmp/cmpnum.lsp -@@ -254,11 +254,13 @@ - (def-type-propagator acos (fname op1-type) - (multiple-value-bind (output-type op1-type) - (ensure-nonrational-type op1-type) -+ (declare (ignore output-type)) - (values (list op1-type) 'NUMBER))) - - (def-type-propagator atan (fname op1-type &optional (op2-type t op2-p)) - (multiple-value-bind (float-t1 t1) - (ensure-nonrational-type op1-type) -+ (declare (ignore float-t1)) - (if op2-p - (multiple-value-bind (result t1 t2) - (maximum-number-type t1 op2-type :only-real t) -diff --git a/src/cmp/cmpopt-printer.lsp b/src/cmp/cmpopt-printer.lsp -index 015ac1e2..fb140c51 100644 ---- a/src/cmp/cmpopt-printer.lsp -+++ b/src/cmp/cmpopt-printer.lsp -@@ -65,19 +65,19 @@ - "ecl_princ(#0,#1)" - :one-liner t))) - --(define-compiler-macro terpri (&optional stream &environment env) -+(define-compiler-macro terpri (&optional stream) - `(ffi:c-inline (,stream) - (:object) :object - "ecl_terpri(#0)" - :one-liner t)) - --(define-compiler-macro print (value &optional stream &environment env) -+(define-compiler-macro print (value &optional stream) - `(ffi:c-inline (,value ,stream) - (:object :object) :object - "ecl_print(#0,#1)" - :one-liner t)) - --(define-compiler-macro prin1 (value &optional stream &environment env) -+(define-compiler-macro prin1 (value &optional stream) - `(ffi:c-inline (,value ,stream) - (:object :object) :object - "ecl_prin1(#0,#1)" -diff --git a/src/cmp/cmpopt-sequence.lsp b/src/cmp/cmpopt-sequence.lsp -index 7443f317..e07ed90f 100644 ---- a/src/cmp/cmpopt-sequence.lsp -+++ b/src/cmp/cmpopt-sequence.lsp -@@ -220,6 +220,7 @@ - (return ,%sublist))))))) - - (define-compiler-macro member (&whole whole value list &rest sequence-args) -+ (declare (value list sequence-args)) - (if (policy-inline-sequence-functions) - (or (apply #'expand-member (rest whole)) - whole) -@@ -264,6 +265,7 @@ - (return ,%elt)))))))))) - - (define-compiler-macro assoc (&whole whole value list &rest sequence-args) -+ (declare (ignore value list sequence-args)) - (if (policy-inline-sequence-functions) - (or (apply #'expand-assoc (rest whole)) - whole) -@@ -287,6 +289,7 @@ - (return ,%elt)))))))) - - (define-compiler-macro find (&whole whole value sequence &rest sequence-args) -+ (declare (ignore value sequence sequence-args)) - (if (policy-inline-sequence-functions) - (or (apply #'expand-find (rest whole)) - whole) -diff --git a/src/cmp/cmpopt.lsp b/src/cmp/cmpopt.lsp -index e4de366f..b591d0cc 100644 ---- a/src/cmp/cmpopt.lsp -+++ b/src/cmp/cmpopt.lsp -@@ -160,6 +160,7 @@ - form)))) - - (define-compiler-macro typep (&whole form object type &optional e &environment env) -+ (declare (ignore e)) - (expand-typep form object type env)) - - ;;; -@@ -346,8 +347,7 @@ - (multiple-value-bind (constant-p float) - (constant-value-p float env) - (when (and constant-p (floatp float)) -- (let* ((aux (gentemp)) -- (float (type-of float)) -+ (let* ((float (type-of float)) - (c-type (lisp-type->rep-type float))) - `(let ((value ,value)) - (declare (:read-only value)) -diff --git a/src/cmp/cmpprop.lsp b/src/cmp/cmpprop.lsp -index b6e6f727..e9ba7c6f 100644 ---- a/src/cmp/cmpprop.lsp -+++ b/src/cmp/cmpprop.lsp -@@ -379,12 +379,14 @@ compute it. This version only handles the simplest cases." - elt-type))) - - (def-type-propagator si::row-major-aset (fname array-type index obj) -+ (declare (ignore index obj)) - (multiple-value-bind (elt-type array-type) - (type-from-array-elt array-type) - (values (list array-type 'si::index elt-type) - elt-type))) - - (def-type-propagator row-major-aref (fname array-type index) -+ (declare (ignore index)) - (multiple-value-bind (elt-type array-type) - (type-from-array-elt array-type) - (values (list array-type 'si::index) elt-type))) -diff --git a/src/cmp/cmptop.lsp b/src/cmp/cmptop.lsp -index 072329e4..e41f4f0a 100644 ---- a/src/cmp/cmptop.lsp -+++ b/src/cmp/cmptop.lsp -@@ -477,6 +477,7 @@ - args - (multiple-value-bind (function pprint doc-string) - (sys::expand-defmacro name lambda-list body) -+ (declare (ignore pprint doc-string)) - (let ((fn (cmp-eval function *cmp-env*))) - (cmp-env-register-global-macro name fn)) - (t1expr* (macroexpand `(DEFMACRO ,@args)))))) -diff --git a/src/cmp/cmptype-assert.lsp b/src/cmp/cmptype-assert.lsp -index d485d651..f979997d 100644 ---- a/src/cmp/cmptype-assert.lsp -+++ b/src/cmp/cmptype-assert.lsp -@@ -58,7 +58,7 @@ - FEtype_error_sequence(#0);") - (vector . "if (ecl_unlikely(!ECL_VECTORP(#0))) FEtype_error_vector(#0);"))) - --(defun simple-type-assertion (value type env) -+(defun simple-type-assertion (value type) - (let ((simple-form (cdr (assoc type +simple-type-assertions+)))) - (if simple-form - `(ffi:c-inline (,value) (:object) :void ,simple-form -@@ -82,13 +82,13 @@ - (compulsory - ;; The check has to be produced, independent of the declared - ;; value of the variable (for instance, in LAMBDA arguments). -- (simple-type-assertion value type env)) -+ (simple-type-assertion value type)) - (t - ;; We may rely on the compiler to choose the appropriate - ;; branch once type propagation has happened. - `(ext:compiler-typecase ,value - (,type) -- (t ,(simple-type-assertion value type env)))))) -+ (t ,(simple-type-assertion value type)))))) - - (defun c1checked-value (args) - (let* ((type (pop args)) -diff --git a/src/cmp/cmpvar.lsp b/src/cmp/cmpvar.lsp -index d5009e35..590b3081 100644 ---- a/src/cmp/cmpvar.lsp -+++ b/src/cmp/cmpvar.lsp -@@ -74,13 +74,13 @@ - (mapcar #'first (var-read-nodes var))) - - (defun assert-var-ref-value (var) -- #+debug-compiler -- (unless (let ((ref (var-ref var))) -- (or (> ref (/ most-positive-fixnum 2)) -- (= (var-ref var) (+ (length (var-read-nodes var)) -- (length (var-set-nodes var)))))) -- (baboon :format-control "Number of references in VAR ~A unequal to references list" -- :format-arguments (list var)))) -+ (when *debug-compiler* -+ (unless (let ((ref (var-ref var))) -+ (or (> ref (/ most-positive-fixnum 2)) -+ (= (var-ref var) (+ (length (var-read-nodes var)) -+ (length (var-set-nodes var)))))) -+ (baboon :format-control "Number of references in VAR ~A unequal to references list" -+ :format-arguments (list var))))) - - (defun assert-var-not-ignored (var) - (when (let ((x (var-ignorable var))) (and x (minusp x))) -@@ -229,6 +229,7 @@ - (defun c1vref (name) - (multiple-value-bind (var cfb unw) - (cmp-env-search-var name) -+ (declare (ignore unw)) - (cond ((null var) - (c1make-global-variable name :warn t - :type (or (si:get-sysprop name 'CMP-TYPE) t))) -diff --git a/src/cmp/proclamations.lsp b/src/cmp/proclamations.lsp -index 7f9d607a..54839d2a 100644 ---- a/src/cmp/proclamations.lsp -+++ b/src/cmp/proclamations.lsp -@@ -1189,7 +1189,7 @@ - (proclamation si:open-unix-socket-stream (string) stream) - #+wants-sockets - (proclamation si:lookup-host-entry (t) (values (or null string) list list)) --(proclamation si:copy-stream (stream stream wait) t) -+(proclamation si:copy-stream (stream stream gen-bool) t) - (proclamation si:make-encoding (t) hash-table) - (proclamation si:load-encoding (t) t) - -diff --git a/src/h/bytecodes.h b/src/h/bytecodes.h -index 8b106ea7..235a1a97 100644 ---- a/src/h/bytecodes.h -+++ b/src/h/bytecodes.h -@@ -152,6 +152,7 @@ typedef int16_t cl_opcode; - goto *(&&LBL_OP_NOP + offsets[GET_OPCODE(vector)]) - #else - #define BEGIN_SWITCH \ -+ BEGIN: \ - switch (GET_OPCODE(vector)) - #define THREAD_NEXT \ - goto BEGIN -diff --git a/src/lsp/defstruct.lsp b/src/lsp/defstruct.lsp -index 3b568b8d..f3848a25 100644 ---- a/src/lsp/defstruct.lsp -+++ b/src/lsp/defstruct.lsp -@@ -313,10 +313,10 @@ - (or (equal old-def new-def) - (destructuring-bind (old-slot-name old-init old-type old-read-only old-offset old-ac) - old-def -- (declare (ignore old-init old-read-only old-ac)) -+ (declare (ignore old-slot-name old-init old-read-only old-ac)) - (destructuring-bind (new-slot-name new-init new-type new-read-only new-offset new-ac) - new-def -- (declare (ignore new-init new-read-only new-ac)) -+ (declare (ignore new-slot-name new-init new-read-only new-ac)) - ;; Name EQL is not enforced because structures may be - ;; constructed by code generators and it is likely they - ;; will have gensymed names. -- jd 2019-05-22 -diff --git a/src/lsp/ffi.lsp b/src/lsp/ffi.lsp -index 7e2b12f3..017aaaa9 100644 ---- a/src/lsp/ffi.lsp -+++ b/src/lsp/ffi.lsp -@@ -834,7 +834,8 @@ reference the arguments of the function as \"#0\", \"#1\", etc. - - The interpreter ignores this form. ARG-TYPES are argument types of - the defined Lisp function and RESULT-TYPE is its return type." -- (let ((args (mapcar #'(lambda (x) (gensym)) arg-types))) -+ (let ((args (mapcar #'(lambda (x) (declare (ignore x)) (gensym)) -+ arg-types))) - `(defun ,name ,args - (c-inline ,args ,arg-types ,result-type - ,c-expression :one-liner t)))) -@@ -850,7 +851,8 @@ FUNCTION-NAME. - The interpreter ignores this form. ARG-TYPES are argument types of - the C function and RESULT-TYPE is its return type." - (let ((output-type :object) -- (args (mapcar #'(lambda (x) (gensym)) arg-types))) -+ (args (mapcar #'(lambda (x) (declare (ignore x)) (gensym)) -+ arg-types))) - (if (consp c-name) - (setf output-type (first c-name) - c-name (second c-name))) -diff --git a/src/lsp/setf.lsp b/src/lsp/setf.lsp -index 6575701b..6b9ffbb6 100644 ---- a/src/lsp/setf.lsp -+++ b/src/lsp/setf.lsp -@@ -31,7 +31,6 @@ - (push item vars)) - (push item all)) - (dotimes (i stores-no) -- (declare (ignore i)) - (push (gensym) stores)) - (let* ((all (nreverse all))) - (values (nreverse vars) --- -2.26.2 - diff --git a/build/pkgs/ecl/patches/0003-printer-fix-printing-of-symbols-with-non-ascii-names.patch b/build/pkgs/ecl/patches/0003-printer-fix-printing-of-symbols-with-non-ascii-names.patch deleted file mode 100644 index 3cbe157cfbc..00000000000 --- a/build/pkgs/ecl/patches/0003-printer-fix-printing-of-symbols-with-non-ascii-names.patch +++ /dev/null @@ -1,29 +0,0 @@ -From d0a454a36e1e552beb15d9b09e8d16658489f4d5 Mon Sep 17 00:00:00 2001 -From: Marius Gerbershagen -Date: Wed, 6 May 2020 21:03:18 +0200 -Subject: [PATCH 3/3] printer: fix printing of symbols with non-ascii names - -Bug was introduced in commit c6b4296bb886ad70b83c5cc0f472f6855783e2f9 -in converting buffer_write_char from a macro to an inline -function. Problem reported by Vladimir Sedach on the ecl-devel mailing -list. ---- - src/c/printer/write_symbol.d | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/c/printer/write_symbol.d b/src/c/printer/write_symbol.d -index a39bab97..49ef5d31 100644 ---- a/src/c/printer/write_symbol.d -+++ b/src/c/printer/write_symbol.d -@@ -103,7 +103,7 @@ needs_to_be_escaped(cl_object s, cl_object readtable, cl_object print_case) - } - - static inline void --buffer_write_char(char c, cl_object buffer, cl_object stream, cl_index *buffer_ndx, cl_index buffer_size) { -+buffer_write_char(ecl_character c, cl_object buffer, cl_object stream, cl_index *buffer_ndx, cl_index buffer_size) { - ecl_char_set(buffer, (*buffer_ndx)++, c); - if (*buffer_ndx >= buffer_size) { - si_fill_pointer_set(buffer, ecl_make_fixnum(buffer_size)); --- -2.26.2 - diff --git a/build/pkgs/ecl/patches/214.patch b/build/pkgs/ecl/patches/214.patch deleted file mode 100644 index b466b3fe685..00000000000 --- a/build/pkgs/ecl/patches/214.patch +++ /dev/null @@ -1,202 +0,0 @@ -diff --git a/src/configure b/src/configure -index 103f4102be537c5521889ad14f7d4151245bd4b2..5c7cfc2b8b4822a7477c0ba2883993a8ef185d09 100755 ---- a/src/configure -+++ b/src/configure -@@ -3932,6 +3932,184 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_c_compiler_gnu - # sets variable CC -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 -+$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } -+if ${ac_cv_prog_cc_c99+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ ac_cv_prog_cc_c99=no -+ac_save_CC=$CC -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#include -+#include -+#include -+#include -+#include -+ -+// Check varargs macros. These examples are taken from C99 6.10.3.5. -+#define debug(...) fprintf (stderr, __VA_ARGS__) -+#define showlist(...) puts (#__VA_ARGS__) -+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) -+static void -+test_varargs_macros (void) -+{ -+ int x = 1234; -+ int y = 5678; -+ debug ("Flag"); -+ debug ("X = %d\n", x); -+ showlist (The first, second, and third items.); -+ report (x>y, "x is %d but y is %d", x, y); -+} -+ -+// Check long long types. -+#define BIG64 18446744073709551615ull -+#define BIG32 4294967295ul -+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) -+#if !BIG_OK -+ your preprocessor is broken; -+#endif -+#if BIG_OK -+#else -+ your preprocessor is broken; -+#endif -+static long long int bignum = -9223372036854775807LL; -+static unsigned long long int ubignum = BIG64; -+ -+struct incomplete_array -+{ -+ int datasize; -+ double data[]; -+}; -+ -+struct named_init { -+ int number; -+ const wchar_t *name; -+ double average; -+}; -+ -+typedef const char *ccp; -+ -+static inline int -+test_restrict (ccp restrict text) -+{ -+ // See if C++-style comments work. -+ // Iterate through items via the restricted pointer. -+ // Also check for declarations in for loops. -+ for (unsigned int i = 0; *(text+i) != '\0'; ++i) -+ continue; -+ return 0; -+} -+ -+// Check varargs and va_copy. -+static void -+test_varargs (const char *format, ...) -+{ -+ va_list args; -+ va_start (args, format); -+ va_list args_copy; -+ va_copy (args_copy, args); -+ -+ const char *str; -+ int number; -+ float fnumber; -+ -+ while (*format) -+ { -+ switch (*format++) -+ { -+ case 's': // string -+ str = va_arg (args_copy, const char *); -+ break; -+ case 'd': // int -+ number = va_arg (args_copy, int); -+ break; -+ case 'f': // float -+ fnumber = va_arg (args_copy, double); -+ break; -+ default: -+ break; -+ } -+ } -+ va_end (args_copy); -+ va_end (args); -+} -+ -+int -+main () -+{ -+ -+ // Check bool. -+ _Bool success = false; -+ -+ // Check restrict. -+ if (test_restrict ("String literal") == 0) -+ success = true; -+ char *restrict newvar = "Another string"; -+ -+ // Check varargs. -+ test_varargs ("s, d' f .", "string", 65, 34.234); -+ test_varargs_macros (); -+ -+ // Check flexible array members. -+ struct incomplete_array *ia = -+ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); -+ ia->datasize = 10; -+ for (int i = 0; i < ia->datasize; ++i) -+ ia->data[i] = i * 1.234; -+ -+ // Check named initializers. -+ struct named_init ni = { -+ .number = 34, -+ .name = L"Test wide string", -+ .average = 543.34343, -+ }; -+ -+ ni.number = 58; -+ -+ int dynamic_array[ni.number]; -+ dynamic_array[ni.number - 1] = 543; -+ -+ // work around unused variable warnings -+ return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' -+ || dynamic_array[ni.number - 1] != 543); -+ -+ ; -+ return 0; -+} -+_ACEOF -+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 -+do -+ CC="$ac_save_CC $ac_arg" -+ if ac_fn_c_try_compile "$LINENO"; then : -+ ac_cv_prog_cc_c99=$ac_arg -+fi -+rm -f core conftest.err conftest.$ac_objext -+ test "x$ac_cv_prog_cc_c99" != "xno" && break -+done -+rm -f conftest.$ac_ext -+CC=$ac_save_CC -+ -+fi -+# AC_CACHE_VAL -+case "x$ac_cv_prog_cc_c99" in -+ x) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -+$as_echo "none needed" >&6; } ;; -+ xno) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -+$as_echo "unsupported" >&6; } ;; -+ *) -+ CC="$CC $ac_cv_prog_cc_c99" -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 -+$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; -+esac -+if test "x$ac_cv_prog_cc_c99" != xno; then : -+ -+fi -+ -+ # checks that CC by default accepts C99 code, if not, -+ # tries adding -std=gnu-99, if this has no effect, throws an error. - ac_ext=cpp - ac_cpp='$CXXCPP $CPPFLAGS' - ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -diff --git a/src/configure.ac b/src/configure.ac -index 4e615408e7b336329b4228cb40ca820f12adacba..df7a90c84538a32ca45f2dbc4f398c4c51bec3ae 100644 ---- a/src/configure.ac -+++ b/src/configure.ac -@@ -334,6 +334,8 @@ AC_CANONICAL_HOST - dnl ===================================================================== - dnl Checks for programs - AC_PROG_CC # sets variable CC -+AC_PROG_CC_C99 # checks that CC by default accepts C99 code, if not, -+ # tries adding -std=gnu-99, if this has no effect, throws an error. - AC_PROG_CXX # sets variable CXX - AC_PROG_CPP # sets variable CPP - AC_PROG_RANLIB # sets variable RANLIB diff --git a/build/pkgs/ecl/patches/215.patch b/build/pkgs/ecl/patches/215.patch deleted file mode 100644 index a0f18f2b22f..00000000000 --- a/build/pkgs/ecl/patches/215.patch +++ /dev/null @@ -1,175 +0,0 @@ -diff --git a/src/aclocal.m4 b/src/aclocal.m4 -index 6adc5c63d7c60cf34ac7cee372158d617143191b..cf011efd016a20d5685c12bbac7d1d731eaa755e 100644 ---- a/src/aclocal.m4 -+++ b/src/aclocal.m4 -@@ -665,6 +665,21 @@ case "${ECL_STACK_DIR}" in - up|UP) AC_MSG_RESULT(no) ;; - *) AC_MSG_ERROR(Unable to determine stack growth direction) - esac]) -+ -+dnl -+dnl -------------------------------------------------------------- -+dnl Check if we can determine the stack size at runtime -+dnl -+AC_DEFUN(ECL_STACK_SIZE,[ -+AC_CHECK_HEADER([sys/resource.h], -+ [AC_DEFINE([HAVE_SYS_RESOURCE_H], [], [Define to 1 if you have the header file.]) -+ AC_CHECK_DECL([RLIMIT_STACK], -+ [AC_DEFINE([ECL_CAN_SET_STACK_SIZE], [], [Define to 1 if we can set the stack size at runtime.])], -+ [], -+ [#include ])], -+ [],[]) -+]) -+ - dnl - dnl ------------------------------------------------------------ - dnl Find out a setjmp() that does not save signals. It is called -diff --git a/src/c/stacks.d b/src/c/stacks.d -index d985766ba5e03b07d6a25e31e9880576250038aa..c0125ed2bc8ec9d1712e5e71f3c91edb1bc7c12a 100644 ---- a/src/c/stacks.d -+++ b/src/c/stacks.d -@@ -29,7 +29,7 @@ cs_set_size(cl_env_ptr env, cl_index new_size) - { - volatile char foo = 0; - cl_index margin = ecl_option_values[ECL_OPT_C_STACK_SAFETY_AREA]; --#if defined(HAVE_SYS_RESOURCE_H) && defined(RLIMIT_STACK) && !defined(NACL) -+#if defined(ECL_CAN_SET_STACK_SIZE) - { - struct rlimit rl; - -@@ -40,13 +40,22 @@ cs_set_size(cl_env_ptr env, cl_index new_size) - if (setrlimit(RLIMIT_STACK, &rl)) - ecl_internal_error("Can't set the size of the C stack"); - } -+ } else { -+ rl.rlim_cur = new_size; -+ } -+ if (rl.rlim_cur == 0 || rl.rlim_cur == RLIM_INFINITY || rl.rlim_cur > (cl_index)(-1)) { -+ /* Either getrlimit failed or returned nonsense, either way we -+ * don't know the stack size. Use a default of 1 MB and hope for -+ * the best. */ -+ new_size = 1048576; -+ } else { - new_size = rl.rlim_cur; -+ } - #ifdef ECL_DOWN_STACK -- env->cs_barrier = env->cs_org - new_size; -+ env->cs_barrier = env->cs_org - new_size; - #else -- env->cs_barrier = env->cs_org + new_size; -+ env->cs_barrier = env->cs_org + new_size; - #endif -- } - } - #endif - env->cs_limit_size = new_size - (2*margin); -@@ -64,7 +73,7 @@ cs_set_size(cl_env_ptr env, cl_index new_size) - } - #endif - else -- ecl_internal_error("Can't set the size of the C stack"); -+ ecl_internal_error("Can't set the size of the C stack: sanity check failed"); - env->cs_size = new_size; - } - -diff --git a/src/configure b/src/configure -index 103f4102be537c5521889ad14f7d4151245bd4b2..b2e7608887d1d0648c80578dea26a50ff9a945c0 100755 ---- a/src/configure -+++ b/src/configure -@@ -7125,7 +7125,7 @@ fi - done - - --for ac_header in sys/resource.h sys/utsname.h float.h pwd.h dlfcn.h link.h \ -+for ac_header in sys/utsname.h float.h pwd.h dlfcn.h link.h \ - mach-o/dyld.h dirent.h sys/ioctl.h sys/select.h \ - sys/wait.h semaphore.h - do : -@@ -8345,6 +8345,24 @@ $as_echo "no" >&6; } ;; - *) as_fn_error $? "Unable to determine stack growth direction" "$LINENO" 5 - esac - -+ac_fn_c_check_header_mongrel "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "$ac_includes_default" -+if test "x$ac_cv_header_sys_resource_h" = xyes; then : -+ -+$as_echo "#define HAVE_SYS_RESOURCE_H /**/" >>confdefs.h -+ -+ ac_fn_c_check_decl "$LINENO" "RLIMIT_STACK" "ac_cv_have_decl_RLIMIT_STACK" "#include -+" -+if test "x$ac_cv_have_decl_RLIMIT_STACK" = xyes; then : -+ -+$as_echo "#define ECL_CAN_SET_STACK_SIZE /**/" >>confdefs.h -+ -+fi -+ -+fi -+ -+ -+ -+ - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether closedir returns void" >&5 - $as_echo_n "checking whether closedir returns void... " >&6; } -@@ -8997,8 +9015,6 @@ main () - if (*(data + i) != *(data3 + i)) - return 14; - close (fd); -- free (data); -- free (data3); - return 0; - } - _ACEOF -diff --git a/src/configure.ac b/src/configure.ac -index 4e615408e7b336329b4228cb40ca820f12adacba..8103d88bc9b2abe24ebef83db4ea36355c947fc6 100644 ---- a/src/configure.ac -+++ b/src/configure.ac -@@ -658,7 +658,7 @@ AC_CHECK_HEADERS( [fcntl.h limits.h netdb.h netinet/in.h] \ - [sched.h] ) - dnl !!! end autoscan - --AC_CHECK_HEADERS( [sys/resource.h sys/utsname.h float.h pwd.h dlfcn.h link.h] \ -+AC_CHECK_HEADERS( [sys/utsname.h float.h pwd.h dlfcn.h link.h] \ - [mach-o/dyld.h dirent.h sys/ioctl.h sys/select.h] \ - [sys/wait.h semaphore.h] ) - -@@ -711,8 +711,9 @@ ECL_SSE - ECL_COMPLEX_C99 - - dnl ----------------------------------------------------------------------- --dnl Study the call conventions -+dnl Stack size and growth direction - ECL_STACK_DIRECTION -+ECL_STACK_SIZE - - dnl ===================================================================== - dnl Checks for library functions -diff --git a/src/ecl/configpre.h b/src/ecl/configpre.h -index 98f96bd653052014ef612cfcfcd87a08557979fd..aeda058e059d07d07d9c903f647e74f8dfe30c7a 100644 ---- a/src/ecl/configpre.h -+++ b/src/ecl/configpre.h -@@ -9,6 +9,9 @@ - /* ECL_AVOID_FPE_H */ - #undef ECL_AVOID_FPE_H - -+/* Define to 1 if we can set the stack size at runtime. */ -+#undef ECL_CAN_SET_STACK_SIZE -+ - /* Allow STREAM operations to work on arbitrary objects */ - #undef ECL_CLOS_STREAMS - -diff --git a/src/h/config-internal.h.in b/src/h/config-internal.h.in -index dd7a4f8ad0e86fb735333c4794665d4520fbf830..6b4438ad5953971952ac26328c5c2a3e0f898eff 100644 ---- a/src/h/config-internal.h.in -+++ b/src/h/config-internal.h.in -@@ -240,7 +240,10 @@ - #include "@ECL_LIBFFI_HEADER@" - #endif - --#if defined(HAVE_SYS_RESOURCE_H) && defined(RLIMIT_STACK) && !defined(NACL) -+/* Can we determine and set the stack size at runtime? */ -+#undef ECL_CAN_SET_STACK_SIZE -+ -+#if defined(ECL_CAN_SET_STACK_SIZE) - #define ECL_DEFAULT_C_STACK_SIZE 0 /* Use the stack size provided by the OS */ - #else - #define ECL_DEFAULT_C_STACK_SIZE @ECL_DEFAULT_C_STACK_SIZE@ diff --git a/build/pkgs/ecl/patches/216.patch b/build/pkgs/ecl/patches/216.patch deleted file mode 100644 index 055a2636e7c..00000000000 --- a/build/pkgs/ecl/patches/216.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/src/cmp/cmpos-run.lsp b/src/cmp/cmpos-run.lsp -index 418751c3d188c1ba6042d965fe1424eb6d4c7ca4..4008b3a6ad7bac846f50d1c4d03b45cf751a451e 100755 ---- a/src/cmp/cmpos-run.lsp -+++ b/src/cmp/cmpos-run.lsp -@@ -51,18 +51,25 @@ - (program (car program))) - (with-current-directory - ;; when compiling ECL itself, we only have low-level functions -- ;; available, otherwise we can use run-program and get proper -- ;; quoting of arguments -- #+ecl-min (multiple-value-bind (output-stream return-status pid) -- (si:run-program-inner program args :default nil) -- (setf output (collect-lines output-stream)) -- (multiple-value-setq (return-status result) -- (si:waitpid pid t))) -- #-ecl-min (multiple-value-bind (output-stream return-status process-obj) -- (ext:run-program program args :wait nil) -- (setf output (collect-lines output-stream)) -- (multiple-value-setq (return-status result) -- (ext:external-process-wait process-obj t))))) -+ ;; available ... -+ #+(and ecl-min (not cygwin)) -+ (multiple-value-bind (output-stream return-status pid) -+ (si:run-program-inner program args :default nil) -+ (setf output (collect-lines output-stream)) -+ (multiple-value-setq (return-status result) -+ (si:waitpid pid t))) -+ ;; ... otherwise we can use run-program and get proper -+ ;; quoting of arguments ... -+ #+(and (not ecl-min) (not cygwin)) -+ (multiple-value-bind (output-stream return-status process-obj) -+ (ext:run-program program args :wait nil) -+ (setf output (collect-lines output-stream)) -+ (multiple-value-setq (return-status result) -+ (ext:external-process-wait process-obj t))) -+ ;; ... unless we're running on cygwin which has problems with -+ ;; forking so we have to use si:system -+ #+cygwin -+ (setf result (si:system (format nil "~A~{ ~A~}" program args))))) - (cond ((null result) - (cerror "Continues anyway." - "Unable to execute:~%(EXT:RUN-PROGRAM ~S ~S)" diff --git a/build/pkgs/ecl/patches/ECL_WITH_LISP_FPE.patch b/build/pkgs/ecl/patches/ECL_WITH_LISP_FPE.patch deleted file mode 100644 index ce87f79ab58..00000000000 --- a/build/pkgs/ecl/patches/ECL_WITH_LISP_FPE.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 75877dd8f0d534552284ba4380ba65baa74f028f Mon Sep 17 00:00:00 2001 -From: Marius Gerbershagen -Date: Sun, 28 Jun 2020 11:02:15 +0200 -Subject: [PATCH] fpe: fix ECL_WITH_LISP_FPE macro - -We can't use ecl_process_env_unsafe() == NULL to check if ECL has -booted because the return value of ecl_process_env_unsafe is -unpredictable before ECL has booted. The reason is that -ecl_process_env_unsafe calls pthread_getspecific with an uninitialized -key stored in cl_env_key. But another call to pthread_setspecific -might have already registered a key which happens to be the same as -the not yet initialized cl_env_key, yielding a non-NULL value. ---- - src/h/impl/math_fenv.h | 17 ++++++++--------- - 1 file changed, 8 insertions(+), 9 deletions(-) - -diff --git a/src/h/impl/math_fenv.h b/src/h/impl/math_fenv.h -index 0a93c8e0a..9630f4c6c 100644 ---- a/src/h/impl/math_fenv.h -+++ b/src/h/impl/math_fenv.h -@@ -72,15 +72,14 @@ - - #if defined(HAVE_FENV_H) && !defined(ECL_AVOID_FPE_H) - # if defined(HAVE_FEENABLEEXCEPT) --# define ECL_WITH_LISP_FPE_BEGIN do { \ -- fenv_t __fenv; \ -- fegetenv(&__fenv); \ -- cl_env_ptr __the_env = ecl_process_env_unsafe(); \ -- if (__the_env) { \ -- int bits = __the_env->trap_fpe_bits; \ -- fedisableexcept(FE_ALL_EXCEPT & ~bits); \ -- feenableexcept(FE_ALL_EXCEPT & bits); \ -- } \ -+# define ECL_WITH_LISP_FPE_BEGIN do { \ -+ fenv_t __fenv; \ -+ fegetenv(&__fenv); \ -+ if (ecl_get_option(ECL_OPT_BOOTED) > 0) { \ -+ int bits = ecl_process_env()->trap_fpe_bits; \ -+ fedisableexcept(FE_ALL_EXCEPT & ~bits); \ -+ feenableexcept(FE_ALL_EXCEPT & bits); \ -+ } \ - feclearexcept(FE_ALL_EXCEPT); - # else - # define ECL_WITH_LISP_FPE_BEGIN do { \ --- -GitLab -