Index: README.txt ================================================================== --- README.txt +++ README.txt @@ -1,6 +1,6 @@ -Object Oriented Programming Package for Tcl (TclOO) Version 0.7 +Object Oriented Programming Package for Tcl (TclOO) Version 1.0 Copyright 2005-2012 Donal K. Fellows License ======= @@ -10,15 +10,16 @@ which you received this file. Building ======== -TclOO 0.7 uses the TEA3 build system. These instructions are known to work +TclOO 1.0 uses the TEA3 build system. These instructions are known to work on Linux, OSX and Windows (with msys installed). 1) Make sure you have a source distribution of Tcl 8.5 somewhere; you will - need it to build TclOO. + need it to build TclOO. (Note that this functionality is incorporated + directly into Tcl 8.6; you do not need this package with that version.) 2) Run the configure shell script in this directory. You may well want to use the --with-tcl option to tell the script where to find Tcl's build descriptor. Using the --prefix option to specify where to install the built version is also often useful. @@ -64,33 +65,18 @@ for {set i 1} {$i <= 10} {incr i} { puts "Add $i to get [$sum add $i]" } summation destroy -Significant Changes from 0.6 Release +Significant Changes from 0.7 Release ==================================== -* Small changes that improve things substantially: - * Forwarded methods resolve in the object's namespace. - * Added [info object namespace] to get an object's namespace. - * Added Tcl_GetObjectName() for fetching the name of an object. - TIP #354 -* Made "varname" method work with array elements. -* Added [info object methodtype] and [info class methodtype]. -* Converted configuration of lists of things in classes and objects to work as - slots, implemented as instances of [oo::Slot] class. - TIP #380 -* Added introspection of call chains and [nextto] for "skipping ahead" in the - call chain (useful in "diamond inheritance" situations). - TIP #381 -* Improved the [oo::copy] mechanism to allow greater user control. - TIP #397 +None. Just documentation corrections. Compatibility Warnings ====================== Names of classes, methods or variables that begin with a hyphen can now cause issues with some definitions (i.e., they are reserved to slotted operations). -The fix is to precede the name with a "--" argument in the problem definition. - -The syntax and semantics of the method called "" are now defined. +The fix is to precede the name with a "--" argument in the problem definition; +see the [oo::define] documentation for the affected definitions. -Some types in the C API have changed from 0.6 to better match the Tcl style of -doing things. ABI compatibility is maintained. +Method names that are proper multi-element lists are reserved for future +functionality. Index: configure ================================================================== --- configure +++ configure @@ -1,9 +1,8 @@ #! /bin/sh -# From configure.in Revision: 1.41 . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for TclOO 0.7. +# Generated by GNU Autoconf 2.61 for TclOO 1.0. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. @@ -571,12 +570,12 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='TclOO' PACKAGE_TARNAME='tcloo' -PACKAGE_VERSION='0.7' -PACKAGE_STRING='TclOO 0.7' +PACKAGE_VERSION='1.0' +PACKAGE_STRING='TclOO 1.0' PACKAGE_BUGREPORT='' # Factoring default headers for most tests. ac_includes_default="\ #include @@ -1237,11 +1236,11 @@ # 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 TclOO 0.7 to adapt to many kinds of systems. +\`configure' configures TclOO 1.0 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. @@ -1298,11 +1297,11 @@ _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of TclOO 0.7:";; + short | recursive ) echo "Configuration of TclOO 1.0:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) @@ -1396,11 +1395,11 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -TclOO configure 0.7 +TclOO configure 1.0 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -1410,11 +1409,11 @@ fi 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 TclOO $as_me 0.7, which was +It was created by TclOO $as_me 1.0, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _ACEOF @@ -11123,11 +11122,11 @@ # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by TclOO $as_me 0.7, which was +This file was extended by TclOO $as_me 1.0, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS @@ -11172,11 +11171,11 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -TclOO config.status 0.7 +TclOO config.status 1.0 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation Index: configure.in ================================================================== --- configure.in +++ configure.in @@ -1,14 +1,13 @@ -AC_REVISION($Revision: 1.41 $) dnl# dnl# When changing the version number, you *must* change the following: dnl# generic/tclOO.h, tests/oo.test, tests/ooNext2.test dnl# dnl# You should also change the following: dnl# README.txt, win/TclOO.rc dnl# -AC_INIT([TclOO],[0.7]) +AC_INIT([TclOO],[1.0]) AC_CONFIG_AUX_DIR(tclconfig) AC_CONFIG_HEADERS(config.h) TEA_INIT([3.9]) TEA_PATH_TCLCONFIG Index: generic/tclOO.h ================================================================== --- generic/tclOO.h +++ generic/tclOO.h @@ -30,11 +30,11 @@ /* * Must match version at top of ../configure.in */ -#define TCLOO_VERSION "0.7" +#define TCLOO_VERSION "1.0" #define TCLOO_PATCHLEVEL TCLOO_VERSION /* * These are opaque types. */ Index: generic/tclOODefineCmds.c ================================================================== --- generic/tclOODefineCmds.c +++ generic/tclOODefineCmds.c @@ -2203,11 +2203,11 @@ int created, n; Tcl_HashTable uniqueTable; Tcl_InitObjHashTable(&uniqueTable); for (i=n=0 ; iclassPtr->variables.list[n++] = varv[i]; } else { Tcl_DecrRefCount(varv[i]); } @@ -2449,11 +2449,11 @@ int created, n; Tcl_HashTable uniqueTable; Tcl_InitObjHashTable(&uniqueTable); for (i=n=0 ; ivariables.list[n++] = varv[i]; } else { Tcl_DecrRefCount(varv[i]); } Index: tests/oo.test ================================================================== --- tests/oo.test +++ tests/oo.test @@ -6,12 +6,12 @@ # # See the file "license.terms" for information on usage and redistribution of # this file, and for a DISCLAIMER OF ALL WARRANTIES. # -package require -exact TclOO 0.7 ;# Must match value in configure.in -if {[lsearch [namespace children] ::tcltest] == -1} { +package require TclOO 1.0 ;# Should match value in configure.in +if {"::tcltest" ni [namespace children]} { package require tcltest 2 namespace import -force ::tcltest::* } testConstraint memory [llength [info commands memory]] Index: tests/ooNext2.test ================================================================== --- tests/ooNext2.test +++ tests/ooNext2.test @@ -6,12 +6,12 @@ # # See the file "license.terms" for information on usage and redistribution of # this file, and for a DISCLAIMER OF ALL WARRANTIES. # -package require -exact TclOO 0.7 ;# Must match value in configure.in -if {[lsearch [namespace children] ::tcltest] == -1} { +package require TclOO 1.0 ;# Should match value in configure.in +if {"::tcltest" ni [namespace children]} { package require tcltest 2 namespace import -force ::tcltest::* } testConstraint memory [llength [info commands memory]] Index: win/TclOO.rc ================================================================== --- win/TclOO.rc +++ win/TclOO.rc @@ -4,12 +4,12 @@ #define BETA 1 #define RELEASE 2 LANGUAGE 0x9, 0x2 VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,7,RELEASE,0 - PRODUCTVERSION 0,7,RELEASE,0 + FILEVERSION 1,0,RELEASE,0 + PRODUCTVERSION 1,0,RELEASE,0 FILEFLAGSMASK 0x3fL #ifdef DEBUG FILEFLAGS VS_FF_DEBUG #else FILEFLAGS 0x0L @@ -26,11 +26,11 @@ VALUE "OriginalFilename", PKG_LIB_FILE VALUE "InternalName", PACKAGE_NAME VALUE "Author", "Donal K. Fellows" VALUE "CompanyName", "Tcl Core Team" VALUE "FileVersion", PACKAGE_VERSION - VALUE "LegalCopyright", "Copyright \251 2005-2008 by Donal K. Fellows" + VALUE "LegalCopyright", "Copyright \251 2005-2012 by Donal K. Fellows" VALUE "ProductName", "Object Orientation Extension Package for Tcl" VALUE "ProductVersion", PACKAGE_VERSION END END BLOCK "VarFileInfo"