Merge branch 'fix-c-nested-closures' into develop
This commit is contained in:
commit
1a8f0decf2
6 changed files with 40 additions and 19 deletions
|
|
@ -10,8 +10,8 @@ srcdir = ..\src
|
|||
|
||||
SHORT_SITE_NAME =
|
||||
LONG_SITE_NAME =
|
||||
ECL_VERSION = 16.1.2
|
||||
ECL_VERSION_NUMBER= 161002
|
||||
ECL_VERSION = 16.1.3-dev
|
||||
ECL_VERSION_NUMBER= 160103
|
||||
ARCHITECTURE = PENTIUM4
|
||||
SOFTWARE_TYPE = NT
|
||||
SOFTWARE_VERSION = 5.0
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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 ", "
|
||||
|
|
|
|||
18
src/configure
vendored
18
src/configure
vendored
|
|
@ -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.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'
|
||||
PACKAGE_STRING='ecl 16.1.2'
|
||||
PACKAGE_VERSION='16.1.3-dev'
|
||||
PACKAGE_STRING='ecl 16.1.3-dev'
|
||||
PACKAGE_BUGREPORT=''
|
||||
PACKAGE_URL=''
|
||||
|
||||
|
|
@ -1365,7 +1365,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.3-dev to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
|
|
@ -1434,7 +1434,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.3-dev:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
|
|
@ -1609,7 +1609,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.3-dev
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
|
|
@ -2196,7 +2196,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.3-dev, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
|
|
@ -10199,7 +10199,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.3-dev, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
|
|
@ -10261,7 +10261,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
|
||||
ecl config.status 16.1.3-dev
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
|
|
|||
|
|
@ -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.3-dev],[])
|
||||
AC_REVISION([$Revision$])
|
||||
AC_CONFIG_SRCDIR([bare.lsp.in])
|
||||
AC_CONFIG_AUX_DIR([gmp])
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue