From cb1eff07e9bc02df65fd78b1dc6241f3fb07e95b Mon Sep 17 00:00:00 2001
From: dos-reis <gdr@axiomatics.org>
Date: Sun, 20 Feb 2011 14:33:39 +0000
Subject: 	* interp/parse.boot (transSeq): Aggregate branches of toplevel
 	conditionals so that implications propagate down the pipe.

---
 configure             | 20 ++++++++++----------
 configure.ac          |  4 ++--
 src/ChangeLog         |  5 +++++
 src/interp/parse.boot |  2 ++
 4 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/configure b/configure
index 565eddb4..cff2c83a 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65 for OpenAxiom 1.4.0-2011-02-08.
+# Generated by GNU Autoconf 2.65 for OpenAxiom 1.4.0-2011-02-20.
 #
 # Report bugs to <open-axiom-bugs@lists.sf.net>.
 #
@@ -701,8 +701,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='OpenAxiom'
 PACKAGE_TARNAME='openaxiom'
-PACKAGE_VERSION='1.4.0-2011-02-08'
-PACKAGE_STRING='OpenAxiom 1.4.0-2011-02-08'
+PACKAGE_VERSION='1.4.0-2011-02-20'
+PACKAGE_STRING='OpenAxiom 1.4.0-2011-02-20'
 PACKAGE_BUGREPORT='open-axiom-bugs@lists.sf.net'
 PACKAGE_URL=''
 
@@ -1491,7 +1491,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 OpenAxiom 1.4.0-2011-02-08 to adapt to many kinds of systems.
+\`configure' configures OpenAxiom 1.4.0-2011-02-20 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1566,7 +1566,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of OpenAxiom 1.4.0-2011-02-08:";;
+     short | recursive ) echo "Configuration of OpenAxiom 1.4.0-2011-02-20:";;
    esac
   cat <<\_ACEOF
 
@@ -1677,7 +1677,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-OpenAxiom configure 1.4.0-2011-02-08
+OpenAxiom configure 1.4.0-2011-02-20
 generated by GNU Autoconf 2.65
 
 Copyright (C) 2009 Free Software Foundation, Inc.
@@ -2569,7 +2569,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 OpenAxiom $as_me 1.4.0-2011-02-08, which was
+It was created by OpenAxiom $as_me 1.4.0-2011-02-20, which was
 generated by GNU Autoconf 2.65.  Invocation command line was
 
   $ $0 $@
@@ -5468,7 +5468,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='openaxiom'
- VERSION='1.4.0-2011-02-08'
+ VERSION='1.4.0-2011-02-20'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -20968,7 +20968,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 OpenAxiom $as_me 1.4.0-2011-02-08, which was
+This file was extended by OpenAxiom $as_me 1.4.0-2011-02-20, which was
 generated by GNU Autoconf 2.65.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -21034,7 +21034,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="\\
-OpenAxiom config.status 1.4.0-2011-02-08
+OpenAxiom config.status 1.4.0-2011-02-20
 configured by $0, generated by GNU Autoconf 2.65,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 0ade14c4..3a64f9c7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2006-2010, Gabriel Dos Reis.
+dnl Copyright (C) 2006-2011, Gabriel Dos Reis.
 dnl All rights reserved.
 dnl
 dnl Redistribution and use in source and binary forms, with or without
@@ -33,7 +33,7 @@ dnl  Makefiles for building OpenAxiom interpreter, compiler, libraries, and
 dnl  auxiliary tools where appropriate.
 dnl
 
-AC_INIT([OpenAxiom], [1.4.0-2011-02-08], 
+AC_INIT([OpenAxiom], [1.4.0-2011-02-20], 
         [open-axiom-bugs@lists.sf.net])
 
 dnl Most of the macros used in this configure.ac are defined in files
diff --git a/src/ChangeLog b/src/ChangeLog
index 38b6a04e..dd5588ec 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2011-02-20  Gabriel Dos Reis  <gdr@cs.tamu.edu>
+
+	* interp/parse.boot (transSeq): Aggregate branches of toplevel
+	conditionals so that implications propagate down the pipe.
+
 2011-02-15  Gabriel Dos Reis  <gdr@cs.tamu.edu>
 
 	* interp/compiler.boot (coerceExtraHard): Explicitly fail if
diff --git a/src/interp/parse.boot b/src/interp/parse.boot
index 5d2974c3..9a66be2b 100644
--- a/src/interp/parse.boot
+++ b/src/interp/parse.boot
@@ -390,6 +390,8 @@ transSeq l ==
     ["IF",decExitLevel a,decExitLevel b,transSeq tail]
   item is ["IF",a,"%noBranch",["exit",1,b]] =>
     ["IF",decExitLevel a,transSeq tail,decExitLevel b]
+  item is ["IF",a,["exit",1,b],c] =>
+    ["IF",decExitLevel a,decExitLevel b,transSeq [c,:tail]]
   (y:= transSeq tail) is ["SEQ",:s] => ["SEQ",item,:s]
   ["SEQ",item,["exit",1,incExitLevel y]]
  
-- 
cgit v1.2.3