From 9636715a5e06c8c174fd44cbf2847c4a8d2a87c7 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Thu, 16 Oct 2008 08:57:52 +0000 Subject: * interp/i-spec1.boot (categoryImplies): New. (evalCategory): Use it. --- configure | 18 +++++++++--------- configure.ac | 2 +- configure.ac.pamphlet | 2 +- src/ChangeLog | 5 +++++ src/interp/i-spec1.boot | 19 ++++++++++++++++++- 5 files changed, 34 insertions(+), 12 deletions(-) diff --git a/configure b/configure index 8c9ffd2a..1a231708 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.60 for OpenAxiom 1.3.0-2008-10-15. +# Generated by GNU Autoconf 2.60 for OpenAxiom 1.3.0-2008-10-16. # # Report bugs to . # @@ -713,8 +713,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='OpenAxiom' PACKAGE_TARNAME='openaxiom' -PACKAGE_VERSION='1.3.0-2008-10-15' -PACKAGE_STRING='OpenAxiom 1.3.0-2008-10-15' +PACKAGE_VERSION='1.3.0-2008-10-16' +PACKAGE_STRING='OpenAxiom 1.3.0-2008-10-16' PACKAGE_BUGREPORT='open-axiom-bugs@lists.sf.net' ac_unique_file="src/Makefile.pamphlet" @@ -1404,7 +1404,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.3.0-2008-10-15 to adapt to many kinds of systems. +\`configure' configures OpenAxiom 1.3.0-2008-10-16 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1474,7 +1474,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of OpenAxiom 1.3.0-2008-10-15:";; + short | recursive ) echo "Configuration of OpenAxiom 1.3.0-2008-10-16:";; esac cat <<\_ACEOF @@ -1578,7 +1578,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -OpenAxiom configure 1.3.0-2008-10-15 +OpenAxiom configure 1.3.0-2008-10-16 generated by GNU Autoconf 2.60 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1592,7 +1592,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.3.0-2008-10-15, which was +It was created by OpenAxiom $as_me 1.3.0-2008-10-16, which was generated by GNU Autoconf 2.60. Invocation command line was $ $0 $@ @@ -26097,7 +26097,7 @@ exec 6>&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.3.0-2008-10-15, which was +This file was extended by OpenAxiom $as_me 1.3.0-2008-10-16, which was generated by GNU Autoconf 2.60. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -26146,7 +26146,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -OpenAxiom config.status 1.3.0-2008-10-15 +OpenAxiom config.status 1.3.0-2008-10-16 configured by $0, generated by GNU Autoconf 2.60, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.ac b/configure.ac index 94f8297c..e09ffafa 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom], [1.3.0-2008-10-15], +AC_INIT([OpenAxiom], [1.3.0-2008-10-16], [open-axiom-bugs@lists.sf.net]) AC_CONFIG_AUX_DIR(config) diff --git a/configure.ac.pamphlet b/configure.ac.pamphlet index 99039bd7..5631cbcf 100644 --- a/configure.ac.pamphlet +++ b/configure.ac.pamphlet @@ -1126,7 +1126,7 @@ information: <>= sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom], [1.3.0-2008-10-15], +AC_INIT([OpenAxiom], [1.3.0-2008-10-16], [open-axiom-bugs@lists.sf.net]) @ diff --git a/src/ChangeLog b/src/ChangeLog index ea652e11..ad42b989 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2008-10-16 Gabriel Dos Reis + + * interp/i-spec1.boot (categoryImplies): New. + (evalCategory): Use it. + 2008-10-15 Waldek Hebisch Fix AW/101 diff --git a/src/interp/i-spec1.boot b/src/interp/i-spec1.boot index cec4db2b..ee6d9787 100644 --- a/src/interp/i-spec1.boot +++ b/src/interp/i-spec1.boot @@ -1201,9 +1201,26 @@ isDomainValuedVariable form == objValUnwrap(val) nil + +++ returns true if category form `c1' implies category form `c2'. +++ Both are assumed to be definite categories, i.e. they contain +++ no variables. +categoryImplies(c1,c2) == + c2 = $Type => true + c1 is ["Join",:cats] => + or/[categoryImplies(c,c2) for c in cats] => true + c1 = c2 + -- ??? Should also check conditional definition and + -- ??? possibly attributes + +++ returns true if domain `d' satisfies category `c'. evalCategory(d,c) == -- tests whether domain d has category c - isPartialMode d or ofCategory(d,c) + isPartialMode d => true -- maybe too generous + -- If this is a local variable then, its declared type + -- must imply category `c' satisfaction. + IDENTP d and (m := getmode(d,$env)) => categoryImplies(m,c) + ofCategory(d,c) isOkInterpMode m == isPartialMode(m) => isLegitimateMode(m,nil,nil) -- cgit v1.2.3