Index: .gitignore =================================================================== diff -u -rc6a4d70c3d408c0ee4698e67043ef9c8e3f1c1db -r2111020b49da8ce57758e51accf0b6073037f0d2 --- .gitignore (.../.gitignore) (revision c6a4d70c3d408c0ee4698e67043ef9c8e3f1c1db) +++ .gitignore (.../.gitignore) (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -7,3 +7,5 @@ xotclsh pkgIndex.tcl Makefile +xotclConfig.sh +CVS Index: COPYRIGHT =================================================================== diff -u -rc72f9f638677608fab1502cd696c8f2d6b2952f9 -r2111020b49da8ce57758e51accf0b6073037f0d2 --- COPYRIGHT (.../COPYRIGHT) (revision c72f9f638677608fab1502cd696c8f2d6b2952f9) +++ COPYRIGHT (.../COPYRIGHT) (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -1,6 +1,6 @@ * XOTcl - Extended OTcl * - * Copyright (C) 1999-2001 Gustaf Neumann (a), Uwe Zdun (b) + * Copyright (C) 1999-2008 Gustaf Neumann (a), Uwe Zdun (b) * * (a) Vienna University of Economics and Business Administration * Dept. of Information Systems / New Media Index: ChangeLog =================================================================== diff -u -r4dd2595d98574faaac87f5dd33b542516fdff5df -r2111020b49da8ce57758e51accf0b6073037f0d2 --- ChangeLog (.../ChangeLog) (revision 4dd2595d98574faaac87f5dd33b542516fdff5df) +++ ChangeLog (.../ChangeLog) (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -1,3 +1,346 @@ +Method ::xotcl::Object->__exitHandler became ::xotcl::__exitHandler + +2009-06-14 + - fixed potential access to deleted command list item in + FilterSearchAgain() + - fixed potential access deleted xotcl object by switching order + in a condition + - some minor cleanup for configuration flags + +2009-03-19 + * Release of XOTcl 1.6.3 + +2009-03-19 + - removed references to 1.6.2 + +2009-03-04 + - re-enable small optimization + - factor out common code + - fix compatibility with Tcl 8.4 + - bump version number to 1.6.3 + +2009-03-03 + - simplify semantics of MixinSeekCurrent and FilterSeekCurrent, improve speed + - remove necessity to have tclCompile.h + - improve documentation + +2009-03-02 + - some small performance improvements (use CreateHashEntry instead + of FindHashEntry, remove unneded argument, improve order of long + and expressions) + - some code cleanup + - new methods, when compiled with tcl 8.5; + + MakeProcError (producing error messages from xotcl methods) + + PushProcCallFrame (compile method to byte-code) + The new support allows to call code at the begin of a proc + without using the old approach based on :xotcl::initProcNS + +2009-02-19 + - add comments to var resolution tests for objects without namespaces + - fixed reference counting + - removed temporary hacks + - added CONST to several functions + - added relative namespace handling + +2009-02-18 , sobernig@wu-wien.ac.at + - added Stefan's work for namespace resolvers + - fixed a memory leak for "obj exists" due to the changes + - found another memory leak, when e.g. "::info" is added as an + alias and "info exists" is tested against non-existing vars + +2009-01-19 + - Finish work on deletion of user-metaclasses + - commenting existing and potential usage of namespace resolvers + +2008-12-01 + * Correct deletion of user-metaclasses: Deletion of + user-metaclasses could lead to undestroyable objects, since the + instances of the user-metaclasses were reclassed to + ::xotcl::Object instead of ::xotcl::Class. + * extend regression test for such situations + +2008-11-02 + * Release of XOTcl 1.6.2 + +2008-11-01 + * added command ::xotcl::finalize + + This command has the only purpose to delete all objects and classes + of an interpreter in a multi-threaded environment at a safe time. + + Background: when XOTcl is used in a threaded environment such as + for example in AOLserver, one has to take care that the deletion + of objects and classes happens in a safe environment, where the + XOTcl destructors (destroy methods) are still able to + run. Without ::xotcl::finalize the deletion happens in + Tcl_FinalizeThread(), after thread cleanup (where e.g. the + thread local storage is freed). This can lead to memory leaks in + AOLserver, which allocates e.g. some structures on demand, but + since this happens after cleanup, it will leak. A simple ns_log + in a destructor might lead to this problem. The solution is to + call ::xotcl::finalize in the "delete trace" in AOLserver (as it + happens in OpenACS). + + Note, that ::xotcl::finalize is not intended for application programs. + + * some code cleanup + +2008-10-17 + + * handle nonposargs in method "copy" properly + + * extend regression test for copy + + * added " mixinof -closure ?pattern?" + Query the objects for which is used as a per-object-mixin + (directly or indirectly) + + * extended regression test for mixinof + + * updated documentation + +2008-09-11 + * Implement proper downgrading of Classes to Objects: + + In cases where a class ::C is created, which is later downgraded + to an object ::C (either via "::C class ::xotcl::Object" or via + "::xotcl::Object ::C"), earlier versions of XOTcl were to + liberal. The major problem is to invalidate all places, where + ::C might be used as a class, and were only classes are allowed + (e.g. mixin chains, precedence orders). + + The new version does not allow downgrading via the class method + and does a destroy/create instead of a recreate when a + same-named class existed before. + + * reset mixin order for per-object mixins, when the superclass + of a class is deleted, which is used as per-object mixin + + * extended regression test + * Updating and improving documentation + +2008-06-24 + * Release of XOTcl 1.6.1 + +2008-06-23 + * remove pattern argument from "info class" + * additional argument for "info precedence": "-intrinsic" + Syntax: + info precedence ?-intrinsic? ?pattern? + If "-intrinsic" is specified, only the classes of the + superclass type hierarchy are returnd. Otherwise, + the precedence contains mixin classes as well. + * Check results for guards to be boolean instead + of int (now, guards are allowed to return e.g. "true") + +2008-05-30 + * updating language reference + + * Fix contents for %proc in forwarders in cases, + where the forwarder was called via next and + the argument list for next was provided. + Previously, "next" was used for %proc. + +2008-05-28 + * make "info (inst)?forward -definition name" more robust (provide an + error message, if is not given + * New info subcommands "info parametercmd" + and "info instparametercmd" + * export *parametercmds in Serializer, use "-noinit" on slots as well + +2008-05-26 + * fixed bug in info instdefault, when the given argument name + is an empty string. Example: + X info instdefault crash "" var + +2008-05-09 + * used catch in the deprecated package xotcl::upvar-compat + as suggested by Jeff Hobbs + +2008-03-18 + * allowed "abstract method" in additon to "abstract instproc" + and "abstract proc" + +2008-02-26 + * xotcl.c: The double ;; chokes MSVC6 in the next line. + (many thanks for Andreas Kupries for reporting) + +2008-02-25 + * Fix for "x configure -set"; many thanks to + Rene Zamseil for reporting. + +2008-02-24 + * Release of XOTcl 1.6.0 + +2008-02-22: + * Update of documentation + +2008-02-21: + * Clear XOTCL_MIXIN_ORDER_VALID flag unconditionally + in MixinInvalidateObjOrders() for mixins (Neophytos + had problems in naviserver; many thanks for reporting!) + +2008-02-21: + + * Replaced Tcl_ObjSetVar2() with Tcl_SetVar2Ex() in nonposargs, + since Tcl 8.5 seemed to optimize local variables away, if these + not referenced directly from from Tcl. + + Tcl 8.5 seems to optimize proc-local variables away, which are not + directly referenced by the Tcl proc body. In the following + example, "ot" is set from C (via nonposargs, previously via + Tcl_ObjSetVar2()) and consumed via C (from the db-driver, using + :ot). + + SomeClass instproc foo {-ot} { + #ns_log notice ot=$ot + return [db_string [my qn check_type] { + select 1 from acs_object_types where object_type = :ot + } -default 0] + } + + When the logging command is added, the statement works fine. When + the logging command was deactivated, the variable ot was not seen + from the consumer. By changing the variable setting command to + Tcl_SetVar2Ex(), it works fine. + +2008-02-08: + * New info option "-closure" for "info instmixin" with + -guards and -closure support + + * Extended test cases for "info instmixin" + +2008-02-06: + * Continued with info orthogonality change + + info mixin ?pattern? + info instmixin ?pattern? + + ?pattern? behaves exactly like in the change of two days + ago. Preceding colons in the name of the queried class are not + required. + + * In all mentioned calls, where pattern refers to an object/class + and it contains wild-cards, a preceding :: is added automatically + to the search pattern, if it is missing. Since all object names + start with ::, an omitted leading :: in a search pattern is an + obvious mistake + + * Made the behavior "pattern" in the following calls identical + concerning wild cards and object lookups + + mixin delete pattern + instmixin delete pattern + superclass delete pattern + + * extended regresson test + +2008-02-05: + + * fix getAllClassMixinsOf to handle combinations of transitive per + class mixins and inheriting per-class mixin via the class + hierarchy, removed getAllSubClasses + + * extend test cases + +2008-02-04: + * Potential incompatibility: + provide a uniform interface to the following info subcommands + + info superclass ?-closure? ?pattern? + info subclass ?-closure? ?pattern? + info instances ?-closure? ?pattern? + info instmixinof ?-closure? ?pattern? + info mixinof ?pattern? + + In cases, where the option "-closure" is defined, the values are + computed transitively. + + In cases, where a pattern is specified, and the pattern contains + meta-characters, a list of results is returned matching the + pattern (like "string match"). When no matching value is found, an + empty list is returned. + + In cases, where a pattern is specified, and the pattern contains + no meta-characters, a single value is returned corresponding to + the specified value. The pattern is used to lookup an object or + class, such it is not necessary to provide fully qualified names). + if there is no match, empty is returned. Previously, "info + superclass" and "info subclass" returned a boolean value and + performed always a transitive search. Returning "" is more + consistent and more in line with Tcl. + + By using the option "-closure" one can perform the lookup in the + transitive or in the intransitive sets. + +2008-02-03: + - fix getAllSubClasses + - fix "info mixinof -closure", when pattern was provided + - streamline code (AppendMatchingElement) + - new info option "-closure" for "info instances" (equiv. to + "allinstances", but 5 times faster) + - new info option "-closure" for "info superclass" (equiv. to + "info heritage") + +2008-02-02: + - Improving regression test: + + added ::xotcl::test::case + + shortened output + - Makefile.in: added missing src_man_dir + - fixed softcrecreate cases: + * update caches for subclasses of recreated classes + * fixed recreate when it defines different superclasses + * extended test cases for mixinoftest + +2008-02-01: + - new info option "-closure" for "info mixinof" (transitive version) + - process subclasses for getAllClassMixinsOf + +2008-01-23: + + - saving object->id in cl->opt->id (probably a temporary solution) + + - improving reset of affected objects, when (transitive) per class + mixins change + + - extended regression test + +2008-01-07: + - don't call unset traces during an object move (related to fix below) + +2008-01-04: + - preserving var traces when copying objects + (Many thanks to Florian Murr for reporting the bug) + +2008-01-02: + - fixed evaluation context in guard expressions + ([self callingproc] returned "" in cases, where the callingproc + was possible to determine) + +2007-12-28: + - fixed crash for deleted classes in new code (mixinof) + - changed name from MixinResetInstanceOrder() to MixinResetOrderForInstances() + - improving documentation + - made code more local + - activate assertion during development + - changed names + * MixinResetInstanceOrder() -> MixinResetOrderForInstances() + * mixinofs -> isObjectMixinOf + * instmixinofs -> isClassMixinOf + * getAllInstMixinofs -> getAllClassMixinsOf + * RemoveFromMixinofs -> removeFromObjectMixinsOf + * RemoveFromInstmixinsofs -> removeFromClassMixinsOf + +2007-12-28: + - new function from Martin MixinResetInstanceOrder() + - better cleanup when classes are deleted + +2007-12-13: + * fix alias command for aliasing to Tcl procs + +2007-11-09: + * added missing file (install.sh from tclconfig) + 2007-10-30: * change Tcl_ObjSetVar2() to Tcl_SetVar2Ex() to address problem in setting variables from C. @@ -2425,7 +2768,7 @@ * finished polishing mem leaks (thanks to Zoran Vasiljevic again) * disallowed "[self] next" ... next is now only a command * Gdbm,Sdbm,Expat: corrected Makefile.in to rely on - -L$(TCLLIBDIR) (thanks to J�rg Rudnik for the hint) + -L$(TCLLIBDIR) (thanks to Jrg Rudnik for the hint) 2001-10-08 * configure.in: fixes for AOLSERVER to ease configuration Index: Makefile.in =================================================================== diff -u -r46f02e4868e118466d888b35d6b281b3f2ba31ac -r2111020b49da8ce57758e51accf0b6073037f0d2 --- Makefile.in (.../Makefile.in) (revision 46f02e4868e118466d888b35d6b281b3f2ba31ac) +++ Makefile.in (.../Makefile.in) (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -8,8 +8,9 @@ # # Copyright (c) 1999 Scriptics Corporation. # Copyright (c) 2002-2003 ActiveState Corporation. +# Copyright (c) 2001-2008 Gustaf Neumann, Uwe Zdun # -# See the file "license.terms" for information on usage and redistribution +# See the file "tcl-license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # RCS: @(#) $Id: Makefile.in,v 1.21 2006/10/04 20:40:23 neumann Exp $ @@ -22,30 +23,31 @@ #XOTCL_VERSION = @PACKAGE_VERSION@ XOTCL_VERSION = @XOTCL_VERSION@ -src_lib_dir = ${srcdir}/library -src_doc_dir = ${srcdir}/doc -src_test_dir = ${srcdir}/tests -src_app_dir = ${srcdir}/apps -src_generic_dir = ${srcdir}/generic -TCL_LIB_SPEC = @TCL_LIB_SPEC@ -TK_LIB_SPEC = @TK_LIB_SPEC@ -subdirs = @subdirs@ -aol_prefix = @aol_prefix@ +src_lib_dir = ${srcdir}/library +src_doc_dir = ${srcdir}/doc +src_test_dir = ${srcdir}/tests +src_app_dir = ${srcdir}/apps +src_generic_dir = ${srcdir}/generic +src_man_dir = ${srcdir}/man +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TK_LIB_SPEC = @TK_LIB_SPEC@ +subdirs = @subdirs@ +aol_prefix = @aol_prefix@ # Requires native paths -PLATFORM_DIR = `@CYGPATH@ $(srcdir)/@TEA_PLATFORM@` -target_doc_dir = ./doc +PLATFORM_DIR = `@CYGPATH@ $(srcdir)/@TEA_PLATFORM@` +target_doc_dir = ./doc src_lib_dir_native = `@CYGPATH@ ${src_lib_dir}` src_doc_dir_native = `@CYGPATH@ ${src_doc_dir}` src_test_dir_native = `@CYGPATH@ ${src_test_dir}` src_app_dir_native = `@CYGPATH@ ${src_app_dir}` src_generic_dir_native = `@CYGPATH@ ${src_generic_dir}` -libdirs = comm lib serialize @libdirs_actiweb@ -libsrc = COPYRIGHT pkgIndex.tcl -appdirs = comm scripts utils @apps_actiweb@ -appsrc = COPYRIGHT +libdirs = comm lib serialize @libdirs_actiweb@ +libsrc = COPYRIGHT pkgIndex.tcl +appdirs = comm scripts utils @apps_actiweb@ +appsrc = COPYRIGHT DOC_SOURCE = \ $(src_doc_dir)/langRef.xotcl \ @@ -350,7 +352,12 @@ -libdir $(PLATFORM_DIR) $(TESTFLAGS) $(TCLSH) $(src_test_dir_native)/slottest.xotcl \ -libdir $(PLATFORM_DIR) $(TESTFLAGS) + $(TCLSH) $(src_test_dir_native)/mixinoftest.xotcl \ + -libdir $(PLATFORM_DIR) $(TESTFLAGS) + $(TCLSH) $(src_test_dir_native)/varresolutiontest.xotcl \ + -libdir $(PLATFORM_DIR) $(TESTFLAGS) + test-http: $(TCLSH_PROG) $(TCLSH) $(src_test_dir_native)/xocomm.test \ -libdir $(PLATFORM_DIR) $(TESTFLAGS) Index: apps/COPYRIGHT =================================================================== diff -u -rc72f9f638677608fab1502cd696c8f2d6b2952f9 -r2111020b49da8ce57758e51accf0b6073037f0d2 --- apps/COPYRIGHT (.../COPYRIGHT) (revision c72f9f638677608fab1502cd696c8f2d6b2952f9) +++ apps/COPYRIGHT (.../COPYRIGHT) (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -1,6 +1,6 @@ * XOTcl - Extended OTcl * - * Copyright (C) 1999-2001 Gustaf Neumann (a), Uwe Zdun (b) + * Copyright (C) 1999-2008 Gustaf Neumann (a), Uwe Zdun (b) * * (a) Vienna University of Economics and Business Administration * Dept. of Information Systems / New Media Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `apps/utils/xotclsh'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `apps/utils/xowish'. Fisheye: No comparison available. Pass `N' to diff? Index: apps/xml/rdfExample.xotcl =================================================================== diff -u --- apps/xml/rdfExample.xotcl (revision 0) +++ apps/xml/rdfExample.xotcl (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -0,0 +1,76 @@ +#!/usr/bin/env tclsh +# $Id: rdfExample.xotcl,v 1.2 2006/02/18 22:17:33 neumann Exp $ +# +# small Example for usage of xoXML +# +package require XOTcl; namespace import -force xotcl::* +package require xotcl::package +package require xotcl::trace +package require xotcl::rdf::parser +package require xotcl::rdf::recreatorVisitor +package require xotcl::xml::printVisitor + +# +# instantiate parser and parser an example text into a node tree +# +RDFParser x +x parse { + + + + + Mary Andrew + Jacky Crystal + + + + + + + + + + + + + The Coolest Web Page + Il Pagio di Web Fuba + + + + + some text + + + + +} + +proc run {} { + # + # print the node treee to the std output + # + puts ************************************************************************ + puts "Node Tree:" + puts ************************************************************************ + PrintVisitor pv + foreach tn [x info children topNode*] { + pv interpretNodeTree $tn + } + + # + # recreate xml text and print it to the std output + # + puts \n + puts ************************************************************************ + puts "Recreated RDF Text:" + puts ************************************************************************ + RDFRecreatorVisitor rv + foreach tn [x info children topNode*] { + set result [rv interpretNodeTree $tn] + puts $result + } +} +run Index: apps/xml/xmlExample.xotcl =================================================================== diff -u --- apps/xml/xmlExample.xotcl (revision 0) +++ apps/xml/xmlExample.xotcl (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -0,0 +1,115 @@ +#!../../src/xotclsh +# +# small Example for usage of xoXML +package require xotcl::package +package require xotcl::trace +package require xotcl::xml::parser +package require xotcl::xml::recreatorVisitor +package require xotcl::xml::printVisitor + +# +# instantiate parser and parser an example text into a node tree +# +XMLParser x +#x parse { +# + +x parse { + + + a + b + c + + + b + c + + + a + b + c + b + d + + + + + + Mary Andrew + Jacky Crystal + + + + + + + + + + + + + The Coolest Web Page + Il Pagio di Web Fuba + + + + + some text + + + + +} + +proc run {} { + # + # print the node treee to the std output + # + puts ************************************************************************ + puts "Node Tree:" + puts ************************************************************************ + PrintVisitor pv + pv interpretAll x + + # + # recreate xml text and print it to the std output + # + puts \n + puts ************************************************************************ + puts "Recreated XML Text:" + puts ************************************************************************ + XMLRecreatorVisitor rv + puts [rv interpretAll x] + +} +run + +XMLParser y +y parse { + + + + + + + + + + + + + olla + + + + + hallo + + +} +XMLRecreatorVisitor rv +puts [rv interpretAll y] Index: config/mktar.sh =================================================================== diff -u -rc72f9f638677608fab1502cd696c8f2d6b2952f9 -r2111020b49da8ce57758e51accf0b6073037f0d2 --- config/mktar.sh (.../mktar.sh) (revision c72f9f638677608fab1502cd696c8f2d6b2952f9) +++ config/mktar.sh (.../mktar.sh) (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -7,8 +7,8 @@ make distclean cd .. tar zcvf ./$name.tar.gz \ - `find ./$name -type f -o -type l| fgrep -v CVS | fgrep -v SCCS | \ + `find ./$name -type f -o -type l| fgrep -v .git| fgrep -v CVS | fgrep -v SCCS | \ fgrep -v Attic | fgrep -v "autom4te"| fgrep -v "~"|fgrep -v .db | \ - fgrep -v .junk | fgrep -v "#" |fgrep -v .DS_Store| fgrep -v config. | \ + fgrep -v .junk | fgrep -v .orig | fgrep -v "#" |fgrep -v .DS_Store| fgrep -v config. | \ fgrep -v .gdb` Index: configure =================================================================== diff -u -r46f02e4868e118466d888b35d6b281b3f2ba31ac -r2111020b49da8ce57758e51accf0b6073037f0d2 --- configure (.../configure) (revision 46f02e4868e118466d888b35d6b281b3f2ba31ac) +++ configure (.../configure) (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for xotcl 1.6.0. +# Generated by GNU Autoconf 2.59 for xotcl 1.6.3. # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation @@ -267,8 +267,8 @@ # Identity of this package. PACKAGE_NAME='xotcl' PACKAGE_TARNAME='xotcl' -PACKAGE_VERSION='1.6.0' -PACKAGE_STRING='xotcl 1.6.0' +PACKAGE_VERSION='1.6.3' +PACKAGE_STRING='xotcl 1.6.3' PACKAGE_BUGREPORT='' # Factoring default headers for most tests. @@ -777,7 +777,7 @@ # 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 xotcl 1.6.0 to adapt to many kinds of systems. +\`configure' configures xotcl 1.6.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -834,7 +834,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xotcl 1.6.0:";; + short | recursive ) echo "Configuration of xotcl 1.6.3:";; esac cat <<\_ACEOF @@ -979,7 +979,7 @@ test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -xotcl configure 1.6.0 +xotcl configure 1.6.3 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -993,7 +993,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xotcl $as_me 1.6.0, which was +It was created by xotcl $as_me 1.6.3, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1572,7 +1572,7 @@ # do not modify the following lines manually, they are generated with changeXOTclVersion XOTCL_MAJOR_VERSION=1 XOTCL_MINOR_VERSION=6 -XOTCL_RELEASE_LEVEL=.0 +XOTCL_RELEASE_LEVEL=.3 XOTCL_VERSION=${XOTCL_MAJOR_VERSION}.${XOTCL_MINOR_VERSION} NODOT_VERSION=${XOTCL_MAJOR_VERSION}${XOTCL_MINOR_VERSION} @@ -10583,7 +10583,7 @@ } >&5 cat >&5 <<_CSEOF -This file was extended by xotcl $as_me 1.6.0, which was +This file was extended by xotcl $as_me 1.6.3, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -10638,7 +10638,7 @@ cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -xotcl config.status 1.6.0 +xotcl config.status 1.6.3 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" @@ -11260,3 +11260,15 @@ + + + + + + + + + + + + Index: configure.in =================================================================== diff -u -r46f02e4868e118466d888b35d6b281b3f2ba31ac -r2111020b49da8ce57758e51accf0b6073037f0d2 --- configure.in (.../configure.in) (revision 46f02e4868e118466d888b35d6b281b3f2ba31ac) +++ configure.in (.../configure.in) (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -11,7 +11,7 @@ # for this package, and can be a relative path, such as: # #-------------------------------------------------------------------- -define(XOTclVersion, 1.6.0) +define(XOTclVersion, 1.6.3) AC_INIT([xotcl], [XOTclVersion]) #-------------------------------------------------------------------- @@ -104,7 +104,7 @@ # do not modify the following lines manually, they are generated with changeXOTclVersion XOTCL_MAJOR_VERSION=1 XOTCL_MINOR_VERSION=6 -XOTCL_RELEASE_LEVEL=.0 +XOTCL_RELEASE_LEVEL=.3 XOTCL_VERSION=${XOTCL_MAJOR_VERSION}.${XOTCL_MINOR_VERSION} NODOT_VERSION=${XOTCL_MAJOR_VERSION}${XOTCL_MINOR_VERSION} @@ -506,3 +506,15 @@ + + + + + + + + + + + + Index: doc/Announce-1.6.0 =================================================================== diff -u --- doc/Announce-1.6.0 (revision 0) +++ doc/Announce-1.6.0 (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -0,0 +1,105 @@ +Dear XOTcl Community, + +XOTcl 1.6.0 is available. This release provides in short: + - orthogonality improvements for introspection, + - more introspection methods (one can now e.g. query, into which + classes a mixin class is mixed into) and + - performance improvements (some methods are significantly + faster. e.g. by a factor of 1000 for larger systems). + +In addition, the XOTcl source code follows now closer the Tcl +source code guidelines (e.g. variable naming), a few potential +crashes have been fixed. + +See below for more details. +Best regards + +-gustaf neumann + +Announcing XOTcl 1.6.0 +************************* + +We are pleased to announce the availability of XOTcl 1.6.0. + +Major changes relative to 1.5.6 are: + + * Provide a uniform interface to the following info subcommands + + info superclass ?-closure? ?pattern? + info subclass ?-closure? ?pattern? + info instances ?-closure? ?pattern? + info instmixin ?-closure? ?pattern? + + The new option "-closure" returns the transitive set of the + relation (e.g. .. info subclass -closure) returns the subclasses + and the subclasses of the subclasses. For "info instances + -closure" the instances of the subclasses are returned as + well. For more details, please see the language reference manual. + + In cases, where a pattern is specified, and the pattern contains + meta-characters, a list of results is returned matching the + pattern (like "string match"). When no matching value is found, + an empty list is returned. + + In cases, where a pattern is specified, and the pattern contains + no meta-characters, a single value is returned corresponding to + the specified value. The pattern is used to lookup an object or + class, such it is not necessary to provide fully qualified + names). if there is no match, empty is returned. Previously, + "info superclass" and "info subclass" returned a boolean value + and performed always a transitive search. Returning "" is more + consistent and more in line with Tcl. + + Note that " info superclass -closure" is a replacement for + " info heritage", and " info instances -closure" + is a replacement for " allinstances". The old commands + will be marked as deprecated in the near future. + + Please note, that the behavior of the match pattern has + changed and is therefor not completely compatible with + prior versions. + + * New info subcommands: + + info instmixinof ?-closure? ?pattern? + info mixinof ?pattern? + + These info subcommands are used to determine, into + which classes a mixin class was mixed into. + + These inverse functions of mixin and instmixin are used as well + internally. These functions help to speed certain operations + (e.g. superclass, or registering a mixin class) up by a factor of + 1000 (!) or more, when a large number of objects exist. + + This functionality was primarily implemented by Martin Matuska. + Many thanks! + + * Made the behavior "pattern" in the following calls identical + concerning wild cards and object lookups + + mixin delete pattern + instmixin delete pattern + superclass delete pattern + info mixin ?pattern? + + * Fix to preserve var traces when copying objects + (Many thanks to Florian Murr for reporting) + + * Fix problem in Tcl 8.5.* when setting variables + from C (problem with Tcl_ObjSetVar2()?); many + thanks to Florian Murr and Neophytos Demetriou + for reporting) + + * Improved documentation + + * Extended regression tests + + + For more details about the changes, please consult the ChangeLog and + documentation. + +MORE INFO + General and more detailed information about XOTcl and its components + can be found at http://www.xotcl.org + Index: doc/Announce-1.6.1 =================================================================== diff -u --- doc/Announce-1.6.1 (revision 0) +++ doc/Announce-1.6.1 (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -0,0 +1,43 @@ +Dear XOTcl Community, + +XOTcl 1.6.1 is available. This release provides in short: + - improved orthogonality for introspection, + - improvements in the serializer + - some minor fixes + +See below for more details. +Best regards + +-gustaf neumann + + +Announcing XOTcl 1.6.1 +************************* + +We are pleased to announce the availability of XOTcl 1.6.1 + +Major changes relative to 1.6.0 are: + + * Extended and generalized "info" method + + * Generalized serializing package: when deserializing code, now + consistenly no constructors are called. In previous versions, + constuctors were called on slots; due to the point above, this is + not needed; background: the previous solution had problems in + aolserver ns_eval, when a slot-constructor called db-functions, + since during ns_eval, the database handles are non-functional) + + * Fixes for potential crashes when methods were called + with invalid arguments + + * Improved documentation + + * Extended regression tests + + For more details about the changes, please consult the ChangeLog and + documentation. + +MORE INFO + General and more detailed information about XOTcl and its components + can be found at http://www.xotcl.org + Index: doc/Announce-1.6.2 =================================================================== diff -u --- doc/Announce-1.6.2 (revision 0) +++ doc/Announce-1.6.2 (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -0,0 +1,54 @@ +Dear XOTcl Community, + +XOTcl 1.6.2 is available. See below for more details. + +Best regards +-gustaf neumann + + +Announcing XOTcl 1.6.2 +************************* + +We are pleased to announce the availability of XOTcl 1.6.2 + +Major changes relative to 1.6.1 are: + + * Functional extensions: + - handle nonposargs in method "copy" properly + + - new command ::xotcl::finalize + (for forcing cleanup and destuctor execution at a time in + a multi-threaded environment, where it is still safe to execute + all Tcl commands) + + * Extended and generalized "info" method + + - Added " mixinof -closure ?pattern?" + Query the objects for which is used as a per-object-mixin + (directly or indirectly) + + * Fixes for potential crashes + + - Implemented proper downgrading of Classes to Objects (handle + cases, where something was created first as an object and is + reclassed/recreated later as a class) and vice versa + + - Reset mixin order for per-object mixins, when the superclass of + a class is deleted, which is used as per-object mixin + + + * Improved documentation + + * Extended regression tests + + * Some code cleanup + + + + For more details about the changes, please consult the ChangeLog and + documentation. + +MORE INFO + General and more detailed information about XOTcl and its components + can be found at http://www.xotcl.org + Index: doc/Announce-1.6.3 =================================================================== diff -u --- doc/Announce-1.6.3 (revision 0) +++ doc/Announce-1.6.3 (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -0,0 +1,52 @@ +Dear XOTcl Community, + +XOTcl 1.6.3 is available. See below for more details. + +Best regards +Gustaf Neumann + + +Announcing XOTcl 1.6.3 +************************* + +We are pleased to announce the availability of XOTcl 1.6.3 + +Major changes relative to 1.6.2 are: + + * Functional improvements: + + - simplified and generalized handling of namespaced instance + variables, where namespaced associative arrays could conflict + with global variables due to Tcl's default namespace + resolution. Many thanks to Stefan Sobernig for this + contribution! + + * Fixes: + - Corrected deletion of meta-classes. Before, it was possible + to create undestroyable objects via complex + meta-class structures + + * Speed improvements: + - Use of new interfaces in Tcl 8.5 (when compiled with Tcl 8.5) + - simplified interfaces for various C functions + - Speed improvement for method invocation: + * With Tcl 8.5: 10-15 % + * With Tcl 8.4: 5-10 % + + * Improve code quality: + - some more code cleanup + - factoring out common code + - using const in more cases + + * Extended regression tests + + * Improved documentation + + + For more details about the changes, please consult the ChangeLog and + documentation. + +MORE INFO + General and more detailed information about XOTcl and its components + can be found at http://www.xotcl.org + Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/JufGdbmStorage-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/MemStorage-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/MultiStorage-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/Persistence-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/Script-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/Serializer-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/Storage-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/TclGdbmStorage-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/TextFileStorage-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/UNIVERSAL-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/adapter-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/adapterExample-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/changeXOTclVersion-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/composite-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/compositeExample-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/ftp-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/htmllib-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Index: doc/index.html =================================================================== diff -u -rc72f9f638677608fab1502cd696c8f2d6b2952f9 -r2111020b49da8ce57758e51accf0b6073037f0d2 --- doc/index.html (.../index.html) (revision c72f9f638677608fab1502cd696c8f2d6b2952f9) +++ doc/index.html (.../index.html) (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -10,10 +10,11 @@
  • Language Reference (HTML, PDF)
  • If you have question, problems etc. you might check the - archives of the XOTcl - mailing list or you might check the - XOTcl wiki. + mailing list (archive 1, + archive 2) + or you might check the XOTcl section of the + Tcl wiki.

    Package and Script Documentation

    @@ -22,7 +23,7 @@

    Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/langRef-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Index: doc/langRef-xotcl.pdf =================================================================== diff -u -r46f02e4868e118466d888b35d6b281b3f2ba31ac -r2111020b49da8ce57758e51accf0b6073037f0d2 Binary files differ Index: doc/langRef.xotcl =================================================================== diff -u -r46f02e4868e118466d888b35d6b281b3f2ba31ac -r2111020b49da8ce57758e51accf0b6073037f0d2 --- doc/langRef.xotcl (.../langRef.xotcl) (revision 46f02e4868e118466d888b35d6b281b3f2ba31ac) +++ doc/langRef.xotcl (.../langRef.xotcl) (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -1,5 +1,5 @@ # $Id: langRef.xotcl,v 1.14 2006/10/04 20:40:23 neumann Exp $ -package provide XOTcl-langRef 1.5.2 +package provide XOTcl-langRef 1.6.0 package require XOTcl @ @File { @@ -113,18 +113,39 @@ with class definitions (e.g. when used in OpenACS with file watching and reloading). With <@tt>softrecreate set, it is not necessary to recreate dependent subclasses etc. -
    +

    Example: e.g. there is a class hierarchy A <- B <- C Without <@tt>softrecreate set, a reload of B means first a destroy of B, leading to A <- C, and instances of B are re-classed to ::xotcl::Object. When <@tt>softrecreate is set, the structure remains unchanged.

    +
    <@tt>::xotcl::finalize<@/tt>
    +
    Delete all XOTcl objects and classes and free all associated memory. +

    + This command has the only purpose to delete all objects and classes + of an interpreter in a multi-threaded environment at a safe time. +

    + Background: when XOTcl is used in a threaded environment such as + for example in AOLserver, one has to take care that the deletion + of objects and classes happens in a safe environment, where the + XOTcl destructors (destroy methods) are still able to + run. Without ::xotcl::finalize the deletion happens in + Tcl_FinalizeThread(), after thread cleanup (where e.g. the + thread local storage is freed). This can lead to memory leaks in + AOLserver, which allocates e.g. some structures on demand, but + since this happens after cleanup, it will leak. A simple ns_log + in a destructor might lead to this problem. The solution is to + call ::xotcl::finalize in the "delete trace" in AOLserver (as it + happens in OpenACS). +

    + Note, that ::xotcl::finalize is not intended for application programs. +

    + } - date { $Date: 2006/10/04 20:40:23 $ } } ## @@ -257,7 +278,14 @@ The method configure can be called with the dash-notation at arbitrary times: <@pre class='code'> o configure -set x 4 - } + + Note, that if '-' is followed by a numerical, the arument is + interpreted as a negative number (and not as a method). If a + value of a method called this way starts with a "-", the call can + be placed safely into a list (e.g. "Class c [list -strangearg -a-] + -simplearg 2"). +

    See also create. + } return "number of the skipped first arguments" } @@ -515,10 +543,8 @@ <@li><@TT>objName info body method: Returns the body of the specified proc (object specific method). - <@li><@TT>objName info class ?classname?: - Returns the name of the class of the current object, if className was - not specified, otherwise it returns 1 if className matches the - object's class and 0 if not. + <@li><@TT>objName info class: + Returns the name of the class of the current object. <@li><@TT>objName info children ?pattern?: Returns the list of aggregated objects with fully qualified names if @@ -543,10 +569,14 @@ <@li><@TT>objName info filterguard name: Returns the guards for filter identified by name. - <@li><@TT>objName info forward ?-definition? name: Checks, - whether <@TT>name<@/TT> is a forwarder (accepts wild chard characters). - When <@TT>-definition is specified, it returns the definition - of the forwarder. + <@li><@TT>objName info forward ?-definition name? ?pattern?: + Returns the list of forwarders. One can call this method either + without the optional arguments, or with the <@TT>pattern + or with <@TT>-definition name. When the <@TT>pattern is specified + only the matching forwarders are returned. When the <@TT>definition + option is used together with a name of a forwarder, the definition + of the forwarder with all flags is returned in a way that + can be used e.g. for registering the forwarder on another object. <@li><@TT>objName info hasNamespace: From XOTcl version 0.9 on, namespaces @@ -567,16 +597,26 @@ <@TT>-nocmds only returns procs. Modifier <@TT>-nomixins excludes search on mixins. - <@li><@TT>objName info mixin: Returns the list of mixins - of the object. With <@TT>-order modifier the order of mixins - (whole hierarchy) is printed. + <@li><@TT>objName info mixin ?-order? ?-guard? ?pattern?: + Returns the list of mixins of the object. With <@TT>-order + modifier the order of mixins (whole hierarchy) is printed. If + <@TT>-guard is specified, the mixin guards are returned. + If <@TT>pattern is specified and it contains wildcards, + all matching mixins are returned. If <@TT>pattern does not + contain wildcards, either the fully qualified name is returned, + or empty, if no match exists. <@li><@TT>objName info mixinguard name: Returns the guards for the mixin identified by name. <@li><@TT>objName info nonposargs methodName: Returns non-positional arg list of methodName + <@li><@TT>objName info parametercmd ?pattern?: + Returns a list of registered parametercmds the object + (or empty if there are none). If <@TT>pattern + is specified, only the matching parametercmds are returned. + <@li><@TT>objName info parent: Returns parent object name (or "::" for no parent), in fully qualified form. @@ -591,9 +631,11 @@ defined for the object if <@TT>pattern was not specified, otherwise it returns all procs that match the pattern. - <@li><@TT>objName info precedence ?pattern?: Returns all + <@li><@TT>objName info precedence ?-intrinsic? ?pattern?: Returns all classes in the precedence order from which the specified - object inherits methods. The returned list of classes contains + object inherits methods. If the flag <@TT>-intrinsic is specified + only the intrinsic classes (from the class hierarchy) are specified. + If the flag is not specified, the returned list of classes contains the mixin and instmixin classes as well as the classes of the superclass chain in linearized order (i.e., duplicate classes are removed). If the pattern is specified, only matching classes @@ -942,13 +984,16 @@ ?args? "arguments passed during creation" } { description { - Allocate (create) an uninitialized object or class. Typically, alloc - is called automatically by <@tt>create<@/tt> - to allocate an uninitialized object or class. - In contrast to alloc, <@tt>create<@/tt> also - initializes and configures the object. - The method alloc can be used by a programmer who may want to - create uninitialized objects/classes. + + Allocate an uninitialized XOTcl object or class. Alloc is used by + the method <@tt>create<@/tt> to + allocate the object. Note that <@tt>create<@/tt> also calls as + well configure and init to initialized the + object. Only in seldom cases the programmer may want to suppress + the <@tt>create<@/tt> mechanism and just allocate uninitiaized + objects via <@tt>alloc<@/tt>. + } return "fully qualified name of created instance" } @@ -981,10 +1026,34 @@ with all arguments up to the first '-' argument (as returned by configure). -

    In the default XOTcl definition, the <@tt>create method - is called implicitly by the <@tt>unknown method of the metaclass - Class, when a class (meta-class) is called with an unknown + The method <@tt>create<@/tt> is responsible for allocating and + initializing objects. The method can be overloaded e.g. in a + metaclass if other initialization behavior is wanted. +

    + The standard behavior of <@tt>create<@/tt> is as follows: +

      + +
    1. Call the method <@tt>alloc<@/tt> to + create an uninitialized object. + +
    2. Call the method <@tt>searchDefaults<@/tt> to set default + values for instance attributes- + +
    3. Call the method <@tt>configure<@/tt> to + configure the object with the values provided at object creation + time. The method <@tt>configure<@/tt> interprets the arguments + with leading dashes as method calls. + +
    4. Call the method <@tt>init<@/tt> to + allow initialization by the class. The argument passed to init are the + values from the passed argument list containing the arguments up to the first '-'.<@p> + +
    +

    + superclasses (an set if found). + The <@tt>create method is often called implicitly through the method. E.g. the following two commands are equivalent <@pre class='code'> @@ -1028,9 +1097,14 @@ of the class hierarchy. If pattern is specified, only matching values are returned. - <@li><@TT>ClassName info instances ?pattern?: - Returns a list of the instances of the class. - If pattern is specified, only matching values are returned. + <@li><@TT>ClassName info instances ?-closure? ?pattern?: + Returns a list of the instances of the class. If + <@TT>-closure is specified, the resultet contains as well + the instances of subclasses. If <@TT>pattern is specified + and it contains wildcards, all matching instances are + returned. If <@TT>pattern does not contain wildcards, + either the fully qualified name is returned, or empty, if no + match exists. <@li><@TT>ClassName info instargs method: Returns the arguments of the specified instproc (instance method). @@ -1055,23 +1129,47 @@ <@li><@TT>ClassName info instfilterguard name: Returns the guards for instfilter identified by name. - <@li><@TT>ClassName info instforward ?-definition? name: Checks, - whether <@TT>name<@/TT> is a forwarder (accepts wild chard characters). - When <@TT>-definition is specified, it returns the definition - of the forwarder. + <@li><@TT>objName info instforward ?-definition name? ?pattern?: + Returns the list of instforwarders. One can call this method either + without the optional arguments, or with the <@TT>pattern + or with <@TT>-definition name. When the <@TT>pattern is specified + only the matching instforwarders are returned. When the <@TT>definition + option is used together with a name of a isntforwarder, the definition + of the instforwarder with all flags is returned in a way that + can be used e.g. for registering the instforwarder on another class. <@li><@TT>ClassName info instinvar: Returns class invariants. - <@li><@TT>ClassName info instmixin: - Returns the list of instmixins of this class. + <@li><@TT>ClassName info instmixin ?pattern?: Returns the + list of instmixins of this class. If <@TT>pattern is + specified and it contains wildcards, all matching mixin classes are + returned. If <@TT>pattern does not contain wildcards, + either the fully qualified name is returned, or empty, if no + match exists. + <@li><@TT>ClassName info instmixinof ?-closure? ?pattern?: + Returns the list of classes, into which this class was mixed in + via instmixin. This is the inverse function of <@TT>ClassName + info instmixin. If <@TT>-closure is specified, also + the classes are returned, for which the class is indirectly + mixed in via instmixin. If <@TT>pattern is specified and + it contains wildcards, all matching mixin classes are + returned. If <@TT>pattern does not contain wildcards, + either the fully qualified name is returned, or empty, if no + match exists. + <@li><@TT>ClassName info isntmixinguard name: Returns the guards for the instmixin identified by name. <@li><@TT>ClassName info instnonposargs methodName: returns list of non-positional args of methodName + <@li><@TT>objName info instparametercmd ?pattern?: + Returns a list of registered instparametercmds the class + (or empty if there are none). If <@TT>pattern + is specified, only the matching instparametercmds are returned. + <@li><@TT>ClassName info instpost methodName: Returns post assertions of methodName. @@ -1082,22 +1180,37 @@ Returns all instprocs defined for the class. If pattern is specified it returns all instprocs that match the pattern. + <@li><@TT>ClassName info mixinof ?-closure? ?pattern?: Returns the + list of classes, into which this class was mixed in via per + object mixin. This is the inverse function of <@TT>Object info + mixin. If <@TT>-closure is specified, also the + classes are returned, for which the class is indirectly mixed in + as a per-object mixin. If <@TT>pattern is specified and + it contains wildcards, all matching mixin classes are + returned. If <@TT>pattern does not contain wildcards, + either the fully qualified name is returned, or empty, if no + match exists. + <@li><@TT>ClassName info parameter: Returns parameter list. - <@li><@TT>ClassName info subclass ?subclassname?: - Returns a list of all subclasses of the class, if subclassname - was not specified, otherwise it returns 1 if subclassname is a - subclass and 0 if not. + <@li><@TT>ClassName info subclass ?-closure? ?pattern?: + Returns a list of all subclasses of the class. If + <@TT>-closure is specified, the result contains as well + the subclasses of the subclasses. If <@TT>pattern is + specified and it contains wildcards, all matching subclasses are + returned. If <@TT>pattern does not contain wildcards, + either the fully qualified name is returned, or empty, if no + match exists. - <@li><@TT> ClassName info superclass ?superclassname?: - Returns a list of all super-classes of the class, - if superclassname was not specified, otherwise it returns - 1 if superclassname is a superclass and 0 if not. - - <@li><@TT>ClassName info slots: - Returns the slot objects defined for this class. - + <@li><@TT> ClassName info superclass ?-closure? ?superclassname?: + Returns a list of all super-classes of the class. If + <@TT>-closure is specified, the result contains as well + the superclasses of the superclasses. If <@TT>pattern is + specified and it contains wildcards, all matching superclasses are + returned. If <@TT>pattern does not contain wildcards, + either the fully qualified name is returned, or empty, if no + match exists. <@/ul> } return "Value of introspected option as a string." Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/link-checker-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/make-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/makeDoc-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/metadataAnalyzer-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/mixinStrategy-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/observer-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/package-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/parameter-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/persistenceExample-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/pinger-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/secure-webclient-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/secure-webserver-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/simpleFilters-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/soccerClub-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/speedtest-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/staticMetadata-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/test-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/testo-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/testx-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2111020b49da8ce57758e51accf0b6073037f0d2 refers to a dead (removed) revision in file `doc/trace-xotcl.html'. Fisheye: No comparison available. Pass `N' to diff? Index: doc/tutorial.html =================================================================== diff -u -r46f02e4868e118466d888b35d6b281b3f2ba31ac -r2111020b49da8ce57758e51accf0b6073037f0d2 --- doc/tutorial.html (.../tutorial.html) (revision 46f02e4868e118466d888b35d6b281b3f2ba31ac) +++ doc/tutorial.html (.../tutorial.html) (revision 2111020b49da8ce57758e51accf0b6073037f0d2) @@ -4,7 +4,7 @@ XOTcl - Tutorial - +