From e94d397c094a81521d9a2fd688e264c398fb2cff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Mon, 7 Mar 2016 21:46:13 +0100 Subject: [PATCH 1/5] dev: add development tag to the version --- msvc/Makefile | 2 +- src/configure | 20 ++++++++++---------- src/configure.ac | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/msvc/Makefile b/msvc/Makefile index 73ea6b77a..24d60693a 100755 --- a/msvc/Makefile +++ b/msvc/Makefile @@ -10,7 +10,7 @@ srcdir = ..\src SHORT_SITE_NAME = LONG_SITE_NAME = -ECL_VERSION = 16.1.2 +ECL_VERSION = 16.1.2-dev ECL_VERSION_NUMBER= 161002 ARCHITECTURE = PENTIUM4 SOFTWARE_TYPE = NT diff --git a/src/configure b/src/configure index dbeabb07b..c4488b55b 100755 --- a/src/configure +++ b/src/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Revision. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ecl 16.1.2. +# Generated by GNU Autoconf 2.69 for ecl 16.1.2-dev. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -578,8 +578,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='ecl' PACKAGE_TARNAME='ecl' -PACKAGE_VERSION='16.1.2' -PACKAGE_STRING='ecl 16.1.2' +PACKAGE_VERSION='16.1.2-dev' +PACKAGE_STRING='ecl 16.1.2-dev' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1366,7 +1366,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ecl 16.1.2 to adapt to many kinds of systems. +\`configure' configures ecl 16.1.2-dev to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1435,7 +1435,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ecl 16.1.2:";; + short | recursive ) echo "Configuration of ecl 16.1.2-dev:";; esac cat <<\_ACEOF @@ -1611,7 +1611,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ecl configure 16.1.2 +ecl configure 16.1.2-dev generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2198,7 +2198,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ecl $as_me 16.1.2, which was +It was created by ecl $as_me 16.1.2-dev, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -10214,7 +10214,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ecl $as_me 16.1.2, which was +This file was extended by ecl $as_me 16.1.2-dev, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -10276,11 +10276,11 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ecl config.status 16.1.2 +ecl config.status 16.1.2-dev configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." diff --git a/src/configure.ac b/src/configure.ac index d7ef8d985..76b5da6ae 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -8,7 +8,7 @@ dnl AUTOCONF configuration for ECL dnl Giuseppe Attardi 25.1.1994 dnl -AC_INIT([ecl],[16.1.2],[]) +AC_INIT([ecl],[16.1.2-dev],[]) AC_REVISION([$Revision$]) AC_CONFIG_SRCDIR([bare.lsp.in]) AC_CONFIG_AUX_DIR([gmp]) From b78bd819ce0e2dc89ee4e3c6d537cb5d43e9b40e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Mon, 7 Mar 2016 21:52:47 +0100 Subject: [PATCH 2/5] newcmp: remove *s-c-n* --- src/new-cmp/cmpmain.lsp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/new-cmp/cmpmain.lsp b/src/new-cmp/cmpmain.lsp index 6bf358c6a..0a1c659ae 100644 --- a/src/new-cmp/cmpmain.lsp +++ b/src/new-cmp/cmpmain.lsp @@ -643,15 +643,6 @@ returned as the value of COMPILE. In any case, COMPILE creates temporary files, whose filenames begin with \"gazonk\", which are automatically deleted after compilation." (unless (symbolp name) (error "~s is not a symbol." name)) - - ;; Deprecated, to be removed in next release - (when *suppress-compiler-notes* - (setf *suppress-compiler-messages* - `(or ,*suppress-compiler-messages* compiler-note))) - (when *suppress-compiler-warnings* - (setf *suppress-compiler-messages* - `(or ,*suppress-compiler-messages* compiler-warning))) - (cond ((and supplied-p def) (when (functionp def) (unless (function-lambda-expression def) From 939f068390b6568af56872750a5821d3bbc44d4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Thu, 10 Mar 2016 14:22:10 +0100 Subject: [PATCH 3/5] compiler: fix aux_closure creation Bug was probably introduced in a1bc92b05c1d79ee0e6b69edafab47a189cc57dc Fixes #128 and and misc.319 from ANSI tests. --- src/cmp/cmpcall.lsp | 3 ++- src/cmp/cmptop.lsp | 15 +++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/cmp/cmpcall.lsp b/src/cmp/cmpcall.lsp index 37f25515b..7383a351e 100644 --- a/src/cmp/cmpcall.lsp +++ b/src/cmp/cmpcall.lsp @@ -268,7 +268,8 @@ (env nil)) (case (fun-closure fun) (CLOSURE - (setf env (environment-accessor fun))) + (when (plusp *max-env*) + (setf env (environment-accessor fun)))) (LEXICAL (let ((lex-lvl (fun-level fun))) (dotimes (n lex-lvl) diff --git a/src/cmp/cmptop.lsp b/src/cmp/cmptop.lsp index 7a6c227ce..b94021d26 100644 --- a/src/cmp/cmptop.lsp +++ b/src/cmp/cmptop.lsp @@ -436,14 +436,17 @@ ;; should definitely keep this in memory. (when (plusp *max-lex*) (wt-nl "volatile cl_object lex" *level* "[" *max-lex* "];")) - (when (plusp *max-env*) - (unless (eq closure-type 'CLOSURE) - (wt-nl "cl_object " *volatile* "env0;")) - ;; Note that the closure structure has to be marked volatile - ;; or else GCC may optimize away writes into it because it - ;; does not know it shared with the rest of the world. + + (unless (eq closure-type 'CLOSURE) + (wt-nl "cl_object " *volatile* "env0;")) + + (when (plusp *max-env*) + ;; Closure structure has to be marked volatile or else GCC may + ;; optimize away writes into it because it does not know it shared + ;; with the rest of the world. (when *aux-closure* (wt-nl "volatile struct ecl_cclosure aux_closure;")) + (wt-nl "cl_object " *volatile*) (loop for i from 0 below *max-env* for comma = "" then ", " From 2c348af94a26c32c776762885d59097089c8bfe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Thu, 10 Mar 2016 14:30:34 +0100 Subject: [PATCH 4/5] compiler: add aux_closure regression test --- src/tests/regressions/tests/compiler.lsp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/tests/regressions/tests/compiler.lsp b/src/tests/regressions/tests/compiler.lsp index 0c7124586..457a538ab 100644 --- a/src/tests/regressions/tests/compiler.lsp +++ b/src/tests/regressions/tests/compiler.lsp @@ -1150,3 +1150,20 @@ (compile 'check-single-wildcard) (check-single-wildcard "dan*" 3)) T) + +;;; Date: 2016-02-10 +;;; Fixed: Daniel KochmaƄski +;;; Description +;;; Aux closures created by C compiler weren't handled correctly +;;; in respect of the environment and declarations of the +;;; variables +(deftest compiler.0050.cmptop/call.1 + (funcall (compile nil '(lambda () + (labels + ((fun-2 () (fun-3 'cool)) + (fun-3 (clause-var) + (flet ((fun-4 () clause-var)) + (fun-4)))) + (let ((fun-1 (lambda () (fun-2)))) + (funcall fun-1)))))) + cool) From f99e31f21b485a6f157c3dbc86350f07cb30205c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Thu, 10 Mar 2016 14:32:35 +0100 Subject: [PATCH 5/5] version: bump to 16.1.3-dev --- msvc/Makefile | 4 ++-- src/configure | 18 +++++++++--------- src/configure.ac | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/msvc/Makefile b/msvc/Makefile index 24d60693a..17e81c791 100755 --- a/msvc/Makefile +++ b/msvc/Makefile @@ -10,8 +10,8 @@ srcdir = ..\src SHORT_SITE_NAME = LONG_SITE_NAME = -ECL_VERSION = 16.1.2-dev -ECL_VERSION_NUMBER= 161002 +ECL_VERSION = 16.1.3-dev +ECL_VERSION_NUMBER= 160103 ARCHITECTURE = PENTIUM4 SOFTWARE_TYPE = NT SOFTWARE_VERSION = 5.0 diff --git a/src/configure b/src/configure index c4488b55b..562dcc4a6 100755 --- a/src/configure +++ b/src/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Revision. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ecl 16.1.2-dev. +# Generated by GNU Autoconf 2.69 for ecl 16.1.3-dev. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -578,8 +578,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='ecl' PACKAGE_TARNAME='ecl' -PACKAGE_VERSION='16.1.2-dev' -PACKAGE_STRING='ecl 16.1.2-dev' +PACKAGE_VERSION='16.1.3-dev' +PACKAGE_STRING='ecl 16.1.3-dev' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1366,7 +1366,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ecl 16.1.2-dev to adapt to many kinds of systems. +\`configure' configures ecl 16.1.3-dev to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1435,7 +1435,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ecl 16.1.2-dev:";; + short | recursive ) echo "Configuration of ecl 16.1.3-dev:";; esac cat <<\_ACEOF @@ -1611,7 +1611,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ecl configure 16.1.2-dev +ecl configure 16.1.3-dev generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2198,7 +2198,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ecl $as_me 16.1.2-dev, which was +It was created by ecl $as_me 16.1.3-dev, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -10214,7 +10214,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ecl $as_me 16.1.2-dev, which was +This file was extended by ecl $as_me 16.1.3-dev, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -10276,7 +10276,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ecl config.status 16.1.2-dev +ecl config.status 16.1.3-dev configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/src/configure.ac b/src/configure.ac index 76b5da6ae..b25510e90 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -8,7 +8,7 @@ dnl AUTOCONF configuration for ECL dnl Giuseppe Attardi 25.1.1994 dnl -AC_INIT([ecl],[16.1.2-dev],[]) +AC_INIT([ecl],[16.1.3-dev],[]) AC_REVISION([$Revision$]) AC_CONFIG_SRCDIR([bare.lsp.in]) AC_CONFIG_AUX_DIR([gmp])