tclbdd

Check-in [a87110a479]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix several miscellaneous packaging and coding issues identified by dgp and aku
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:a87110a47950e255f02b004609fac999f4b16cc3
User & Date: kbk 2013-12-05 03:16:36
Context
2013-12-06
03:15
Added Apply3 for ternary operators - no tests yet. Modified Apply to prune subtrees more aggressively - now recognizes operations that will evaluate to constant 1, constant 0 and either of the input arguments. Modified to maintain refcounts of partial applications that are cached. Added test cases for quantified formulas, and plugged a memory leak. check-in: 40788f090a user: kbk tags: trunk
2013-12-05
03:16
Fix several miscellaneous packaging and coding issues identified by dgp and aku check-in: a87110a479 user: kbk tags: trunk
03:08
Add a first whack at a Boolean expression parser check-in: d459b6ae38 user: kbk tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to configure.

1
2
3
4
5
6
7
8
9
10
...
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
...
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
...
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
...
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
....
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
....
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
....
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
....
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
....
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
....
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
....
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
....
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
....
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
....
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
.....
11685
11686
11687
11688
11689
11690
11691
11692
11693
11694
11695
11696
11697
11698
11699
.....
11740
11741
11742
11743
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.59 for bdd 0.1.
#
# Copyright (C) 2003 Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## --------------------- ##
## M4sh Initialization.  ##
## --------------------- ##
................................................................................

# Maximum number of lines to put in a shell here document.
# This variable seems obsolete.  It should probably be removed, and
# only ac_max_sed_lines should be used.
: ${ac_max_here_lines=38}

# Identity of this package.
PACKAGE_NAME='bdd'
PACKAGE_TARNAME='bdd'
PACKAGE_VERSION='0.1'
PACKAGE_STRING='bdd 0.1'
PACKAGE_BUGREPORT=''

# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
................................................................................
#
# Report the --help message.
#
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 bdd 0.1 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.
................................................................................

  cat <<\_ACEOF
_ACEOF
fi

if test -n "$ac_init_help"; then
  case $ac_init_help in
     short | recursive ) echo "Configuration of bdd 0.1:";;
   esac
  cat <<\_ACEOF

Optional Features:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-threads        build with threads
................................................................................
    cd $ac_popdir
  done
fi

test -n "$ac_init_help" && exit 0
if $ac_init_version; then
  cat <<\_ACEOF
bdd configure 0.1
generated by GNU Autoconf 2.59

Copyright (C) 2003 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
  exit 0
fi
exec 5>config.log
cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by bdd $as_me 0.1, which was
generated by GNU Autoconf 2.59.  Invocation command line was

  $ $0 $@

_ACEOF
{
cat <<_ASUNAME
................................................................................
echo "$as_me: WARNING: net/errno.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: net/errno.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: net/errno.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: net/errno.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: net/errno.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## ------------------------------ ##
## Report this to the bdd lists.  ##
## ------------------------------ ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for net/errno.h" >&5
echo $ECHO_N "checking for net/errno.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: errno.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: errno.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: errno.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: errno.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: errno.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## ------------------------------ ##
## Report this to the bdd lists.  ##
## ------------------------------ ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for errno.h" >&5
echo $ECHO_N "checking for errno.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: float.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: float.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: float.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: float.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: float.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## ------------------------------ ##
## Report this to the bdd lists.  ##
## ------------------------------ ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for float.h" >&5
echo $ECHO_N "checking for float.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: values.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: values.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: values.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: values.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: values.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## ------------------------------ ##
## Report this to the bdd lists.  ##
## ------------------------------ ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for values.h" >&5
echo $ECHO_N "checking for values.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: limits.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: limits.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: limits.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: limits.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: limits.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## ------------------------------ ##
## Report this to the bdd lists.  ##
## ------------------------------ ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for limits.h" >&5
echo $ECHO_N "checking for limits.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: stdlib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: stdlib.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: stdlib.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: stdlib.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: stdlib.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## ------------------------------ ##
## Report this to the bdd lists.  ##
## ------------------------------ ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for stdlib.h" >&5
echo $ECHO_N "checking for stdlib.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: string.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: string.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: string.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: string.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: string.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## ------------------------------ ##
## Report this to the bdd lists.  ##
## ------------------------------ ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for string.h" >&5
echo $ECHO_N "checking for string.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: sys/wait.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: sys/wait.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: sys/wait.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: sys/wait.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: sys/wait.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## ------------------------------ ##
## Report this to the bdd lists.  ##
## ------------------------------ ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for sys/wait.h" >&5
echo $ECHO_N "checking for sys/wait.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: dlfcn.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## ------------------------------ ##
## Report this to the bdd lists.  ##
## ------------------------------ ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for dlfcn.h" >&5
echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## ------------------------------ ##
## Report this to the bdd lists.  ##
## ------------------------------ ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
................................................................................
  echo
  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
} >&5
cat >&5 <<_CSEOF

This file was extended by bdd $as_me 0.1, which was
generated by GNU Autoconf 2.59.  Invocation command line was

  CONFIG_FILES    = $CONFIG_FILES
  CONFIG_HEADERS  = $CONFIG_HEADERS
  CONFIG_LINKS    = $CONFIG_LINKS
  CONFIG_COMMANDS = $CONFIG_COMMANDS
  $ $0 $@
................................................................................
$config_files

Report bugs to <bug-autoconf@gnu.org>."
_ACEOF

cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
bdd config.status 0.1
configured by $0, generated by GNU Autoconf 2.59,
  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"

Copyright (C) 2003 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
srcdir=$srcdir


|







 







|
|

|







 







|







 







|







 







|













|







 







|
|
|







 







|
|
|







 







|
|
|







 







|
|
|







 







|
|
|







 







|
|
|







 







|
|
|







 







|
|
|







 







|
|
|







 







|
|
|







 







|







 







|







1
2
3
4
5
6
7
8
9
10
...
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
...
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
...
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
...
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
....
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
....
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
....
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
....
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
....
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
....
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
....
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
....
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
....
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
....
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
.....
11685
11686
11687
11688
11689
11690
11691
11692
11693
11694
11695
11696
11697
11698
11699
.....
11740
11741
11742
11743
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.59 for tclbdd 0.1.
#
# Copyright (C) 2003 Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## --------------------- ##
## M4sh Initialization.  ##
## --------------------- ##
................................................................................

# Maximum number of lines to put in a shell here document.
# This variable seems obsolete.  It should probably be removed, and
# only ac_max_sed_lines should be used.
: ${ac_max_here_lines=38}

# Identity of this package.
PACKAGE_NAME='tclbdd'
PACKAGE_TARNAME='tclbdd'
PACKAGE_VERSION='0.1'
PACKAGE_STRING='tclbdd 0.1'
PACKAGE_BUGREPORT=''

# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
................................................................................
#
# Report the --help message.
#
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 tclbdd 0.1 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.
................................................................................

  cat <<\_ACEOF
_ACEOF
fi

if test -n "$ac_init_help"; then
  case $ac_init_help in
     short | recursive ) echo "Configuration of tclbdd 0.1:";;
   esac
  cat <<\_ACEOF

Optional Features:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-threads        build with threads
................................................................................
    cd $ac_popdir
  done
fi

test -n "$ac_init_help" && exit 0
if $ac_init_version; then
  cat <<\_ACEOF
tclbdd configure 0.1
generated by GNU Autoconf 2.59

Copyright (C) 2003 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
  exit 0
fi
exec 5>config.log
cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by tclbdd $as_me 0.1, which was
generated by GNU Autoconf 2.59.  Invocation command line was

  $ $0 $@

_ACEOF
{
cat <<_ASUNAME
................................................................................
echo "$as_me: WARNING: net/errno.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: net/errno.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: net/errno.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: net/errno.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: net/errno.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## --------------------------------- ##
## Report this to the tclbdd lists.  ##
## --------------------------------- ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for net/errno.h" >&5
echo $ECHO_N "checking for net/errno.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: errno.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: errno.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: errno.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: errno.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: errno.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## --------------------------------- ##
## Report this to the tclbdd lists.  ##
## --------------------------------- ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for errno.h" >&5
echo $ECHO_N "checking for errno.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: float.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: float.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: float.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: float.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: float.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## --------------------------------- ##
## Report this to the tclbdd lists.  ##
## --------------------------------- ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for float.h" >&5
echo $ECHO_N "checking for float.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: values.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: values.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: values.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: values.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: values.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## --------------------------------- ##
## Report this to the tclbdd lists.  ##
## --------------------------------- ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for values.h" >&5
echo $ECHO_N "checking for values.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: limits.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: limits.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: limits.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: limits.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: limits.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## --------------------------------- ##
## Report this to the tclbdd lists.  ##
## --------------------------------- ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for limits.h" >&5
echo $ECHO_N "checking for limits.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: stdlib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: stdlib.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: stdlib.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: stdlib.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: stdlib.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## --------------------------------- ##
## Report this to the tclbdd lists.  ##
## --------------------------------- ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for stdlib.h" >&5
echo $ECHO_N "checking for stdlib.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: string.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: string.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: string.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: string.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: string.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## --------------------------------- ##
## Report this to the tclbdd lists.  ##
## --------------------------------- ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for string.h" >&5
echo $ECHO_N "checking for string.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: sys/wait.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: sys/wait.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: sys/wait.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: sys/wait.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: sys/wait.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## --------------------------------- ##
## Report this to the tclbdd lists.  ##
## --------------------------------- ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for sys/wait.h" >&5
echo $ECHO_N "checking for sys/wait.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: dlfcn.h:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## --------------------------------- ##
## Report this to the tclbdd lists.  ##
## --------------------------------- ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for dlfcn.h" >&5
echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6
................................................................................
echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
    (
      cat <<\_ASBOX
## --------------------------------- ##
## Report this to the tclbdd lists.  ##
## --------------------------------- ##
_ASBOX
    ) |
      sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
echo "$as_me:$LINENO: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
................................................................................
  echo
  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
} >&5
cat >&5 <<_CSEOF

This file was extended by tclbdd $as_me 0.1, which was
generated by GNU Autoconf 2.59.  Invocation command line was

  CONFIG_FILES    = $CONFIG_FILES
  CONFIG_HEADERS  = $CONFIG_HEADERS
  CONFIG_LINKS    = $CONFIG_LINKS
  CONFIG_COMMANDS = $CONFIG_COMMANDS
  $ $0 $@
................................................................................
$config_files

Report bugs to <bug-autoconf@gnu.org>."
_ACEOF

cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
tclbdd config.status 0.1
configured by $0, generated by GNU Autoconf 2.59,
  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"

Copyright (C) 2003 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
srcdir=$srcdir

Changes to configure.in.

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# This initializes the environment with PACKAGE_NAME and PACKAGE_VERSION
# set as provided.  These will also be added as -D defs in your Makefile
# so you can encode the package version directly into the source files.
# This will also define a special symbol for Windows (BUILD_<PACKAGE_NAME>
# so that we create the export library with the dll.
#-----------------------------------------------------------------------

AC_INIT([bdd], [0.1])

#--------------------------------------------------------------------
# Call TEA_INIT as the first TEA_ macro to set up initial vars.
# This will define a ${TEA_PLATFORM} variable == "unix" or "windows"
# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE.
#--------------------------------------------------------------------








|







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# This initializes the environment with PACKAGE_NAME and PACKAGE_VERSION
# set as provided.  These will also be added as -D defs in your Makefile
# so you can encode the package version directly into the source files.
# This will also define a special symbol for Windows (BUILD_<PACKAGE_NAME>
# so that we create the export library with the dll.
#-----------------------------------------------------------------------

AC_INIT([tclbdd], [0.1])

#--------------------------------------------------------------------
# Call TEA_INIT as the first TEA_ macro to set up initial vars.
# This will define a ${TEA_PLATFORM} variable == "unix" or "windows"
# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE.
#--------------------------------------------------------------------

Changes to generic/bdd.h.

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
..
51
52
53
54
55
56
57

























58
59
60
61
62
63
64
/*
 * Binary operators for use with BDD_Apply
 *
 * The ten truth tables that depend on both operands are included in the
 * set of operators.  The six trivial truth tables (always true, always
 * false, a, !a, b, !b) are not.
 */
typedef enum {			/* !a!b !ab a!b ab */

    /* BDD_BINOP_FALSE = 0x0, */

    BDD_BINOP_NOR = 0x1,	/* 1    0   0   0  */ /* a NOR b */

    BDD_BINOP_NOTINVIMP = 0x2,	/* 0    1   0   0  */ /* b does not imply a */
    BDD_BINOP_LT = 0x2,		                      /* a < b */
................................................................................

    BDD_BINOP_OR = 0xe,         /* 0    1   1   1  */ /* a | b */

    /* BDD_BINOP_TRUE = 0xf */

} BDD_BinOp;


























/*
 * Quantifiers for use with BDD's
 */
typedef enum BDD_Quantifier {
    BDD_QUANT_FORALL = BDD_BINOP_AND,
    BDD_QUANT_EXISTS = BDD_BINOP_OR,
} BDD_Quantifier;







|







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
..
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
 * Binary operators for use with BDD_Apply
 *
 * The ten truth tables that depend on both operands are included in the
 * set of operators.  The six trivial truth tables (always true, always
 * false, a, !a, b, !b) are not.
 */
typedef enum BDD_BinOp {	/* !a!b !ab a!b ab */

    /* BDD_BINOP_FALSE = 0x0, */

    BDD_BINOP_NOR = 0x1,	/* 1    0   0   0  */ /* a NOR b */

    BDD_BINOP_NOTINVIMP = 0x2,	/* 0    1   0   0  */ /* b does not imply a */
    BDD_BINOP_LT = 0x2,		                      /* a < b */
................................................................................

    BDD_BINOP_OR = 0xe,         /* 0    1   1   1  */ /* a | b */

    /* BDD_BINOP_TRUE = 0xf */

} BDD_BinOp;

/*
 * Ternary operations for use with BDD_Apply3
 *
 *	There are 2**2**3 = 256 possible operations. This is merely
 * a selection of the most useful ones.
 */
typedef enum BDD_TernOp {
    BDD_TERNOP_NOR = 0x01,	/* Logical NOR of three variables */
    BDD_TERNOP_ONEOF = 0x16,	/* Exactly one of three variables TRUE */
    BDD_TERNOP_TWOOF = 0x68,	/* Exactly two of three variables TRUE */
    BDD_TERNOP_XNOR = 0x69,	/* Exclusive NOR: zero or two variables TRUE */
    BDD_TERNOP_DIFFER = 0x7E,	/* At least one variable differs from
				* the other two. */
    BDD_TERNOP_NAND = 0x7F,	/* Logical NAND of three variables */
    BDD_TERNOP_AND = 0x80,	/* Logical AND of three variables */
    BDD_TERNOP_CONCUR = 0x81,	/* All three variables agree */
    BDD_TERNOP_XOR = 0x96,	/* Exclusive OR: one or three variables TRUE */
    BDD_TERNOP_IFTHENELSE = 0xCA, 
				/* a ? b : c */
    BDD_TERNOP_MAJORITY = 0xE8,	/* Majority rule: at least two of three.
				 * This is also the carry bit of a full
				 * adder */
    BDD_TERNOP_OR = 0xFE,	/* Logical OR of three variables */
} BDD_TernOp;

/*
 * Quantifiers for use with BDD's
 */
typedef enum BDD_Quantifier {
    BDD_QUANT_FORALL = BDD_BINOP_AND,
    BDD_QUANT_EXISTS = BDD_BINOP_OR,
} BDD_Quantifier;

Changes to generic/bddInt.h.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
..
62
63
64
65
66
67
68
69



70
71
72
73
74
75
76
..
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#pragma once
#ifndef BDDINT_H_INCLUDED
#define BDDINT_H_INCLUDED 1

#include "bdd.h"

typedef struct Bead Bead;
typedef struct UIHash1 UIHash1;
typedef struct UIEntry1 UIEntry1;
typedef struct UIHash1MP UIHash1MP;
typedef struct UIEntry1MP UIEntry1MP;
typedef struct UIHash2 UIHash2;
typedef struct UIEntry2 UIEntry2;
typedef struct UIHash2 UIHash3;
typedef struct UIEntry2 UIEntry3;

/*
 * Structure that holds all the data for a system of Binary Decision Diagrams
 * (BDD's).
 *
................................................................................
 * Structure that manages the state of an AllSat computation
 */
struct BDD_AllSatState {
    BDD_System* sysPtr;		/* System of BDD's */
    BDD_BeadIndex* uStack;	/* Stack of beads from the root to the current
				 * point */
    unsigned char* sStack;	/* Stack of state at each bead */
    BDD_ValueAssignment* v;	/* Incomplete satisfying assignment */



    BDD_VariableIndex depth;	/* Stack depth of the three stacks */
};

/*
 * Structure that represents a single bead in a BDD 
 */
struct Bead {
................................................................................
    BDD_BeadIndex next;		/* Index of the next bead in the same
				 * hash bucket as this bead. */
    BDD_BeadIndex refCount;	/* Reference count of this bead */
    BDD_VariableIndex level;	/* Level in the diagram (in other words,
				 * the index of the variable being examined) */
};

/*
 * Structure that represents a hash table with a key comprising a single
 * unsigned integer and a value consisting of a single unsigned integer
 */
struct UIHash1 {
    UIEntry1MP* entries;	/* Array of hashtable entries */
    BDD_BeadIndex* hashes;	/* Array of heads of hash buckets */
    BDD_BeadIndex unusedEntry;	/* Index of the last unused entry */
    BDD_BeadIndex entriesAlloc;	/* Count of allocated entries */
    BDD_BeadIndex hashSize;	/* Count of allocated buckets */
};

/*
 * Structure that represents a single hash entry in a UIHash1
 */
struct UIEntry1 {
    BDD_BeadIndex key;		/* Key */
    BDD_BeadIndex next;		/* Next hash entry in the same bucket */
    BDD_BeadIndex value;	/* Value */
};

/*
 * Structure that represents a hash table with a key comprising a single
 * unsigned integer and a value consisting of a single mp_int
 */
struct UIHash1MP {
    UIEntry1MP* entries;	/* Array of hashtable entries */
    BDD_BeadIndex* hashes;	/* Array of heads of hash buckets */
    BDD_BeadIndex unusedEntry;	/* Index of the last unused entry */
    BDD_BeadIndex entriesAlloc;	/* Count of allocated entries */
    BDD_BeadIndex hashSize;	/* Count of allocated buckets */
};

/*
 * Structure that represents a single hash entry in a UIHash1MP
 */
struct UIEntry1MP {
    BDD_BeadIndex key;		/* Key */
    BDD_BeadIndex next;		/* Next hash entry in the same bucket */
    mp_int value;		/* Value */
};

/*
 * Structure that represents a hash table with a key comprising two
 * unsigned integers and a value consisting of a single one.
 */
struct UIHash2 {
    UIEntry2* entries;		/* Array of hashtable entries */
    BDD_BeadIndex* hashes;	/* Array of heads of hash buckets */
    BDD_BeadIndex unusedEntry;	/* Index of the last unused entry */
    BDD_BeadIndex entriesAlloc;	/* Count of allocated entries */
    BDD_BeadIndex hashSize;	/* Count of allocated buckets */
};

/*
 * Structure that represents a single hash entry in a UIHash2 
 */
struct UIEntry2 {
    BDD_BeadIndex key1;		/* First component of key */
    BDD_BeadIndex key2;		/* Second component of key */
    BDD_BeadIndex next;		/* Next hash entry in the same bucket */
    BDD_BeadIndex value;	/* Value */
};

#endif 


/*
 * Local Variables:
 * mode: c
 * c-basic-offset: 4
 * End:
 */







<
<
<
<
<
<







 







|
>
>
>







 







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<









1
2
3
4
5
6
7






8
9
10
11
12
13
14
..
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
..
78
79
80
81
82
83
84
































































85
86
87
88
89
90
91
92
93
#pragma once
#ifndef BDDINT_H_INCLUDED
#define BDDINT_H_INCLUDED 1

#include "bdd.h"

typedef struct Bead Bead;






typedef struct UIHash2 UIHash3;
typedef struct UIEntry2 UIEntry3;

/*
 * Structure that holds all the data for a system of Binary Decision Diagrams
 * (BDD's).
 *
................................................................................
 * Structure that manages the state of an AllSat computation
 */
struct BDD_AllSatState {
    BDD_System* sysPtr;		/* System of BDD's */
    BDD_BeadIndex* uStack;	/* Stack of beads from the root to the current
				 * point */
    unsigned char* sStack;	/* Stack of state at each bead */
    BDD_ValueAssignment* v;	/* Incomplete satisfying assignment.
				 * This array is of the same size as the
				 * stack depth and traces the choice of
				 * variable and value at each level. */
    BDD_VariableIndex depth;	/* Stack depth of the three stacks */
};

/*
 * Structure that represents a single bead in a BDD 
 */
struct Bead {
................................................................................
    BDD_BeadIndex next;		/* Index of the next bead in the same
				 * hash bucket as this bead. */
    BDD_BeadIndex refCount;	/* Reference count of this bead */
    BDD_VariableIndex level;	/* Level in the diagram (in other words,
				 * the index of the variable being examined) */
};

































































#endif 


/*
 * Local Variables:
 * mode: c
 * c-basic-offset: 4
 * End:
 */

Changes to generic/tclBdd.c.

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
...
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
...
766
767
768
769
770
771
772




773
774
775
776
777
778
779
...
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
const char* LiteralValues[] = {
    "0",
    "1",
    "::bdd::system",
    NULL
};
enum LiteralIndex {
    LIT_0,
    LIT_1,
    LIT_BDD_SYSTEM,
    LIT__END
};

/*
 * Structure that holds per-interpreter data for the ODBC package.
 */

typedef struct PerInterpData {
    int refCount;		 /* Reference count */
    Tcl_Obj* literals[LIT__END]; /* Literal pool */
} PerInterpData;
#define IncrPerInterpRefCount(x)  \
................................................................................
    { "~",         &BddSystemNegateMethodType,    NULL },
    { NULL,	   NULL,                         NULL }
};
 
/*
 *-----------------------------------------------------------------------------
 *
 * Bdd_Init --
 *
 *	Initialize the 'bdd' package
 *
 * Results:
 *	Returns a standard Tcl result
 *
 * Side effects:
 *	Commands are created to manage BDD's.
 *
 *-----------------------------------------------------------------------------
 */

int
Bdd_Init(Tcl_Interp* interp)
{

    PerInterpData* pidata;	/* Per-interpreter data for the package */
    Tcl_Obj** literals;		/* Literal pool */
    Tcl_Object curClassObject;	/* Tcl_Object representing a class being
				   initialized */
    Tcl_Class curClass;		/* Tcl_Class representing a class being
................................................................................
ForeachSatPre(
    Tcl_Interp* interp,		/* Tcl interpreter */
    BddSystemData* sdata,	/* System of BDD's */
    Tcl_Obj* varName,		/* Name of the loop variable */
    Tcl_Obj* script,		/* Loop body */
    BDD_AllSatState* stateVector) /* State vector for the enumeration */
{




    BDD_ValueAssignment* v;	/* Value assignments for the current
				 * satisfier */
    BDD_VariableIndex n;	/* Count of value assignments */
    Tcl_Obj* sat;		/* Satisfying values */
    BDD_VariableIndex i;

    /*
................................................................................
    /*
     * Make a satisfying assignment
     */
    sat = Tcl_NewObj();
    for (i = 0; i < n; ++i) {
	Tcl_ListObjAppendElement(NULL, sat,
				 Tcl_NewWideIntObj((Tcl_WideInt) v[i].var));
	Tcl_ListObjAppendElement(NULL, sat,
				 Tcl_NewBooleanObj((int) v[i].value));
    }
    Tcl_IncrRefCount(sat);

    /*
     * Stash the satisfying assignment in the loop variable
     */
    if (Tcl_ObjSetVar2(interp, varName, NULL, sat, TCL_LEAVE_ERR_MSG) == NULL) {







|
|





|







 







|













|







 







>
>
>
>







 







|
<







24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
...
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
...
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
...
792
793
794
795
796
797
798
799

800
801
802
803
804
805
806
const char* LiteralValues[] = {
    "0",
    "1",
    "::bdd::system",
    NULL
};
enum LiteralIndex {
    LIT_0 = 0,
    LIT_1 = 1,
    LIT_BDD_SYSTEM,
    LIT__END
};

/*
 * Structure that holds per-interpreter data for the tclbdd package.
 */

typedef struct PerInterpData {
    int refCount;		 /* Reference count */
    Tcl_Obj* literals[LIT__END]; /* Literal pool */
} PerInterpData;
#define IncrPerInterpRefCount(x)  \
................................................................................
    { "~",         &BddSystemNegateMethodType,    NULL },
    { NULL,	   NULL,                         NULL }
};
 
/*
 *-----------------------------------------------------------------------------
 *
 * Tclbdd_Init --
 *
 *	Initialize the 'bdd' package
 *
 * Results:
 *	Returns a standard Tcl result
 *
 * Side effects:
 *	Commands are created to manage BDD's.
 *
 *-----------------------------------------------------------------------------
 */

int
Tclbdd_Init(Tcl_Interp* interp)
{

    PerInterpData* pidata;	/* Per-interpreter data for the package */
    Tcl_Obj** literals;		/* Literal pool */
    Tcl_Object curClassObject;	/* Tcl_Object representing a class being
				   initialized */
    Tcl_Class curClass;		/* Tcl_Class representing a class being
................................................................................
ForeachSatPre(
    Tcl_Interp* interp,		/* Tcl interpreter */
    BddSystemData* sdata,	/* System of BDD's */
    Tcl_Obj* varName,		/* Name of the loop variable */
    Tcl_Obj* script,		/* Loop body */
    BDD_AllSatState* stateVector) /* State vector for the enumeration */
{
    PerInterpData* pidata = sdata->pidata;
				/* Per-interpreter data */
    Tcl_Obj** literals = pidata->literals;
				/* Literal pool */
    BDD_ValueAssignment* v;	/* Value assignments for the current
				 * satisfier */
    BDD_VariableIndex n;	/* Count of value assignments */
    Tcl_Obj* sat;		/* Satisfying values */
    BDD_VariableIndex i;

    /*
................................................................................
    /*
     * Make a satisfying assignment
     */
    sat = Tcl_NewObj();
    for (i = 0; i < n; ++i) {
	Tcl_ListObjAppendElement(NULL, sat,
				 Tcl_NewWideIntObj((Tcl_WideInt) v[i].var));
	Tcl_ListObjAppendElement(NULL, sat, literals[v[i].value]);

    }
    Tcl_IncrRefCount(sat);

    /*
     * Stash the satisfying assignment in the loop variable
     */
    if (Tcl_ObjSetVar2(interp, varName, NULL, sat, TCL_LEAVE_ERR_MSG) == NULL) {

Changes to tests/bdd.test.

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#       Tests for convenience commands in TDBC
#
# Copyright (c) 2013 by Kevin B. Kenny.

package require tcltest 2
namespace import -force ::tcltest::*
tcltest::loadTestedCommands
package require bdd

proc evdump {dump nvars node truth varindex} {
    if {$node < 2} {
	return $node
    }
    set v [expr {$truth & 1}]
    set truth [expr {$truth >> 1}]







|







3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#       Tests for convenience commands in TDBC
#
# Copyright (c) 2013 by Kevin B. Kenny.

package require tcltest 2
namespace import -force ::tcltest::*
tcltest::loadTestedCommands
package require tclbdd

proc evdump {dump nvars node truth varindex} {
    if {$node < 2} {
	return $node
    }
    set v [expr {$truth & 1}]
    set truth [expr {$truth >> 1}]