Index: ChangeLog =================================================================== diff -u -r02c12f61000d623a065b4efd62a3c5ee428e1bb5 -r6d3fa5f6de5f6a4bc1ef7dbcc2e56edf9307be64 --- ChangeLog (.../ChangeLog) (revision 02c12f61000d623a065b4efd62a3c5ee428e1bb5) +++ ChangeLog (.../ChangeLog) (revision 6d3fa5f6de5f6a4bc1ef7dbcc2e56edf9307be64) @@ -1,12712 +1,3874 @@ -2013-06-10 Gustaf Neumann +2014-04-29 + * Release of XOTcl 1.6.8 - - More release work - - Release NSF 2.0b5 +2014-04-29 + * some more cleanup of autoconf (more quoting, remove obsolete file, use recent install-sh) + * try to stick closer to current tcl conventions -2013-06-10 ssoberni +2014-04-29 + * unix/tclAppInit.c: Fix one more compiler warning: undeclared Xotcl_Init() + * Removing configure artifact, otherwise lintian complains + * Makefile.in: LDFLAGS must be referenced differently under TEA + * fixed "make install" problem, fix build problem for xowish - - Fix the implementation of NsfInterpObjCmd() which crashed - previously due to the broken resolution of the child - interpreter +2014-04-28 + * library/xml/TclExpat-1.1/xmltok_impl.c: fix for CVE-2009-3720 + +2014-04-25 + * follow modern autoconf conventions + * configure.a: use TEA 3.9 + * use new tcl.m4 + * Makefile.in: remove hard-coded "-rdynamic" from build of xotclsh + and xowish + * generic/xotclTrace.c: remove obsolete test -2013-06-09 Stefan Sobernig +2014-04-24 + * Makefile.in: Make sure that xotclsh + xowish are explicitly linked + against libtclstub*.so, rather than libtcl*.so. Otherwise, building + with --with-xotclsh + --with-xowish fails starting with 8.6 (which + effectively hides the various stub structures in libtcl*.so). + * AppInit.c: Use the stubbed variant of Tcl_Init(). + * Tested under 8.6 (fossil trunk as of commit date) and 8.5 (fossil + core-8-5-branch as of commit date). + Thanks to Sergei Golovan (Debian Tcl/Tk Package Maintainers) for + reporting the issue and an initial patch (see Debian bug #724816). - - Proof-read announcement for a second time +2013-07-16 + * library/actiweb/HttpPlace.xotcl: add URL query variables as + arguments -2013-06-09 Gustaf Neumann +2013-06-23 + * make version management simpler and freeze XOTcl 1.* versions In + order to avoid bad interactions between XOTcl 1.0 and XOTcl 2.0 + the version dependency in 1.0 where changed to "package require + -exact ... 1.0" where possible, and the provides where upgraded to + 1.0 in most cases + * make sure that packages from XOTcl 1 require XOTcl 1 + * generic/xotcl.c: code cleanup - - NsfDStringPrintf(): set the length of the resulting DString +2013-03-26 + * doc/langRef.xotcl: update documentation -2013-06-08 Stefan Sobernig +2012-10-13 + * Make sure to NS_EXPORT Ns_ModuleVersion for people using still + the old-style aolserver module. - - Using the ANSI-compliant I/O operations such as vsnprintf() - under MinGW and MinGW-w64 tool chains - - Updated test suite to be executed in makefile.vc - - nx::test: change test for threaded in final report, since - tcl_platform(threaded) is not present as array element in - non-threaded builts +2012-01-16 + * xotcl.c Extend backport of handling of dashes in XOTcl's + configure method to perform a more eager search for command + begins. Extended regression test -2013-06-07 Gustaf Neumann +2012-01-14 + * xotcl.c Don't overwrite error messages from __unknown handler in + several situations (superclass, parameter class, mixin class) - - fix typo - - remove doc target from "install-doc" since this takes a while in a - "make install" - - document tricky trace script setting in regression test - - use tcl8.5 commands instead of 8.4 idioms - - don't build doc always, since it takes a long time - - documentation update and regeneration of html docs - - add all tcl 8.5 cmds, nx methods + info methods - - add missing tcl-keywords to nx-mode.el - - adjust style files for document generation - - added rules for generating pdf to ease release management - - code cleanup - - updated HTML renderings of examples +2012-01-12 + * xotcl.c Backport from nsf: when processing arguments with + leading dashes in "configure", accept only method names without + spaces. This solves a problem with Tcl8.4 + ns_eval where the + output of the serializer could not be processed by eval (a [list + ..] was lost). -2013-06-06 Gustaf Neumann +2011-12-22 + * Httpd: force GMT dates as required by RFC - nsf.c: - - fix a bug in SlotContainerCmdResolver() when NSF_MEM_COUNT is - activated - - fix a small memory leak for PER_OBJECT_PARAMETER_CACHING - - all cases detectable with --enable-memcount=yes are fixed - - fix git command in release instructions - - fix label for debugging reference counts - - updated TODO - - reduce variable scopes +2011-11-12 + * Removed obsolete CVS-$Ids + * Updated dates of Copyrights + * Removed unneeded c++ hints for Emacs - nx::test: - - change test cases to newer interface - - don't use "namespace import nx::*" in test cases when not required +2011-11-02 + * Release of XOTcl 1.6.7 - nx::test: - - use the standard configure interface for configuring instead of - own version - - changed from nx::Test to nx::test (user never has to know that - nx::Test is a class). +2011-11-01 + * xotcl.c: some c-cleanup + * library files: require exact version numbers to avoid conflicts + with XOTcl 2.0 -2013-06-05 Gustaf Neumann +2011-08-07 + * backport of autoname fix from nsf +2011-04-28 + * serializer: fix allChildren to handle names with semicolons + * serializer: fix allInstances to handle names with semicolons - - Eliminate all use of Tcl_GetStringFromObj() function. - - fix typos, example code - - further release work +2011-02-09 + * Backport of nsf to handle partial implicit deletes -2013-06-05 ssoberni +2011-01-20 + * Change backport of fix below to a check of numEntries - Fixed some typos and suggesting some rewording +2011-01-20 + * Backport of fix for nsf : fixed a nasty bug within namespace + deletion, when a deletion of one tcl cmd caused implicit deletions + of other cmds in the same namespace. The classical idiom for + looking over hash tables with Tcl_GetHashValue() and + Tcl_NextHashEntry(hSrch) can lead to crashes (and has different + behavior depending on the number of buckets). This fix handles + complete implicit deletes. -2013-06-05 Gustaf Neumann +2010-12-26 + * Make cppcheck happy - - initial checkin of nx-mode.el - - preparing 2.0b5 release +2010-08-29 + * Fixed bug in filters reported by Kristoffer Lawson. When a + filter chain reaches its end without finding the invoked method, + the unknown state was not resetted correctly and affected + method invocations in the filter after "next". -2013-06-04 Stefan Sobernig +2009-11-13 + * Release of XOTcl 1.6.6 - Left a to-do in the nxdoc backend - Completed update of nxdoc for NX +2010-04-01 + * make sure, Tcl var traces are not called twice + for volatile objects + * fix for info: make sure, value is always initialized -2013-06-04 Gustaf Neumann +2010-03-27 + * avoid cyclic dependencies with namespace imported command + during final cleanup - serializer.tcl - - added flag -objmap to Serialzer.deepSerialize to make serializer - usable for copying (-map is to coarse) - - extended regression test +2010-03-26 + * fixed 64bit problem in expat code + * fixed memory leaks in info methods and forward (error case) -2013-06-04 Stefan Sobernig +2010-03-22 + * clean up compilation when compile with assertions turned on + * make sure to use xotcl 1.* when regression testing xotcl 1.* - Adjusted nxdoc for the recent changes to NSF/NX +2010-03-06 + * use installed expat when specified + This option is needed fro Debian packaging rules. + (Many thanks to Stefan Sobernig for this contribution) + * cleanup of redundant section in configure.in + * update to TEA 3.7 -2013-06-03 Gustaf Neumann +2010-02-09 + * provide compatibility with 8.6b1 + * bumped version number to 1.6.6 - nsf.c - - removed obsolete function AssertionAppendPrePost() - - removed obsolete function NsfNSCopyCmdsCmd() and ::nsf::nscopycmd - (handled now more general on scripting level in the "copy" method) - nx.tcl: - - "copy" method: fixed copying of class-level per-object methods - - extended regression tests +2010-12-29 + * fix example in tutorial - nsf.c - - fixed a potential crash for objects having a wrapper-less alias defined +2009-11-13 + * Release of XOTcl 1.6.5 -2013-06-03 ssoberni +2009-11-06 + * applied per-object slot changes from Stefan Sobernig + * extended regression tests + * fix package resolution, if multiple XOTcl versions are installed - nsf.c - - Make sure that the original error message is preserved when - calling destroy after a failed CMD or INITCMD +2009-11-02 + * fixed namespace visibility problem reported by Mykhaylo Sorochan -2013-06-03 Gustaf Neumann +2009-10-24 + * fixed var resolver/memory leak problem reported by Victor Mayevski + * bumped version number to 1.6.5 - nsf.c - - fixed a bug in "info methods returns" in cases, where no - returns info was available. - - we can "/obj/ copy" now objects/classes containing - * aliases - * setter - * ensemble methods - * method protections Instead of handling cmd copying in - NsfNSCopyCmdsCmd, it is replaced now by introspection. - - extended regression test +2009-10-17 + * clean removal of __trace__ method in serializer + * Some documentation fixes, added stack example to documentation + * Bumped version number to 1.6.4 + * Release of XOTcl 1.6.4 -2013-06-02 Gustaf Neumann +2009-06-19 + - minor variable renaming to follow tcl naming conventions more closely - nx::test: - - deactivate calling overhead calculation, since this is not reliable - (sometimes larger than the call). +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 - - improved handling of required configure parameters when - classes are changed dynamically. When configure parameter - are defined required, checking for the absence of required - parameter was only performed at creation time. When objects - were re-classed or their classes extended with required - parameters, later calls to configure did not trigger - exceptions. Now we check for the existence of the instance - variable which addresses most of these points, but in future - we might wish a more general solution (see comment for - futures releases) +2009-03-19 + * Release of XOTcl 1.6.3 - - when creation with an required configure parameter failed, delete the - half-baked object to avoid confusing states. +2009-03-19 + - removed references to 1.6.2 - - nx::test: show msg at start of test file +2009-03-04 + - re-enable small optimization + - factor out common code + - fix compatibility with Tcl 8.4 + - bump version number to 1.6.3 -2013-06-01 Gustaf Neumann +2009-03-03 + - simplify semantics of MixinSeekCurrent and FilterSeekCurrent, improve speed + - remove necessity to have tclCompile.h + - improve documentation - - changed multiplicity of mixin, object-mixin, filter, - object-filter from 1..n to 0..n; rationale: when one has a - list of eg. mixins, which should be passed, one has to test - for the length before passing it, otherwise the empty list - would generate an error. Allowing 0..n makes the usage - simpler and the program shorter. +2009-03-02 + - some small performance improvements (use CreateHashEntry instead + of FindHashEntry, remove unneeded 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 - nx.tcl: - - renamed variable option "-config" to "-configurable" to make its - intention clearer +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 -2013-05-31 Gustaf Neumann +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 - - traits: added ability to turn on verbosity for traits by using - nx::configure trait-verbosity on|off +2009-01-19 + - Finish work on deletion of user-metaclasses + - commenting existing and potential usage of namespace resolvers - nx.tcl: - - replaced functionality of "/obj/ configure" by "/obj/ info - configure" to re-enable semantics of the plain configure - method, even when called without arguments. "/obj/ info - configure" is actually a convenience method to allow to - write o1 info configure instead of o1 info lookup configure - syntax +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 - package nx::class-method: - - convenience package similar to nx::plain-object-method - - allow for usage "C class method ..." in addition to "C object - method". - - made warnings configurable via nx::configure - class-method-warning on|off - - completed coverage and test cases +2008-11-02 + * Release of XOTcl 1.6.2 - package nx::plain-object-method: - - made warnings configurable via nx::configure - plain-object-method-warning on|off - - completed coverage and test cases +2008-11-01 + * added command ::xotcl::finalize -2013-05-30 Gustaf Neumann + This command has the only purpose to delete all objects and classes + of an interpreter in a multi-threaded environment at a safe time. - nsf.c - - fixed potential infinite loop in pattern matching for - precedence lists - - cget: make error message closer to tcl conventions - - extended regression test + 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). -2013-05-29 Gustaf Neumann + Note, that ::xotcl::finalize is not intended for application programs. - - adapt to object methods - - prevent default value checking, when it is determined by a command - - completed coverage if plain-object-method.tcl - - provide warnings via plain-object-method.tcl via "nsf::log warn ..." + * some code cleanup -2013-05-28 Gustaf Neumann +2008-10-17 - - renamed initblock parameter from __initcmd to __initblock - - renamed nsf::configure parameter from "keepinitcmds" to - "keepcmds" + * handle nonposargs in method "copy" properly - - saving "keepcmds" in an associative array named - "__cmd(/parameternName)" to allow saving of multiple - parmeters with less name clash danger (when application - stays away from variables stating with double underscore) + * extend regression test for copy - nx.tcl: - - removed "info is .." since it might raise more questions - than it solves + * added " mixinof -closure ?pattern?" + Query the objects for which is used as a per-object-mixin + (directly or indirectly) - - changed enumeration values for "-source" in - "info lookup methods" - "info lookup slots" - "info methods" - "info slots" - from - "all|application|baseclasses" - to - "all|application|system" - for consistency with "nsf::my" and "nsf::dispatch" which uses - "-system" as well + * extended regression test for mixinof -2013-05-26 Gustaf Neumann + * updated documentation - Traits: - - changed from traits-as-objects to traits-as-classes. This - allows for higher orthogonality of traits and class definitions - and allows in principle traits for object-specific methods (not - fully implemented/tested) - - fixed property/variable inheritance in traits. - - remove spurious debug line +2008-09-11 + * Implement proper downgrading of Classes to Objects: - Cleanup of nsfAPI.decls - - remove unneeded enumeration types - - use "typeName" to shorten reported names of parameters - - use camel case for reported names + 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). - - changed ::nsf::parametersyntax(..) to - ::nsf::parameter::syntax(..) + 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. - - xotcl2: adjusted manual parameter syntax entries to new conventions + * reset mixin order for per-object mixins, when the superclass + of a class is deleted, which is used as per-object mixin -2013-05-24 Gustaf Neumann + * extended regression test + * Updating and improving documentation - - added implementation for slots with traces+types for classes - - exception for incorrect defaults are thrown during slot creation +2008-06-24 + * Release of XOTcl 1.6.1 - - extended nsf::is, added parameter - * ?-configure? -- accept configure parameter options - * ?-name /name/? -- provide a parameter name for error message +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 returned. 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") - - simplified nx.tcl by using new nsf::is - - extended regression test +2008-05-30 + * updating language reference - - added partly implementation for slots with traces+types for - classes + * 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. - - fixed cases, where valuechangedcmd (and the other traces) did - not work with "configure" method. When slot traces are used, it - cleans other traces for the same operations. +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 - - extended regression test +2008-05-26 + * fixed bug in info instdefault, when the given argument name + is an empty string. Example: + X info instdefault crash "" var -2013-05-23 Gustaf Neumann +2008-05-09 + * used catch in the deprecated package xotcl::upvar-compat + as suggested by Jeff Hobbs - nsf.c: - - fix crash when "nsf::my" is called with a single argument - outside the object context. - - fix assert - - removed some TODOs from tests/parameters.test +2008-03-18 + * allowed "abstract method" in addition to "abstract instproc" + and "abstract proc" - - parameter dispositions: We differentiate now between - "initcmd" and "cmd": an "initcmd" is only evaluated once, - but one can provide configure values for this parameter - later. a "cmd" is executed on every evaluation, it is only - possible to pass cmds to it. The trailing argument of the - configure parameters (used e.g. for scripted object/class - definitions) is now of type "cmd". Implementation not yet - complete (object cases are not correct). +2008-02-26 + * xotcl.c: The double ;; chokes MSVC6 in the next line. + (many thanks for Andreas Kupries for reporting) - - streamline documentation +2008-02-25 + * Fix for "x configure -set"; many thanks to + Rene Zamseil for reporting. - C-code Generator: - - added "-typeName" for enumeration types that allows for - disambiguation of enumerations with different argument - names. Before that, the argument name determined the c-type - of the enumeration. Therefore it was not possible to use - argName "-type" for two different functions with a different - list of enumerators. +2008-02-24 + * Release of XOTcl 1.6.0 - - renamed option "-methodtype" to "-type" in +2008-02-22: + * Update of documentation - /obj/ info methods ... ?-type all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ... - /obj/ info object methods ... ?-type all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ... - /obj/ info lookup methods ... ?-type all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ... +2008-02-21: + * Clear XOTCL_MIXIN_ORDER_VALID flag unconditionally + in MixinInvalidateObjOrders() for mixins (Neophytos + had problems in naviserver; many thanks for reporting!) - - minor code cleanup +2008-02-21: -2013-05-22 Gustaf Neumann + * 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. - - streamlined AddSlotObjects() - - cleanup of TODOs - - nsf.c: handle full-qualified name for private slots - (AddSlotObjects()) - - extended regression test + 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). -2013-05-21 Gustaf Neumann + 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] + } - - updated next-tutorial: - * bring definitions of properties and variables up to date - * fix "object methods" + 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. - - XOTcl2: ensure public accessor when "-parameter ..." is used +2008-02-08: + * New info option "-closure" for "info instmixin" with + -guards and -closure support - - extended parameter extractor: new functionality + * Extended test cases for "info instmixin" - ::nsf::parameter get default /parameter/ ?/varname/? - ::nsf::parameter get type /parameter/ - /obj/ info parameter get default /parameter/ ?/varname/? - /obj/ info parameter get type /parameter/ +2008-02-06: + * Continued with info orthogonality change -2013-05-20 Gustaf Neumann + info mixin ?pattern? + info instmixin ?pattern? - - hopefully the last changes for ?object? - method|variable|property: defined - * "/obj/ delete object method" - * "/obj/ delete object property" - * "/obj/ delete object variable" + ?pattern? behaves exactly like in the change of two days + ago. Preceding colons in the name of the queried class are not + required. - - "info method syntax" returns now "/cls/ ...." - - "info object method syntax" returns now "/obj/ ...." + * 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 - - updated next-migration guide to reflect changes from the - configure reform - - make name fully qualified for symmetry reasons - - minor cleanup + * Made the behavior "pattern" in the following calls identical + concerning wild cards and object lookups - - nx-pp.tcl: fixed changed accessor handling, added cget to - highlight words + mixin delete pattern + instmixin delete pattern + superclass delete pattern -2013-05-19 Gustaf Neumann + * extended regresson test - - added new regression test info-variables.test +2008-02-05: -2013-05-19 Gustaf Neumann + * fix getAllClassMixinsOf to handle combinations of transitive per + class mixins and inheriting per-class mixin via the class + hierarchy, removed getAllSubClasses - Method and configure parameter reform, Part 3: - - added + * extend test cases - /cls/ info lookup variables -> list of handles - /obj/ info lookup object variables -> list of handles - /obj/ info variable definition|name|parameter /handle/ +2008-02-04: + * Potential incompatibility: + provide a uniform interface to the following info subcommands - - nx.tcl: added forward compatible scripted implementation of "lmap" - - nsf.c: handle names for private slots in pattern provided to - AddSlotObjects(), used e.g. in "info lookup slots /pattern/" + info superclass ?-closure? ?pattern? + info subclass ?-closure? ?pattern? + info instances ?-closure? ?pattern? + info instmixinof ?-closure? ?pattern? + info mixinof ?pattern? -2013-05-18 Gustaf Neumann + In cases, where the option "-closure" is defined, the values are + computed transitively. - - dropped "/obj/ info slot definition /obj/" in favor of "/slotobj/ - definition" + 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. -2013-05-17 Gustaf Neumann + 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. - - nx.tcl: handle "incremental" in slot reconfigure - - nx.tcl: change defaultAccessor to "none" + By using the option "-closure" one can perform the lookup in the + transitive or in the intransitive sets. -2013-05-17 Gustaf Neumann +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") - - Method and configure parameter reform, Part 2: In order to - streamline the interface further, we tried to follow the - idea to use "... info /plural word/" to obtain a set of - handles, and then a separate call to obtain the - details. Therefore, we replaced +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 - /cls/ info slot objects - /cls/ info slot definitions - /cls/ info slot names - /obj/ info object slot objects - /obj/ info object slot definitions - /obj/ info object slot names - /obj/ info lookup slots - by +2008-02-01: + - new info option "-closure" for "info mixinof" (transitive version) + - process subclasses for getAllClassMixinsOf - /cls/ info slots ?-type /type/? ?-closure? ?-source all|application|baseclasses? ?/pattern/? - /obj/ info object slots ?-type /type/? ?/pattern/? - /obj/ info slot definition /obj/ - /obj/ info lookup slots ?-type /type/? ?-source all|application|baseclasses? ?/pattern/? +2008-01-23: -2013-05-16 Gustaf Neumann + - saving object->id in cl->opt->id (probably a temporary solution) - - Method and configure parameter reform + - improving reset of affected objects, when (transitive) per class + mixins change - /cls/ info configure parameters ?pattern? -> list of params - /cls/ info configure syntax -> syntax output - /obj/ info method parameters /methodName/ ?/pattern/? -> list of params - /obj/ info method syntax -> syntax output - /obj/ info lookup configure parameter ?/pattern/? -> list of params - /obj/ info lookup configure syntax -> syntax output - /cls/ info parameter list|name|syntax /param/ -> value + - extended regression test -2013-05-14 Gustaf Neumann +2008-01-07: + - don't call unset traces during an object move (related to fix below) - - avoid crash in case NsfParameterGetCmd() is passed a plain value +2008-01-04: + - preserving var traces when copying objects + (Many thanks to Florian Murr for reporting the bug) -2013-05-13 Gustaf Neumann +2008-01-02: + - fixed evaluation context in guard expressions + ([self callingproc] returned "" in cases, where the callingproc + was possible to determine) - - minor documentation updates +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 -2013-05-10 Gustaf Neumann +2007-12-28: + - new function from Martin MixinResetInstanceOrder() + - better cleanup when classes are deleted - - initialize stub-tables only once +2007-12-13: + * fix alias command for aliasing to Tcl procs - - syntax formatter: use /value/ for denoting placeholder in - "... info method syntax ..." +2007-11-09: + * added missing file (install.sh from tclconfig) -2013-05-07 Gustaf Neumann +2007-10-30: + * change Tcl_ObjSetVar2() to Tcl_SetVar2Ex() to + address problem in setting variables from C. + The set variable was not seen in an eval. + * extended regression test - - parametersyntax: make placeholders explicit +2007-10-29: + * return mixins before procs in procsearch + * added regression test + * Don't through error when the last argument of + "obj info class <...>" or "cl info superclass <....>" + is a non-existing class, but return false instead. + This leaves room for pattern matching. - - moved "/obj/ info slot definition|..." to "/obj/ info object - slot definition|..." for consistency +2007-10-28: + * some code refactoring + * making new code more robust - - provided "parametersyntax()" for "object mixin" and "object - filter" +2007-10-23: + * First version of new info methods "mixinof" and "instmixinof" + - new class info options: "mixinof" and "instmixinof" + - on class destroy entry is now removed from mixin + and instmixin lists -2013-05-05 Stefan Sobernig +2007-10-12: + * Release of XOTcl 1.5.6 - - win/makefile.vc: have the install target copy the public - headers as well +2007-10-09: + * More fixes for treating global volatile objects + during shutdown: + - do not allow to create new objects during shutdown + - do not allow objects to be set volatile during shutdown + - handle cases, where application level destroy methods + fail (this could lead to remaining tcl traces pointing + to destroyed objects) + - handle namespaced variables helding deletion traces + for volatile objects + Guess, it would be much simpler to use Tcl-level + unset traces than C-level unset traces... -2013-05-04 Stefan Sobernig +2007-10-04: - - MinGW toolchains do not provide support _vscprintf(), so we - limit the use of it to MSVC; tested NsfDStringPrintf under - MinGW + * Revise fix below. The problem was apparently that change of a + call of Tcl_FindCommand to Tcl_GetCommandFromObj(), where the + latter one had bad side-effects when it is called during + deletion. Although the fix below fixed the symptoms, the new + approach is better since it is apparently not required any more + to fetch the cmd during PrimitiveODestroy to ensure it is not + called twice. The problem appeared in XOTcl between 1.5.3 and + 1.5.4 and happens only in 8.4.* Tcl. - - Provide tcl library path to summary.tcl and remove - intermediate file from repo + * Improve debugging code to make it easier to trace + problems with Tcl_Objs. - - Fixed the Win32 logic for computing the Tcl_DString in - NsfDStringPrintf(), tested for MSVC under x86 and amd64 + * Serializer: Added dependency rule in serializer to ensure slots of + superclasses are listed before subclasses. (Thanks to Stefan + Sobernig for reporting the problem) -2013-05-04 Gustaf Neumann + * Serializer: moved deactivation of traces into "Serializer all" + to get simpler results on "o serialize". - - updating next-tutorial to object method syntax + * Regression tests: extended tests to address + the newly identified and fixed problem cases. -2013-05-03 Gustaf Neumann +2007-09-29: + * Fix for Tcl 8.4.16 (and maybe some other recent tcl 8.4.* + versions, 8.5 is fine) for situations, where Tcl variable + contain references to deleted XOTcl objects. The fix added a + epoch increment to CallStackDoDestroy(). - - updated migration guide - - update to new naming +2007-09-29: + * Fix for cases, where volatile objects are + deleted before the corresponding trace variable. -2013-05-03 ssoberni +2007-09-18: + * Release of XOTcl 1.5.5 - - Fix the 86-specific tests to reflect the object-modifier - reform +2007-09-18: + * Fix rpm build (most probably due to TEA 3.6) -2013-05-03 Gustaf Neumann +2007-09-13: + * Use AssocData instead of the clientdata of the + global namespace to store the XOTcl interpreter's - - try to print arguments in one sweep in NsfDStringPrintf() - - remove "extern" declarations +2007-09-13: + * Upgrade to TEA 3.6 -2013-05-02 ssoberni +2007-09-10: + * Make forward option -earlybinding more robust, when + forwards are done to Tcl procs - - Revised NsfDStringPrintf() for portability to - non-C99-compliant C runtimes (MSVC); remains to be tested +2007-08-16: + * Fix introspection problem for copied objects and classes + (remove superfluous ::xotcl::initProcNS) + Must have been a bug from before XOTcl 1.0 -2013-05-02 Gustaf Neumann + * Allow to load XOTcl compiled for Tcl 8.4 to be loaded + into a tclsh8.5 (again, substantial change). + The behavior can be turned off by setting + FORWARD_COMPATIBLE to 0 - - first and incomplete update of migration guide to new syntax + One can now test now 4 versions: + a) a native version for Tcl 8.4 (without compatibility layer) + b) a native version for Tcl 8.5 + c) a version compiled for Tcl 8.4 with compatibility layer in tclsh8.4 + d) a version compiled for Tcl 8.4 with compatibility layer in tclsh8.5 -2013-05-01 Stefan Sobernig + Tests showed that the overhead is for the compatibility + layer is between 1.1% and 2.3%, the difference between + tcl8.5 and tcl8.4 is much larger. - - Re-enabling deletion of intermediate file in makefile - - Remove legacy build artifacts +2007-08-10: + * Release of XOTcl 1.5.4 - - Provide native Win build support for MSVC++ and MSVC, using - the Tcl 8.6 name templates. Tested using Visual Studio 12 - (VC and name in version 11). See makefile.vc for build - instructions for Win32 and Win64. +2007-08-10: + * fixed regression test in rdf-tests (introduced + due to autoname changes in 1.4.0) -2013-04-29 Gustaf Neumann +2007-08-10: + * Fixing bugs introduced by VarReform + * Extending regression test to handle the cases - - bumped version number to 2.0b5 +2007-08-07: + * More work on Tcl 8.5 and VarReform + Compiles now with stock Tcl 8.5 from CVS + * Make more use faster Tcl_Obj based interfaces + (Many thanks to Miguel Sofer for the suggestions and patch) - - tested with NaviServer and OpenACS (new version of nx needs - as well a newest NaviServer, since ns_cache implementation - needs to be objectified; newest NaviServer version works as - well with older nx) +2007-08-06: + * Changed all references to /tmp to [::xotcl::tmpdir] to honor + TMPDIR TEMP TMP if set - - fix xotcl instance method serialization (still not covered - in regression test) + * Handling of variable traces in serializer: + traces might require a different topological sort, + which is hard to handle. Similar as with filters, + we deactivate the variable traces during initialization. + This happens by + (1) replacing the XOTcl's trace method by a no-op + (2) collecting variable traces through collect-var-traces + (3) re-activating the traces after variable initialization - - renamed "package require nx::class" to "package require - nx::class-method" in analogy to "nx::plain-object-method" + (Many thanks to Stefan Sobernig for the help!) - - added "/obj/ object variable" and "/obj/ object property" +2007-08-05: + * Changes to compile xotcl with the new Var structures in the + head version of Tcl 8.5. This is a rather large change, + the patch is more than 800 lines. -2013-04-28 Gustaf Neumann + (Many thanks to Miguel Sofer for the help!) + From the Tcl Changelog - MongoDB - - added "nx::mongo::db drop collection /name/" - - returning status from "nx::mongo::db remove" as success (0 or 1) - - adjust to object interface - - reduce verbosity - - add error messages for slot lookup failures + *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and tclCompile.h) + Extensions that access internals defined in tclInt.h and/or + tclCompile.h may lose both binary and source compatibility. The + relevant changes are: - Updated MongoDB interface - - upgraded to c-driver 0.7.1 - - tested with MongoDB 2.4.4-pre - - new commands: - * mongo::run - * mongo::cursor::find - * mongo::cursor::next - * mongo::cursor::close - - adapted interface for c-driver 0.7.1 (e.g. new optional name for - mongo::index + 1. 'struct Var' is completely changed, all accesses to its + internals (either direct or via the TclSetVar* and TclIsVar* + macros) will malfunction. Var flag values and semantics + changed too. - - nsfPointer.c: add parameter to Nsf_PointerDelete() for - allowing optional freeing + 2. 'struct Bytecode' has an additional field that has to be + initialized to NULL - - reduced default verbosity - - moved NsfConfigEnabled from nsf.h to nsfInt.h (no need to be - part of the public interface) + 3. 'struct Namespace' is larger, as the varTable is now one + pointer larger than a Tcl_HashTable. Direct access to its + fields will malfunction. - - moved NSF_ARGPARSE_* macros to nsf.h (since arg parser is - public and uses these flags) + 4. 'struct CallFrame' grew one more field (the second such + growth with respect to Tcl8.4). -2013-04-23 Gustaf Neumann + 5. api change for the functions TclFindCompiledLocal, + TclDeleteVars and many internal functions in tclVar.c - Object-method Reform: +2007-07-27: + * fixed a compile problem with a superfluous semicolon in a macro + (Many thanks for Andreas Kupries for reporting and sending a patch) + * fixed two compiler warnings in gcc 4.1.2 - - changed interface to object specific commands by requiring - an ensemble named "object". The rational behind is - essentially to use always the same info command to retrieve - object specific methods, no matter whether these are defined - on a plain object or an a class object (does not break the - "contract" what e.g. "info method" returns). +2007-07-23 + * Pre-Release of XOTcl 1.5.4 - Now we define methods via: +2007-07-23: + * fixed a bug with empty argument names + (Many thanks for Stefan Sobernig for reporting the bug) - /cls/ method foo {args} {...body...} - /cls/ object method foo {args} {...body...} - /obj/ object method foo {args} {...body...} +2007-07-03: + * allow to call methods from the class to be called + from slot objects (Many thanks for + Nico L'INSALATA for noting this problem). - Similarly, aliases, forwards and mixins are defined, e.g. +2007-06-05: + * Fixed spelling mistakes in the tutorial + (Many thanks to Robert Hicks for reporting) - /cls/ mixin add ... - /cls/ object mixin add ... - /obj/ object mixin add ... - /obj/ require object method ... +2007-05-27: + * Fixed potential error with default values for parameters + starting with a "-". (Many thanks to Shishir Ramam + for reporting) - The same change propagated as well to the "info" method. - Now we have: +2007-03-16: + * fixed a bug where a Tcl call adds a namespace to an object, + but xotcl did not notice it. (Many thanks for Stefan Sobernig + for reporting the bug) - /cls/ info methods ... - /cls/ info object methods ... - /obj/ info object methods ... +2007-01-14: + * fixing error message propagation for methods called via + configure. (Many thanks for Kristoffer Lawson + for reporting the bug) - Similar, the object parameterization uses +2006-12-12 + * changing "test == " to "test =" as required by FreeBSD + (many thanks to Martin Matuska for providing + the patch) - /cls/ create obj -object-mixin M - /cls/ create obj -object-filter f - /metacls/ create cls -mixin M1 -object-mixin M2 - /metacls/ create cls -filter f1 -object-filter f2 +2006-12-07 + * MinGW patches + (many thanks to Martin Matuska for providing + the patch) - - as a consequence, +2006-11-25 + * Release of XOTcl 1.5.3 - a) "/cls/ class method ...", - "/cls/ class alias ...", - "/cls/ class forward ...", - "/cls/ class filter ...", - "/cls/ class mixin ...", - "/cls/ class info ..." - "/obj/ class method require method ..." - "/obj/ class method require public method ..." - "/obj/ class method require protected method ..." - "/obj/ class method require private method ..." - were dropped +2006-11-24 + * provided compatibility with Tcl 8.5 + (checking callframe level instead of empty varframe for toplevel + frames) - b) "/obj/ method ....", - "/obj/ alias ....", - "/obj/ forward ...." - "/obj/ filter ...." - "/obj/ mixin ...." - "/obj/ info method*" - "/cls/ create obj -mixin M" - "/cls/ create obj -filter f" - "/obj/ method require method ..." - "/obj/ method require public method ..." - "/obj/ method require protected method ..." - "/obj/ method require private method ..." - were dropped + * provided compatibility with Tcl 8.4.14 + proc->cmdPtr was used in prior releases only to determine the + namespace in which the proc is executed (documented in + tclInt.h). Starting with Tcl 8.4.14, this cmdPtr is used as + well for updating the client data of a cmd, in case the proc is + recompiled. Since XOTcl used the cmdPtr to control the + namespace, this code had to be rewritten differently. The new + version is faster, but uses for filters or mixins slightly more + storage. - - added package nx::class to allow optionally the "class" notation - "/cls/ class method ..." (and friends, see (a)), and - "/cls/ class info ... + * reduced calling overhead of methods with non-positional arguments + by about 10 percent by avoiding shimmering. - - added package nx::plain-object-method to allow optionally - plain method b) "/obj/ method ...." (and friends, see (b)) + * fixed handling of "return -code break" from xotcl methods + (thanks to Artur Trzewik for the bug report) - - add support to slots to use ensemble methods as setters + * library/comm/Access.xotcl: fixed handling of chunked encoding -2013-04-17 Gustaf Neumann +2006-09-29 , Uwe Zdun + * Release of XOTcl 1.5.2 - - allow explicit unsetting of -per-object flag in 0-argument - -flag=value notation +2006-09-28 + * Extended regression test for nested contains + * fix potential bug in copy-command with c-level client data + (don't copy commands with client data for the time being, rely on + introspection) -2013-04-05 Gustaf Neumann +2006-09-27 + * Fixed memory corruption (accessing feed memory) in the + invalidation of transitive mixins (many thanks to Don Porter for + reporting it and providing suggestions, how to trigger the bug + via Tcl memory debug) + * Removed c++ style comments (many thanks to Andreas Kupries for + reporting) + * package xotcl::trace: allow to trace objects with "Trace add + trace " not only classes as before (many thanks to jima for + suggesting this) + * fix for nested -contains with new (many thanks to Stefan + Sobernig for pointing this out) + * Added a target test-nohttp for automated regression tests + on machines with firewalls (used for FreeBSD build system) - - reduce variable scope +2006-09-26 + * xotcl.c: improved portability for 64bit AMD on FreeBSD (and + maybe on other 64bit platforms as well) all vararg lists are now + terminated by ..., (char *) NULL Previously, some were + terminated by an integer typed zero-value, which can lead to + problems when sizeof(int) != sizeof(char *) + * The vararg interface is used by the following API calls in the + XOTcl code: Tcl_AppendResult(), Tcl_AppendStringsToObj(), + Tcl_VarEval(), XOTclVarErrMsg(). all occurrences are fixed. + * All occurrences of Tcl_AppendResult() removed form xotcl.c -2013-03-25 ssoberni +2006-09-24 + * xotcl.c: make sure, that no + Tcl_SetIntObj(Tcl_GetObjResult(interp), 1); + happens on shared objects. - - Improved wording in comment on NsfConfigEnabled() - - Irgh. Had forgotten about two-level stringification to - provide configuration macro expansions as strings in - NsfReportVars() +2006-09-22 , Uwe Zdun + * Release of XOTcl 1.5.1 -2013-03-25 Stefan Sobernig +2006-09-22 + * XOTclNextCmd() exported to external (stub) interface, to allow + applications to call next without going through a Tcl_Eval() + (Many thanks to Scott Gargash for the constructive discussions) + * removed XOTclGetSelfObj() again from the external interface + since the object/class is passed anyhow. + * some minor cleanups and additions to tutorial. + * added small fix mentioned in c.l.t for a more backwards + compatible old parameter interface. - - Adding a helper macro NsfConfigEnabled() to test for - active/inactive build-time configurations; rewrote - NsfReportVars() accordingly. This makes NSF compilable under - MSVC (VC11). Thanks are due to Stephan Adelsberger for - reporting the issue. +2006-09-21 + * Changed interface of XOTclCallMethodWithArgs to contain the + specified number of elements in objv[] rather than the absolute + number. Changed name from XOTclCallMethodWithArg to + XOTclCallMethodWithArgs + * Added XOTclCallMethodWithArgs() to he external interface to + allow C applications faster invocation of XOTcl methods + * Simplified and standardized calling conventions for + C-implemented methods. ClientData receives always the + XOTcl_Object, no matter, what client data was specified during + registration (e.g. XOTCL_NONLEAF_METHOD). Users + can rely on using ClientData for Objects + * Some performance improvements in invocation of XOTcl methods -2013-02-19 Gustaf Neumann +2006-09-20 + * added XOTclGetSelfObj() to he external interface to obtain the + current object from a C application from the callstack + * fixed genstubs target in Makefile.in regenerated all stub files + * removed a few more compiler warnings for the power64 bit + architecture - - ByteCompiled(): fix indentation of preprocessor #if statements - - ByteCompiled(): ensure result setting in case HAVE_TCL_COMPILE_H is - not defined - - improve wording in rosetta example +2006-09-19 + * added XOTCL_NONLEAF_METHOD: This constant + must be used when registering C-implemented methods + that call "::xotcl::next" to push the XOTcl activation record. -2013-01-22 Gustaf Neumann + Example: + XOTclAddIMethod( interp, MyClass, "mymethod", MyMethod, + XOTCL_NONLEAF_METHOD, 0 ); - - more code cleanup - - reduce variable scopes - - remove EXTERN declarations from function definitions +2006-09-18 + * fixed a bug in parsing non-positional arguments, when + e.g. square brackets are used in type declarations for + parameters. + Class C + C instproc foo {{-q:mult[2],optional 1} -x:boolean,optional args} {puts hu} + Tcl lists add another layer of braces + ... foo {{{-q:mult[2],optional} 1} -x:boolean,optional args} .... + which have to be removed at the definition time of the parameters. + * fixed a 64-bit problem for POWER5+ machines + * fixed serializer to handle deeper stratification layers + * fixed an autoname crash under NT + (Many thanks to Mark Jannsen for the patch) -2013-01-08 Gustaf Neumann +2006-09-17 + * fixed a bug in deprecated part, when -setter is used in parameter + options. - - Update to latest TEA. - - Follow new naming convention for auto-tools (using configure.ac) +2006-09-15 + * Changed "test -e" to "test -f" in Makefile.in, since + the standard test command in Solaris does not understand "test -e" + (Many thanks to Andreas Kupries for reporting) - - silence compiler warnings +2006-09-14 , Uwe Zdun + * Release of XOTcl 1.5.0 -2012-12-12 Gustaf Neumann +2006-09-13 Uwe Zdun + * Update of build files for windows - - replace Tcl_GlobalEval by Tcl_Eval, since Tcl_GlobalEval will be - removed in futures versions of Tcl +2006-09-10 + * added method "contains" to create objects aggregated into + other objects (essentially a value added back-port of the OpenACS + version). + * based method "slots" on method "contains" for improved orthogonality + * rearranging sections in the tutorial + * deleted obsolete sections from the tutorial + * serializer: when an object is defined as exported, export the whole + object tree (no need to specify export of all slots for exported objects) -2012-11-26 Stefan Sobernig +2006-09-08 + * added -verbose to forward options + * added subst to the tcl-impored methods + * fixed a bug with .... -slots {Attribute new -name a1} + (Many thanks to neophytos for reporting} + * provide method serialize (for Object), when the serializer package is loaded - - Checked built and test suite against Tcl 8.6rc2 - (core-8-6-0-rc) under MinGW32; removed temporary fix for bug - #3401422 +2006-09-07 + * provided Tcl 8.5a4 compatibility + * spellechecking langref, make terminology more consistent + (naming of arguments like .e.g methodName) -2012-11-19 Gustaf Neumann +2006-09-04 + * update of tcl.m4 for newest TEA from CVS - - quote filename in content disposition +2006-09-03 + * "mixin|filter|instmixin|instfilter set ..." deprecated, use + "mixin|filter|instmixin|instfilter assign ..." instead -2012-11-16 Gustaf Neumann +2006-09-01 + * fixed a bug in the xotcl trace module (many thanks to jima for reporting) + * extended procsearch to report parametercmd and instparametercmd - - replace nx::configure option defaultPropertyCallProtection by - defaultAccessor +2006-08-30 + * extended procsearch to report as well [inst]parametercmd - - protect trf against leading dashes +2006-08-26 + * extended procsearch to report as well [inst]forward and [inst]cmd -2012-11-15 Gustaf Neumann +2006-08-25 + * new subcommand "info slots" + * implemented backwards bug-compatible "info parameter", deprecated - - deactivate tests in library file +2006-08-23 + * added system slots and attribute slots (see documentation) -2012-11-14 Gustaf Neumann +2006-08-21 + * changed the implementation of the configure command + and setrelation command to use Tcl_GetIndexFromObj(); + * added the subcommand "class" and "superclass" to the + the setrelation command. - - add additional "convertto" when generating zip files from strings +2006-08-22 + * fixed a bug with non-positional arguments, some + positional arguments and "args" + * fixed a bug in non-positional arguments when called without + arguments + * improved error messages in connection with non-positional arguments + * extended interface of XOTclErrBadVal() to provide better error messages + (this changes the stub interface, so we have to change the version number) -2012-10-30 Stefan Sobernig +2006-08-21 + * new command for registering predefined C-implemented Tcl commands + as methods + ::xotcl::alias | \ + ?-objscope? ?-per-object? + "-objscope" has the same meaning as for forwarder, + "-per-object" has the same meaning as for the method "method", + This command is somewhat similar to "[inst]forward -earlybinding", + but can be used to bootstrap xotcl (when e.g. no methods are + available). - - The asciidoc-related configuration artifacts, especially for - Tcl/NSF-specific code highlighting, are now contained in the - source distribution and integrated with the respective make - targets. Besides a running asciidoc installation, there is - no further configuration need. Tested with asciidoc 8.6.8 +2006-07-20 + * Documentation bug: method volatile was documented + as a method of class, but is documented as a method of object + (Many thanks to Kristoffer for reporting) -2012-10-28 Stefan Sobernig +2006-05-22 + * package.xotcl: evaluating calls to "tcl_package" in the + global namespace instead of the current. This fixes problem of + xotcl 1.4.* with xotclide. Many thanks to + Bill Paulsen and Artur Trzewik for identifying the problem and + suggesting a fix. - - Extending test case to cover slotassign issue - - Adding a test and a temporary fix for the ::nsf::is issue in - setCheckedInstVar +2006-04-20 + * xotcl.c: new option for the argument substitution. When the argument + list of the forward command contains "%argclindex {a b c}", then + depending of the number of arguments at invocation "a", "b" + or "c" is substituted. + * New option for forwarder: The option -earlybinding can be used to look + up the function pointer of the called Tcl command at + definition time of the forwarder instead of invocation time. + This option should only be used for calling C-implemented Tcl commands) -2012-10-13 Gustaf Neumann +2006-03-22 + * deprecated command filterappend, instfilterappend, mixinappend, + instmixinappend, tclcmd, insttclcmd deleted - - Make sure to NS_EXPORT Ns_ModuleVersion for people using - still the old-style AolServer module. +2006-03-20 + * allow single colons in method names (fix in xotcl.c, NSTail()) -2012-10-04 Gustaf Neumann +2006-02-17 , Uwe Zdun + * release of 1.4.0 - - make assumptions in code explicit +2006-02-17 + * fixed a bug with nonpositional arguments in connection with "args" + (Many thanks for Kurt Stoll pointing this out) + * added more regression tests + * fixed dependencies created for rpm binaries + * mak compile cleaner for gcc 4.* under linux -2012-10-03 Gustaf Neumann +2006-02-08 Uwe Zdun + * fixed a bug with transitive mixins - nsf.c: - - handling of method names in error messages from nsfAPI.h. Make sure - that error message is generated with the actual method name. +2006-02-02 + * Upgrade to TEA 3.5 -2012-10-02 Gustaf Neumann +2006-01-10 + * fixing exit behavior with variable traces in multi-threaded + environments (volatile objects could be demalloced twice before) - nx.tcl: - - property has now a boolean non-positional argument "-config" - /obj|cls/ property ?-accessor value? ?-config boolean? - ?-incremental? ?-class value? spec ?initblock? in symmetry with - "-accessor" (parameter option "noconfig" is still needed to - flag nsf for variables that should be initialized, which are - not configurable - - "/obj|cls/ info slot definitions" returns a full command - (containing flags and property|variable) - - extended regression test +2006-01-08 + * allowing tcl commands and variables as default values for parameters; previously, + only one-word commands were allowed. -2012-09-30 Gustaf Neumann +2006-01-07 + * ::xotcl::configure options can be called with one (for query) + and two (for setting) arguments (similar to set) + * new option: ::xotcl::configure softrecreate on|off + if softrecreate is set, class relations (superclass, subclass, class, instances) + are not affected by a recreate; this allows files with class definitions + more easily to reload + * don't destroy namespace imported child objects - - remove debug output +2006-01-06 + * unsetting the global variable "cmd" from predefined.xotcl + (Many thanks to Koen Danckaert for reporting) - nsf.c: - - factored out ParameterMethodForwardDispatch() to call a - parameter method defined as a forwarder the same way from - "configure" and "cget" - - extended regression test - - improve comment +2006-01-05 , Uwe Zdun + * fixing incorrect state in filters after next + * extended regression test -2012-09-29 Gustaf Neumann +2006-01-02 + * info children returns true children, no namespace imported objects/classes + * extended regression test - - extended regression test +2005-12-20 + * upgrading configure scripts of subcomponents to TEA 3.4 - - changed name "/obj|cls/ slot info definition" to "/obj|cls/ - slot info definition" since result is a set - - dropped parameter method "properties" - - dropped "/obj/ info properties" (since "properties" or "variables" - are returned") +2005-12-17 + * fixing missing omitted message for unknown subcommand to self - nx.tcl: - - change parameter name in "/cls/ info parameter ... ?pattern?" from - "name" to "pattern" +2005-12-07 , Uwe Zdun + * release of 1.3.9 -2012-09-28 Gustaf Neumann +2005-12-06 + * fixed bug with error propagation when gett/setter methods are + used for parameters (many thanks to Manfred Stelzhammer for + pointing this out) - - added functionality for "cget" to call parameter-methods (e.g. - "... cget -class"). The method cget calls either "/slot/ get - ..." (when slot=... is provided in the parameter spec) or it - assumes that the method without argument returns the value - - added "::nsf::object::property /obj/ volatile" to query whether - a object is volatile or not - - "/obj/ cget -volatile" returns now the volatile state of the - object - - factored out ParameterMethodDispatch() from OConfigureMethod() - - extended regression test +2005-12-04 + * Upgraded TEA to 3.4 + * updated rpm build (many thanks to Ildiko Schmidt and Alexander Bergolth) -2012-09-27 Gustaf Neumann +2005-11-28 + * new command ::xotcl::__qualify: convert an relative name + into an command name (exactly as create does it, ignoring + namespaces from transparent interceptors) - - invalidation of per-object parameter cache - * on mixin changes and - * on deletion/adding of per-object slots - - deactivate PER_OBJECT_PARAMETER_CACHING per default (flipping - this parameter makes regression test more than 20 faster). - - extended regression test +2005-11-26 + * require automatically a namespace when a childobject is added - - NsfObjInfoObjectparameterMethod(): return not only the first - matching parameter, but the list of all matching ones. The - last optional argument was renamed from "name" to "pattern" - accordingly +2005-11-18 + * new switch -nocomplain for "mixin|instmixin|filter|instfilter delete" + to avoid error messages when deleting entries not there (similar unset) - - rename invalidateobjectparameter -> - parameter:invalidate::classcache - - rename invalidateobjobjectparameter -> - parameter:invalidate::objectcache - - bring cmds into alphabetical order +2005-11-10 + * " info vars" does not trigger read traces anymore + * fixing version numbers for package require + (many thanks to Andreas Kupries for the report) + * Serializer: exportMethods accepts forwards/instforwards now + as well -2012-09-26 Gustaf Neumann +2005-11-02 + * new subcommand of self: [self args] return the full argument list + of the current call - - first draft of per-object parameter caching (for per-object-mixins - and per-object properties). +2005-10-02 , Uwe Zdun + * release of 1.3.8 - nsf.c: - - fix potential bad interaction between per-object mixins and per-class - caching of object-parameters +2005-10-01 + * fixed a bug concering __unknown called via mixin method + (many thanks to Zoran for the report) + * fixed a memory leak in isMetaClass() in connection with + instmixins (many thanks to Ben Thomasson for the report) -2012-09-25 Gustaf Neumann +2005-09-28 + * fixed bug in instvar (many thanks to Koen Danckaert for the report) + extended regression test - - don't blindly register all object/class methods for XOTcl +2005-09-27 , Uwe Zdun + * release of distribution XOTcl 1.3.7 - Property Reform Part 2: better handling of per-object properties - nsf.c: - - changed "/class/ __objectconfigure" to "/obj/ - __objectconfigure" to be able to handle per-object properties - on classes properly. - - renamed "info method parametersyntax" -> "info method syntax" - - renamed "/obj|cls/ info method parametersyntax" into "/obj|cls/ - info method syntax" - - replaced "::nsf::methods::class::info::objectparameter" by - "::nsf::methods::object::info::objectparameter" - - new command "::nsf::parameter::specs ?-configure? ?-noposargs? - slotobjs": convert provided slotobjs into a list of parameter - specs - - new command "::nsf::parameter::get list|name|syntax - parameterspec": convert parameter spec into syntax form, or - retrieve pieces of information from it (can be extended in the - future) - - added more or less generic list handling functions - TclObjListFreeList(), TclObjListNewElement() and - TclObjListAdd() used by "::nsf::parameter::specs" - - replaced "::nsf::method::property /obj/ -per-object /name/ - slotcontainer ?value?" by "::nsf::object::property /obj/ - slotcontainer ?value?" - - added "::nsf::object::property /obj/ hasperobjectslots ?value?" +2005-09-26 + * new check option "switch" for non positional arguments. + If .... -somearg:switch is specified in the definition + of a method, this behaves like "boolean", except that + no additional argument is specified during invocation. + A default value of "off" can be turned on, as well as the + default value "on" can be turned off by specifying the switch + in an invocation. - nx.tcl: - - new info methods - * "/obj/ info lookup parameter definitions" - * "/obj/ info lookup parameter names" - * "/obj/ info lookup parameter list" - * "/obj/ info lookup parameter syntax" +2005-09-25 + * defined an experimental method named "method" + * new global command "::xotcl::configure filter on|off" + to deactivate all filters for an interpreter. This is + needed for serializing code with active filters. + * Changed xotcl serializer to use "::xotcl::configure" - - changed "/cls/ info parameter definition ?name?" into - "/cls/ info parameter definitions ?name?" since ir returns - a list. Still, "list" or "syntax" won't be plural +2005-09-14 + * Fixing serializer to enforce methods on ::xotcl::Object or ::xotcl::Class + before other objects and classes -2012-09-22 Gustaf Neumann +2005-09-13 + * adding two package require into library files + (many thanks to Andreas Kupries for the report) - - renamed timing variable from "time" to "ms" - - added timing statistics +2005-09-09 + * fixing various namespace issues in library files to make + regression test working again. -2012-09-21 Gustaf Neumann +2005-09-08 + * documentation and regressiontest for "self isnextcall" added + * added further regression tests, documentation improvements + * Httpd: changed classes + AccessControl BasicAccessControl + DigestAccessControl Responder + to Httpd::AccessControl ... Httpd::Responder + in order to reduce namespace pollution; applications + refering to these must use now these names +2005-09-07 + * fixed callstack information for expr; old code could + believe (in connection with forward) to be in an uplevel when + a forward to expr was called. This could result in a wrong + result for [self].... - - generalize handling for per-object-properties - - added additional file for regression test + * merged first bunch of files from Andreas Kupries to + make libraries more namespace clean. fixed a few namespace iusses + in the libraries. Many thanks to Andreas Kupries! -2012-09-19 Gustaf Neumann + * fixed refrence resolving in istype; the following works now the same + way: + C create c1 + c1 istype ::C + c1 istype C - Property reform part 1: - - disallow protection modifiers for "properties" and - add new flag "-accessor" to "property" and "variable" - This changes definitions like +2005-09-02 + * code cleanup: removed ifdefs for TCLCMD - Class create C { - :property {a a1} - :public property {b b1} - :protected property {c c1} - :private property {d d1} - } +2005-08-04 + * fixed instvar implementation when variable names + are empty strings (many thanks to Zoran for reporting this) - to +2005-07-13 Uwe.Zdun@wu-wien.ac.at> + * new subcommand for self: [self isnextcall] + is true, if the current method was called via next. + This fixes the abstact method. - Class create C { - :property {a a1} - :property -accessor public {b b1} - :property -accessor protected {c c1} - :property -accessor private {d d1} - } +2005-05-04 + * prevent new from overwriting an existing object + (increment further until unused name is found) - since "properties" are always public accessible over the - "configure" and "cget" interface, but the accessors methods - might not be public. The value of the accessor might be also - "none" (specifying explicitly that no accessor is wanted) or - "", which means: use the default. Same holds for "variable" +2005-07-04 Jeff Hobbs + * providing update for configure - - disallow parameter option "incremental" and change it to a - flag of the property or variable. The motivation for this is - due to the fact, that "incremental" is a property of the - accessor, and not of the value. +2005-04-04 + * allow xotcl to be used in safe safe interpreters - old: - Class create C { - :property foo:int,incremental - :variable bar:int,incremental - } - new: - Class create C { - :property -incremental foo:int - :variable -incremental bar:int - } + ~rlwrap /usr/bin/tclsh + % package req XOTcl + 1.3.7 + % interp create -safe slave + slave + % load "" xotcl slave + % slave eval ::xotcl::Object o1 + ::o1 - - disallow "public class property" and friends since these are - not needed +2005-03-24 + * implemented resolving for references to classnames not + in the current namespace such that the following works + namespace eval foo { + Class M -superclass Class + } + without the need of specifying "-superclass ::Class" - - removed parameter property "noaccessor" + * implemented resolving for references to imported class names + such that the following works + namespace eval foo { + namespace import ::bar::A + Class M -superclass A + } - - removed "nx::configure defaultPropertyCallProtection" and - method hook "__default_property_call_protection" +2005-03-17 , Uwe Zdun + * release of distribution XOTcl 1.3.6 - - introduced "nx::configure defaultAccessor" and - method hook "__default_accessor" +2005-03-16 + * extended semantics of meta class definitions: + old: + a meta class is either ::xotcl::Class or one of its + direct subclasses + new: + a meta class is either ::xotcl::Class or a class + inheriting from ::xotcl::Class + The subtle difference is that with the new definition + every class can be made to a superclass by adding an instmixin + of Class (or one of its subtypes) to it. Before this change + it was necessary to alter the Class hierary explicitely. + In order to define that every class should be a metaclass, + one can use now + Object instmixin Class + instead of the rather complicated solution i posted on the + xotcl mailing list not long ago. - - for the time being, "defaultAccessor" is "public" for NX and - XOTcl, will be changed to "none" in NX + * new info subcommand: info precedence + * fixed possible crashes of objects are called with class methods + (e.g. due to instmixins) + * fixed bug when instmixins are defined recursively + (e.g. Class instmixin Class) + * code refactoring, fixed erroneous documentation of c code + * improved documentation in tutorial, als syntactically + such that htmldoc 1.8.24 works with it + * extended regression test, reduced dependency on tests - - extended regression test (new file properties.test) +2005-03-11 + * fixed bug noted by Kristoffer Lawson: + - Don't allow an object to be changed to a class via "o class Class" + - Don't allow an object to be recreated (without alloc) to a Class + * fixing the following command + namespace eval foo { + Class m + Object o -mixin m + } + such that m is resolved from the foo namespace. + The ::xotcl:: namespace is now skipped, since a + helper method that calles the primitive setting command + is defined there -2012-09-15 Gustaf Neumann +2005-03-01 + * improved documentation of next in langRef - nsf.c: - - fixed parmeter syntax for required nonpos args - - deactivate deletion of methods via nsf::object::delete during - shutdown to avoid missing slot forwarders called from destructors +2005-02-23 + * fixed passing of error code from init methods + (thanks to Fabrice Pardo for noting it) + * returning PACKAGE_VERSION after a package require + (e.g. 'package req XOTcl' returns now 1.3.6) - nx.tcl: - - remove debugging output - - renamed testlog file, remove it on "make clean" +2005-01-15 , Uwe Zdun + * release of distribution XOTcl 1.3.5 - nsf.c: - - made argument of cget required +2005-01-10 + * added instproc for ::xotcl::Class allinstances + to return all instances for the actual class - nx.tcl: - - added Tk-style methods "configure" and "cget" - - added additional regression test set for cget and configure +2005-01-07 + * code cleanup for nonpos args + * new methods for Serialzer: + - Serializer methodSerialize (to serialize methods) + - Serializer exportMethods (to export methods from the + xotcl namespace via ::Serializer all + - Serializer exportObjects (to export Objects from ::xotcl::*) + * put Serializer into a namespace (::Serializer is auto-exported) + * fix for serializer, when xotcl is not imported globally + * aolserver: support for namespaced objects in xotcl.tcl - nsf.c: - - implemented cget as a configure-like method, dropped ensemble method - variant +2005-01-06 + * made introspection options for methods with nonpos args + compatible with Tcl + * adding functionality to allow nonpos args and positional args + to be specified in the same argument list (still supporting + the syntax with separate lists) - nx.tcl: - - simplified "/obj|cls/ delete method" due to resolving capabilities in - nsf::delete::method - - fixed regression test to run all test again correctly +2005-01-05 Uwe Zdun + * Added support for defaults + non-pos args in info args, + default, instargs, instdefault + * fixed bug: Check Boolean in non-pos args crashed with 2 args - xotcl2.tcl: - - made destructor of Connection more robust such it does not depend on - accessor methods. +2004-12-15 + * fixed crash for empty arguments + (thanks to Gerald Stermsek for reporting this bug) -2012-09-14 Gustaf Neumann +2004-12-02 , Uwe Zdun + * release of distribution XOTcl 1.3.4 - nsf.c: - - extended nsf::method::delete to handle ensemble names - nx.tcl: - - added tk/incr-tcl style cget methods on class/object levels. - - improve copy handling with other child-types of the slot container - working - - make sure to ignore non-slot-type objects in slot introspection - - worked on regression test until "methods.test". others are missing, - but maybe reconsideration +2004-12-02 + * changed metadata analyser from recursive to iterative -2012-09-13 Gustaf Neumann +2004-11-30 + * various fixes to improve portability - - updated 34 copyright notices +2004-11-27 , Uwe Zdun + * release of distribution XOTcl 1.3.3 - nx.tcl: - - rename the following internally called methods (not for XOTcl). - alloc -> __alloc dealloc -> __dealloc objectparameter -> - __objectparameter recreate -> __recreate - - from these methods, only __objectparameter is defined per default, - the others are defined on demand +2004-11-20 + * fixed [self callinglevel] in nested uplevel loops + in the presence of filters, extended regression test - changes to allow efficient tk/incr tcl compatible configure/cget - - refactored code to allow to parameterize handling of required - flag for parameters - - don't flag an error when configure is called on an - initialized object (logic: if the object is initialized, - configure must have been called before, and the required - action must have been already taken). - - rename nx::Object.configure to nx::Object.__configure to free method - name "configure" for an e.g. tk-like configure +2004-11-19 Uwe Zdun + * fixed bug: empty non-pos args, double dash alone. + Thanks to Bryan Schofield for reporting this bug. + Added tests. -2012-09-10 Gustaf Neumann +2004-11-18 + * changed internal communication between end-of-filterchanin + and "unknown" to flag instead of return code XOTCL_UNKNOWN + * fixed [self callinglevel] in nested uplevel loops + (many thanks to MichaelL@frogware.com for reporting the problem) - - finalize transition from old code +2004-11-14 + * fixed yet another free memory read + (many thanks for Zoran for help with purify) -2012-08-28 Gustaf Neumann +2004-11-13 + * fixed entries for aolserver in configure.in + (many thanks for Zoran reporting this problem) + * fixed --enable symbols (many thanks for Zoran reporting this problem) + * fixed free memory read in namespace deletes - - fix frame scoping for myvar/myproc +2004-10-30 + * added error message when someone tries to delete a + non-existing proc/instproc + * using less memory for objects and classes with procs/instprocs, + when they do not use assertions (saving 14%) + * prettified langref with css + * documented deletions of object procs and instproc through + proc/instproc with empty args and empty body -2012-08-10 Gustaf Neumann +2004-10-13 + * make namespace handling code more orthogonal + * using resolver for exists method (might be used in future for + other methods as well) + * cleanup of dead code - - allow to change title of a scripted document - - make doc beautifier more robust for invalid lists - - use explicit return in tutorial example scripts +2004-10-09 + * fixed recreation bug in connection with namespace eval + * fixed exists for objects with own namespaces -2012-08-01 Gustaf Neumann +2004-09-20 + * Fixed bin-tar target to include sdbm+gdbm+expat + * Improved documentation (tutorial and langref) for forwarding options + * using $prefix in install-aol, provided a README.aol file + * more general fix for namespace handling; still possible problem + with shared Tcl_Objs of type XOTclObject, when referred to from + different namespaces. - - improve documentation - - use "nsf::relation $cl superclass" instead of "$cl configure - -superclass" - - minor documentation updates +2004-09-15 Uwe Zdun + * fixed bug: non-pos args did not work correctly with default + values. Thanks to Bryan Schofield for reporting this bug. + Added tests for non-pos args + default values. + +2004-09-09 Uwe Zdun + * fixed possible accesses to object namespaces that got already + destroyed by TCL, by checking for ((Namespace + *)nsPtr)->deleteProc is not NULL, ie. it is still set to + XOTcl's Namespace Delete Proc, and not invalidated by + TclTeardownNamespace yet. add test for this to testx. Thanks + to Kristoffer Lawson for reporting this bug. + * fixed mis-formating in tutorial (only visible in browsers + other than Mozilla) + +2004-09-02 Uwe Zdun + * temporary fix for alloc behavior to deal with explicit namespace changes + by user, thanks to michael.heca@email.cz for reporting the + bug. Added a test for this change. - nx::test: - - added summary at the end of "make test" via log file - - updated .gitignore +2004-08-26 , Uwe Zdun + * release of distribution XOTcl 1.3.1 -2012-07-31 Gustaf Neumann +2004-08-26 + * removed dependencies on TclGetInterpProc(), added define + USE_INTERP_PROC if someone needs this. If nobody complains, + we will remove this in the future - nx.tcl: - - set multiplicity for mixins and filters by default from 1..n - to 0..n to avoid error messages, when e.g. empty mixin lists - are configured. Setting empty mixin-lists is strictly - speaking not necessary, but this eases the code in cases the - lists are sometimes empty. +2004-08-22 + * fixed nonposargs, when used with checker procs and + spaces in arguments + * auto-generating docs in build tree (instead in + source tree) + * cleanup and documentation of somewhat confusing declations + in xotcl.h and xotclInt.h (XOTcl_Object and + XOTclObject) + * make tar makes distclean first - - handle cyclical superclass/class dependencies during object - system finalize - - extend regression test +2004-08-19 + * if configure is run outside the src tree the directory + structure is now built on the fly. All binary + output files are now placed in the built-tree. -2012-07-18 Gustaf Neumann +2004-08-18 + * added a regresion test for serialzer + * fixed a "last minute" bug in serializer + * configure changes: made subdirs relative to $srcdir, + set XOTCL_SRC_DIR to $srcdir to make build succeed + from outside dir - nsf.c: - - ignore in internal calls to "dealloc" protection settings - - handle cyclical class dependencies during object system finalize - - extend regression test +2004-08-17 , Uwe Zdun + * release of distribution XOTcl 1.3.0 -2012-07-18 Stefan Sobernig +2004-08-17 + * fixing make for rpm + * tweaking configures stuff to work with rpm - - library/nx/nx.tcl: Following the code review, implemented a - first scheme for handling traces in setCheckedInstVar. This - gives us consistent behavior for defaults and traces - (valuechangedcmd) across classes and objects. +2004-08-16 + * adding two sections to tutorial, updated langref.xotcl - - tests/parameters.test: Adjusted the relevant tests +2004-08-15 + * Adding non positional arguments to serializer - - Pending: setCheckedInstVar currently uses ::nsf::is to - validate the value (e.g., default value) to be set. However, - it might get passed parameter options which do not fit the - NSF_DISALLOWED_ARG_VALUECHECKED filter. +2004-08-12 + * fixed a possible core dump when 'my' was called without + args (many thanks to Bryan Schofield for noting) + * some code generalization and cleanup -2012-07-17 Gustaf Neumann +2004-08-01 + * changes to forward and instforward: + providing positional arguments for the + forwarder. It is now possible to prefix the + arguments with "%@POS ", where POS can be a + positive or negative number or "end". A negative + offset can be used to address relative to the end - - define method "proc" of ::xotcl::Attribute in terms of - ::xotcl::Object proc +2004-08-01 + * xotcl.c: calling __unknown when an object with an unknown + parent namespace is called (for handling nested object + classes in Zoran's ttrace package) - - make sure to have gcc branch hints in generated code +2004-08-01 + * yet another fixed access to freed memory (when the configure + method returned a non numerical value, which was tried to be + converted into a number; setting refcounts properly helped. + (thanks to Zoran for his help with Purify ) + * minor code cleanup + * test with tcl 8.4.7 - - honor default type in "info slot names" +2004-07-29 + * changes to forward and instforward: + + %some-command executes some-command at invocation time and + substitutes result + + substitution extended to all arguments (also on callee) -2012-07-17 ssoberni +2004-07-28 + * yet another fixed access to freed memory + (thanks to Zoran for his help with Purify ) - - Addressed a number of issues in the NX slot infrastructure - (which revealed themselves when running Mark's - BusinessActivities implementation in XOTcl2 mode): +2004-07-26 + * fixed bug in filters in connection with instmixin; + inactive tcl callstack frame was dereferenced. This fixed as well + a potential uplevel bug + * fixed access to freed memory (thanks to Zoran for his help with Purify ) - - generic/nsf.c: Initcmd blocks (as set for registering per-class - slot traces) were subjected to argument checks causing - unexpected behavior (e.g., attempts of unboxing initcmds as Tcl - lists or of checking initcmds against value types). This was - fixed by exempting NSF_ARG_INITCMD params from argument - checking in ArgumentCheck() explicitly. +2004-07-23 + * implemented experimental next method for delegating same-named procs + to different objects - - library/nx/nx.tcl: For per-class parameters, the use of - valuechangedcmd effectively overruled the default value - specified (simply because the generated initcmd holding the - trace statements took the place of the default value). While - for defaultcmd and for valuecmd the parallel use of default is - forbidden, the valuechangedcmd semantics allow for specifying a - default, in principle. This was fixed by providing a - default-setting statement in the initcmd. - - tests/parameters.test: Added tests to cover the above (and - beyond). +2004-07-20 + * fixed a potential crash when a instmixin was registered on itself - - library/xotcl/library/xotcl2.tcl: Extended the backwards - compatibility of the hybrid XOTcl2/NX slots infrastructure to - the XOTcl 1 interface: This includes support for inline -proc - statements and instvar. This compatibility level corresponds to the - slot interface as documented (by examples) in the XOTcl - language ref and the manual. +2004-07-19 Uwe Zdun + * added checkoptions to non pos args + * added tests & documentation of non pos args - - library/xotcl/tests/slottest.xotcl: Added tests for the above compatibility - enhancements. +2004-07-18 jim@jam.sessionsnet.org + * Added file autogen.sh, to generate all configure files + * Added file autoclean.sh, to clean whole source tree, incl. configure -2012-07-16 Gustaf Neumann +2004-07-18 + * added removal of autom4te.cache to distclean + * make doc added to "all" target + * auto-generated html docs are removed in a make clean + * remove all *~ files in directory tree via find (ok with TEA3?) - - allow instance property inheritance for traits +2004-07-11 jim@jam.sessionsnet.org + * revamped configure recursion + * added "--with-xotcl=" to child configure.ins + * arranged for root configure to call child configures specifying path + * located and fixed bug where parts of the build cannot find xotcl.h + if xotcl was not "make install"ed (bug implies build always finds + old includes) + * ensured "make clean" and "make distclean" still worked + * TODO: clean should remove emacs backup files + distclean should remove autom4te.cache + docs should be built during make, installed during make install + and removed from the build dir during make clean. -2012-07-11 Gustaf Neumann +2004-07-03 + * extended commands filter, mixin, instfilter, instmixin: + These commands are changed in a backward compatible manner. They + can be used as follows - - Don't advertise to use "configure" method for calling - class/superclass in documentation sice we have better - ways. + obj mixin same as: obj info mixin + obj mixin {C1 C2} same as: obj mixin set {C1 C2} + obj mixin set {C1 C2} sets the mixins for obj + obj mixin get same as: obj info mixin + obj mixin add C3 adds a mixin on front of the mixin list + obj mixin add C3 end adds a mixin at the end the mixin list + obj mixin add C3 3 adds a mixin at the 3rd position + obj mixin delete ::C3 removes the mixin from the mixin list -2012-06-27 ssoberni + The same semantics are available as well for filter, instmixin + and instfilter. + The implementation uses the forwarder and is extensible, new + subcommands can be added. As a side effect, the c-code was reduced + by 50 lines. + * the commands mixinappend, filterappend, instmixinappend and + instfilterappend were marked as deprecated and will be removed + in future versions - - Replaced erroneous check using the object-specific rather than - the class-specific options in the query mode of ::nsf::relation - with class-filter. This prevented [::nsf::relation /cls/ - class-filter] from returning any filter info. As a consequence, - the incremental interface of the filter slot failed (e.g., - [/cls/ filter add aFilterProc] effectively reset the - class-filter cmd list instead of adding to it). Thx are due to - Markus Moldaschl for reporting the issue. - - Aligning class-filter and object-filter behavior on errors - during filter additions to the state-preserving behavior of - object-mixin and class-mixin. - - Adding basic tests on object-filter/class-filter (::nsf::relation, - filter slot interface) and specific ones to cover the above issues. +2004-07-02 Uwe Zdun + * integrated support for non-positional arguments for procs + and instprocs -2012-06-25 Gustaf Neumann +2004-07-02 + * rename forward option -inscope to -objscope + * xotcl.c: added current namespace prefix, when a forwarder is + defined with -objscope and no namespace prefix was specified + * optimized forward/instforward such it reaches practically + same speed as tclcmd/insttclcmd. + * removed tclcmd/insttclcmd + * added tests for forward to regression test suite + * applied and fixed the config improvements by Jim Lynch - - added a SlotContainerCmdResolver() to avoid interaction of slot - names with names of callable tcl commands. Without the - SlotContainerCmdResolver() the call to "list" in a property - named "list" leads to a call to the container object - ::Test2::slot::list instead to the intended ::list. The - implementation is not perfect, since it ignores the namespace - path inside the slot container. - - added regression test. - - adding gcc helper files to ignore list - - cosmetical documentation changes +2004-07-01 + * xotcl.c: allow literal %self, %proc, %1 etc. as arguments of the forwarder: + arguments in the definition of a forwarder proc + starting with two %-characters are changed into arguments starting + with one % + * xotcl.c: forced options to be placed in forward definition after + before + * xotcl.c: new info option for Object and Class: + info forward ?-definition? ?pattern? + list the defined forwarder for the class/object. + * Serializer.xotcl; Added handling of the forwarders to the serializer. + Therefore forwarders are kept in the serialized state. -2012-06-01 Gustaf Neumann +2004-06-29 + * changed name of delegator methods to forward/instforward + * removed most of the switches of the forwarder. We have now - nsfShadow.c - - bump MethodEpoch when a tcl ::rename command happens on a nsf - method (which might be cached in a Tcl_Obj) This fixes a crash - reported by Arthur Schreiber nsf.c: - - make NsfInstanceMethodEpochIncr() and - NsfObjectMethodEpochIncr() accessible from all files using - nsfInt.h - - remove experimental code (backslash escaping for "," in parameter - option parse + obj forward ?options? ?arglist? + where arglist might contain + * %self for inserting the forwarding object + * %proc for inserting the forwarding method + * %1 for using the first argument of the invocation + options might contain: + -inscope: evalute method in obj scope + -methodprefix: prefix, to be added in front of called method + (to avoid name clashes with methods like "set", "mixin" etc.) + -default list-of-methods: to be used in connection with %1, when there + are not enough arguments in the actual call. -2012-05-22 Gustaf Neumann +2004-06-24 + * fixed coredump for delegation to object without method specified + (many thanks for Bryan Schofield for the bug report) - - remove dependency of generated stub file from nsfInt.h - - fix compilation when dtrace is activated (missing parenthesis, many - thanks to Victor Guerra for noticing) - - document private properties in tutorial and migration guide - - improve wording in documenting - - extend regression test +2004-06-20 + * removed inclusion of + * second version of delegator methods cmd and instcmd -2012-05-22 Stefan Sobernig + A delegator method is defined via + Class instcmd method COMMAND ARGS + a call to the defined method with some args + obj method arg1 arg2 arg3... + is mapped to + COMMAND ARGS arg1 INSERTTOKENS arg2 arg3... - - configure, configure.in: Under win, the CLEANFILES missed a - pattern for object files + Class instcmd \ + ?-nocaller? \ + ?-nomethod? \ + ?-inscope? \ + ?-skip nr_of_tokens? \ + ?-insert tokens? + ?-prefix string? \ + ?-defaultmethod subcommand? \ - - nsfInt.h: Based on the BUILD_nsf convention, the internal - header introduced a TCL_STORAGE_CLASS macro placing the - dllimport attribute (under Win/MinGW builts). As a consequence, - shared and stub builds ended up with function declarations - annotated with dllimport (which for these cases is either - unnecessary or even breaks builds because the dllexport - counterpart is missing, obviously). As nsf.h includes a sane - DLLIMPORT/DLLEXPORT handling (copied over from tcl.h), I simply - removed the special macro handling from nsfInt.h. + where + methodname: name of an instcommand for the class + to be registered, + commandname: command that receives delegation + -nomethod: don't insert the callers method + -nocaller: don't insert caller after method + -inscope: evalute method in obj scope + -skip: skip n arguments from the call. "-skip 1" + means that not the "method" from the invocation is + used as the method call, but the first argument + -prefix: prefix, to be added in front of + called method (to avoid name clashes + with "set", etc.) + -insert: tokens to be inserted after the caller - - NsfProcStub(): Use the EXTERN macro rather than extern directly + -defaultmethod: when number of arguments is not sufficient + to determine the called method, use the specified + value to be used as method name (only useful when + -skip is used and the arguments run out) + (e.g. [$obj info] be mapped to COMMAND showInfoOptions) -2012-05-21 Gustaf Neumann - - added documentation for "/obj/ info name" to migration guide - and .nxd file - - adding more comments to examples in migration guide - - added design study ruby-mixins.tcl to example-docs and regression test - - minor polishing +2004-06-18 + * added *.a to CLEANFILES in configure.in to rm stublibfile + on a "make clean" + * added subdir traversal for distclean -2012-05-17 Gustaf Neumann +2004-06-13 jim@jam.sessionsnet.org + * fixed make distclean target + factored list of configure output files into macro made sure + value of output files got through to make distclean target - - change "#!/bin/env" into "#!/usr/bin/env" +2004-06-12 + * changed namespace treatment in procs/instprocs + in provious versions, methods were evaluated in the + namespace where they are invoked. This has the problem that + either the xotcl primitives (next,my,self) have to be + prefixed in methods by ::xotcl::, or ::xotcl::* has to be + imported globally. Now, the instprocs are evaluated in the + namespace where they are defined. + * computing default prefixes in insttclcmd/tcllcmd for + not fully qualified commands -2012-05-14 Gustaf Neumann +2004-05-29 + * first version of instdelegatecommand - - increase backward compatibility for ::xotcl::Attribute by defining - the public methods "set", "exists" and "istype" + * defined metaclass ::xotcl:.SelfApplicableClass to allow + for instprocs of this class to be applicable for itself + (useful for delegation objects) -2012-05-14 ssoberni + * first version of ::xotcl::relations + (for relations between objects and classes and for + inter-class-relations) - - apps/utils/nxdoc: fix shebang path to env ... +2004-05-22 + * fixed path for installing files in Makefile.in + (many thanks to Jeffrey Hobbs) + * fixed path searching in xotcl.m4 - - generic/nsf.c, ObjectDispatch(): Re-arranged the handling of - fully-qualified method dispatches with the selectors resolving - to existing objects and, in particular, nested - (namespace-qualified) objects. Prior to that, dispatches such - as "::C ::parent::child" were not covered appropriately: - ::parent was reported as valid regObj and so the dispatcher - continued to dispatch to the cmd "::parent::child" in the - self-context ::parent::child ... with unwanted side-effects - (e.g., XOTcl's unknown handling was bypassed). +2004-05-07 + * fixed compile problems under HPUX + (with the help of Attila Dona') + * fixed some compiler warnings in tcl-expat showing up + (some are still missing) + with -Wall -Wconversion -Wno-implicit-int - - tests/methods.test: Added basic tests on the (current) handling for - such ::* dispatches and a specific test set on the intended XOTcl - behavior. +2004-04-30 + * removed duplicates from results from [obj info methods] + * fixed GENERIC_HDRS in configure.in and Makefile.in + * fixed documentation bugs for "info children" and + "info classchildren" + * fixed an incorrect error message, when method called + from a mixin was not found. -2012-05-13 Gustaf Neumann +2004-04-25 + * alloc returns name of created object + * On an "Object create ::o1 -noinit" the noinit option + deactivates the search for default values + (as used in the serializer) + * TEA3 changes: + - re-included xotclConfig.sh file in xotcl dependent + libraries + - fixed variable contents in xotclConfig.sh file + - passing of include and spec file for gdbm - - start error messages with a lower case word for consistency and to - follow closer to Tcl's conventions - - added "private property foo" - - extended regression test - - allow parens in property names (array syntax) - - added "/obj/ info name" (as alternative to "namespace tail [self]") - - use newer style of tcl-obj interface instead of sprintf +2004-04-10 + * start to move to TEA3 + * moved tcl scripts xotclsh and xowish into apps/utils + * made minimal build independent from tclsh; + new target libraries-pkgindex, fulldoc, doc removed + from default targets + * at least for the time being, no static shells -2012-05-11 Gustaf Neumann +2004-03-23 + * added a flag --with-aolserver3 to configure and removed + the checking of the current directory to determine whether + or not to compile an AOLserver 3.* module. Thanks to Jim + Lynch to suggestion it. - - implement escaping for comma in value of parameter options: - escaping in values can be achieved via duplicating the comma. - - extend regression test +2004-03-03 + * fixed a potential crash in procSearch method (Thanks to + Artur Trzewik for the good error report) -2012-05-04 ssoberni +2004-02-29 + * callMethod* calls DoDispatch instead of ObjDispatch + * adding a callStackPush() for XOTclOEvalMethod() such that + 'o eval self' returns '::o' - - library/xotcl/library/xotcl2.tcl: Provided a virtual slot - "multivalued" to establish backward compatibility with XOTcl1; - also, allow old-style class creation based on unknown for - ::xotcl::Attribute - - library/xotcl/tests/slottest.xotcl: Added some tests on backward - compatibility for XOTcl slots +2004-02-21 + * added link to XOTcl wiki to xotcl homepage. -2012-04-20 Gustaf Neumann +2004-02-20 , Uwe Zdun + * release of distribution XOTcl 1.2.0 - - explorative implementation of object method dispatches with - KEEP_CALLER_SELF and no NSF_PER_OBJECT_DISPATCH - - extend regression test +2004-02-17 Uwe Zdun + * fixed a Tcl_Obj ref count free that was called too early. + * fixed support for Visual CC debugger + * fixed Win version info -2012-04-16 Gustaf Neumann +2004-02-16 + * fixed a reference to a structure of a destroyed object - nsf.c: - - refactor ObjectCmdMethodDispatch() for clarity - - prepare work on object method dispatches with KEEP_CALLER_SELF and no - NSF_PER_OBJECT_DISPATCH - - remove debug line +2004-02-16 Uwe Zdun + * added self class and self proc context to GuardCall + * removed guardedScope and info guardedlevel completely + from the code + -> use parameters instead (see tutorial) + * rewritten the tutorial text for mixin/filter guards completely + * added new files to Win makefile.vc -2012-04-11 Gustaf Neumann +2004-02-14 + * experimental new command "self guardedlevel" as replacement + for getGuardedScope + * added documentation for self callinglevel, self + activelevel and the methods upvar and uplevel + * used a bold font for predefined Tcl and XOTcl words + in the HTML version of the tutorial - - fix off-by-one error - - add regression test for keepcallerself with and without - perobjectdispatch - - fix typo +2004-02-13 + * xotcl.c more code cleanup: + - some minor performance improvement + - used the same idiom for iterating over a class + hierarchy consistently + - simplified the usage of ComputeOrder() and let + the optimizer do more work -2012-04-10 Gustaf Neumann +2003-02-04 Uwe Zdun + * xotcl: removed MixinRemoveFromMixinStack, + MixinRemoveFromCmdPtr, MixinRemoveOnObjFromCmdPtr, + FilterRemoveFromFilterStack, + FilterRemoveFromCmdPtr, FilterRemoveOnObjFromCmdPtr ... and + replaced with simple forward stepping in cmd list. + * made the mem count work with multi, single-threaded interpreters - - serializer: - * pertain perobjectdispatch and keepcallerself in serializer - * extend regression test +2003-02-03 Uwe Zdun + * testx: tests for CmdListReplaceCmd, MixinRemoveFromMixinStack, + MixinRemoveFromCmdPtr, MixinRemoveOnObjFromCmdPtr, + XOTclOGetGuardedScopeMethod, XOTcl_InterpObjCmd, + XOTclOVwaitMethod, + * xotcl: removed XOTclAssertionRename, + simplified XOTcl_RenameObjCmd + * corrected mistakes in tutorial code for filterguards. - nsf.c: - - generalize stack monitor by handling growing and shrinking - stacks - - refactor into function CheckCStack() +2004-01-31 + * performed coverage analysis of regression test + * changed unsuccessful branches into asserts + * extended testx.xotcl for better coverage - - serializer: +2004-01-28 + * Streamlined code; removed mixinChainOn from mixinStack and + filterChainOn from filterStack and use callstack + frameTypes instead. + * some performance improvements - * make [::Serializer deepSerialize -ignoreVarsRE "" $o] - behave like [::Serializer deepSerialize $o], since - learn@wu depends on that, and a value for ignoreVarsRE of - empty looks more like an omitted value than a regular - expression, that should match everything. - * extended regression test +2004-01-27 + * implemented uplevel method + (uses [self callinglevel] when no level specified) + * fixed a bug in next, when methods on the same object are called + from within a mixin class and filters are defined + * some performance improvements - - extended regression test +2004-01-19 + * added more test cases, + * upvar method fully functional + * simplified CallFrame management on XOTcl stack + (wish, CallFrame had ClientData !!!) + * Reduced size of XOTclCallStackContent + * modularized xotcl more (new file xotclShadow.c; all shadowing + of Tcl commands and access of global tcl obj commands is + treated there) + * included a fix from Zoran for thread exit handlers. -2012-04-05 Gustaf Neumann +2004-01-16 + * defined upvar method (uses [self callinglevel] when no level + specified) + * simplified stringIncrement method and added a couple of + assert(). - - added compile macro NSF_STACKCHECK to provide stack - monitoring/debugging (especially useful for multi threaded - programs, where stack is more limited) - - make ::nsf::log more robust for aolserver/NaviServer, since ::ns_log - is not always around when an output is needed - - don't hide call to make.tcl +2004-01-15 + * allow volatile to be called from toplevel + * decrementing refcount of global objects as needed + (some had a high increment) -2012-03-09 Gustaf Neumann +2004-01-14 + * method 'new' now uses stringIncrement, which replaces the name + generation based on numbers by a name generation based on + strings. The strings are constructed by small and capital + letters plus digits and correspond to a number of a number + system with the basis of 26+26+10=62. These strings can grow + up to memory size. XOTcl can run as a server practically + infinitely long generating objects with 'new'. - - protect serial generation for parameters via mutex - - fix compilation when compiled without threads (many thanks for - r.zaumseil for noting this). + * new package xotcl::upvar-compat + This package provides backward compatibility with earlier + versions of xotcl that redefined upvar/uplevel such that + these commands ignore inactive filter and mixin frames + (upvar behaves the same whether or not a filter is + installed). Newer scripts should use + upvar/uplevel [self callinglevel] var/command + instead. This package can be used via -2012-03-05 Gustaf Neumann + package require xotcl::upvar-compat - - tcl86.test: better implementation of method "each", cleanup and - extension of enumerator tests + * moved resetting of shadowed tcl commands after the deletion + of object (as suggested by Zoran) -2012-02-29 Gustaf Neumann +2004-01-11 + * all occurrences of uplevel/upvar equipped with + [self callinglevel] such that library works with standard + uplevel/upvar + * faster version of 'new' method (more than 20% faster, + using c-variable, faster long to ascii conversion) + * objinst (of oo-bench) about 17% faster - - extended regression tests for yield - - implemented "next" for ruby-like enumerators (each needs still more - work) +2004-01-10 + * polished macros XOTcl_FrameDecls, XOTcl_PushFrame, + XOTcl_PopFrame (2 versions, slower version with less + dependencies on tclInt.h) + * removed mixinCalls and filterCalls from interpreter state. + * removed unneeded macros -2012-02-27 Gustaf Neumann +2004-01-08 + * fixed bug on exit, when no threads are enabled + (different cleanup strategy in threads) + * fixed crash on deleted Tcl_Cmd, when xotcl debugging output + is turned on + * some more code cleanup - - pass property name to slot "initialize" method to conform with - the interface to "assign", "get" ... (all these receive the - property name as well) - - allow slot "initialize" method to be protected (handled similarly to - "init") +2004-01-07 + * removed varFramePtr from xotcl callstack + * removed unneeded variables from runtime state + * resetting of csc->callsNext after a next call + * added "methods" to info info -2012-02-24 Gustaf Neumann +2004-01-06 + * cutting of callframes removed completely + * 2 new subcommands for self: + - self callinglevel: returns the tcl stack level to address + the invocation of the actual method + - self activelevel: returns the topmost active stack entry + from the xotcl stack + Both commands return the absolute level number (syntax #n) + if called from an xotcl method or 1 if called from a tcl + proc. These subcommands are designed to be used in the form + of "upvar [self callinglevel] a b" + * Replaced C implementation of uplevel and upvar + (with callstack manipulation) by a simple Tcl proc that uses + [self callinglevel] as default level (if is was not called + with an explicit level). + * Extended test suite + * Changed all variables of type "Interp *" to "Tcl_Interp *" + and defined macros Tcl_Interp_XXXX to access component XXXX + * Changed all variables of type "CallFrame *" to + "Tcl_CallFrame *" and defined macros Tcl_CallFrame_XXXX to + access component XXXX - nsf.c: - - added object parameter option "slotinitialize" - - renamed object parameter option "invokesetter" -> "slotassign" - - call slot.assign instead of setter of object - - removed restriction on nosetter/invokesetter: nosetter can be - used in connection with slotassign - - added regression test for slot.initialize +2004-01-04 + * callstack manipulation reduced significantly + * speedup on xoRDF.test about 7% + * self callingobject/callingclass/.... refers always to + last invocation (ignoring next-chain) + * consequence: mixins and filters are transparent on the + callstack + * possible extension "self previous ?n?" similar to "self next" + to obtain information about next chain + * possible extension "self level ?n?" similar to + "info level ?n?" to obtain information about call stack -2012-02-22 Gustaf Neumann +2004-01-02 + * Changed all variables of type "Namespace *" to + "Tcl_Namespace *" and defined macros Tcl_Namespace_XXXX to + access component XXXX + * generalized invocation on callProcCheck and + handling of calldata in new function DoCallProcCheck + * overall code cleanup + * extended test suite with tclmd and insttclcmd - - Fixed a bad interaction between Tcl's apply (pushing lambda - frames) and the variable resolvers. The variable resolver was - not able to resolve variables, while the command resolver was - still working correctly. - - Extended regression test +2004-01-01 + * fixed loop on invocation of methods registered by + the tclcmd method + * allowed to register fully qualified commands via + tclcmd or insttclcmd + * made insttclcmd to work from mixin or instmixclasses + * renamed "next" method to "__next" + * restored old behavior of defaultmethod - - Improve wording in instructions - - Improve comments - - Documented dependencies between configure flags and feature - activation cpp macros +2003-12-31 + * Changed all variables of type "Command *" to "Tcl_Command" + and defined macros Tcl_Command_XXXX to access component XXXX + * new predefined method self: [ self] returns fully + qualified name of object + * potential incompatibility: + calling an object without name does not return fully + qualified name, use "self" method (see above) instead. + To keep backward compatibility, define + Object instproc defaultmethod {} {return [my self]} + * New method " next" can be used to invoke next + on the last recent invocation of a method on . + must be on the callstack, otherwise an error message + is generated + * The new defaultmethod calls next on parent object to + prohibit shadowing of methods through sub-objects -2012-02-17 Gustaf Neumann +2003-12-28 + * new functions: CallStackUseActiveFrames()/CallStackRestoreSavedFrames() + to to avoid walking through and modifying the whole stack + when locating an active frame to set variables (using in + -volatile, instvar, info defaults) callstackcutframes still + used in info level, uplevel, upvar, info callingproc, + callingclass, callingobject +2003-12-25 + * update of various library functions (such as Httpd) to + use sub-objects as methods (avoids calls of [self]::objname) - - improve error message to indicate, that nsf refuses to overwrite - (redefine) some cmds - - don't allow method to overwrite child object - - extended regression test - - documented new feature as incompatibility with XOTcl 1 +2003-12-19 + * xotcl.c: allow to call sub-objects as methods via "my" -2012-02-16 Gustaf Neumann +2003-12-16 + * added logdir as parameter for Place (HttpPlace) + * fixed handling of content-length == 0 in Httpd.xotcl + to avoid Problem with microsoft explorer's WebDav queries - - don't allow object creation to overwrite non-object cmds (e.g. procs) - - improve debug line +2003-11-13 , Uwe Zdun + * release of distribution XOTcl 1.1.1 -2012-02-16 ssoberni +2003-12-13 + * Removed dependency that certain variable references in + tclConfig.sh (such as + TCL_SHARED_LIB_SUFFIX='${VERSION}${DBGX}.so'); There was a + problem on freebsd systems that use hardcoded "84" instead + of version in this definition, which leads to a problem when + the SHARED_LIB_SUFFIX is used with different VERSIONs (such + as in XOTcl). We set now the suffixes as follows - - library/lib/nxdoc-xowiki.tcl: Finished and polished the xowiki - backend for nxdoc. Some tests regarding relative paths and the - tree-view generation are pending ... - - library/lib/nxdoc-xowiki.tcl: Use the built-in base64 facility - if running under Tcl 8.6 - - Due to re-introducing nested-object-as-method semantics - lately, nxdoc started stumbling over name conflicts between - nested entity hierarchies (i.e., the entity object - representing "/cls/ class info class" ...) and equally-named - introspection calls on such entities (e.g., a "info class" - call). I made these calls more robust my using -system - dispatches; which is fine as long as we do not have - sth. like "/obj/ info eval". Generally speaking, the risk of - such naming conflicts discredits the use of object nesting - in nxdoc; should eventually be revised. Or, as work-around: - Using a filter on Entity instances to protect/redirect - critical calls. + eval "SHARED_LIB_SUFFIX=${VERSION}${TCL_DBGX}${TCL_SHLIB_SUFFIX}" + eval "UNSHARED_LIB_SUFFIX=${VERSION}${TCL_DBGX}.a" - - tests/serialize.test: Added some basic regression tests, in - particular to challenge the filter options provided by - Serializer->deepSerialize() and Serializer->all(). - - Included a test for commit 595e6a2. + and pass it through xtoclConfig.sh to the c based + c-components (sdbm, gdbm, expat) - - Along the line, two minor issues where fixed: 1) Set - Serializer->ignore() to public, otherwise the various - external message sends to this method would fail; 2) - Object-serialize() did not distinguish between serializing a - per-object or per-class container properly; as a - consequence, per-object containers were not restored at - all. Add a test covering this. +2003-12-08 + * Some cleanup in tclexpat.c to make it compile on freebsd + * configure: made --with_gdbm configurable such that + include path and library path can be configured + * Httpd.xotcl: added simple redirects, can be used like e.g. + Httpd h2 -port 9086 -root /tmp \ + -redirect {^(mailman|pipermail|cgi-bin) + http://alice.wu-wien.ac.at>:80} - - library/serialize/serializer.tcl: Due to the split between - serializer and object system serializer, the ignore settings - (passed as object variables, i.e., ignoreVarRE) got - lost. This is fixed now ... +2003-12-07 + * incorporated more fixes for build system suggested by Daniel + Steffen + * changed version number to 1.1.1 + * further cleanup in Makefiles, reduced redundancy in + distro by using symbolic links + * used everywhere for SHLIB_LD_LIBS XOTCL_BUILD_STUB_LIB_SPEC + instead of XOTCL_STUB_LIB_SPEC -2012-02-16 Gustaf Neumann +2003-12-06 + * httpd.xotcl: fixed return format in HTTP reply header + parameters Allow: and Public: for HTTP OPTIONS method + * library/store/XOTclGdbm/: fixed initialization of + xotcl stubs, usage of ck{free,alloc} vs. {free,malloc}. + * library/store/XOTclSdbm/: fixed handling of O_SYNC on + system that do not have it + * Configure can run now as well from outside of xotcl sources; + One can use now for example the following commands to + compile and install XOTcl - - treating incompatible forwarding to slot vs. slot option - noaccessor - - extended regression test + % mkdir -p /tmp/xotcl/unix + % cd /tmp/xotcl/unix + % ~/xotcl-1.1.1/unix/configure --with-all + % make + % make test + % make install DESTDIR=/tmp +2003-12-05 + * incorporated changes as suggested by Daniel Steffen + - using consequently DESTDIR for all directory references + - made procs in predefined.xotcl independent + from namespace import ::xotcl::* + - make references relative to $(srcdir) in all Makefile.in - - use Tcl's EXTERN macro instead of "extern" +2003-12-02 + * added "--with-tkinclude" + * fixed "--with-tclinclude" to set TCL_INCLUDES (for all + subdirs) -2012-02-04 Gustaf Neumann +2003-11-29 , Uwe Zdun + * release of distribution XOTcl 1.1.0 +2003-11-29 + * moved tcl command hooks into thread local storage + to fix a bug, when xotcl is loaded into a thread + * fixed various documentation bugs, added style files for + XOTcl tutorial, made presentation more uniform, made + distinction between literals and placeholders visible + * fixed a few issues with purify and mt (many thanks to Zoran!) + * some Makefile improvements (removed the need to generate + documentation on each run of make) + * Fixed compilation issues of expat with tcl 8.3 or younger - update release procedure +2003-11-28 + * fixed include path for actiweb components (sdbm and expat) + * extended transparent mixins for upvar, uplevel + * extended regression test -2012-02-03 Gustaf Neumann +2003-11-27 Uwe Zdun + * added new version of Klaus' securePlaceDemo, some minor + corrections for new XOTcl version + * installed XOTcl library into lib directory under + windows instead of bin - - mv next-tutorial (source, images) into own subdirectory - doc/next-tutorial/ - - Bump version number of head to 2.0b4 - - improve wording in documentation +2003-11-26 + * removed ::xotcl::lib from predefined variables and from man + page + * added namespace require to xotclsh + * added transparent mixins for instvar -2012-02-01 Gustaf Neumann +2003-11-25 + * xotcl.c: further generalization of call stack entry + skipping; cutFrames can skip now over filters and/or mixins + * "Class new -volatile" works now through filters and mixins + * regression test updated + * reduced size of xotcl distro + * fixed various typos in language reference - - released NSF 2.0b3 +2003-11-22 + * xotcl.c: generalized cutting of call stack entries to + skip either filters or mixins + * "Class new -volatile" works now through mixins for create + * added test to regression test (testx) + * xotcl.c: some cleanup and speedup + * updated aol-xotcl.tcl (for loading xotcl into aolserver 4.0) -2012-02-01 Gustaf Neumann +2003-11-20 Uwe Zdun + * updated documentation: + - added a section "Integrating XOTcl Programs with C Extensions + (such as TK)" to the tutorial + - updated tutorial, readme, compile, compile.win - - extended blacklist for tar file - - reduce variable scopes +2003-11-16 + * Httpd.xotcl: forced HTTP/1.1 requests over SSL + to use HTTP/1.0 due to a problem between OpenSSL + and certain incarnations of IE. + * Documenting requireNamespace in more detail. -2012-01-31 Gustaf Neumann +2003-11-13 Uwe Zdun + * various changes to support conditional shell building with + stubs + * various changes to build libxotcl/xotclsh with tcl 8.0 + (stub dependencies) + * Httpd.xotcl: added parameter to web server to + configure timeout for persistent connections + * eliminated a few compiler warnings from xotcl.c +2003-11-12 + * removed namespace import/forget in predefined.xotcl + * Makefile cleanup (fixed duplicate dependencies, quoting in + loops) + * added tests for xoRDF and Persistence, when actiweb is + enabled + * building expat, when actiweb is enabled + * removed needless files from xotcl-distribution. - - additional object parameter option "invokesetter" managed by nx.tcl - This was necessary, since the previously implemented strategy called - the setter whenever slot= was provided. This has the problem, that - values could be converted twice (once by "configure", once by the - setter method", which lead for the converter to a double refcounting on - the value. +2003-11-09 + * xotcl.c: fixed calling exit-handler twice for threads +2003-11-06 + * xotcl.c: simplified handling of command substitutions; + starts to work with Zoran's nstrace.tcl for AOLserver - - make clear that "pattern" is an optional argument of "info - lookup method" - - make clear, that 'all' is a permissible value for nonpos arg - "-callprotection" (several commands) +2003-11-02 MichaelL@frogware.com + * XOTcl Stub lib configure files for C-based extensions. +2003-11-02 + * XOTcl intercepts a few commands (info, rename, uplevel and + upvar) and assumed that these commands are defined in C. + Command intercepting was fixed such that intercepting + a proc info works as well; before xotcl produced a core. + Example: + % rename ::info ::tcl::info + % proc ::info args {uplevel ::tcl::info $args} + % package req XOTcl - add missing question mark +2003-10-31 + * Substituted config/config.sub and config/config.guess + (many thanks to Zoran) + * unix/Makefile.in fixed target install-aol +2003-10-23 + * xotcl.c: new proc "__unknown" for Class; whenever + XOTcl references a class, which is not defined yet, + "Class __unknown" is called; this mechanism can be + used to autoload classes in a lightweight fashion + * fixes in the built system to avoid two different + "package ifneeded" (seems to cause troubles under + certain circumstances) - fix typo +2003-10-20 MichaelL@frogware.com + * Fixed the return value of TclExpatUnknownEncodingHandler + in tclexpat.c. The return value of the handler is now + correctly passed to expat. -2012-01-29 Gustaf Neumann +2003-10-14 MichaelL@frogware.com + * Changed library names on Windows to make library names more + similar across platforms. Changed xotcl.c and xotclStubLib.c + to support XOTcl stubs. Changed Windows Makefile.vc's to + build all libraries with XOTcl stubs by default. Changed + Windows Makefile.vc's to specify base load addresses for all + libraries. Fixed compiler warnings in winMain.c. Fixed + compiler warnings in tclexpat.c. +2003-10-08 Uwe Zdun + * a number of changes to make XOTclSdbm and XOTclGdbm work + with xotcl.h solely ... in particular, introduced new stub + functions and Interface structs for XOTclClass and + XOTclObject: XOTcl_Class and XOTcl_Object. Changed XOTcl's + core to expose these in the extern functions that are + exposed via xotcl.decls. - - Forward setting of object parameters to the slot object, when - assign method is user-defined on the slot object - - Cleanup and extend regression test +2003-09-10 Uwe Zdun + * Integrated bug fixes provided by Klaus Kolowratnik + for the secure http server. +2003-08-27 Uwe Zdun + * moved config.vc, installWin.tcl to win dir and corrected them + * merged /makefile.vc and /win/makefile.vc; everything for win + now works from the win dir + * adapted other makefile.vc's in distro + * corrected stub table decls and auto generated table .h files + that where incorrect due to recent changes in external API + (XOTclRemoveClass, XOTclAddClass) + * corrected README + * added pkgIndex file for win local dir + * win version change to 1.1 + * corrected the wrong local TCLLIBPATH on unix from '$(TOP_DIR)' + to '$(TOP_DIR)/unix $(TOP_DIR)/library' to circumvent the win + dir on the auto_path + * added locale support to xotclAppInit - - remove debug output +2003-08-27 + * went with spell checker over tutorial and + fixed a hundred of typos + * fixed install of shells + * fixed optional built of xowish (TK_LIB_SPEC was not passed correctly) + * removed obsolete check_library_path in predefined.xotcl + * some fixes in ::xotcl::config mkindex for autoloadine files -2012-01-28 Gustaf Neumann +2003-08-26 Uwe Zdun + * doc for precedence order and transitive instmixins in + tutorial +2003-08-25 + * Generate library/pkgIndex.tcl from configure + (contains version numbers) + * Fixed script for changing version numbers in xotcl + * Changed version of XOTcl to 1.1.0 - - Don't export symbols in the general case just because of MSC/C89 - compliance +2003-08-22 Uwe Zdun + * Added support for transitive instmixins in xotcl.c, + added test for transitive instmixins + * Various fixes for new build stuff on Windows +2003-08-20 + * Fixed configure problem with autoconf coming with RH 9.0 + * Allow for the definition of parameters as objects. + It is now possible to have parameters with properties + (See tutorial, section "Objects as Parameter") + * fixed various bugs in the documentation. + MAKE TODO: make rpm, bin-tar, version-change, install-aol - - updates +2003-07-13 + * Fixed potential crash with shared objects in configure + * First version of object tree creation via parameter +2003-07-11 + * extended parameter handling code to support the creation + of parameter objects + * fixed a few documentation bugs - - Cleanup for compilation under MSC (avoid unsupported forward - declaration of array) - - further documentation of functions, better grouping of functions +2003-07-05 + * xotcl.c: if object is called without method and + arguments, xotcl calls now a method named 'defaultmethod'; + the default behavior (defined as an instproc on + Object) is that the name of the object is returned. + Example: + Object o + puts <[o]> ;# outputs <::o> + puts <[o defaultmethod]> ;# outputs <::o> -2012-01-27 ssoberni +2003-06-28 + * added --with-xotclsh and --with-xowish to create + shell optionally +2003-05-28 Uwe Zdun + * added "info mixinguard" and "info instmixinguard" + * changed GuardList behavior to tolerate qualified names + * added tests for 'info instmixinguard' and 'info mixinguard' + * made -withGuard and -order work together for "info filter" + on objects. + * checked that guard is deleted, when redefined + with FilterAdd/MixinAdd + * add -guard modifier into filter, mixin definitions and infos + * updated tests - - C89/C99 do not allow forward declaration of arrays with - "static" storage classifiers (a feature which is a gcc - extension only). For MSVC compat, I fixed these occurrences and - verified that nsf builds with "gcc -std=c89 -pedantic". - - generic/gentclAPI.tcl: Modified the print statements for two array - forward declarations (method_definitions, enumeratorConverterEntries) +2003-05-23 + * removed toplevel configure and Makefile for better + TEA compliance + (configure should be called from xotcl*/unix) + * added --with-actiweb to configure; + (use --with-actiweb=yes to enable it) + * standarized tests (using the same Test classes) -2012-01-26 Gustaf Neumann +2003-05-16 + * removed binary shells and XOTcl's context depending + auto_path setting; consequences: + - in order to invoke xotcl before installation, use + export TCLLIBPATH=`pwd` + in XOTcl's build directory + - instead of using the environment variable XOTCL + (as described in this Changelog on 2001-01-08, + use TCLLIBPATH + * Two small tcl scripts "xotclsh" and "xowish" are provided + for backward compatibility with xotclsh applications + * For interactive use, adding + package require XOTcl; namespace import -force xotcl::* + into your ~/.tclshrc is recommended + * Various changes and simplifications in configure and Makefiles + * XOTclGdbm: fixed it such it works with enable-threads without + crashing immediately +2003-05-12 Uwe Zdun + * removed various bugs in new code and added tests for + redefinition and removal of filterguards + * added tests for 'instmixinguard' and 'mixinguard' - - changed object->flags from "unsigend short" to "unsigned int" - - reintroduced NSF_TCL_DELETE to address bug flagged from memdebug - - extended regression test +2003-05-11 Uwe Zdun + * added new methods 'instmixinguard' and 'mixinguard' -2012-01-25 Gustaf Neumann +2003-05-09 Uwe Zdun + * changed the filter, mixin, and guard code to provide a new + composition strategy for (filter- and mixin-)guards, in + case a guard is defined more than once for the same filter + or mixin... now only the most specific guard counts, all + others are overridden by this guard. Example: + Class B -superclass A + A instfilter {{f2 {[self] == "::b2"}}} + B instfilter {{f2 {[self calledproc] == "set"}}} + Here: for an instance of B only the guard on B counts. + * updated the tests accordingly + * performance improvement: + removed ::xotcl::Object from mixin full list computation + * added new tests for mixinguards to testx.xotcl +2003-05-03 + * xotcl.c: Changed mixinlist creation from quadratic to linear + (both, in XOTclAddClass and CmdListAdd) - doc: fixed line-number handling locally +2003-04-29 + * xotcl.c: cleanup to avoid potential crashes on error messages + (varargs not terminated by NULL) + * introspection for mixin guards (o|cl info instmixin|mixin + -guards) + * new option for info methods to return only those methods where + the guard holds in the current context (info methods + -incontext) +2003-04-25 + * fixed various typos in examples in tutorial + * first implementation of guarded mixins - - removed documentation about incompatibility to XOTcl1 in respect of - the method interface for object invocations +2003-04-24 Uwe Zdun + * document "info instdefault" in the language reference + * corrected a problem with move: it did not prevail the + subclass relationships; also added a regression test -2012-01-23 Gustaf Neumann +2003-04-22 + * xotcl.c: calling the "create" method from + the "new" method through the dispatcher (previous version + used a direct call, now create can be overloaded) +2003-04-17 Uwe Zdun + * Unified ListObjChildren and ListClassChildren into one + method ListListChildren - - fixed NRE memory management (for Tcl 8.6) by refactoring alias - handling +2003-04-16 + * xotcl.c: fixed segfault from classchildren + (many thanks to Michael Cleverly for pointing this out) -2012-01-21 Gustaf Neumann +2003-04-16 + * xotcl.c: Fixed passing of error codes from constructors + (instproc init). In previous releases, errors were + ignored + * xotcl.c: Passing correctly error messages from "set" to the + XOTcl set method. +2003-03-19 , Uwe Zdun + * release of full distribution XOTcl 1.0.2 - - extend regression test for interactions between - "keepcallerself" and "perobjectdispatch" - - some minor cleanup +2003-03-19 , Uwe Zdun + * release of full distribution XOTcl 1.0.2 -2012-01-20 Gustaf Neumann +2003-03-19 Uwe Zdun + * changed requireNamespace so that contents of a + Tcl Namespace with the same name as the XOTcl Namespace to + be created survive the requireNamespace invocation & added + tests in testx.xotcl. Example: + namespace eval a {proc o args {puts o}} + Object a -requireNamespace + ### -> a::o survives + * some minor issues to everything work with tcl/tk 8.4.2 +2003-03-08 , Zoran Vasiljevic + * some more code cleanup (do not abort when my is called outside + the scope of an object) + * Makefile less verbose - - fixed potential crash from method caching, when permissions on - cmds are changed and become e.g. unresolvable - - removed flag allowmethoddispatch, since behavior can be achived - via private flag. - - extended regression test +2003-03-07 + * Made output of the serializer more compact + (omitting unnecessary references to ::xotcl::Object +2003-03-07 Uwe Zdun + * Copy/Move to self had undefined or wrong results; corrected + both methods so that the objects stay untouched when copied + or moved to self. Added test in testx.xotcl. - - deacitivate for the time being allowmethoddispatch (make it - behave always like true) - - added instead new flag "perobjectdispatch" to make behavior of - ensembleobjects configurable. - - The behavior for keepcallerself is currently only activated for the - method-interface for object dispatch, since otherwise the following - would be dangerous, since "o2 foo" would destroy o2 nx::Object create - o1 nsf::object::property o1 keepcallerself true nx::Object create o2 { - ::public method foo {} {o1 destroy} } o2 foo +2003-03-04 , Zoran Vasiljevic + * Made xotcl capable to be loaded via "package require" into + aolserver-4 + * To build and install XOTcl for the aolserver-4 + the following commands can be used -2012-01-20 ssoberni + # cd /usr/homes/zv/tmp/xotcl-1.0.2 + # CC=gcc;export CC + ./configure --enable-threads --prefix=/var/tmp/aolserver \ + --enable-symbols --without-tk --without-gdbm \ + --with-tcl=/usr/homes/zv/dev/tcl8.4.1/unix + # make + # make install-aol + This installs libxotcl*.so, the serializer, and the file + xotcl.tcl into aolserver/modules/tcl. The file xotcl.tcl + contains a "package require XOTcl" and "... serializer" and + sources the files aolserver/modules/tcl/*.xotcl - - Used "gcc -ansi" to test ANSI compatibility (with MSVC in mind) - - generic/nsf.c, generic/nsfShadow.c: Fixed some non-ANSI comments - - generic/nsfError.c: Relocated a declaration to the beginning of - the scope block (MSVC shouted here) - - generic/nsfInt.h: Made sure that NSF_INLINE is only set in non-ANSI - gcc builds, added a tiny portability wrapper for va_copy (to support - MSVC and the gcc/clang ANSI mode) +2003-03-04 + * xotcl.c: abort, when a non-threaded xotcl version + is loaded into a threaded environment (e.g. aol-server) -2012-01-20 Gustaf Neumann +2003-02-28 + * xotcl.c: fixed a bug the lead to a crash in "self x" +2003-02-20 + * fixes to compile xotcl as a module for aolserver-4 - - nsf.c: start all error messages with a lower case word for - consistency and to follow closer to Tcl's conventions +2003-02-06 + * made -volatile a method rather than an option of the + new method +2003-01-18 + * aol-server adjustments (fix the documentation + for new directory structure, update serializer code, testing) + * provided simple replacements for xotclsh and xowish scripts + in the unix subdir for testing purposes (not yet installed) - - use alias-stubs for aliases pointing to objects. This allows us - to distinguish between cases, where an object is dispatchable - due to the alias or due to allowmethoddispatch (when the object - happens to be a subobject and has therefore its cmd in the same - namespace). The semantics are now: - - aliases to objects are always dispatchable, no matter, how - allowmethoddispatch is set. - - direct subobjects of objects are currently on dispatchable when - allowmethoddispatch is set. +2003-01-17 Uwe Zdun + * new directory structure with no version information + * removed pwd from make.xotcl + * new method "ismixin": Test whether the argument is a + mixin or instmixin of the object. + * new method "hasclass": Test whether the argument is either + a mixin or instmixin of the object or + if it is on the class hierarchy of the object. + This method combines the functionalities of + istype and ismixin. + * documented and tested new methods. -2012-01-19 Gustaf Neumann +2003-01-12 + * Changed calls in the form of "[self] method" to "my method" + in 59 files in the xotcl distribution + * changed Serializer to use [list] in configure where necessary +2003-01-09 + * configure methods can be placed into a list to avoid + ambiguity of "-". This character is used as a meta-char to + denote method names, but it has to be used in values as well. + Example: + Class Book -parameter {title author} + Book b1 -title "--the title--" -author a.b.c + has to be written as + Book b1 [list -title "--the title--"] -author a.b.c + Note, that XOTcl allows us to provide multiple arguments + to methods called via configure - - alias reform: instead of calling first an alias with a stack - frame followed by the dispatched of the aliased cmd, resolve - aliases internally in dispatch. This has the advantage that we - do not have to ignore the "transparent" stack frame in some - sitations, and we have much less problems with the names of the - aliased cmds (e.g. objects) in the introspection methods. - Additionally, several problem cases disappeared from the - regression test cases. In addition, the new approach is faster. - - eliminating obsolete flag NSF_CSC_CALL_IS_TRANSPARENT +2003-01-05 + * configure returns now the number of preceding elements + without a "-" in its first place. This is needed + for convenient processing of argument lists with trailing + options from tcl. + * avoid processing configure list twice in c code. -2012-01-16 Gustaf Neumann +2002-12-29 + * some cleanup in c-code (to make -Wall slient) + * fixed a bug in the "all" method of the Serializer, changed + package name to "xotcl::serializer" +2002-12-27 + * removed deprecated methods "parameters", "applymethods", + "newChild", "newChildOf" - - improve handling of multiple error messages in a single command +2002-12-23 + * release of full distribution XoTcl 1.0.1 +2002-12-22 + * xotcl.c: some cleanup + * aol-server: improved namespace.tcl (using Serializer) - Extend handling of dashses in XOTcl's configure method to perform a - more eager search for command begins (same change as in XOTcl 1) +2002-12-19 + * New Serialzer: + - up to 30% faster recreation of objects + - more control of objects or variables to be omitted + - provide mappings for (relative) object names + In general, the Serializer + - is used to generate the blueprint of a workspace + (e.g. in the aolserver) + - can be used migate objects between threads + - to cache objects in the aol-server + For details, see doc. +2002-12-18 + * xotcl.c: new predefined method 'noinit' + can be used to create an object without calling its + constructor (used in the serializer to recreate objects + from a snapshot) - Fix typo in nsf::predefined +2002-12-17 Uwe Zdun + * installWin.tcl: correction for patchlevel + * changed version to 1.0.1 +2002-12-14 + * xotcl.c fixed a bug in "info default arg var" and + "info instdefault arg var" in connection with filters. + The output variable was created in the filter frame. + Many thanks to Oumung Mehrotra for reporting the problem. + * New switch for compilation USE_ASSOC_DATA to use Tcl_AssocData + instead of namespace client data for the runtime state + (without assoc data, 10-15% faster) - Fix typo in ::nsf::deprecated +2002-12-06 Uwe Zdun + * changed recreate semantics: recreate now calls the cleanup + method; so that one can preserve object information in the + recreate, call next (and do the cleanup), and finally handle + the correction for recreation. + * tutorial: added example of structure preserving recreate and + updated langRef.xotcl accordingly -2012-01-15 Gustaf Neumann +2002-11-22 + * fixes in documentation + * automatic generation of pdf files and make target + for the tutorial and the language reference +2002-11-19 + * fixes for configure for aolserver 3.5.* - - Added exerpimental object property "allowmethoddispatch" for - child-objects to be called from parent objects via method - interface. Background: both, per-object methods and - childobjects are implemented via cmds in the same tcl - namespace. Without special care, both are callable via the - standard dispatch. Apparently, this is not always wanted. - - handled allowmethoddispatch and keepcallerself in copy/move - - set allowmethoddispatch per-default in XOTcl - - removed visablilty of objects with "allowmethoddispatch" false - in "info methods" and "info search methods" - - extended regression test +2002-11-13 Uwe Zdun + * correct check for XOTcl lib on auto_path in predefined.xotcl; + it was checked for xotcl$VERSION, should be xotcl$VERSION -2012-01-14 Gustaf Neumann +2002-11-08 +2002-11-08 Uwe Zdun + * Win makefile.vc: let nmake install call the install script + * removed "class" hook from recreate ... + * updateding AOL-server patch and README + * finshing rpm and bin-tar generation + * release of full distribution XoTcl 1.0 +2002-11-06 Uwe Zdun + * let the Unix Makefile also (try to) cleanup Win->Release dirs - remove namespace import nx::* +2002-10-30 Uwe Zdun + * fixes for tcl 8.0.5 -2012-01-13 Gustaf Neumann +2002-10-28 Uwe Zdun + * used a proc for exit handler (instead of Object variable), + old interface for exitHandler does still work + * eliminated a mem leak in FilterFindReg as indicated by + Zoran. +2002-10-26 + * xotcl.c: fixed problem with external symbol for + cmdType and reactivated KEEP_TCL_CMD_TYPE for all + tcl versions - - removed TODOs from keepcallerself in destroy.test; calls were truely - recursive, behavior was correct. +2002-10-25 Zoran Vasiljevic + * xotcl.c: fixed memory leak for new method. +2002-10-23 Uwe Zdun + * Object instproc extractConfigureArg: get one configure argument + (and possibly cut it) from a given args list. Especially used in + create before init is called with next to get args + before the object is actually created (& documentation). - - simplified usage of ObjectName() and ClassName() macros (no - caller parenthesis needed) - - added exerpimental object property keepcaller self (currently only - evaluated by aliased objects) +2002-10-22 Uwe Zdun + * used Tcl's Assoc structures for runtime state +2002-10-21 Uwe Zdun + * corrected "abstract" next handling in predefined.xotcl - Version generated for Tcl 8.5 - - maybe we keep this out from the repo in the future +2002-09-19 + * xotcl.c: prevent duplicate destroy calls during cleanup + * xotcl.c: error in exit handler does not panic anymore, but + writes to stderr (panic can't be used when exit handler + is called by a thread) + * Serializer.xotcl: {Serializer all] return exit handler + as well. +2002-09-14 + * Trace.xotcl: fixed typos in documentation code, changes + for "my". - Allow to pass casts to macros ClassName and ObjectName +2002-08-29 Uwe Zdun + * corrected findXOTcl.c: it got confused by an toplevel + XOTcl dir, like: ~/xotcl-1.0/x/xotcl-full-1.0 and didn't find + the libs then. -2012-01-10 Gustaf Neumann +2002-08-27 Uwe Zdun + * disabled KEEP_TCL_CMD_TYPE for 8.4, as it did not compile for 8.4b1 +2002-08-04 + * Httpd.xotcl: order directories before files in directory + listings - Bump version number to 2.0 to avoid confusions with the serializer from - XOTcl 1 +2002-07-18 + * Httpd.xotcl: fix for handling broken links -2012-01-02 ssoberni +2002-07-12 Uwe Zdun + * Win fixes for compilation with Tcl 8.4b1 + * fixed mem leak of filter search +2002-07-10 + * fixes for compilation with Tcl 8.4b1 - - library/serialize/serializer.tcl: Remove uses of - ::nsf::method::property to handle "returns", now redundant because - "returns" are properly reported by "info method definition" +2002-07-06 + * Fixed a compilation bug concerning Tcl 8.2 and younger +2002-05-30 + * xotcl.c: fixed destroy bug, when object was destroyed + during init + * xotcl.c: minor cleanup - - TODO: updated +2002-05-16 Uwe Zdun + * xotcl.c: searching filter start commands again, if order is + invalidated. Otherwise filter commands of de-registered mixins + persist to be a filter. If no other filter or instfilter with + the name is found, the filter entry is removed from the filter + list. +2002-05-15 Uwe Zdun + * COMPILE: an explicit sentence in the beginning that you need + Tcl/Tk sources to compile XOTcl. + * xotcl.c: FilterSearch has only search for object-specific + filters in the object's current order ... that was a bug. It + has to search for filters on mixins and instmixins as they are + specified by filter and instfilter. fixed. + * xotcl.c: Filter application order was: object filters -> mixin + filters -> class filters. Corrected to mixin filters -> object + filters -> class filters. Now it conforms to the order on + normal dispatches. + * xotcl.c: changed fatal abort to error, when self is called + without an active object - - generic/nsf.c: Have NsfNSCopyCmdsCmd() handle "returns" method - properties for scripted methods. Note that aliases and forwards - are not yet covered by the copying procedure as implemented by - NsfNSCopyCmdsCmd(). - - tests/info-method.test: Added tests for "info method returns" and - "info method defintion" covering "returns" method properties. +2002-05-05 + * fixed UTF-8 conversion for filenames +2002-04-30 + * Httpd.xotcl: minor cleanup (removed superfluous instvars) + * xotcl.c: removed incr/decr refcount on cl-names in DoDispatch - - Make sure "info method definition" includes the "-returns" - clause. - - generic/nsf.c: Added a helper function AppendReturnsClause() +2002-04-21 + * fixed a bug in path settings: + when xotclsh was called from an xotcl source directory where + no libxotcl*.so was located (e.g. before a compile) an error + was produced during load; xotclsh checks now whether it can + locate the .so file before setting the path. +2002-04-20 Uwe Zdun + * fixed a bug in filter code (recursion blocking) - - Adding support for "cls|obj info method returns" - - generic/nsf.c: ListMethod() now handles a - InfomethodsubcmdReturnsIdx subcmd. - - generic/nsfAPI.decls|nsfAPI.h|nsfDecls.h: Registerung a new "info - method" subcmd: "returns" +2002-04-20 + * Http client code: fixed several small bugs: + - url composition + - error handling + - redirects to different ports -2011-12-25 Gustaf Neumann +2002-04-09 Uwe Zdun +2002-04-09 + * finshing rpm and bin-tar generation + * patch release of full distribution (0.9.4) +2002-04-08 + * fixed a bug in copy/move (the constructor was called during + copying without instvars etc.; now the construcor is not + called here) Many thanks for Artur Trzewik for noting this. - - remove leftover from merge +2002-04-08 Uwe Zdun + * fixed .add files for Windows -2011-12-24 Gustaf Neumann +2002-04-07 + * removed persistence dir in actiweb regression test to achieve + same behavior on each run of the test + * Storage.xotcl: fixed a bug when new persistence directories are + created + * fixed a small memory leak in autonames +2002-04-05 + * defined the following policies for excplicit freeing in the + exit handler: - - remove file which was placed into generic/asm + NO_CLEANUP for processes, the physical free in the exit handler + is not needed + CLEANUP for threads, just the xotcl classes/objects with + its instvars are reclaimed, annother + mechanism should take care of the global + procs and vars (automatically choosen, when + compiled with TCL_THREADS) - - added two files to the asm directory (one needed for compilation, one - for documentary purpose) + FULL_CLEANUP for testing purposes, to check, whether xotcl + has memory leaks; all global procs and vars + are deleted as well. -2011-12-22 Gustaf Neumann +2002-04-04 + * fixed a bug with duplicated tcl_objs of XOTclObjectType + that could cause double frees. +2002-04-02 + * Less agressive converison to tcl_objs of XOTclObjectType. + It will try to keep objects of type tclCmdType when + KEEP_TCL_CMD_TYPE is activated during compilation (default). - - initialize result properly +2002-03-28 + * horrible bug fixed, when USE_ALLOCA or USE_MALLOC + was defined (macro substitution lead to wrong arithmetic). + These macros were defined for c-compilers that do not + support variable sized arrays as local variables. Gcc + were always fine, but e.g. under the standard AIX compiler + array boundaries were overwritten... I wonder, why we have + seen no bug reports, this bug was in since ages.... +2002-03-27 Zoran Vasiljevic + * more code for volatile objects moved to C - - updates for the tutorial (mustly typos and stilistic changes) +2002-03-26 + * Fixed a few more places, where recounted xotcl-objects + can cause troubles (mem-leaks + invalid pointers) +2002-03-24 + * auto-deletion of global vars and proc to + get rid of references to xotcl-objects for deletion - - xotcl/library/comm/Httpd.xotcl: force dates in GMT as HTTP RFCs - require +2002-03-20 Uwe Zdun + * added reference counts for xotcl objects to + avoid crashes for recreated objects (thanks for + Artur Trzewik for sending a good bug report) +2002-03-11 Zoran Vasiljevic + * xotcl.c: fixed XOTclReplaceCommand for AOL-Server + (multi threading bug) - - added README file +2002-03-11 + * Httpd.xotcl: fixed relative pathname-bug for basic authentification +2002-03-02 + * marked newChild as deprecated (use new -childof) - - restructured directories, added configure options, some more cleanup +2002-03-02 + * Changed name of selfdispatch to "my" -2011-12-18 Gustaf Neumann +2002-03-01 + * Httpd.xotcl: allow encoded characters in path and resource names + * Httpd.xotcl: use dictionary oder for directory listings + * Mime.xotcl: added some more default mime times +2002-02-24 + * Httpd.xotcl: added functionality to provide directory listings + * Httpd.xotcl: create specified root directory if it does not + exist - - generate AsmAssemble() from definition file as well (currently - included in LabelThreading template) +2002-02-13 + * Makefile.in: fixed a bug in make install + ("package require package" did not work) -2011-12-16 Gustaf Neumann +2002-02-12 + * HttpPlace: added Pragma no-cache for dynamic contents + * overworked persistence manager to separate storage + specific concerns (like directory checking) from generic ones + * new storage manager multi-storage to multiplex storage + requests to multiple sinks. +2002-01-10 Uwe Zdun + * removed duplicated system library in library/system. The correct + one is in xotcl-XXX/library!! - - nx based c code generator for experimenting with different code - engines +2002-01-09 + * fixed path determination code during + startup to avoid "cant read 'pf'" messages -2011-12-13 Gustaf Neumann +2002-01-08 Uwe Zdun + * introduced bcc (copy) database option for persistent databases and + configuration option for db file names and dirs in actiweb + places + * xotcl.c: found and fixed a small bug in unknown: + Object o; o r + with no unknown defined has looped (not for class -> unknown). + corrected it and added it to testx.xotcl +2002-01-06 + * further improvement of bytecode compilation + * new bytecode instruction SELFDISPATCH + * methcall benchmar now more than 40% faster than in 0.9.3 + * some cleanup in xotcl dispatch code + * fixing external references for symbols not starting with xotcl - - doc fixes in tutorial: fix typos and improve some wordings +2002-01-02 + * new xotcl byte codes for XOTcl primitives next, self, + and initProcNS. Speedup for the oo-shootout + + methcall 30% + + objinst 9% + some tests are now twice as fast than before, self is + now 10 times faster (about 1 microsecond on a 600 MHz PIII) +2001-12-28 + * fixed changeXOTclVersion, made more generic + * fixed Agent migration, made all migrations synchronous + (for the time being) - - initial checkin of experimental assemble support +2001-12-17 Uwe Zdun +2001-12-17 + * finshing rpm and bin-tar generation + * patch release of full distribution (0.9.3) -2011-12-06 ssoberni +2001-12-10 Uwe Zdun + * removed two "! test" so that configures work with sh on Solaris + * added make bin-tar target + * removed all compiler warnings on windows +2001-12-09 + * revived configure-code for aolserver, added patchlevel + to log message, updated aolserver README file + * renamed directory "script-creation" to "serialize" + * deactivated create of unneeded installed dirs + (xotclexpat, xotclgdbm, xotclsdbm) - - tests/destroy.test: I added some tests on the robustness regarding - unset traces being fired during the phyical OS delete phase. Checked - with NSF_MEM_COUNT and valgrind. +2001-12-07 Uwe Zdun + * documented recent changes in XOTcl for release +2001-12-05 + * fixed call to unknown in copy method - - generic/nsfStack.c, CscFinish(): Without further restricting object - deletion based on activation counts, very-late method dispatches - during the "physical" clean-up stage (e.g., a dispatch issued by an - unset variable trace script) lead to premature object and class - deletions, violating the total deletion order used in - ObjectSystemsCleanup(). +2001-12-01 Uwe Zdun + * xotcl.c: xotcl::interp rewritten -2011-12-02 Gustaf Neumann +2001-11/12 Uwe Zdun + * changed xotcl support a (more or less) TEA compliant + build process, use Tcl stub lib, and make shells + only shallow wrappers that load the XOTcl package + on demand +2001-10-23 + * removed code for calling variable command - - simplify macro handling with __WIN32__ - - regroup some macro definitions +2001-10-22 + * xotcl.c: fixed bug for empty superclass list + * fixed stub-install under 8.0.5 -2011-11-30 ssoberni +2001-10-20 +2001-10-20 Uwe Zdun + * patch release of source distribution (0.9.1) +2001-10-20 + * reimplemented method 'new' of Class in C + * various cleanups for stub handling + * added regression test for stub library - - generic/nsfInt.h: Provided the DECR_REF_COUNT2 #define macro - for __WIN32__ builds (e.g., MinGW). Thanks to Stephan - Adelsberger for pointing to the issue. - - Made temp file handling in a rosetta example OS-independent; thanks - to Stephan Adelsberger for the initial patch +2001-10-18 Uwe Zdun + * removed linking glitch in 0.9: stub enabled lib was linked + with non-stub enabled obj-files. + * added a stub enabled lib to Windows make procedure + * renamed stub enabled lib to (lib)xotcl-tclstubs.(so|dll) -2011-11-21 Gustaf Neumann +2001-10-17 Uwe Zdun + * removed "can't instvar to link" problem during aliasing + to a link var +2001-10-15 +2001-05-15 Uwe Zdun + * XOTcl 0.9 Release - - improve branch prediction +2001-10-14 + * new method of Object: parametercmd: + a convenient way to define a new getter/setter for + individual objects (similar to parameters for classes) + * polishing docu +2001-10-11 + * improved make clean + * fixed incompatibilities in various + scripts distributed with xotcl - - fix typos - - extend regression test to improve coverage +2001-10-11 Uwe Zdun + * configure.in: fixed that --without-tk functions + ensured that user-defines with --with-tcl/tk + override found settings. + * xotcl.c: + - conditional for different TclIncrVar2 interfaces + in Tcl 8.05 and Tcl 8.3 + - added TCL_PARSE_PART1 to variable lookup in + GetInstVarIntoCurrentScope. TclLookupVar in 8.05 + requires it for looking up arrays with only part1 + given. -2011-11-18 Gustaf Neumann +2001-10-10 + * fixed autoname method for Tcl 8.0.5 +2001-10-10 Uwe Zdun + * 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 Jrg Rudnik for the hint) - nsf.c: - - change argument of IsMetaClass() to type *NsfObject - - provide basic pretection against most likely unintended - deletion/overwriting of base classes. - - extend regression test +2001-10-08 + * configure.in: fixes for AOLSERVER to ease configuration + * aolstub.c: fixes for namespace handling (XOTcl is + now a "well behaved" Tcl extension) +2001-10-05 Uwe Zdun + * added PRESERVE and RELEASE functions for Tcl_Objs so that + we remember all Tcl_Objs that are temporarily allocated, + otherwise the ExitHandler would not free Tcl_Objs, like: + INCR_REF_COUNT(tclobj); + callaMethodContainingExit(); /* "exit" call */ + DECR_REF_COUNT(tclobj); /* not reached */ + * corrected filtersearch and procsearch to return the new + proc qualifier format: + proc|instproc + as a Tcl list. filtersearch does now operate on objs as well, + procsearch does support mixins now. Added tests for both. + * documented new features in tutorial and langRef - - minor cleanup, added regression test +2001-10-04 Uwe Zdun + * minor fixes to get WIN version to run again -2011-11-17 Gustaf Neumann +2001-10-03 Uwe Zdun + * removed some more mem leaks, + * reworked exit handler to destroy metaclasses and operate on a + instance list, instead of namespace cmdTable + * pop remaining callstack entries in ExitHandler to prevent + from false deletion order, if "exit" is called from within a + method + * changed XOTclErrInProc not to rely on obj/class Tcl_Obj* + so that we do not have to preserve them in DoDispatch + (mem problem) +2001-10-02 Uwe Zdun + * added a optional simple mem counter functionality. DEFINE + XOTCL_MEM_COUNT so that you get a mem count dump after exit. + * removed some mem leaks - - fixed potential crash when generating error message about argument - usage when called without a callstack +2001-10-01 Uwe Zdun + * new info option "info methods" ... returns all methods (procs + and cmds) defined along the hierarchy for an object. + accepts modifiers: -noprocs, -nocmds, -nomixins -2011-11-13 Gustaf Neumann +2001-09-30 Uwe Zdun + * don't allow duplicates in filter/mixin structures (e.g. info + filter has returned "b c b", now the filter appears only + once. Filterguards are merged into one guard. + * new modifier "-order" for info filter and info mixin -> + returns order on a particular object, for filters with + syntax " proc/instproc " for mixins just a + class list +2001-09-26 + * cleanup, removed a few bugs + * new instproc for Class: insttclcmd + creates an instmethod with the given name + that calls the Tcl command with the given name in the + variable environment of the object + * renamed instproc of Class parameteradd to: instparametercmd + * xotcl.c: more complete set of tracing options for debugging + * some speedups: + - instcommand array, append, lappend trace + are now more than 3 times faster than before + (through insttclcmd) + - condition checking (for pre and post conditions and guards) + is as well more than 3 times faster than before + * configure.in: made -Wall conditional for gcc - - fix some more typos +2001-09-25 Uwe Zdun + * merge with +2001-09-23 + * xotcl.c: new XOTclObject member "flags", which + is a bitmap for various object states + (isClass, isDestroyed, etc.). Defined several + according macros XOTclObjectIsClass(obj), + XOTclObjectToClass(obj), etc. + * revitalized Tcl_Obj of type XOTclObj to speedup + access of Objects and classes by using + GetXOTclObjectFromObj + GetXOTclClassFromObj + (speedup of create by 15%, a few simple commands + are now more than twice as fast (Object isclass)) +2001-09-20 Uwe Zdun + * xotcl.c: + - made objectData structure optional and moved + functions into file xotclObjectData.c + use XOTCL_OBJECTDATA to compile it in + - moved obj & cl clientDatas into optional memory, new extern + getter/setter functions: XOTclSetObjClientData, + XOTclGetObjClientData, XOTclSetClassClientData, + XOTclGetClassClientData. Used them in persistence store + wrappers xotclSdbm.c & xotclGdbm.c + * testx.xotcl: + - Added some obj filter tests - nsf.c, nsf.h, nsfStack.c, nx.tcl, tcl-cool.tcl, xotcl2.tcl - - fix spelling in comments - - strip unneeded space +2001-09-19 Uwe Zdun + * xotcl.c: + - added "opt" structures to XOTclObject and XOTclClass so that + optional info (filters, mixins, asssertion,...) is only + allocated on demand + - corrected bug ... search for epoched filter cmd in + FilterRemoveOnObjFromCmdPtr also in mixins + - added flags to XOTclObject instead of filterDefined, + mixinDefined, and destroyCalled shorts +2001-09-18 Uwe Zdun + * xotcl.c: removed object reference code ... I guess we won't do + references this way - - better to let file classify this file as latex than C++ +2001-09-17 Uwe Zdun + * xotcl.c: added new instcommand "vwait" on object that mirrors + the behavior of Tcl's vwait, but does not operate on flag + TCL_GLOBAL_ONLY. The new xotcl obj var tables do not operate with + that. E.g.: + Object instproc vwait {varName} { + [self] instvar $varName + ::vwait [list $varName] + } + would wait for a global variable varName ... though: + Object instproc vwait {varName} { + [self] requireNamespace + ::vwait [self]::[list $varName] + } + should work ... + * xotcl.c: info classparent now returns object name of class, not + ::xotcl::classes*** + * xotcl.c: new method "objeval" on Object. It executes an command + in the scope of an object. This is an important convenience + method because something like: + Object instproc lappend {varName args} { + [self] instvar varName + eval ::lappend [list $varName] $args + } + is problematic if the object has a namespace and varName is an + array element ... then Tcl does want to upvar it (was also + present in all earlier xotcl versions ... we have used an + instvar alias then). Now we can do: + Object instproc lappend {varName args} { + [self] objeval [concat ::lappend [list $varName] $args] + } + This is easier an faster than using an alias ... - - removed c++ mode +2001-09-16 Uwe Zdun + * predefined.xotcl: + - new method "trace" on Object ... simple forwarder to tcl's trace + - eliminated "cset" on Object and from the distribution, seems to + be nearly unused + * whole distr: + - replaced direct namespace variable accesses with [self] or + instvar accesses. Here's what I did: + (a) grep for <[self]::> + (b) grep for plus <::> together in one line + (c) grep for <}::> to get e.g. ${a}::b + that should find most occurrences of variable namespace access, + except for direct accesses like: set y::x, where y is an object + name and c a variable to be set. +2001-09-15 Uwe Zdun + * xotcl.c: + - Namespaces of objects are now created only on demand, + that is when: + - obj proc is created + - obj command is created with XOTclAddPMethod + - child is created on the object + Note that this is a prominent change. Especially it saves a + significant amount of memory allocation per object. But you + cannot assume the existence of object namespaces anymore. + That means: + Object o + set o::var 1 + returns TCL_ERROR: parent namespace does not exist. Use + o set var 1 + instead. Same appears for append, lappend, trace, array and + other Tcl variable handling commands. + "info exists" is problematic because it does not return an + error message: + Object o + o set i 1 + info exists o::i + returns 0. + It is save to use all Tcl command together with instvar. - - fix typo + - new method "requireNamespace" on Object. Creates an object + namespace explicitly. + - new info option "hasNamespace" on Object: returns 1, if the obj + currently has a namespace, otherwise: 0. + - eliminated "returnCode" on RUNTIME_STATE due to several bugs, + why was it there??? +2001-09-14 Uwe Zdun + * xotcl.c: + - Changed XOTclCInfoMethod to be based on two switch statement + instead of ifs. Let List* functions return the state (such + as TCL_OK). + - introduced code for modifiers in info methods. Modifiers are + "-" options that change the behavior of an info method + - introduced -guard modifier for filter and instfilter (it + prints a filter list with guards) - nsf.c: - - Reform of subclass/superclass handling. - * unifying transitive subclass handling - * localizing and documenting caching of subclass/superclass lists - * eliminating repetitious computation of subclass lists - * refactored code, renamed some functions to better refelect - their purpose - * improved documentation - - fixed a potential crash for class deletion triggering implicit - deletions further deletions referencing the parent class - - extended regression test +2001-09-13 Uwe Zdun + * xotcl.c: + - eliminated some flaws in filterguards + - forbid "new" filtering during checking a filterguard -2011-11-09 Gustaf Neumann +2001-09-06 Uwe Zdun + * xotcl.c: + - also allowed instfilters on a mixin class of an object +2001-09-03 Uwe Zdun + * xotcl.c: + - bug corrected: filter correctly removed from all dependent + classes when filter proc is deleted or superclass is changed + - bug corrected: added cmdEpoch check on computation of full + filter/mixin lists - - fix spelling +2001-09-03 + * various cleanup and fixes due to new features -2011-11-05 Gustaf Neumann +2001-09-03 Uwe Zdun + * testx.xotcl: + - filterguard tests + * xotcl.c: + - bug corrected: filter order invalidation upon new proc/instproc + ... for filter inheritance +2001-08-25 Uwe Zdun + * xotcl.c: + - new filter guards language construct for constraining filter + appliance + - introduced generic Tcl_obj* list instead of + XOTclAssertion*, - - improve wording of comment +2001-08-24 Uwe Zdun + * xotcl.c: + - CallStackGetFrame: iterate only over INACTIVE filters (was a bug) + - self filter & mixin infos: determine info position from + callstack with CallStackGetFrame, so that uplevel functions with + [self calling*,called*] + - NextMethod: passed XOTCL_UNKNOWN through at end of mixin/filter + chain, if no method was found. + * testx: added tests for these corrections. +2001-08-23 Uwe Zdun + * xotcl.c and tests: added initProcNS command executed at + beginning of all XOTcl procs/instprocs ... it prevents from + jumping to the object's namespace, when a proc is opened. + Now: + namespace eval html { + Object o + o proc t {} {puts ns=[namespace current];li} + o t + } + results in: + li + ns=::html - - Avoid duplicate entries in instance lists for diamond - inheritance by maintaining the set of already processed entries - in NsfClassInfoInstancesMethod1() and GetAllInstances(). - - extended regression test - - removed "namespace import" in objectsystem test + Now inside of a namespace, like ::Object, you can call global + methods, like ::set without preceding "::" ... + => Incompatibility to former versions: direct XOTcl proc + calls, like: + Object rp + rp proc time {cmd time} {...} + rp proc x { + time "set x 3" t + } + are invalid ... you have to write: + rp proc x { + [self] time "set x 3" t + } - - handle duplicates in the cmd-list during cleanup +2001-08-20 Uwe Zdun + * xotcl.c and all tests: moved Object, Class, and @ into ::xotcl + namespace, now + namespace import -force xotcl::* + has to be written at the beginning of each script to have + them in the global namespace. + - info options now return ::xotcl::Object, ::xotcl::Class, and + ::xotcl::@ + - direct sets and unsets of variable are not possible anymore: + "Object set a 5" functions, but not "set Object::a 5", + but "set xotcl::Object::a 5" is ok -2011-11-04 ssoberni +2001-08-20 Uwe Zdun + * xotcl.c and all tests: moved xotcl classes from ::XOTclClasses + to ::xotcl::classes +2001-08-20 Uwe Zdun + * Actiweb -> made it run with new filter code ... what you have to + change on your existing code to make it run: + 1. change all invocations of "filter" to "instfilter" + 2. same for "info filter" to "info instfilter" + 3. same for "filterappend" to "instfilterappend" + 4. for all filters on metaclasses: you must not provide the + metaclass name anymore, the filter finds it + automatically, say, if you have a metaclass C and a + filter f, you had to write: + A filter C::f + now this is + A instfilter f + 5. replace regclass with [lindex [self filterreg] 0] ... + may be changed again - - generic/nsf.c: DispatchUnknownMethod() In the re-entrant case, - the unknown dispatcher was too greedy by skipping the first - element in the objv at basically all times. For - CallConfigureMethod() case in XOTcl2, the actual method name - was so skipped. Generally speaking, the "skipping rules" in - DispatchUnknownMethod() feel a touch too particular to me: For - instance, the dispatch flag "-local", "-system" etc. must be - handled. Also, unknowns in method ensembles have the unknown - method listed first in objv. Alternatively, we might review how - objc/objv make it into DispatchUnknownMethod() (there are just - two call sites). But this would merely shift/spread the - skipping. Changing the arg vectors, to begin with, (e.g. - removing "-local", "-system", etc. from the objv) would - requiring rebuilding the arg vector. - - tests/parameters.test: Added a simplistic test case to catch the - error reporting for XOTcl 2's residualargs handling. +2001-08-17 Uwe Zdun + * xotcl.c: integrated complete rewrite of filter code with + per-object filters -2011-11-01 Gustaf Neumann +2001-08-13 + * patch release of source distribution (0.85.3) + * following naming conventions of Tcl for minor changes +2001-08-11 + * xotcl.c. predefined.xotcl: fast parameter inst-commands + * xotcl.c: new instcommand for Object: parameteradd + (to register the instcommand for parameters) + * xotcl.c: applymethods renamed to configure + * xotcl.c: small speedup for assertion checking + * xotcl.c: simplified set methods - - nsf.c: fix call of DispatchDefaultMethod() in cases it triggers - an error for 8.6b - - nx.tcl: give a slightly better error message in case the root-object - of an ensemble is called directly +2001-08-09 + * fixes for actiweb (agent migration was broken) + * comm/Access.xotcl: a response to an HTTP-PUTS request should + not contain a body. If it does, Httpd complains shortly + and accepts it. + * mos/Agent.xotcl: fixed obsolete code (callcoder) + * mos/AgentManagement.xotcl: fixed broken RDF-interface -2011-10-30 Gustaf Neumann +2001-08-04 + * xotcl.c reduced size of XOTclObject structure from + 172 bytes to 68 bytes by allocating assertion + structures on demand and by deactivating per + default the old metadata structures +2001-08-02 + * integrating AOL-server-changes from Zoran, solution for + threads, stublib and older tcl-versions + * improved stubs support + * generating a stub library src/libxotclstub.so + * AOL_DEFINES in Makefile (automatically activated + when xotcl is compiled within the source tree + of aolserver + * configure.in: using exec_prefix for platform dependent files + * new target: make libs (for AOL-server) - - updated TODO +2001-07-23 + * improved parameter support (see apps/scripts/parameter.xotcl) + * custom setter/getter methods + * xotcl.h: make it usable from C++ +2001-07-13 Uwe Zdun + * TextFileStorage: bug in opening files with + TextFileStorage eliminated + * MemStorage: fix for Mem Storage to support lazy + persistence (mem store persists object destroy) + * Persistence.test: new test LotsOfObjects - nsf.c: - - added method NsfMethodNamePath() to compute the ensemble path - in error messages - - reduce verbosity - - extended regression test +2001-07-13 + * patch release of source distribution (0.85-p2) +2001-07-10 + * xotcl.c: first draft of new implementation of parameter + see apps/scripts/parameter.xotcl for a list of features - - minor reformatting +2001-07-06 + * xotcl.c: fix for propagating special return codes through + next calls (e.g. ... return -code continue). + This is needed for Tk integration; + thanks to catherine letondal@pasteur.fr for + pointing out the problem + * Mime.xotcl: handling yet another file format for ~/.mime.types +2001-06-21 Uwe Zdun + * fix for tclexpat in Tcl 8.2 versions - nsf.c: - - removed conditionals in AddInstance() and RemoveInstance() - - dropped result from RemoveInstance() +2001-06-21 + * xotcl.c: more fixes for bug in copy/move for object + names with spaces + * predefined.h: fixes for xotcl methods for spaces in object + names (eval) +2001-06-20 + * xotcl.c: fixes for bug in copy/move for object names + with spaces + * xotcl.c: reporting error codes when copy move does not work - - Replaced hash-table for GetAllInstances() with a linear list. - As a result, mass-destroy on exit is now much faster. Valgrind - reports that the full cicrcle of creating 100.000 objects and - destroying it on exit became about 15% faster. - - added additional argument adEnd to CmdListAdd() - - renamed CmdListRemoveList() to CmdListFree() - - improved code documentation - - removed unneeded AddInstance() and RemoveInstance() - - deactivated uncalled ReverseLookupCmdFromCmdTable() and - GetHiddenObjectFromCmd() since apparently not needed any more +2001-06-13 + * AIX compatibility fixes (thanks to Adrian Wallaschek) + * improved portability + * easier export from bk + * Httpd.xotcl: added -ipaddr option to configure + IP-address of server -2011-10-29 Gustaf Neumann +2001-06-12 Uwe Zdun + * xotcl.c: fixed reference counting for volatile objects +2001-05-01 + * patch release of source distribution (0.85p1) - - fixed documentation bug in migration guide, since arguments in "info - slot ..." were deleted in the code, but not in the guide +2001-05-30 + * new predefined method: newChildOf +2001-05-28 + * HttpPlace.xotcl: added call to replyCode in front + of replyErrorMsg + * Httpd.xotcl: made httpd more robust in error cases + (invalid first line) + * ignore attic in tar + * xotclgdbm.c: faster exists test + * lib/xml/TclExpat-1.1/Makefile.in: better make clean - - fix requiredness of subcmd in "info method subcmd" +2001-05-22 +2001-05-22 Uwe Zdun + * XOTcl 0.85 Release -2011-10-28 Gustaf Neumann +2001-05-15 Uwe Zdun + * xotcl.c: parameter defaults for (per-class) mixins are + evaluated upon creation + * tutorial: documented how to evaluate parameter defaults for + obj/class mixins + * win-files: adapted to new src directory tree +2001-05-15 + * xotcl.c: fix for colon checking to determine parent namespace + * xotcl.c: Object and Class create returns absolute name (with leading ::) - - bump version number to 2.0b3 +2001-05-15 Uwe Zdun + * xotcl.c: fix for checking in parent namespace -2011-10-28 ssoberni +2001-05-10 + * doc update (formatting, info instproc, ismetaclass and isclass) + * xotcl.c: argument for ismetaclass and isclass is now optional + * xotcl.c: checking for namespace parent in object creation to avoid crash + * Httpd.xotcl: fix for ie 5.5 under win98, + POST has not always contentlength set +2001-04-14 + * xotcl.c: don't call unknown for dash-commands on class + objects to avoid errors like "Class C -superClass Object" + that lead to object creation in earlier versions + * first version of xoman + * Httpd.xotcl: new method replyErrorMsg; replyCode + does not produce HTML messages by itself - - library/nx/nx.tcl: Some slight renamings for the sake of consistency - in the docs +2001-04-07 + * Access.xotcl: added :: in front of global objects, more robust + * using namespace for soap, implifying interface +2001-04-03 Uwe Zdun + * xotcl::comm::httpd: added error code 500 {Server Error}, + errorReply hook in replyCode added to be able to prevent HTML + error response. - - library/nx/nx.nxd: Rewrote and completed API doc for nx::Class +2001-04-03 + * xotcl::comm::httpAccess: user-agent string more generic +2001-03-27 Uwe Zdun + * xotcl.c: added inheritance feature for instinvars + * xotcl.c: standard cleanup now destroy aggregated children + * testx.xotcl: tests for both new features in xotcl.c - - library/lib/nxdoc-assets/submethod.html.yuidoc: Supporting origin - resolution for submethods. +2001-03-26 + * version number in xotcl references to allow multiple + xotcl-versions to coexist + * various changes to accommodate bitkeeper + * package.xotcl: fixes for argument passing + (thanks to Artur Trzewik) + * Httpd.xotcl: better error messages containing referer for + files which are not found on the server. +2001-03-22 Uwe Zdun + * xotcl.c: "cleanup" does not receive args anymore + * xoXML.xotcl: used [self class] for parser autoname - - TODO: Noted down some observations, issues. To be reviewed. - - library/nx/nx.nxd: Completed doc of ::nx::Object - - library/nx/nx.tcl: While documenting ::nx::Object, I applied some - changes along the way. For example, adding a missing element to the - require() API, removing some unwanted params from the "info slot *" - sub-interface, added some parameter types where appropriate, ... +2001-03-19 + * removed dependencies form wafecompat + * Sccs support added to makefiles + * documentation for mixins updated + * decode POST moved before "respond" to ease overloading +----------------------------------------------------------------------------- +2001-03-09 +2001-03-09 Uwe Zdun + * release of Version 0.84 - - generic/nsfAPI.decls, generic/nsfAPI.h: - NsfObjInfoFiltermethodsMethod() Fixed a parameter name, from - "fileName" to "filter" +2001-03-09 + * removed "exec date" from tests to ensure win compatibility + * fixed regression tests under win: don't use dependencies on + time-zones, fixed ordering problems and HTML bugs +2001-03-08 + * fixed a few bugs in xodoc + * documentation for apps/utils/* + * package name xotcl::store::storage changed to xotcl::store + * PCache uses new Storage interface + * new predefined object ::xotcl::rcs to extract + info from RCS strings (methods date and version) - - generic/nsf.c: SuperclassAdd() Make sure that we do not free a class - structure prematurely, in an error path. Crashed in a - --enable-symbols=mem built. +2001-03-07 Uwe Zdun + * xotcl.c: Mutex patch for exit handlers in MT apps by + Zoran Vasiljevic + * xotcl.c: self next implemented ... enables callstack + information for the "next" method + * Persistent.test: bench test reduced to 272 + * tutorial/langref: documented new functionalities +2001-03-06 Uwe Zdun + * htmllib.xotcl: integrated new version with HtmlBuilder; + thanks to Antti Salonen. + * package names: changed all package names to convention that + names are starting with lower cases. Separated names with :: + prefixes. For now, these names are just chosen to avoid name + clashes, in 0.85 they will probably be used as basis for a + hierarchical component model. - Having rewritten 2/3 of nx::Object +2001-03-05 Uwe Zdun + * metadataAnalizer: split into dynamic and static variant (static + is used for xodoc -2011-10-27 Gustaf Neumann +2001-03-02 Uwe Zdun + * xotcl.c: moved callstack information (calledproc, calledclass, + callingproc, callingobject, callingclass, regclass) from + info to self; e.g. use in a filter instead of + [[self] info calledproc] + from now on + [self calledproc] + * testx.xotcl: integrated callstack information changes. +2001-03-01 Uwe Zdun + * complete installation and test suite for Windows, i.e. doc, + packages, all tests, install, etc. now function on Windows + platforms + * XOTclSdbm ported to Windows + * Expat xotcl version running on Windows + * xotclsh.1, xowish.1 man pages added - - added copyright notice to c code generators +2001-02-27 + * new global variables for configuration and logging + ::xotcl::confdir ~/.xotcl + ::xotcl::logdir $::xotcl::confdir/log + * new script daemon.xotcl for starting/stopping + xotcl scripts in the background +2001-02-22 Uwe Zdun + * xoDoc.xotcl, metadataAnalyzer.xotcl: added documentation and + handling for "abstract" methods, and corrected bugs in html + appearance - - add print statements for debugging wierd missing free operations for - internal reps of tcl objs +2001-02-22 + * xotkAppInit.c: added static package Tk +2001-02-22 Uwe Zdun + * splitted xodoc.xotcl into a generic static metadata analyzer + (metadataAnalyzer.xotcl) and the HTML documentation part + (xodoc.xotcl). + * htmllib.xotcl: incorporated fishpool's html lib for use + in xodoc; thanks to Antti Salonen. - - remove obsolete comments +2001-02-17 + * Serializer.xotcl: new package for serialization of workspace + contents (Classes and Objects). Serialization of full + workspace: + Serializer s + s serializeWs ?filename? + Serialization of Object or Class + s serialize ObjectOrClass + * bugfix in mixins + * xotcl.c: tidying up +2001-02-10 + * xotcl.c: some speed improvements + (next without args more than twice as fast due to moving + arguments to the stack, caching of stack pointers) - - handle preallocated namespace - - fix a small memory leak of a varname +2001-02-08 Uwe Zdun + ! xotcl.c: Removed mixin init logic. Mixin & instmixin inits + are only called if the mixin is registered for the object + during initialization. Beforehand "mixin" has called init, + when it wasn't called before. This was inconsistent with + behavior of class and instmixin. +2001-02-06 Uwe Zdun + * xotcl.c, testx.xotcl, ...: tests for new destroy logic - - exclude generated .txt files from tar +2001-02-04 + * xotcl.c: cleanup and various simplifications + ! using xotcl namespace for: + version, lib, check_library_path, + interp, trace, deprecated, mkindex, load, + namespace_copyvars, namespace_copycmd + potential incompatibility: use ::xotcl::version + instead of ::xotcl_version! -2011-10-26 Gustaf Neumann +2001-02-01 Uwe Zdun + * xotcl.c: new destroy logic with recreate +2001-01-26 Uwe Zdun + * Persistence.xotcl: + - persistenceMgr now uses child object as storage + - persistent arrays bug fixed, lazy persistent arrays added + - added persistent arrays to test - - updated build scripts to reflect dropped files and to reduce - xotcl-references +2001-01-25 Uwe Zdun + * xotcl.c: class redefinition logic instead of direct command + destroy added to solve destroy problems identified + by Kristoffer Lawson. +2001-01-24 Uwe Zdun + * xotcl.c: fixed alias bug identified by Kristoffer Lawson. - - updated and shorted README.aol and TODO - - removed the following files from the repository. deleted: COMPILE - deleted: COMPILE.win deleted: ChangeLog deleted: unix/xotcl.spec.in - deleted: win/Makefile.vc These files should be probably added again at - some later time, but need some rework. Old versions are still available - from the 2.0.0-develop branch +2001-01-22 + * fixed regression test for new path settings + * removed Unix dependencies from regression test (sleep) +2001-01-18 Uwe Zdun + * all storages: added nextkey + firstkey methods + for traversal of DBs - - provided a minimal nsf based README file for people having just the - source code distribution +2001-01-17 Uwe Zdun + ! all packages: all internal distribution package names now + start with "xotcl::" to avoid name clashes with other + packages +2001-01-16 Uwe Zdun + * XOTclGdbm: added XOTcl Gdbm wrapper - - updated indentation +2001-01-15 Uwe Zdun + * xotcl.c: alloc now handled as a Class instproc, like + create. Thanks to Kristoffer Lawson for the hint. -2011-10-25 Gustaf Neumann +2001-01-15 + * new Interface for persistent storage + Class Storage + Storage abstract instproc open filename + Storage abstract instproc close {} + Storage abstract instproc exists key + Storage abstract instproc set {key ?value?} + Storage abstract instproc unset key + Storage abstract instproc names {} - - update of "baustellen" +2001-01-12 Uwe Zdun + * Storage test suite added +2001-01-09 Uwe Zdun + * Makefiles: generic makefile for expat, gdbm, ... in the + style of XOTcl's Makefile + fed by toplevel configure + * packages/store/XOTclSdbm: sdbm wrapper for XOTcl - - updated migration guide +2001-01-08 + * The search for the XOTcl library is performed according to the + following rules: + 1) If the environment variable XOTCL is set and points to a + directory, it is taken as the XOTCL directory. - - added copyright notice to nx.tc and xotcl2.tcl + 2) If the auto_path (determined in part by the environment + variable TCLLIBPTH) contains a directory named "xotcl" + and it exists, it is taken. + 3) If no xotcl library is determined yet, check + whether the current directory is in an xotcl source tree. If + yes take it. - - fixed bug with recursive aliases - - extended regression test + 4) If the auto_path contains a directory, that has a + sub-directory named xotcl, it is taken. -2011-10-25 ssoberni + 5) If the auto_path contains a directory that has a + directory named xotcl as a neighbor, it is taken. + 6) Take the compiled-in path for the xotcl library. - Revert "- Changed "Institute of IS ..." to "Institute for IS ..."" + After the search for the XOTcl library the global Tcl + variable ::xotcl::lib is set to the determined directory. This + directory is added automatically to the ::auto_path if + necessary. -2011-10-24 Gustaf Neumann +2000-12-15 + * packages/make.xotcl: passing target to avoid grep + through Makefile +2000-12-15 + * packages/make.xotcl: less verbose + * new environment variable XOTCL, points to directory + where the XOTcl library lives - - run FilterInvalidateObjOrders() only, when filters are/were defined +2000-12-13 + * packages...Httpd.xotcl: close connection after errors + * packages...Httpd.xotcl: elementary support for HTTP method + OPTIONS -2011-10-24 ssoberni +2000-12-04 + * xoXML: fix info vars + instvar method creates variable that is not accessible and + should not be listed in info vars +2000-12-04 + * version changed to 0.84 + * xoXML: fix for multiple PCDATA calls after one element - - Changed "Institute of IS ..." to "Institute for IS ..." +----------------------------------------------------------------------------- +2000-11-30 +2000-11-30 Uwe Zdun + * release of Version 0.83 -2011-10-24 Gustaf Neumann +2000-11-30 Uwe Zdun + * xoXML/xoRDF: added the ability to process mixed content PCDATA + (i.e. more than one pcdata in one element) +2000-11-29 Uwe Zdun + * src/lib/soccerClub.xotcl: simple introductory example for + the tutorial + * xotcl.c: corrected assertion checking: built in commands that + affect assertions are not checked (check, info, proc, instproc, + invar, and instinvar). Otherwise we can not react on a broken + assertion in the error handler (& documented this stuff in the + tutorial). - - update copyright files +2000-11-29 + * tried to improve documentation tool + * work on xotcl homepage, manual section added +2000-11-28 + * apps/actiweb-apps/univ/ added (example for RDF) + * packages/make.xotcl extended for test in apps directory + * HtmlPlace.xotcl: allowExit method added for HtmlPlace to allow an + actiweb place to terminate via URL (primarily for regression tests, + which require no kill anymore, now platform independent) + * Httpd.xotcl: logging of contains more detailed information + * HttpPlace.xotcl: added HTTP errors (invalid requests + for actiweb are correctly noted in log files) - - update copyright notices with MIT licens from OSI - (http://www.opensource.org/licenses/MIT) +2000-11-28 Uwe Zdun + * xotcl.c: Removed theClasses/theObjecs hashtable, because they + caused some problems in exit handling (thanks to + Catherine Letondal for the hint), + * xotcl.c: fixed all remaining memory leaks in tests (thanks to Zoran + Vasiljevic for helping us out with purify) + * tutorial.html: added documentation for @ +2000-11-27 + * src/Makefile.in: changed logic for building and + installing xowish + * xotcl.c: fixed bug in "info mixins" - - update the (mostly obsolete) aolserver c module to reflect proper - names in NSF +2000-11-24 + * Access.xotcl: overhaul, uses now exits method instead of + 'info exists' + * packages/xml/xml.xotcl: overhaul of the introductory XML-parser + example + * predefined.xotcl: new predefined method of Object: + vwait (Tcl semantics) + * some tuning to avoid speed penalties + * src/Makefile.in: added some dependencies +2000-11-24 Uwe Zdun + * xotcl.c: removed internal mem leaks reported by dmalloc + * xotcl.c: corrected assertion checking for built-in commands, like set + * xotcl.c, xotclMetaData.c: put metadata into own file + + made them deprecated -> use @ instead + * testx.xotcl, testo.xotcl: used @ instead of metadata + * tutorial.html: reworked the tutorial, added instmixins - - updated .gitignore +2000-11-22 + * dmalloc defines added to Makefile.in + * xotcl.c: removed some mem leaks +2000-11-22 + * documented various sample applications + * fixed problems with pipes for xocomm.test (should work now under + windows as well) + * polished output from xodoc + * extended sample webserver to return info about the current + request and provided means for stopping it remote. - - updated "make tar" +2000-11-22 Uwe Zdun + * configure.in: added ""'s around -z tests and added + --without-gdbm support + (thanks to Catherine Letondal for the hint) + * package/store/persistenceExample.xotcl added as a basic + persistence store example. +2000-11-21 Uwe Zdun + * xotcl.c: corrected infinite loop in instvar assertions + (thanks to Zoran Vasiljevic for the hint) - - remove obsolete CVS IDs +2000-11-20 Uwe Zdun + * xotcl.c/xotclInt.h: moved the global objects and a static + variable to interpreter structure (thanks to Zoran Vasiljevic for + the patches) + * xotcl.c correctes mem leak in "mixin" method + (thanks to Zoran Vasiljevic for the hint) +2000-11-03 + * MimeTypes can be specified for certain filenames via + Mime set nameTable(ChangeLog$) text/plain + where the index is treated as a regular expression + * rpm target added to Makefile + * rpm files added to www.xotcl.org + * removed file installed to / from binary distribution - - make sure to use "XOTcl 2.0" instead of just XOTcl in "package - req" to avoid confusions due to beta state - - remove more obsolete and untested files +2000-11-15 Uwe Zdun + * xotcl.c: corrected deletion order for aggregated children: + child destructor is called before parent's destructor + * Makefile.in: removed "-full-" from filename +2000-11-03 + Various changes to HttpPlace.xotcl and Httpd.xotcl + * access control for HttpPlaces + * new instance variable "user" in Worker for authenticated requests + * access to ordinary files (and not only to WebObjects) from + HttpPlaces (if there is no object with the name of the file) + * worker added as a argument to credentialsNotOk - - remove currently untested scripts, requiring in part currently - unssupported packages +2000-10-28 Uwe Zdun + * testx.xotcl: added tests for instmixins +2000-10-26 Uwe Zdun + * xotcl.c: added instmixins - - appended .tcl suffix +2000-10-13 + * new global variable xotcl_version in analogy to tcl_version + * fixed parameter passing to init for multiple arguments + (not starting with a "-") + * added regression test + * fix bug for variable name aliasing in the instvar method +----------------------------------------------------------------------------- +2000-10-09 Uwe Zdun + * prepared Version 0.82 - - add .tcl to nxdocIndex to make it recognized as Tcl file (pkgIndex - has as well a .tcl extension) +2000-10-06 Uwe Zdun + * experimental tests for actiweb apps (invoke + with 'make test' at toplevel) -2011-10-23 Gustaf Neumann +2000-10-02 Uwe Zdun + * Documented xotcl.c + src/lib and src/scripts directories +2000-09-29 Uwe Zdun + * xodoc.xotcl new XOTcl documentation package .. all docs + are now in file docs, with @ object - - remove (currently) onsolete pieces from configure +2000-09-28 Uwe Zdun + !! xotcl.c removed aggregation short form due to incompatibilities + with unknown. I.e., + [self] Class x + does not function like + Class [self]::x + anymore, but triggers the unknown mechanism. + * removed bug: parameters have tried to call "-1" + default value as method +2000-09-26 Uwe Zdun + !! src/xotcl.c: short form for creation of nested object and + classes removed. + * new documentation tool - - minor documentation updates +2000-09-22 + * new configure flags: + --with-gdbm=INCDIR,LIBDIR + --with-tk=INCDIR,LIBDIR + --with-tcl=INCDIR,LIBDIR +2000-09-19 + * apps/actiweb-apps/FormsWithState.xotcl: + new example script for implementing a multi-page form + which keeps the state in a context object, which + is passed from form to form via hidden form fields + * new toplevel configure file + * toplevel "make install" copies demo apps as well + (should we set the path to xotclsh in first line?) - - minor documentation updates +2000-09-13 Uwe Zdun + * xotcl.c: added new format functionality to autoname. % + strings are now recognized as in the Tcl "format" + command. E.g.: autoname a%06d --> a000000, a000001, a000002, .. -2011-10-21 Gustaf Neumann + * rdf/xoRDF.test, rdf/RDFTriple.xotcl: used new autonames here + in order to make triples sort-able with lsort +2000-09-12 + * Httpd.xotcl: Fixed a bug for IE5.5 with persistent connections: + (Server blocked); cause: the Tcl command "fcopy" alters the + blocking state of a socket when it finishes (bug in fcopy + of tcl 8.3.2) - nsf.c: - - reduce number of RUNTIME_STATE(interp) in favor of a variable. - - make time of the definition of a method independent on the number of - defined instances (unless, when filters are defined) +2000-09-12 Uwe Zdun + * xotcl/src: added xotclInt.h as XOTcl internal API + (still incomplete) + * xotcl.c: + - extracted xotclProfile.c, xotclReference.c, xotclTrace.c, + and xotclError.c from xotcl.c, + - started conversion to Tcl-like naming convention for + functions: XOTcl... for internal API, + XOTcl_... for external API +2000-09-07 Uwe Zdun + * xoXML.xotcl: removed need for empty topNode + * xoRDF.xotcl/RDFTriple.xotcl: Uniform Parse Tree + - abbrev properties and parseType = resource are now parse + into descriptions + - class hierarchy uniformized to resources and properties + ... object names + are either prop.. or res.. + - resource types are stored in rdftypes variable + (as a list of types) + - Typed nodes are parsed into description + type + - namespace definition at RDF tag recognized + - hard coded "rdf:" removed (now rdfNSPrefix is stored on + each node, the parser has a rdfNamespace parameter) - - Use directdispatch to query existing traces without the need of an - extra method. By this change, the serializer works in constant time - independent on the number of existing objects. +2000-09-06 + * packages/store/Persistence.xotcl: lazy open for + persistence database added (to avoid creation of not needed + files, when no persistent variables are used, and to reduce + permission problems for creation, opening, etc) +2000-09-04 Uwe Zdun + * xotcl.c, Makefile.vc: INST_XOLIBPKG, XOTCLVERSION passed to + VC 6.0 preprocessor from Makefile.vc (thanks to David + LeBlanc for the fix) - - renamce NsfObject->filters and mixins to objFilters and objMixins +2000-09-04 + * xoRDF: trivial fix for make numbering of anonymous resources + easier to comprehend + * predefined.xotcl: methods "append" and "lappend" added + * xotcl/Makefile: keeps track of configure.in and reconfigures + if necessary (eg. version change) + * new -reset option for autoname (does currently not work with + -instance) -2011-10-19 Gustaf Neumann +2000-08-31 Uwe Zdun + * xoRDF: added subject ID to anonymous descriptions & fixed bugs +2000-08-30 Uwe Zdun + * xotcl.c: fixed xotcltrace + * trace.xotcl: "deprecated messages" show* fixed - - added function CmdListAddSorted() to improve mixinof management +2000-08-19 + * toplevel Makefile: target "make test" added +2000-08-16 + * RDFTriple got a new method "prettyTriples" which uses + indentation to show connections between triples (used in xoRDF.test) - - adding method epoch incr to NsfAddObjectMethod() and - NsfAddClassMethod() +2000-08-11 + * apps/xocomm/webserver.xotcl listens on port 9086 as well + to test basic access control + * packages/make.xotcl -test added + * Access.xotcl: fixes for credentials, timing for SimpleRequest now optional + (-timing 1, default is -timing 0) + * new files: packages/comm/xocomm.test, packages/rdf/xoRDF.test + * Ftp fixed for now Access methods + * "Class instproc newChild" and "Class instproc new" added +2000-08-09 + * untested C-API placed between #ifdef + * dead code removed + * all internal calls to destroy handled by a single + function "callDestroyMethod" + * target "xref" added to xotc/src/Makefile + (needs free program xref to be installed) - - cleanup "//" in sources +2000-08-08 + * new instcommand "exists" to check whether a variable + exists (no need to use namespaces or instvar to check + for the existence of variables) + * xotcl.c: using new macros + VarFrameDecls + VarFrameSwitchToObj(in,obj) + VarFrameRestore(in) + to change VariableFrames + (speedup mand making code more uniform) + * returning int objects instead of string objects + * using new features obove led to more than 20% speedup + on RDF benchmark. + * regression and speed test + xotcl/src/lib/speedtest.xotcl added +2000-08-07 + * HTML Form interface changed, + form arguments are not longer appended to call + * new methods for WebObj: getWorker and getFormData + to access worker internals and form data + * some minor speed improvements - - added "info method handle" as short form of "info method - definitionhandle" - - added "info method origin" to return the target of an alias (or empty) - - update migration guide and tutorial +2000-08-01 + !! more thorough checks for object names + (no ":", no "::", no ":[^:].+", no ".+:", no ".*NAME::[:]+NAME") + * copy and move methods create no invalid names that must be fixed + by Object creation + !! methods called via "-" syntax must start with an alphanum character + * Object creation 10% faster + * apps/actiweb-apps/MC.xotcl uses POST instead of GET -2011-10-18 Gustaf Neumann +2000-07-27 + !!! info children returns fully qualified object names + !!! info classchildren returns fully qualified object names + !!! info filter returns function names without class paths + * fixed composite attributes in RDF + * some speed improvements + * parameter passing from FORMs to WebObjects via parameter objects + * HtmlPlace has a default method that lists all exported objects + * Mime component added + * multipart-form data code added to Httpd +2000-06-26 + * version number increased to 0.82 + * automated version number management + * test client and server for tls added + * minor changes for TLS + * minor fixes for Tcl 8.4a + * including certificates - - rename "info method handle /methodName/" into "info method - registrationhandle /methodName/" - - rename "info method origin /methodName/" into "info method - definitionhandle /methodName/" - - added "info method origin" to return the target of an alias (or empty) +2000-06-20 Uwe Zdun + * packages/mos/Agent.xotcl: + - migrate bug -- 'self' called after destroy of migrate -- + corrected + - support for synchronous invoke, clone, and migrate added in + addition to async methods - - update configure file to reflect version number + * AgentClient/Receiver: example enhanced with class cloning and + sync invoke, clone, and migrate - - nx.tcl: don't use mixins in method "contains", but remap the - new implementation. If there are ten thousands of classes - defined, adding mixins to the root meta-class degrades linearly - on the number of classes defined (the mixin paths for all - classes must be invalidated). This might be a problem for - frequent "contains" invocations. - - bup version numbers for nx, xotcl2 and nsf to 2.0b2 - - - - nx.tcl: simplified ::nx::ScopedNew to ::nx::NsScopedNew: before - it was necessary to create a new volatile class for every - invocaton of contains. - - extended regression test - - - - nsf.c: extended "new": - * nonpos-arg "-childof" accepts now a namespace (required an object - before). Thefore, one can use now "... new -childof [namespace - current]", even when the current namespace is not an object - -2011-10-17 ssoberni - - - - library/lib/nxdoc-assets/yuidoc/api-next.css: Minor css tweak to - align the yuidoc standalone and xowiki versions ... - - - - @class.html.yuidoc, @object.html.yuidoc: Reflected naming - changes from "attribute*" to "property*" - - library/lib/nxdoc-core.tcl: Major cleanup - - library/lib/nxdoc-html.tcl: Made sure that the navigation - structure is rendered in a fixed order, with the per-entity - elements coming last. - - library/nx/nxdocIndex: Added method occurrences etc. - -2011-10-16 Gustaf Neumann - - - - update copyright notice - - - - ensure to export only symbols starting with nsf - - - - further cleanup of C code, adding asserts - -2011-10-15 Gustaf Neumann - - - - make "clang -pedantic" silent - - - - remove currently unsupported and untested .xotcl files, also - c-extensions of the old binary interface. Some of these package might - come back later with tests for nx or xotcl. - - - - change comment style - - - - update .gitignore - -2011-10-14 ssoberni - - - - apps/utils/nxdoc: Make sure we use -local for private - self-calls. - - generic/nsfAPI.nxdocindex: The index file has never been registered - with the repo, or it was dropped during the recent git repo - restructuring. If missing, the nxdoc targets will fail ... - -2011-10-14 Gustaf Neumann - - - - add predefined.h to ease switching between branches in git - - - - nx.tcl, xotcl.tcl: - * remove proc "register_system_slots" since 'rename - register_system_slots ""' fails on aolserver - * bump version number to 2.0b1 - -2011-10-14 ssoberni - - - - generic/nsfError.c: Little pedantic, but I didn't like my last fix - -2011-10-13 Gustaf Neumann - - - - don't output bluebrint - - - - add server name to blueprint for debugging - -2011-10-13 ssoberni - - - - generic/nsf.c: Make sure that the conditional macro - NSF_WITH_VALUE_WARNINGS covers all code junks of this feature. - - generic/nsfError.c: Added colon-prefix awareness to NsfDStringArgv() - -2011-10-12 Gustaf Neumann - - - - minor cleanup - -2011-10-09 Gustaf Neumann - - - - minor updates - -2011-10-08 Gustaf Neumann - - - bump version number to 2.0b1 - -2011-10-07 Gustaf Neumann - - - -nsf.c: - - remove quadratic behavior when adding many classes (10 - thousands) - - deletion is still for huge number of classes quite slow. - - - - fix typo - -2011-10-05 Gustaf Neumann - - - - fix dtrace configuration magic - - - - close parenthesis in README text - - - - fix readme file - - - - add trait index entry to pktIndex.tcl - - - - return the full error stack - - - - use parameter option "increamental" instead of setting the slot's - instance variable - - - - improve keyword detection (it is now slower, since it uses two - separate regexps, but it returns much less false positives) - - - - fix compilation with Tcl 8.6 when assertions are deactivated - - - - added example file for container classes - -2011-10-03 Gustaf Neumann - - - - library/mongo: - * updated interface to current nx - * updated to mongo-c-driver 0.4 (current version) - * The mongo c-driver does not allow to add DBRefs, since it refuses to - accept field names with leading '$'. So we skip these tests for the - time being. - -2011-10-01 Gustaf Neumann - - - - provide means for "autoloading" traits - -2011-09-30 Gustaf Neumann - - - - altered default handling to honor side effects of aliased - object parameters. This slows down evaluation a little. - Side-effects from aliased parameters are discouraged, since the - order of the evaluation should not matter of an declarative - evaluation of the argument vector. - - extended regression test - - - - added tk-spread and tk-locomotive to example scripts - - - - added per-object traits (and per-class-object traits) - -2011-09-29 Gustaf Neumann - - - - traits: renamed "useTrait" into "require trait" - - - -nx.tcl: - - make "/object/ require" an ensemble method - -2011-09-29 ssoberni - - - - TODO: Filed an issue found for parameter defaults, so that we don't - forget to take a look ... - -2011-09-29 Gustaf Neumann - - - - fix typo - - - - nx-traits: - * use "info methods -closure" instead of instantiating a class at - trait-insertion time - * added trait as package nx::callback - - example scripts: added tk-mini and tk-horse-race - - - - nsf.c: - * add flags "-closure" and "-source" to "/cls/ info methods" (the - cases for "/obj/ info methods" are already covered by "/obj/ - info lookup methods") - * extend regression test - -2011-09-28 Gustaf Neumann - - - - doc: - * extended method resolution section - * documented invocation flags for colon - - - - nx.tcl: - * do not namespace import my into ::nx - * replace usages of "my" by colon invocations - - - - nsf.c: cleanup on DEBUG86B2 - -2011-09-27 ssoberni - - - - library/lib/nxdoc-assets/body.html.yuidoc: Added a tiny piece of - missing styling markup ... - -2011-09-26 ssoberni - - - - library/lib/nxdoc-core.tcl: Major refactoring accomplished: - Managed to refactor the validation code into a separate module, - obtain a better separation between the backend implementations, - ... Relocate the validate() method implementations into the - Validator mixin layer. Validation (the validate cascade) is now - triggered from within the mixin layer ... further improves the - separation of concerns in nxdoc ... Also, moved frontend code - into two distinct Tcl packages: We now distinguish between the - DC ("Documentation Comments") and the XODoc frontends. I also - remastered the entire frontend handling and disentangled the - various concerns: specifying documentation sources, 1st- and - 2nd pass handling, etc. - - Support for document multiple Tcl packages per NXDoc project. - Multi-package support, plus validation mode for packages, - adding missing files to the repo - - tests/doc.test: General cleanup, deactivated some tests for the - time being (till the DC interface settles) - - library/lib/nxdoc-core.tcl: Removed dead comments and dead codex - - YUIDoc template suite: Added Monikas recent - adaptations/extensions. I still have to check the resource - paths for the xowiki backend, which are most probably broken - for now. - - Adjusted TODO for accomplished tasks. - -2011-09-26 Gustaf Neumann - - - - documentation updates - - - nonleadingdash handling: - - doc: added "nonleadingdash" to UML class diagramm - - nsf.c: added error message, when "noleadingdash" is used on - non-positional parameters - - nsf.c: use same logic for "nonleadingdash" to "value in - argument" - - nsf.c: deactivated rudimentary unknown handler for the time - being - - nx.tcl: added handling of parameter option "noleadingdash" in - objectParameterSlots - - - - added "nonleadingdash" to UML class diagramm - - - - add traits package and example scripts - - - - fix typo - -2011-09-25 Gustaf Neumann - - - nsf.c: - - don't convert obj types tclCmdName and parsedVarNameType to - instanceMethodObjType - -2011-09-23 Gustaf Neumann - - - - documentation updates: use term "instance method", some clarifications - -2011-09-22 Gustaf Neumann - - - - remove duplicate calculation of pcPtr->objc - - - - cleanup on nsfObj.c - - - - perform more eager invalidation on objectMethodEpochs - - - - minor cleanup - - - - added MixinregDupInternalRep() and FilterregDupInternalRep - - - tests: - - added "package prefer latest" to avoid confusions of alpha and beta - releases with install versions - -2011-09-21 Gustaf Neumann - - - nsf.c: - - new cmd for debugging: nsf::__db_show_obj - - added MethodDupInternalRep() and FlagDupInternalRep() since they - appear to be required in Tcl 8.6b2. - -2011-09-20 Gustaf Neumann - - - nsf.c: - - moved methodEpochCounters from global vars to the interp state - to improve resue in multi threaded apps - - separated objectMethodEpoch and instanceMethodEpoch - - bump version number to 2.0a2 - - - - minor cleanup - - - - experimentation version of unknown handler for non-pos args - - extending regression test - - - nsf.c: - - reform of method lookup. new code uses NsfInstanceMethodObjType - and NsfObjectMethodObjType to reuse earlier lookup results. - Improved speed for for methods with primitive bodies (over - version before argument parse reform: 10%-43%. - - additional compile-time option: METHOD_OBJECT_TRACE - -2011-09-19 Gustaf Neumann - - - - fix old typos (many thanks to Victor Guerra for noticing it) - - - - nsf.c - - added experimental parameter option noleadingdash - - additionalal regression test file method-parameter.test - - provide selective error messages for unknown nonpos args - - - - remove "namespace import ::nx::*" - - - - add example scripts - - - - provide more hints for gcc - -2011-09-18 Gustaf Neumann - - - - reform of argument parse. new parser uses NsfFlagObjType to reuse - earlier parse resuslts. Improved speed for for methods with primitive - bodies: 5%-25%. - - - - added minimal regression tests for argument parsing to object-system - test - -2011-09-14 ssoberni - - - - library/lib/nxdoc-core.tcl: Slightly improved the error robustness of - nxdoc - -2011-09-13 Gustaf Neumann - - - - nsf.c: make ":" a full equivalent vor nsf::my (i.e. support - -local, -system and -intrinsic) - - extend regression test - - - - nx.tcl: moved "properties" from nx::Class to nx::Object - -2011-09-13 Gustaf Neumann - - - - nsf.c: - * allowed to call ":" like "my" or "self" - Object create o - o public method bar2 {} {return bar2-[: foo]} - o public method bar5 {} {return [self]::bar5} - o public method bar6 {} {return [:]::bar6} - * extended regression test - -2011-09-13 Gustaf Neumann - - - - use colon cmd rather then my - -2011-09-12 Gustaf Neumann - - - - documentation updates - - - - documentation update - - - - change permissions back - - - - added configure option: enable-assertions (default on) - - - nsf.c: improve iPtr cleanup for memcount debugging - -2011-09-11 Gustaf Neumann - - - nsf.c: - * provide an intermediary fix for the final memcount problem of - elements in on the iPtr->errorStack - - - - removed escaped reported config variable for cflags, since not - portable - - - build-environment: - * make configure.in Makefile.in more in line with the TEA sample - app (removing leftovers from prior versions of TEA) - * remove GNU-Makefile-isms from Makefile.in - - - - nsf.c: - * report configuration options via "parray nsf::config" - - - - configure options: - * improved and extended configure options to reduce necessity to switch - features on and off in the nsf.h. Optional Features: --enable-profile - build nsf with profile support (default disabled) - --enable-memcount=yes|trace build nsf with memcount debug support - (default disabled) --enable-development build nsf with development - support (assertion checking, etc.; default disabled) Optional Packages: - --with-dtrace build nsf with dtrace (default: without) - - - - removed obsolete code - -2011-09-10 Gustaf Neumann - - - - library/lib/nx-zip.tcl: refactored implementqtion, improved utf-8 - file-name handling (which is a mess in pkzip) - -2011-09-09 ssoberni - - - - generic/nxdocIndex: An auto-generated, then edited NXDoc index - file for the nsf API as defined in nsf.tcl. The index file - created by the API generator is included. - - library/nx/nxdocIndex: The NXDoc index file for the NX API (covering - Tcl procs, NSF procs, objects, and classes). Please review for the - current choice of inclusions/exclusions! - - - - Makefile.in: Added two new targets: [make yuidoc-dev] and [make - xowiki-dev]; both will be generate the documentation including - validation data and will make proper use of the nxdocIndex - restrictions. - - apps/utils/nxdoc: Some minor fixes/additions - - library/lib/nxdoc-core.tcl: Completed the nx::doc::mkIndex helper - - - - apps/utils/nxdoc: Added support for nxdoxIndex files - - library/lib/nxdoc-core.tcl: Temporary fix for filtering commands - (includes/excludes) at the right time; needs major cleanup; first - drop of a mkIndex helper. - -2011-09-08 Gustaf Neumann - - - - use same version numbers in nsf, nx and xotcl2 - - - - Switched to the tcl numbering scheme. Version is now 2.0a1 Warning: - From the Tcl point of view, this is a regression in numbering - relative to the previous 2.0.0. Make sure to remove old releases from - you installation path like e.g. - rm -rf /usr/local/lib/libnsf2.0.0* /usr/local/lib/nsf2.0.0 - - - - minor optimization - - - - minor doc updates - - - - small update to test makefile dependencies - - - - xotcl2.tcl: - * added a backward compatible ::xotcl::alias method - -2011-09-08 ssoberni - - - - library/lib/nxdoc-assets/@project.html.yuidoc|body.html.yuidoc: - Slight re-arrangement of markup to fit Monika's yuidoc redesign - - library/lib/nxdoc-assets/yuidoc/*: Added Monika's yuidoc ressources - (images, styles); removed obsolete assets (nx.png, bg_hd.gif). - - - - Makefile.in: Added file-level deps to the [make yuidoc] and [make - xowiki] sub-targets. - -2011-09-07 Gustaf Neumann - - - - extend documentation - - - - further cleanup and extend regression test - - - nsf.c: - * fixed recration of object alias with a alias to a different cmd - - - - nsf.c: - * minor cleanup - * added regression tests - - - - fixed small memory leak in error case - -2011-09-06 ssoberni - - - - generic/nsf.c: A tentative patch for two (related) misbehaviors of - alias methods binding objects (4 MEM_COUNT scores in contains.test). - The in-code comments include synthetic examples and some hints. While - the first case (repetitive alias registrations of identical objects) is - rather obvious, the second turned out tricky: When aliasing a nested - (!) object, NSDeleteChild() won't clean up the alias object references - properly. The current patch requires a thorough review ... for now, the - patch closes the leaks. - - - - generic/nsf.c: Fixing a small leak in SuperclassAdd(), only showing - for an error condition specifically tested in contains.test. This - accounted for 1 MEM_COUNT score (out of 5). - -2011-09-06 Gustaf Neumann - - - - documentation updates - - - - gentclAPI.tcl: - * added option handling for every cmd/method/... - * added option "-nxdoc" for outputting an index to ease maintenance in - nxdoc - - - - nsf.nxd: - * adapted to new namings - * tend to use fully qualified names (make maintenance easier) - * bring cmds to an alphabetical order (make maintenance easier) - * add optical separators between doc items to ease reading - - - - fix inclusion of google profiler - - - - nsf.c: - * reduce eagerness of methodName computation in - ResolveMethodName() and GetRegObject() - * reduce eagerness of DString computation in ResolveMethodName() - * use conditional assignments in ResolveMethodName() - * make use of Tcl_Obj type in ResolveMethodName() to reduce number of - string operations - -2011-09-05 ssoberni - - - - apps/utils/nxdoc: Created a first version of a command-line - script around the nxdoc machinery, for Makefile integration. - - Makefile.in: Added two experimental nxdoc make-targets: [make - yuidoc] and [make xowiki]. In addition, provided for a - doc-specific cleanup target: [make cleandoc]. Also changed the - way TCLLIBPATH is initialised for makefile runs, to preserve - the surrounding environment settings. - - tests/doc.test: Deactivated obsolete sections; actual cleanup - is pending. - - Refactored nxdoc code fragments into sub-packages, namely the - html and xowiki rendering components; renamed some file and - directory. - - Some necessary adjustments to make nxdoc work with the new - property/variable nomenclature; spotted some misbehaviour of - [namespace import] when running under 8.6b2 (to be investigated; see - XOTcl-lanfRef.xotcl) - -2011-09-05 Gustaf Neumann - - - - doc: - * added section about ":variable" to the tutorial - * fixed a few outdated places in tutorial - - - - doc: - * fixed spacing in documentation - * fixed documentation of "info slot objects", "info slot names", "info - slot definition" - - - - library/lib/pp.tcl: improved handling of placeholders - - - - nx: - * changed "info slot name" to "info slot names" (like "info parameter - names") - - - - nx: - * added namespace "nx::internal" - * delete procs via "rename to emtpy" instead of "defining procs - with empty argumentes and body" - * provided "-properties" as a replacement for -attributes, but - without magic variable - * extended regression test - - - - reduced font size for main text - - - - extended list of highlighted words - - - - doc: - * fixed naming of "attribute" in migration guide - * added "private" to migration guide - * some textual improvements in migration guide - - - - fix references - - - - fix references - - - - nsf.c: - * added permissable value "private" to flag "-callprotection" for - "info lookup method" and "info methods". - * extended regression test - -2011-09-03 Gustaf Neumann - - - - small performance improvements - - - - minor optimizations - -2011-09-02 Gustaf Neumann - - - - minor optimizations - -2011-09-01 Gustaf Neumann - - - - renamed "nsf::method::dispatch" to "nsf::directdispatch" - - renamed "nsf::object::dispatch" to "nsf::dispatch" - - - - cleanup - - - - nsf.c: experimental implementation of ::nsf::method::dispatch - - - - nsf.c: small performance improvements - -2011-08-31 ssoberni - - - - TODO: updated - - - - library/xotcl/library/comm/Connection.xotcl: Provide temporary - workaround for Tcl bug #3401422; the NSF/NX/XOTcl2 test suite - completes now under Tcl8.6b2. - -2011-08-31 Gustaf Neumann - - - - fixed substitution of logdir - - - - nsf.c: - * removed warning about resetting cmd to 0 for private method - invocations. - -2011-08-30 Gustaf Neumann - - - - minor optimizations - - - - nsf.c: - * "private" implies now "protected". This means, setting - "private" sets as well "protected", unsetting "protected" - unsets "private" - * make sure the "... method definition" of private methods is - returned as "private" - * extended regression test - -2011-08-27 Gustaf Neumann - - - - nsf.c - * implemented NsfObjDispatchNRE and NsfObjDispatch - * this fixed all issues of tcl8.6 and interp.test (xocomm still hangs - in tcl 8.6) - -2011-08-26 Gustaf Neumann - - - - nsf.c: - * factored out CmdIsNsfObject() for NRE handling with slave - interpreters. - * added flag ZSE_NRE_PROC for using nreProc instead of objProc - - - - minor documentation updates - - - - made nsf::my and nsf::object::dispatch available in the nx namespace - -2011-08-25 Gustaf Neumann - - - * removed "-local", "-system" and "-intrinsic" from plain - dispatch (like e.g. "o1 -system method") - * removed flag "-local" from nsf::object::dispatch - - - * added support for calling private methods via -local and - filters - * extended regression test for private + filters - - - - nsf.c: - * allow protected and private methods to be used as filters - * added regression tests - * some cleanup in regression tests - - - - remove interp from MEM_COUNT implementation - -2011-08-25 ssoberni - - - - library/lib/test.tcl: Disarming [exit] for during the execution - of test suites. I allow for using [exit] statements in (legacy) - test suites, however, I provided for disabling them for the - scope of Test->run() executions. During a test run, [exit] is - replaced by a [return] trampoline. - - library/xotcl/tests/xocomm.test: We now have a total MEM_COUNT - of 0, which leaves us with a contains.test as the last patient - (MC of 5). - - tests/interp.test: minor cleanup - -2011-08-24 Gustaf Neumann - - - * added transparency for per-object private methods - * extended regression test - -2011-08-24 ssoberni - - - - generic/nsf.c: Fixed the source of valgrind-reported mem leak: A - pointer-reassignment situation in NsfAddParameterProc() orphaned the - mem-block of a bare Tcl_Obj. - -2011-08-24 Gustaf Neumann - - - * per-thread MEM_COUNT tested with aolserver/naviserver - * removed INTERP macros for MEM_COUNT (since we use now per-thread - tables instead of per-interp tables as in the first implementation) - - - - nsf.c: - * simplified permission handling - * made private/protected mutual exclusive - * extended regression test for private methods - - - - fix mutual exclusive tests for -intrinsic, -local, and -system - - fix ref-counting - - - - reduce verbosity - - - - reduce verbosity - - - - don't allow options "-intrinsic", "-local" and "-system" used in - parallel - -2011-08-24 ssoberni - - - - generic/nsfAPI.h: Renamed the [::nsf::current next] subcommand - to [::nsf::current nextmethod] - - library/xotcl/library/xotcl2.tcl: Accordingly, the xotcl::self - emulation maps [self next] to [current nextmethod] - - tests/disposition.test, tests/methods.test, - tests/submethods.test, tests/tcloo.test: Changed the few - occurrences of [current next] to [current nextmethod] - - tests/introspection.test: Added some basic tests on the expected - behaviour of [::nsf::current nextmethod] - - - - generic/nsf.c: Provided a documentation block for - CmdListRemoveDeleted() - - - - generic/nsf.c: For "tolerating" hidden objects, I verified the - various occurrences of conitional branching based on the cmd's - epoch counter. While most occurrences are not concerned (cmds - of nested objects, or simply non-object commands), I identified - three relevant spots: a) In NsfProcAliasMethod(), invalidating - and rebinding the alias target command (including hidden - objects as alias pointers) is based on the epoch counter; b) in - MixinSearchProc() the lookup of mixed-in methods is affected; - c) using CmdListRemoveEpoched() (as the name says), "deleted" - commands are identified by looking at the cmd epoch and sorted - out from mixin lists computed for precedence lists. I corrected - cases b) and c), with the fixes being covered by accompanying - tests; a) turned out to be consistent with alias rebinding - behaviour for [rename]. While we could correct a) for hidden - cmd awareness, this would have to be done for the likeminded - alias + [rename] as well. - - generic/nsf.c: Renamed CmdListRemoveEpoched() to - CmdListRemoveDeleted() - - tests/interp.test: Added tests on b) and c), as well as hiding - globally namespaced procs and objects as alias targets (merely for - documenting the behaviour). - -2011-08-23 Gustaf Neumann - - - - nsf.c: - * added "/obj/ -intrinsic ..." similar to "/obj/ -system ..." - * added "nsf::my /obj/ -intrinsic ..." similar to "/obj/ - -intrinsic ..." - * added "nsf::object::dispatch /obj/ -intrinsic ..." similar to - "/obj/ -intrinsic ..." - * extended regression test - - - - deactivated a few tests for the time being for tcl 8.6 - - - - provide error message for "/obj/ -system" - - - - nx.tcl: - * make calls from "protected", "public", and "private" system - calls, such that "obj -system protected method foo {} ..." - works, even when obj has a method named "method". - * extended regression test - - - - reduce verbosity - - - - reduce verbosity - - - - minor cleanup - - - - nsf.c: - * integrated "-local" and fully qualified handling with - ObjectDispatch to ensure proper behavior of mixins/next etc. - * added "/obj/ -local ..." similar to "/obj/ -system ..." - * added "nsf::object::disapatch /obj/ -local ..." similar to - "/obj/ -local ..." - * extended regression test (next from -local, fully qualified names, - private methods, "...dispatch -local") - - - - simplified test exist code (on errors in regression test) - -2011-08-23 ssoberni - - - - generic/nsf.c: [current calledclass] used to return a literal - "NULL" for cases of no active callstacked class. I fixed this, - with [current calledclass] now reporting an empty string in - these cases. - - library/lib/test.tcl: Adjusted the explanations along the - exit/return fix - - tests/introspection.test: Added some basic testing of [current - calledclass] - -2011-08-23 Gustaf Neumann - - - - make sure that a failing regression test stops make; otherwise, - errors can be easily missed - -2011-08-22 ssoberni - - - - library/lib/test.tcl: Stop using [exit] to interrupt test suite - runs upon failure conditions. This led to unwanted garbage due - to the non-returning character of [exit]. We now resort to a - [return] variant which gently shuts down the NSF machinery - before stopping. - - TODO: marked dispo + exit/initcmd issues as done ... - -2011-08-22 Gustaf Neumann - - - fix typo - - - * added flag "-keepvars" to nsf::finalize for handling cases in - interp.test - * reactivated tests and simplified in interp.test - - - * re-established assertion checking for deleted cmds in cmd lists - - - - nsf.c: - * change mem-count statistics from per-interp to per-thread - * generalized GetObjectFromCmdTable() to - ReverseLookupCmdFromCmdTable() - * changed GetObjectScreenedByCmdName() to GetHiddenObjectFromCmd() - * modularized interp.test to locate potential problems faster - * partly simplified interp.test syntactically - * deacivated a few tests in interp.test for the time being (runs - commands after finalize) - -2011-08-22 ssoberni - - - - generic/nsf.c: After several takes, adding support for basic - handling of hidden and re-exposed objects in the sense of - [interp hidden|hide|expose]. I wanted to make sure that NSF - does not crash upon basic hiding/exposing operations (see - tests/interp.test) and guarantees that hidden/re-exposed - objects are properly handled when cleaning up object systems, - i.e., the destructors are called and physical deletion is - performed. [interp hidden|hide|expose] is challenging for NSF - (as well as TclOO) because they way it is implementing - effectively modifyies command names *without* providing any - calling back to trace these changes (as for renames). As a - consequence, object and command names start to diverge once an - object has been hidden or re-exposed. As the changes affect the - cleanup machinery in ObjectSystemsCleanup() & friends, I - verified for leaks by running valgrind; no leaks were found - running destroy.test and interp.test. - - tests/interp.test: A test suite that covers basic scenarios of - hiding and exposing objects. - - Makefile.in: Registering interp.test with make env - -2011-08-21 Gustaf Neumann - - - - nsf.c: - * fixed name path in unknown called from ensemble methods - (erroneous colon could show up) - * added -system flag to: - - ordinary dispatch (e.g. "o1 -system info vars") - - nsf::object::dispatch with plain methodName - - nsf::my (mutual exclusive with -local) - - - - added flag "-system" to ObjectDispatch - - - - nsf.c: - * added preliminary/minimal "private" support - * private can be called via "my -local", direct dispatches are - forbidden, ignored in mixins and next; - * extended regression test - -2011-08-20 Gustaf Neumann - - - - documenting current behavior - * test method-handle + next + dispatch (unwanted) - * test "my -local" vs my + method handle - * test "my -local" vs dispatch + method handle - - - - nsf.c: - * fixed "nsf::my -local ..." (never worked in nsf) - * added regression test - -2011-08-19 Gustaf Neumann - - - - nx.tcl: - * made "/cls/ class ..." using ensemble methods and therefore - extensible. - * This introduces some definition order dependencies in nx.tcl and some - redundancy ("class filter" and "class mixin"), but maybe this can be - eliminated. - -2011-08-18 Gustaf Neumann - - - - nsf.c: - * fixed next path computation in cases where command handles are - used to refer to methods in the current mixin order. - * extended regression test - -2011-08-17 Gustaf Neumann - - - * added ./apps/utils/source-doc-beautifier.tcl - * fixed the file-handle output/formatting in rosetta-serialization.tcl; - using proc "!" - - - - added example rosetta-unknown-method.tcl - -2011-08-16 Gustaf Neumann - - - - the added examples - - - - added example rosetta-abstract-type.tcl - -2011-08-16 ssoberni - - - - tests/tcloo.test: Added a prototype implementation of TclOO's - export|unexport feature, as a mere test suite. - - Makefile.in: Registered tests/tcloo.test - -2011-08-15 Gustaf Neumann - - - - new folder example-scripts - * Added 8 of the rosetta examples and one classical OTcl example - * all examples are tested via regression test - * all examples are pretty-printed via asciidoc - - - - nx.tcl: - * added parameter option incremental for "property" and "variable" - * removed the nonpos argument "-incremental" from "property" and - "variable" - * adapted regression test for these cases - - - - nx.tcl: - * added "/obj/ info slot definition" - * added "/obj/ info slot name" - * added "/obj/ info properties" (alias to "/obj/ info slot - definition") - * extended regression test - - - - merged one more change - - - - nx.tcl - * renamed "info parameter name" to "info parameter names" (since - it returns a list of names) - * renamed "info parameter name" to "info parameter names" (since - it returns a list of names) - * renamed "info slots" to "info slot objects" - * additional method "info slot definition" - * additional method "info slot name" - * additional method "info properties" (alias to "info slot - definition") - * removed "info parameter slot" - * use term "noaccessor" and "noconfig" to deactivate accessors or - object-parameters in property definitions - * don't show slots with noconfig in "info parameter names" - * don't show slots with noconfig in "info parameter definition" - * renamed slot property "configparam" to "config" - * renamed "::nsf::methods::class::info::slots" to - "::nsf::methods::class::info::slotobjects" - * additional public method - ObjectParameterSlot.getPropertyDefinition - * updated and extended regression test - -2011-08-12 Gustaf Neumann - - - - nx.tcl - * renamed "attribute" to "property" - * renamed "defaultAttributeCallProtection" to - "defaultPropertyCallProtection" - * renamed "nx::Attribute" to ""nx::VariableSlot" - * renamed "BootStrapAttributeSlot" to "BootStrapVariableSlot" - * renamed "createBootstrapAttributeSlots" to - "createBootstrapVariableSlots" - * removed method attributes - * implemented old attributes definition in xotcl2 as method "parameter" - - - - minor cleanup - -2011-08-12 ssoberni - - - - library/lib/doc-tools.tcl: Ported over the nxdoc core to reflect - recent changes (i.e., modified attribute() signature and honouring - that ::nsf::method::setter|forward are expected to return the method - handle) - - - - generic/nsfError.c: Made sure that the colon prefix is not - printed in occurrences of NsfObjWrongArgs() - - generic/nsfInt.h: Advertising the MethodName() function - prototype - - tests/parameters.test: Added a corresponding test - -2011-08-10 Gustaf Neumann - - - - nsf.c: implemented "... info method origin ..." which returns the - implementation handle (in contrast to the registration handle) of a - method. - - - - small simplification - - - - cosmetical changes - - - - nx.tcl: extended object-parameter "switch" implementation: now, - accessors of type boolean are created, when type "switch" is used. - -2011-08-09 Gustaf Neumann - - - -nsf.c: - * move to greedy assert to an inner scope ("info method ...") - * allow testwise "switch" as object parameter (when it is used, - accessors are deactivated for this attribute) - * extended regression test - -2011-08-08 Gustaf Neumann - - - - library/mongodb:updated to current interface in git HEAD - - - - changed Stack example in tutorial from constructor to :variable - - allow just valid specs for :attribute and :variable methods - - improved error message for invalid parameter specs (with - leading colons) - - extended regression test - - - - added tests for using submethod handles - - - - updated next-tutorial to the current naming conventions - - - - removed redundancy in TODO - - - - documented functions in nsfTrace.c - - - - fixed book-keeping for TclNamespace refcounting such that now - alias.test, destroy.test and test.xotcl run now clean, 2 test are - still open with tcl 8.5.10 (contains.test and xotcomm.test) - -2011-08-08 ssoberni - - - - tests/disposition.test: Corrected a temporarily silenced test, the - dispo test suite now runs completely - -2011-08-07 Gustaf Neumann - - - backport of autoname fix from nsf - - - - nsf.c: fixed autoname problem with code from tcl trunk - -2011-08-06 Gustaf Neumann - - - * added paramPtr->name to MEM_COUNT tracing - * renamed NEW_STRING to STRING_NEW - * added STRING_FREE, calling MEM_COUNT macros - * checked all ckfree in nsf.c, everything allocated is covered by the - MEM_COUNT macros - - - - minor code cleanup - - - - nsf.c: - * enabled MEM_COUNT debugging for multi-threaded apps. We collect - the MEM_COUNT statistics now per interp. Therefore, we have to - pass around "interp" in case where alloc() and free() or - refCount functions are used (textually, a big change) - * verified, that nsf runs clean in aolserver/naviserver (all - INCR_REF_COUNTS all balanced) - -2011-08-04 Gustaf Neumann - - - - nsf.c: added cmd __db_compile_epoch for compile-epoch introspection - - - - library/mongodb: - * updated error codes according to git head - * factored out mapping of error code to string - - - - library/mongodb: - * replaced NsfMongoGetHostPort() with the newly available function - mongo_parse_host() - -2011-08-03 Gustaf Neumann - - - - nx.tcl: - * added protected and public for "require method" The following - forms are now valid "... require public method" "... require - protected method" "... require method" "... require public - class method" "... require protected class method" "... require - class method" - * extended regression test - - - - nx.tcl: implemented copy without a provided name. If argument - of copy is omitted, the copied object is created with a fresh - name (i.e. created with the method "new"). Example set x [o - copy] - - extended regression test - - - - library/mongodb:updated to current interface in git HEAD - -2011-08-02 Gustaf Neumann - - - - reduced verbosity, updated TODO - - - - extended regrssion test - - - - nx.tcl: - * fixed copy for object created with new - * copy returns now the fully qualified name of the copied object - - - - library/mongodb: updated to current interface in git HEAD (resp. "git - checkout v0.4") - -2011-08-01 Gustaf Neumann - - - - nsf.c: - * fixed a bug in "info parameter list|... name" when the named - parameter is not found (returns now empty, before, it was - returing the full list). - * added flag "-nocomplain" to nsf::var::unset - - nx.tcl - * added "delete variable" analogous to "delete attribute" - * unset instance variable for object-level "delete attribute" - * extended regression test - -2011-07-31 Gustaf Neumann - - - nsf.c: - * provide debug-refcounts for "class.activationCount" - * provide debug-refcounts for "object.activationCount" - * deactivated CHECK_ACTIVATION_COUNTS oer default - * tested refcounts with Tcl 8.6b2, found bug in Tcl 8.6b2 and submitted - patch to sourceforge - -2011-07-30 Gustaf Neumann - - - nsf.c: - * change DeleteProcsAndVars, such it deletes procs and vars - explicitely in all namespaces - * added more sanity checks for parameterContexts, testing in - ParseContextRelease() in DEBUG mode - * provide debug-refcounts for "pcPtr.objv" - * provide debug-refcounts for "pcPtr.clientData" - -2011-07-28 Gustaf Neumann - - - * provide debug-refcounts for "NSNamespace" - * provide debug-refcounts for "nextArgumentVector" - * updated TODO for refcount debugging - - - * added explicit names for refcounting for "freeList" (for forwaders) - - - - fix typos - - - - disposition.test: replace "exit" by an "if 0 {...}" for the time being - - - - nsf.c: added explicit names for refcounting for "paramDefsObj" - - - - nsf.c: - * refined refcounting debugging - * fixed various refcounting bugs, especially in error cases. - * added explicit INCR_REF_COUNTs on Tcl_Objs with 0-refCount to ease - debugging - -2011-07-26 Gustaf Neumann - - - - reduce debugging in the commited version - - - - nsf.c: - * improved INCR_REF_COUNT/DECR_REF_COUNT for easier tracking of - potential refcount errors - * added macros DECR_REF_COUNT2() and INCR_REF_COUNT2() for easing - the association of refcounts to locations in the code by - providing names for refcounts. - * fixed a refcount bug for valueObjs in non-NRE-enabled versions in the - argument vector of scripted methods (found via - INCR_REF_COUNT2/DECR_REF_COUNT2) - - - - fix a few typos - -2011-07-25 Gustaf Neumann - - - - nsf.c: - * fixing compliation with NSF_MEM_COUNT - * New function DeleteProcsAndVars() to trigger deletion of - ParamDefs (fixes a small mmemory leak); - * improved comments - -2011-07-23 Gustaf Neumann - - - - nsf.c: - * added flag "-array" to nsf::var::set such we have now - "::nsf::var::set ?-array? object varName ?value?" With - "-array", nsf::var::set behaves like "array get" or "array set" - (on instance variables) - * use "::nsf::var::set -array" in serializer symmetrically to - scalar case - * extended regression test - -2011-07-21 ssoberni - - - Updated TODO - -2011-07-21 ssoberni - - - - generic/nsfStack.c / CallStackPopAll(): When cleaning up the - unstacked CSC entries, the borderline case of just 1 CSC entry led to - a dangling pointer (and so a crash). This was caused by the unhandled - side effect of CscListRemove() (or, rather, NsfClassListUnlink()) - which updates the interp's cscList pointer in the 1-list-entry - scenario. By using a copy of this pointer in the cleanup loop, this - scoped pointer became dangling. To reproduce the issue (prior to this - commit), run for example: - Object create o { exit -1 } - I extended the CscListRemove() interface for a conditional out - parameter, to be used for tracking changes to the interp's cscList - pointer. - - generic/nsf.c: Modified the occurrences of CscListRemove() to - reflect its extended interface. - - generic/nsfStack.c: Extended the documentation snippets of the - CscList* operations accordingly. - -2011-07-19 ssoberni - - - - generic/nsf.c: Fixed some typos ... - - - - generic/nsf.c / NextSearchAndInvoke(): Prior to this commit, - next calls from within submethod leaves resulted in the - interp's unknown flag to be set. While for dispatches without - filter indirection this remains hidden and unnoticed, - registered filters triggered an unwanted unknown dispatch in - such scenarios. Consequently, such leaf next's in submethods - behaved differently from the method equivalents. The patch - identifies such leaf-next dispatches by watching out for a - characteristic callstack structure. - - tests/submethods.test: Add a characteristic test for the above - patch. - - tests/disposition.test: Some cleanup ... - - - - Further testing on [current calledmethod|class] and submethods; added - to-dos - -2011-07-17 Gustaf Neumann - - - - nx.tcl: - * added support for "variable" on the class-level - * added flag "noconfig" to object parameter options - * parameters with "noconfig" are omitted in "info parameter - syntax" and "info parameter list" - * used switches for all configurable boolean options for - "variable" and "attribute" - * regularized the interface of "variable" and "attribute" - * extended regression test - - - - nsf.c: improve performance (branch prediction) by using - likely/unlikely macros for gcc - -2011-07-16 Gustaf Neumann - - - - nx.tcl: added switch "incremental" to "variable" and "attribute" - - added regression test - - - - library/mongodb: - * updated to current interface in git HEAD - -2011-07-15 Gustaf Neumann - - - - make sure to place declarations only at the begin of a block - - minor code cleanup - - - - added tests for object specific "variable" and "attribute + - application defined value checker - -2011-07-15 ssoberni - - - - generic/nsf.c: Fixed [current callingmethod] for submethods - (i.e., reporting submethods as calling methods, including their - methodpath). Added tests covering the fix (see - tests/submethods.test). - - generic/nsfStack.c (CallStackMethodPath): Re-arranged the - traversal slightly, to escape non-ensemble frames (eval - CFRAMEs) as parts of the method path. Added test (see - tests/submethods.test). - - library/nx/nx.tcl: Corrected the impl of - Ensemble->defaultmethod() (e.g., used self instead of current) - - tests/disposition.test: Fixed test cases turned out to be false - positives. Before the fixes, [current methodpath] gave non-empty - results for simple object aliases. - -2011-07-15 Gustaf Neumann - - - - provide error message, when method variable is a noop (e.g. no value - provided and no accessor is wanted) - - - - added support for "class variable" - - added tests for "variable" + multiplicity and "class variable" - - - - nx::Attribute: changed method 'checkInstVar' to - 'setCheckedInstVar' - - set only fresh variables via per-object method "variable" and - "attribute" - - added flag -concomplain to per-object method "variable" and - "attribute" - - extended regression test - -2011-07-14 Gustaf Neumann - - - - add reference value in tests, update TODO - - - - nx: factor out method createFromParameterSpec - - method variable: - * check default value - * added shortcut, when no slot object is needed - * extended regression test - - - - generalized "nsf::object::initialized" to nsf::object::property - objectName initialized|class|rootmetaclass|rootclass|slotcontainer - - - - regularized more nsf::* names: renamed "nsf::createobjectsystem" => - "nsf::objectsystem::create" renamed "nsf::unknown" => - "nsf::object::unknown" renamed "nsf::dispatch" => - "nsf::object::dispatch" - - - - better error message - -2011-07-13 Gustaf Neumann - - - - fix typo - - - - library/mongodb: - * added new index options "-sparse" and "-background" - - - - library/mongodb: - * updated to current interface in git HEAD - * added flag timeout to mongo::connect - - - - first draft of separation of attribute -> variable + accessor - - - - make sure to always initialize variables - - - - reamed ObjectParameterSlot attribute from nosetter => accessor - (positive formulation) - -2011-07-11 ssoberni - - - - tests/parameters.test: Tracked down the relevant Tcl issue - (fossil check-in 769801ace1) resulting in the bignum - double-rounding problem, observed earlier. The work-around is - setting the tcl precision level to 17. I made it applying - conditionally, depending on the Tcl patch level as the - work-around is not needed anymore fore 8.5.10+. - - generic/nsf.c: Correct usage of TclDumpMemoryInfo() for changes in - 8.5.10, introduced by fossil check-in 4a9ba46064. Memdebug builts - (--enable-symbols=mem) therefore require a recent Tcl version (8.5.10+). - -2011-07-11 Gustaf Neumann - - - - reduce verbosity - - redoce scope of variables - - - - adding spaces after comma in argument lists - - - - fix typos in string "unknown" (unknwon, unkown) - - - - provide backward compatibility for unknwon method (when method - contains spaces). - - some minor cleanup - - extended regression test - -2011-07-08 ssoberni - - - - TODO: Added an entry concerning callstack introspection (as - discussed today) - - generic/nsf.c: Some minor renaming in NsfOConfigureMethod(); - made sure that intermediate frames resulting from - forward-parameter dispatches are equally marked INACTIVE. - - tests/disposition.test: Added tests covering uplevel/upvar support - under parameter/disposition dispatches (i.e., uplevel and upvar calls - from within parameter-dispatched methods); the tests also cover XOTcl's - residualargs dispatches. - - - - generic/nsf.c / CallConfigureMethod() + CmdMethodDispatch(): - Rephrased the accompanying docstrings slightly, to align the - documentation to the underlying implementation details. - - - - generic/nsf.c / NsfOConfigureMethod(): Configure adds frames to its - callstack context, however, so far the callstack modifications have - not honoured the fact that configure() can be called from uplevel'ed - call sites. The callstack context resulting from a prior uplevel was - erased by the call frame introductions. As a consequence, - parameter-dispatched methods found themselves in a wrong variable frame - context. The suggested patch adds uplevel awareness in the most generic - way I could think of. The entire test suite runs against the patched - NsfOConfigureMethod(). However, I might be missing unwanted - consequences for untested cases ... we need to think of further test - scenarios ... - -2011-07-06 ssoberni - - - Squashed commit of the following: - commit 901efa4cb4e1bbd55a8c47ebb79f4c7b4b397668 - Author: ssoberni - Date: Wed Jul 6 17:51:38 2011 +0200 - - generic/nsf.c: Provide the [current class] context to submethods - - tests/disposition.test: Added some tests on the interaction of - INACTIVE frames (mixin, filter) and submethods - - tests/submethods.test: Testing [current class] context for submethods - -2011-07-05 ssoberni - - - - generic/nsfStack.c: Revised my former patch for traversing callstacks - under ensemle dispatches. We fixed the traversal-ending gateway - expression; and added transparency for INACTIVE frames when assembling - the method path. Added further tests, remain to be completed ... - -2011-07-05 Gustaf Neumann - - - - preliminary fix for volatile called through redsidual args - - new regression test file volatile.test - -2011-07-05 ssoberni - - - - Reduced verbosity in nsf.c, reactivated a test case - -2011-07-04 ssoberni - - - - tests/forward.test, tests/methods.test: Remove some intermediary - statements - - - - nsfStack.c / CallStackMethodPath(): Providing a fix for - reporting method paths correctly when dispatching to ensembles - from alias parameters. Prior to that fix, the intermediate (and - inactive) CMETHOD frame wrapping configure() calls caused - [current methodpath]s to report empty string elements. Added - some test cases. - - nsf.c / ObjectDispatch(), DispatchUnknownMethod(): When testing - objects as alias parameter targets, I found cases when the - default (C-level) unknown handler was invoked upon. The result - was an unknown message which reported the delegator object as - "unknown" method! This was due to injecting the delegator - object into the argument vector at position 0, subsequently - used by the C-level unknown handler. First, I tried to make the - C-level unknown handler aware of the ensemble call context (by - funneling through the CSC and frame flags) but this turned out - to be complicated to achieve this simple task. As an - alternative, I suggest the following patch: The first argument - in unknown calls is treated as a list, and dependening on the - call context (ensemble vs. non-ensemble) contains all the - necessary call data. For ensemble methods, it is the delegator - object, the entire method path (as returned by [current - methodpath]), and the actual unknown selector. The default - C-level handler, treating the call info as list, resorts to - reporting the last element of the list which is always the - unknown selector. Custom (ensemble-level, application-level) - unknown handler can wrap and further process the information as - necessary. To demonstrate the usefulness, I rewrote - EnsembleObject->unknown() accordingly. I checked for Tcl_Obj - leaks. - - Added some tests on objects as targets of alias object parameter. To - be continued. - -2011-06-30 Gustaf Neumann - - - - nsf.c: - * report only fully initialized slot objects via "info slots" to - avoid chicken-egg problem during method "objectparameter" - * added flag -array to ::nsf::var::exists to check, whether the - variable is an array (to avoid "o eval {array exists ...}" in - the serializer. - * provided flags to VarExists instead of multiple args - * don't add new pointer entries in Nsf_PointerTypeLookup() - -2011-06-29 Gustaf Neumann - - - - correct result type - - - - mongodb interface: - * mongo::gridfile::seek: added a seek command for gridfiles - * added example for the low-level interface to shwo how to access - gridfs via the plain mongodb interface, how to add some additional - metadata (e.g. dublin core meta data) and how to retrieve this via the - gridfile interface - -2011-06-29 ssoberni - - - - tests/parameters.test: Slight extension of test case on a - re-assignment of per-ob defaults. - - - - library/nx/nx.tcl: Fixed Attribute->reconfigure() to cover the - reconfiguration of a default value in the per-object case ... - - tests/parameters.test: Added Victor Mayevski's example as a proper - test case. Details need to be discussed ... - -2011-06-29 Gustaf Neumann - - - - C-code generator: - * additional parameter swith "-withObj" to allow passing of - internal representation and the according TclObj - * - * c-implemented methods: report types in "info parameter" for - more builtin types. - * use "-withObj" in mongodb interface - * adapted regression test - -2011-06-28 Gustaf Neumann - - - - nsf.c: - * new file nsfPointer.c - * generic new value checker ConvertToPointer to handle c-level - conversions (which can be registed from nsf extensions) - * extern defined interface for the pointer converter: - Nsf_PointerTypeLookup(), Nsf_PointerTypeRegister(), - Nsf_PointerAdd(), Nsf_PointerDelete(), Nsf_PointerInit(), - Nsf_PointerExit(). - - library mongodb - * changed mongoAPI to pointer converter interface - -2011-06-28 ssoberni - - - - generic/nsf.c: Shuffled around the word order and adding some quoting - in the error message for enforcing multivalued, non-empty list - multiplicities; to differentiate between parameter name and value - literals etc. - - - - tests/disposition.test: Added tests covering "dispos vs. return - checker" and "dispos vs. uplevel/upvar" - -2011-06-28 Gustaf Neumann - - - - library/nx/nx-zip.tcl: added a zip file generator as package - - - - add various "namespace eval {}" to make package indexer happy - -2011-06-27 Gustaf Neumann - - - - nsf.c: no good reason to disallow user defined types for for alias, - forward or initcmd - -2011-06-27 ssoberni - - - - generic/nsf.c: Re-introduce trimming for "names" of unknown parameter - options. - - - - generic/nsf.c: Aligned error messages for parameter options; - Re-arranged control flow in ParamOptionParse() slightly, do - allow for [string is] types being used as options of - disposition types. Refactored code slightly (e.g., removed - unneeded, intermediary Tcl_Objs). - - tests/disposition.test: Extended test suite, in particular, for - covering multiplicity types as parameter options of disposition - types. - - tests/parameters.test: Adjusting for rephrased error messages. - -2011-06-27 Gustaf Neumann - - - - mongdb: - * added preliminary gridfs interface - * refactored some code - * added new types for "gridfs" and "gridfile" - * added new example file example-nsf-gridfs.tcl - -2011-06-27 ssoberni - - - - tests/parameters.test: Setting the precision to 17 explicitly - (otherwise, comparison operations might fail due to deviating - precision levels) - -2011-06-27 Gustaf Neumann - - - - renamed gentclAPI.decls to nsfAPI.decls - - renamed tclAPI.h to nsfAPI.h - - added nsf.m4 to git for the time being - - - - genAPI.decls and nsf.c: bring cmds in same order - - nsf.c: align naming conventions - - - - nsf.c: - * Don't output non-consuming procs (which are always called) via - parametersyntax (shows, what a user can input) - * additional command ::nsf::object::initialized to check whether - an object is already initialized - * new function DispatchInitMethod() similar to - DispatchDefaultMethod() - * let residualargs call init directly instead of doing it the - inidrect way - * provided ability to call init with object parameters at - arbitrary times - * switch from Tcl_ObjCmdProc style interface (ClientData first) - to a C stype interface for DispatchDefaultMethod(), - DispatchUnknownMethod() - * bring cmd definitions for nsf::object in right order - - extended regression test - -2011-06-25 Gustaf Neumann - - - -blank changes - -2011-06-24 Gustaf Neumann - - - - nsf.c: - * added refcounting to parameter definitions (needed, when - aliased object parameter redefined the actual objectparameters) - * removed hardcoded call to remaining args - * switched implentation of xotcl2 to use object parameter with - parameter option "args" - * removed residualargs from object system definition - * extended regression test - -2011-06-23 Gustaf Neumann - - - - update mongodb interface to recent changes - - - - nsf.c: - * improved source code documentation - * added parameter option "args" in order to get eventually rid of - hard-wired residual args. - * improved a few error messages - * fixed object parameters consisting only of plain parameters - (previously, no parameters were returned in this case, e.g. for - method parameters; but object parameter code depends on it) - - extended and updated regression tests - - - - use filterreg in regressiontest as well - -2011-06-22 Gustaf Neumann - - - - xotcl2: use filterreg instead of plain arg for registration of filters - - - - minor editing - - - - regression tests: - * added disposition.test - * extended regression tests - - - -nsf.c: - * switched parameter logic from default for nrargs from 0 to 1 - * simplified logic to detect additional arguments in argument - parser - * improved error message for missing required argument - - - - gentclAPI.decls: - * added "-nrargs 0" where needed - - - - gentclAPI.tcl: - * renamed "nrArgs" to "nrParams" - * switched default for nrargs from 0 to 1 - -2011-06-21 Gustaf Neumann - - - - reduce redundancy by introducing macro NSF_ARG_METHOD_INVOCATION - - - - changed required stubs version - - - - added handling for provided arguments to positional object - parameters with disposition alias and forward - - provided better error messages for unknown parameter options - - provided error messages for multiple disposition parameters - -2011-06-19 Gustaf Neumann - - - - provided nicer registration and inspection interface for - unknown handlers - - added documentation for unknown handlers in tutorial - - cleanup of __unknown - -2011-06-11 Gustaf Neumann - - - - minor cleanup - - - - improve bignum conversion handling further - - found memleak in tcl - -2011-06-10 ssoberni - - - - nsf.c: Initialising the tommath stubs by using the - Tcl_TomMath_InitStubs macro so that we can use the stubbed tommath C - interface - -2011-06-10 Gustaf Neumann - - - - fixing part of the memleak introduced for bignum handling above - (for some unknown reasons, we see crashes from mp_clear) - - extend regression test - -2011-06-07 Gustaf Neumann - - - - library/mongodb: - * use type int32 - * updated to new nx/nsf interfaces - * updated for mongo-c-driver post 0.3 (supporting result MONGO_OK - for mongo_cursor_next) - * factored out "mongo cond" from "mongo query" - - - - added value checker type int32 (similar to "string is integer") and - changed value checker "integer" to accept all integers - -2011-06-06 Gustaf Neumann - - - - removed warning about strict-aliasing rules - - - - add one more testcase for wideint - - - - added tests for integer, wideinteger and bignums - - - - fixed memory leak in "... info mixin classes -heritage" - -2011-06-05 Gustaf Neumann - - - - moved mixin reg type converter to a new file (nsfObj.c) - - added NsfFilterregObjType, to provide a converter for filter - registration similar to mixin registrations - - replaced dummy dupIntRepProc and updateStringProc in nsfObj.c by NULL - - - - moved mixin reg type converter to a new file (nsfObj.c) - -2011-06-04 Gustaf Neumann - - - - Use mixinregObjType as well in NsfRelationCmd(), so this is the - only place, where mixin and guards are processed. - - Since the type converter converts Tcl-Objs, we have less - context information (e.g. we have no base class, on which we - can decide to call e.g. __unknown on on of the objects systems). - - because of the point above, i removed ::xotcl::Class->__unknown - and ::nx::Class->__unknown in favor of a global proc - ::nsf::unknown, for which unknown handlers can be registered - - GetClassFromObj() receives as last argument "withUnknown" - instead of baseClass to indicate, when unknown should be tried. - - new function NsfCallUnkownHandler() - -2011-06-03 Gustaf Neumann - - - - improve code documentation - - - - renamed converter from "mixinspec" to "mixinreg" - -2011-06-02 Gustaf Neumann - - - - improve code documentation - - - - nsf.c: fix small memory leak for nsf::is in error cases - - - - nsf.c: use NsfObjectRefCountIncr() instead of object->refCount++ - - - - improve code documentation - -2011-06-01 Gustaf Neumann - - - - removal of unneeded flags "-incontext" and "-nomixins" from - * /obj/ info methods - * /cls/ info methods These flags are correct for "info lookup", but - unneeded for "info methods" + cleanup of ListDefinedMethods() - - - - remove unneeded var when compiled without profile support - - - * added profiling support for nsf::proc when - NSF_INVOKE_SHADOWED_TRADITIONAL is turned off. - -2011-05-30 Gustaf Neumann - - - - nsf.c: - * added a new converter for converting mixins with guards (named - mixinspec) - * used mixinspec in nx.tcl and xotcl2.tcl - * extended nx regression test. - -2011-05-20 Gustaf Neumann - - - - removed unneeded expr - - - - nsf.c: generalized disposition handling (forward, alias, - initcmd) for object parameter - * disposition is now an option for object parameters rather than - than an own type. Therefore, one can check the arguments passed - to the disposition cases - * changed specification of name of method from arg= to method= - * this way "type" info in "info parameter syntax" is handled - automatically - -2011-05-19 Gustaf Neumann - - - - nsf.c: removed unneeded casts to (ClientData) - - - - nsf.c: document two more functions - - - - nsf.c: fixed bad interaction between mixins and ensembles in tcl8.6 - - - - nsf.c: fixed possible crash in tcl8.6 with nsfprocs, still one - inconsistency - - - - remove alias warnings from gcc under ubuntu (4.2.4) - -2011-05-18 Gustaf Neumann - - - - added "link" from 2.4 (parameters) to "info parameters" in migration - guide - - - - bring defined commands in the source code in alphabetical order - - generate interface for NsfUnsetUnknownArgsCmd() - - delete some obsolete code - - - - nsf.c: added cmd "::nsd::method::registered /handle/" that - returns the object on which the method identified by the handle - was registered, or empty. - - extended regression test - - - - nsf.c: changes to use trunk-branches with and without TclStackAlloc() - and TclStackFree() - - - - migration-guide: add third level to toc - - - - fix test for 8.6 to use nx prefix - -2011-05-17 Gustaf Neumann - - - - nx.tcl: added "info parameter slot" to return slotobject(s) - - added "info parameter slot" to migration guide - - extended regression test - - - - nsf.c: NsfRelationCmd() returns per default list of actual values, - therefore mixin add|... return now as well the actual values - -2011-05-17 ssoberni - - - - Allow for defining type specifications for @param entities as - an @spec part. - - Corrected some inconsistencies in the doc templates for - attribute methods - - Added object parametersyntax in @class templates (though they - appear quite lengthy, keep them at the end of the day?) - - Distinguish between the "cls" and "obj" as affices - -2011-05-17 Gustaf Neumann - - - - migration guide - * included change in "info heritage" - * included "info slots" - * included "info parameter" - * included "delete method" - * included "delete attribute" - - - -nsf.c: added c-implementation of "/object/ info slots" to share - implementation details and reduce scattering - -2011-05-13 Gustaf Neumann - - - - nx.tcl: improve code documentation - - - - nx.tcl: ne proc ::nx::setSlotContainerProperties to handle slot - container properties in a uniform way - - reduce verbosity - - - - reduce name dependencies - - - - nsf.c: require NSF_IS_SLOT_CONTAINER for slot-container - - - - xotcl2:tcl - * made "info heritage" in xotcl2 compatible with xotcl1 - * fixed "info slots" in xotcl2 - * extended regression test - - - - using slotcontainer porperty - - - - minor updates in TODO - - - - nsf.c: - * handling of same named per-object and provided slots for Class - objects - * per-object slots are saved now under ::per-object-slot::* - * returning correct results when per-object slots are used - * removed obsolete functions: NsfObjectListFree(), - NsfObjectListAdd() - * removed obsolete type NsfObjects - * transformed ComputeSlotObjects() into a more generic - AddSlotObjects() that can handle per-object slots as well - - nx.tcl: - * generalized slot object handling. - * extended regression test - - - - added test cases for "info slots" - -2011-05-12 ssoberni - - - - nsf.c: NsfClassInfoObjectparameterMethod() stumbled over empty - paramspec strings returned from objectparamter() into a null - pointer exception. Fixed. - - Adjusted some fprint statements for recent changes. - -2011-05-12 Gustaf Neumann - - - - minor update - - - - nx.tcl: - * splitted method "delete" into a "delete method" and "delete - attribute" - * remove flag "-per-object" in method "delete" - * delete per-object methods of classes with "/cls/ class delete - method name" and "/cls/ class delete attribute name" - * extended regression test - - - - nsf.c: fix and document GetMatchObject() - - extend regression test - -2011-05-10 Gustaf Neumann - - - - nsf.c: removed all occurrences of Tcl_AppendElement() - - nsf.c: passed around resultObj explicitly - - - - nsf.c: removed all but one occurrance of Tcl_AppendElement() - - - - update of TODO - - - -nx.tcl: - * added method "delete" to delete methods and attributes - * extended regression test - - - * Code cleanup and documentation - - - - reorder code - - - * Code cleanup and documentation - - - -nsf.c: - * Added argument "-reg-object" to ::nsf::method::create to - distinguish between a registration and a definition object for - ensemble methods, similar as on other places. If no reg-object is - provided, it is the same as the definition object. One should - take care that the registration objects are deleted after the - definition objects, which is the case for the usages of the - reg-objects in nx/xotcl. - * The namespaces within plain scripted methods and scripted - ensemble objects are now the same. - * Extended regression test - -2011-05-09 Gustaf Neumann - - - - updated TODO - - - - nx.tcl: - * removed "info slot handle" and "info slot parameter" - * added "info parameter spec", "info parameter list", "info - parameter name", and "info parameter syntax" - * extended regression test - - - - nsf:c - * added C-implemented class level method "info objectparameter - list|name|parameter|parametersyntax" - * added enum to handle different print styles for parameters - * renamed ParamDefsList() to ParamDefsNames(), added true - ParamDefsList() - - - - adding TODO for release process - - - - make metadata analyzer more silent - -2011-05-08 Gustaf Neumann - - - - nsf.c: Since the method "objectparameter" is just based on the class - (and object parameters are invalidates as well over the class), we - moved the method from obj to class to avoid potential confusions - - - - added: "info slot handle /name/" "info slot parameter /name/" - -2011-05-08 Gustaf A. Neumann - - - - added: "info slot handle /name/" "info slot parameter /name/" - - - - nx.tcl, xotcl2.tcl: removed unsafe {*}$pattern - - - - nsf.c - * added "pattern" to "info lookup slots" - * added "pattern" to "info slots" - * extended regression test - - - update doc - -2011-05-07 Gustaf A. Neumann - - - * base objectparameter on "info slots -closure" - - - * added switch "-source" to "info slots -closure" and "info - lookup slots" (similar to "info lookup methods") - * extended regression test - - - - nsf.c - * first version of c-bases "info slots" for classes - * switch "-closure" just for class info method - - - - nsf.c: - * renamed old flag "-order" of "info mixin classes" to - "-heritage" since it computes same heritage as in "info - heritage" (but potentially for a list of classes) - * added compatibility layer for xotcl2 - * added lost option "-heritage" to "/cls/ info mixin classes" - (was only there for "/obj/ info mixin classes") - * extended regression test - - - - code cleanup - -2011-05-06 Gustaf Neumann - - - - nsf.c: - * ensure that explicit per-object-mixins are kept at the front in - "info heritage" order and in "info precedence" when classes are - added as POMs and PCMs - * extended regression test - -2011-05-06 Gustaf A. Neumann - - - add one more comment - - - comment test cases a little - - - - nsf.c: - * added NsfClassListNoDup() to allow just single inserts - * added NsfClassListPrint() for debugging - * info heritage returns no duplicates - * added prototype for NsfNoCurrentObjectError() - * report "no current object" when no object is passed to a method. - * code cleanup - - extended regression test - -2011-05-06 ssoberni - - - - Makefile.in: Made data-flow dependencies on nsf's pkgIndex.tcl - explicit for two targets, allowing the build process (make all) to be - spread over multiple make jobs (make -j). Gave me a 15% speedup using - two jobs on my two-core machine. - -2011-05-06 Gustaf A. Neumann - - - - nx.tcl: replace loops ::nsf::methods::[object|class]::* by explict - command registrations - - - - nsf.c: - * handle direct dispatches for aliased methods - * new generalized error message: NsfNoCurrentObjectError() - -2011-05-06 ssoberni - - - - Adjusted nxdoc for the latest changes in the nsf/nx core: - - library/lib/doc-tools.tcl: Reflected the renaming of - class-object to final; substituted the new positioning - declaration for the old-style objectparameter shadowing on - Entity (for @doc); some minor cleanup - - tests/doc.test: A number of tests did not survive the continued - renaming from object -> class-object -> class; fixed them. - - - - generic/nsf.c: Re-arranging previous commit a little - - - - generic/nsf.c: Added a no-current-object guard to - NsfProcAliasMethod(); otherwise, executing alias procs directly - leads to a non-instructive assertion failure. - - Corrected two typos - - TODO: suggesting refactoring of no-self-object messages - - - - library/nx/nx.tcl: Added the default procs for the init, - defaultmethod, and unknown hooks to the ignore list for the - ::nx::Object standard method set. Otherwise, upon a resourcing of - nx.tcl (e.g., package forget nx;package req nx), they get registered as - alias methods no matter what (due to residing in - ::nsf::methods::object::*). - -2011-05-05 Gustaf A. Neumann - - - - replaced loops with NsfClassListFind() - - - - update TODO - - - -nsf.c: - * factor out NsfClassListFind() - * let result of "cls info heritage" return per-class mixins as well, - otherwise it would be useless, since "cls info superclass -closure" - would return the same - - - - be more precise on return value of alloc and create - - - - adding "profiling" to feature list - - - - nsf.c: factor out ClassListAddPerClassMixins() - -2011-05-04 Gustaf A. Neumann - - - - nsf.c: - * moved implementation of ::nsf::method::delete to C - * produce same error messages when methods are delete via - nsf::method::delete and nsf::method::create {} {} - * Prohibit deletion of methods during shutdown. Otherwise when - destructors delete methods, some other destructors depending on - these methods will fail. Cleanup deletes all methods anyway. - * Provided alternative (faster) way of dispatching nsf::procs - (can be tured off with NSF_INVOKE_SHADOWED_TRADITIONAL) - * renamed NsfMethodCmd() into NsfMethodCreateCmd() for consistency - * nsf works with OpenACS again (requires new nstrace.tcl, - aolserver-openacs.tcl, and 01-debug-procs.tcl). - - - - serializer: - * prefix warnings to ease tracking of warnings - * some cleanup for handling aliased methods - - - - extended migration guide (introduction, feature lists, etc.) - - - - nx-mango.tcl: - * support for unique indices - * support for query operators "in" and "all" - -2011-05-03 Gustaf A. Neumann - - - - nsfmongo.c: - * support attribute selection lists for ::mongo::query (positive and - negative selection) - - - - nsfmongo.c: - * upgrade to newest c-driver (verison 0.3) from git. - * support connection to replica sets - - - - test.tcl: - * don't export Test per-default - * define Test as nx::Test - * make Test parameter count 1 the default, change to higher numbers - where needed - -2011-05-01 Gustaf A. Neumann - - - - some cleanup - -2011-05-01 Gustaf Neumann - - - - nx.tcl: added support for positional object parameter and - removed special handling of the last argument for the init - block; added attributes "position" and "positional" to - ObjectParameterSlots, removed last argument of method - "objectparameter" - - nx.tcl: simplified createBootstrapAttributeSlots (second round - of default value setting seems not necessary) - - nx.tcl: some cleanup - -2011-04-28 Gustaf Neumann - - - serializer: fix allInstances to handle names with semicolons - - - - fix serializer in case the object name contains semicolons - - - - improving comments - -2011-04-19 Gustaf A. Neumann - - - - nsf: renamed nsf::isobject to nsf::object::exists - - nsf: renamed nsf::qualify to nsf::object::qualify - - - - nsf.c: made potentially unknown clientData more safe (error - message, when something is passed via clientData to a method - expecting an object/class as clientData). - - renamed NsfNoDispatchObjectError() to - NsfDispatchClientDataError(), extended interface - - Makefile.in: fixed name methods.test - -2011-04-17 Gustaf A. Neumann - - - - nx::mongo: - * replaced "arg" by "type" in spec for mongo attributes to make spec - less stange - - - - nx::mongo: - * implemented type "reference" similar to "embedded" - * all referenced objects are for the time being auto-dereferenced - * new method "show" for mongo mapped classes - * added two new example files example-nx-reference-many.tcl and - example-nx-reference-one.tcl - -2011-04-16 Gustaf A. Neumann - - - - nx::mongo: - * added handling of bson types for timestamps and dates - * provide setup based on mongo_db, mongo_collection and mongo_ns - -2011-04-15 Gustaf A. Neumann - - - - nx::mongo: - * handle fetch of embedded objects - * added method count for mongo mapped classes - * improve documentation - -2011-04-14 Gustaf A. Neumann - - - - nx::mongo: - * added mongo::count - * obtain _id from mongo::insert - * added mongo::Object.delete method for embedded and non-embedded - objects - * handling of mongo-embedded objects when destroying objects - * simple bson pretty print function - * extended examples - - - - nsf.c: added nsf::var::unset (provided so far just var::set) - - - - nsf:c: fix dispatch of setter without current method - - extended regression tests - -2011-04-13 Gustaf A. Neumann - - - - nx::mongo: - * first step towards handling embedded objects - * one more example script: example-nx-bi.tcl - - - - improve debug message - - - - nx.tcl: fix handling of arg in converter - -2011-04-07 Gustaf A. Neumann - - - - added experimental flag INHERIT_CLASS_METHODS - -2011-04-06 Gustaf A. Neumann - - - - improve documentation - - - - nx::mongo: update of the README file - - - - nx::mongo: Initial commit of the experimental mongoDB interface for nx - -2011-04-05 Gustaf A. Neumann - - - - reduce verbosity - - - - Let "info slot" return the slot object - - - - Improve locality - - - - Fixed dispatch of defaultmethod for ensemble methods - - Added compile flag DISPATCH_ALWAYS_DEFINED_METHODS - (deactivated). So far, nx just uses dispatch on overloads or - filters, but not on defines (possible to call e.g. "destroy" - from a script, but internally the direct dispatch is used, as - long there is no overload). The compileflag would force to use - the slower dispatch always. - - Extended regression test - -2011-04-04 Gustaf Neumann - - - - added to "info slot /attName/" - - - * added pattern to "info slots" - - - - delete accessor when slot is destroyed - -2011-04-04 Gustaf A. Neumann - - - * added flag ?-type ...? to "info slots" - -2011-03-31 Gustaf A. Neumann - - - * nx: added flag ?-type ...? to "info lookup slots" - * nsf: made all useful converters external symbols - -2011-03-28 Gustaf A. Neumann - - - - gentclAPI.tcl: - * renamed "nsfCmd" to simply "cmd", since the code can generate - arbitrary tcl commands - * allow type "int" in the .decls files - - nsf.c - * move several functions from "static" to "external" to make the code - generator usable for submodules as well - -2011-03-26 Gustaf A. Neumann - - - - nsf.c: make sure, validCscPtr is always initialized - - tested all regression tests with valgrind against tcl-trunk - - - - nsf.c: remove unnecessary test when compiled without NRE - -2011-03-25 Gustaf A. Neumann - - - * The newest trunk version of Tcl in fossil has TclStackFree() and - TclStackAlloc() removed We had to substitute this functions. - Unfortunately, the lifetime of the strack structures has changed, so we - had shuffle some interals around. - -2011-03-22 Gustaf A. Neumann - - - * make sure to create the cmds for objects with Tcl_NRCreateCommand() - to choose trampoline-path in the trunk version of Tcl - -2011-03-21 Gustaf A. Neumann - - - * fix compilation for tcl-head in fossil - * deactivate coro regression test, since it is apparently broken for - tcl-head in fossil (stack frame seems to be lost after a yield) - -2011-03-20 Gustaf A. Neumann - - - * some documentation/todo updates - -2011-03-18 Gustaf Neumann - - - * fixed bad interaction between filter and parameter alias - -2011-03-18 Gustaf A. Neumann - - - * Hopefully the last big naming change: Instead of writing "C - class-object method foo {} {...}" one can write now "C class method - foo {} {...}" to define a class method named "foo" for class "C". This - naming change became possible by defining XOTcl's "class" (and - "superclass") as object parameter only. To change a class of an object - o, one has to use "o configure -class NEWCLASS". The term - "object-class" looks alien to language beginners, the term "class" is - much more straightforward. Changing classes or superclasses is seldomly - used by typicall application programs. - For already existing nx scripts, changing "object-class" into - class should be straightforward. - * various documentation updates (migration guide, nx tutorial) - -2011-03-15 Gustaf A. Neumann - - - * added methods ::nsf::methods::object::class and - ::nsf::methods::class::superclass in order to make faster and - nicer looking objectparameters (compared with forwarders) - * nx: changed parameter -class to use - ::nsf::methods::object::class - * ns: fixed chicken egg problem of method objectparameter needing - objectparameter by creating/destroying slot Class::slot::dummy; - otherwise default values for slots would not be available - * reduced verbosity of parameter forwarder - -2011-03-13 Gustaf A. Neumann - - - * provided a fast path implementation for "defaultmethod" - * provided default system methods for "init", "defaultmethod" and - "unknown" - * provided handles for system methods "alloc", "dealloc", - "recreate", and "defaultmethod" - * strip in dispatch invocations of "unknown" potental leading - colons - * removed c-level implementation of init again, since scripted - one can be used now as well in registration of - createobjectsystem - * reduced verbosity - * added defintions such that these methods can be loaded via - ::nsf::method::require ::nx::Object unknown - -2011-03-12 Gustaf Neumann - - - * added C-implemented method "init" for orthogonality - * allow specification of system method handles in - nsf::createobjectsystem - * automatically register alias, when system-method handle was provided - and a same-named method is defined - -2011-03-11 Gustaf Neumann - - - * removed method residualargs from nx - - - * reactivated "configure", since we plan to use it more - prominently - * added a configure flag for "class" - * removed method "class" (should be used via "/obj/ configure -class - ...") - -2011-03-10 Gustaf A. Neumann - - - - remove object.cleanup again - - - - reduce verbosity - -2011-03-10 Gustaf A. Neumann - - - nx: - * removed methods ::nx::Class.recreate and ::nx::Class.recreate from - predefined method-set ::nx::Object.configure from predefined - method-set - * added defintions such that these methods can be loaded via - ::nsf::method::require ::nx::Class recreate - ::nsf::method::require ::nx::Object configure - nsf: - * added CallDirectly() wrapper for calls to "init" - -2011-03-10 ssoberni - - - - Provided proper template for hook methods; started partial - support for validating Tcl packages (remains to be completeted, - i.e., missing and mismatch support) - - Fixed rendering for glossary back-references in the light of - nested render() calls. - - Refactored the rendering of overview lists/status into proper - template; show per-project stats - - Made @stashed filtering working; some fixes - -2011-03-09 Gustaf A. Neumann - - - - nx: - * removed methods ::nx::Class.alloc and ::nx::Class.dealloc from - predefined method-set - * added defintions such that these methods can be loaded via - ::nsf::method::require ::nx::Class alloc - ::nsf::method::require ::nx::Class dealloc - * make explicit that "method ... require" returns a method-handle - * removed misleading reference in error message, when a class-spefic - method was called on an object; solution is somewhat dangerous for - potentially unknwon client data - * added regression tests - -2011-03-05 Gustaf Neumann - - - - serializer: catch for object-level alias apparently not needed - anymore (search for ns_cache_flush) - - silence compilation when compiled without dtrace - - - - improved misleading error message for method modifiers "public" - and "protected", as well as for "class-object" - - extended regression test - -2011-03-02 ssoberni - - - Activating xowiki export for nsf and xotcl2 docs - -2011-03-02 Gustaf A. Neumann - - - - changed names of var handling commands in nsf: ::nsf::existsvar => - ::nsf::var::exists ::nsf::importvar => ::nsf::var::import - ::nsf::setvar => ::nsf::var::set - - - - updated TODO - - - - removed hardcoded name "init" from CallConfigureMethod() - - improved documentation - - removed isInitString() - -2011-03-02 ssoberni - - - - @project.html.yuidoc: reflect changes in asset names - - body-chunked.html.yuidoc: Added this template, used to generate - the chunked, yuidoc-based xowiki output - - leftbar.html.yuidoc: Use link template - - Renamed ac-js + api-js to ac.js + api.js - - Added Monika's api-next.css - - library/lib/doc-tools.tcl: for the xowiki renderer, I completed - the asset export (requiring a tcllib installation!), some - refactoring to allow for rendering xowiki-style links etc. - - Revised TODO - -2011-03-01 Gustaf A. Neumann - - - - Fixed cases of -flag=$value for type switch outside the context - of "nsf::procs -ad" - - extended regression test - - - - changed named of method handling commands in nsf: - ::nsf::provide_method => ::nsf::method::provide ::nsf::require_method - => ::nsf::method::require - - - - fix typo - - - - changed named of method handling commands in nsf: - ::nsf::methodproperty => ::nsf::method::property ::nsf::method => - ::nsf::method::create ::nsf::methoddelete => ::nsf::method::delete - ::nsf::alias => ::nsf::method::alias ::nsf::forward => - ::nsf::method::forward ::nsf::setter => ::nsf::method::setter (updated - regression test, docs, ...) - - - - updated migration guide - - - - fixed potential crash with -param:switch - - added "... info method exists ...." - - - DTrace - * renamed object-create into object-alloc (counterpart of - object-free, no confusion with create) - * fire probes as well for classes created by the object system - -2011-02-28 Gustaf A. Neumann - - - - added first version of "nsf::methoddelete" - - extended regression test - - updated TODO - - - - updated DTrace README - - - - updated TODO - - - DTrace: - * add probes for object creation and freeing - * add sample d-script for object bookkeeping - - - - comment functions, activate D-mode in emacs - - - - updated TODO - - - DTrace: handle self->tracing in D scripts (and in dtrace/sample.tcl, - tests/object-system.tcl) - - - DTrace: handle self->tracing in D scripts (and in dtrace/sample.tcl, - tests/object-system.tcl) - - - DTrace: - * added "nsf::configure dtrace on|off" for skipping package - initialization (to be handled in D script) - * make compliation clean - -2011-02-26 Gustaf Neumann - - - --enable-dtrace sets DTRACE_OBJ on mac os x empty (since not needed for - mac os x dtrace) - -2011-02-26 Gustaf A. Neumann - - - - update todo - - - simplify configure.in - - - -complete sentence - - - - make "configure --help" more pretty - - add --enable-dtrace flag for configure - -2011-02-26 Gustaf Neumann - - - - dtrace improvements: - * track objects in method invocations - * trace result codes in method-return - * add some dtrace sample scripts - - - add dtrace header file dependency - - - - small optimization - -2011-02-25 Gustaf A. Neumann - - - - first steps towards DTRACE support - -2011-02-22 ssoberni - - - - glossary.html.yuidoc: Added "Glossary" heading - - Revised and commented TODO list - -2011-02-15 Gustaf A. Neumann - - - - profiling: return object data with method information - - - - cleanup and documentation of nsf-specific interp state - - nsf::configure: added an option "profile on|off" (per default off) - - - - configure: added flag --with-profile to enable profiling support - -2011-02-14 Gustaf A. Neumann - - - - extend regression test - - - - made default setting more compatible with XOTcl 1 - * set variables to defaults only when not set already - * flag init_called already before init is called, not afterwards (a - call to "configure" within init does not clear the already set - instance variables) - -2011-02-09 Gustaf Neumann - - - * Backport of nsf to handle partial implicit deletes - - - - Altered Nsf_NextHashEntry() to re-init hSrchPtr when the number - of expected entries differs from the number of real entries. - This fixes a bug that Michael Aram detected, that happens when - multiple hash buckets exist, but on deletion of an hash entries - triggers some other deleted from the same hash table. - - extended regression test. - -2011-02-07 Gustaf Neumann - - - - added profile support for nsf::proc - -2011-02-07 ssoberni - - - - Added a first version of an xowiki renderer - - Reworked the renderer infrastructure to allow for refining - templates between renderers (e.g., xowiki-like links in the - yuidoc theme etc.) introduces - - Templates can now also be defined, stored, and maintained - through Tcl scripts (rather than separate template files only). - - Clarified the concepts of theme/layout/renderer etc. Major - cleanup. - - yuidoc: Fixed an issue with setting filter css classes while no - filter checkboxes are available. - -2011-02-05 Gustaf A. Neumann - - - - The fix of yesterdays subst reference counting bug triggered an - other problem: If the last arg was "args", the flags array for - checking the need for decr of refcounts was not extended. There - are multiple possible fixes, i have just extended the flags - array for now as well. - - When profiling is activated, perform now a more sane shutdown - order, all hash tables are now correctly freed. - - Improve behavior, when object system creation fails - - Drop function NsfProfilePrint() - - - - nx.tcl: provide caching for computed values of object slots to - make method objectparameter nearly twice as fast; direct - changes on slots require a reconfigure call. - - nsf.c: removed SUBST from shadow commands (does not appear to - be necessary any more) - - nsf.c: fixing a memory leak (some substituted values were not - freed correctly) - - nsf.c: fix potential crash for epoched cmds - - some minor updates for profiling support - - - - nx.tcl: provide caching for computed values of object slots to make - method objectparameter nearly twice as fast; direct changes on slots - require a reconfigure call. - -2011-02-04 Gustaf A. Neumann - - - - nsfStack.c: provide hook to obtain callers information in profiling - code - - - - provide low-level commands for managing profile data - - - - nsf.c: provide low-level commands for managing profile data - - - - serializer: fixed a problem with object level alias - -2011-02-04 ssoberni - - - Adding buffer-local emacs settings to the *.c files - - - Removed noinit from the filter list - - - - Reactivated and extended the filtering support around the - yuidoc theme. One can now filter according to various entity - states (deprecated, missing, mismatch, protected, ...) - - filter.html.yuidoc: Refactored the checkbox battery into a - proper template. - - Fixed some typos in templates - - library/lib/doc-assets/yuidoc/ac-js: Refined the - checkbox/visibility mechanism to honour defaultChecked states - of checkboxes. - - library/lib/doc-assets/yuidoc/api.css: checkbox/visibility - selectors are now based on composite class selectors. - - Removed @modifier and related selection statements throughout - the code. Background: The call-protection state is inferred - during verification, so there is no need to actually declare a - method protected. Also, filtering in the templates breaks - orthogonality when it comes to rendering doc entities at - various spots (leftbar, ...). Method filtering can be applied - during the initial processing step or visually in the final - output. - - Added print names for per-object methods - -2011-02-03 ssoberni - - - - @class.html.yuidoc: Printing class-scope validation messages. - - @object.html.yuidoc: Printing object-scope validation messages. - - @method.html.yuidoc: Flattening list structure of validation - messages when printed. - - Revised and fixed status propagation - - Fixed an issue when verifying forwarders/aliases which do not - carry any verifiable parameter specifications. Also, I had - forgotten to collect paramtersyntax docstrings for forwarders. - Addresses an issue reported by Gustaf Neumann trying to make - appear the proper paramsyntax of the Object->class() forwarder. - - statusmark resolution is now aware of @use chains - - - - Simplified the render()/include() mechanism: I provide for some - context-aware auto-completion of template specifics (name, - format, theme). This avoids declaring template specifics - redundantly. - - For this purpose, renamed some of the templates to reflect - their doc entity names: @object -> @object.html.asciidoc|yuidoc. - - Theme-specific assets are now stored in a subdir of - doc-assets/, named after the theme: doc-assets/yuidoc, - doc-assets/asciidoc. - - Adding the asciidoc assets subdir, including the asciidoc css - - Renamed the theme "tmpl" to "yuidoc": This required to change - the corresponding template extensions (*.tmpl -> *.yuidoc) and - the include()/render() statements throughout the templates. - - Removed the unneeded source.html.tmpl - -2011-02-02 Gustaf A. Neumann - - - - added gentstubs built with 8.5.9 - - - - reanimated NSF_PROFILE - -2011-01-31 Gustaf A. Neumann - - - - updated documentation - - - - nsf::relation: fixed error message when receiving and invalid class - for relation type "class" - -2011-01-28 Gustaf A. Neumann - - - - update slot uml diagram - - fixed incorrect (unwanted) call to unknown that caused creation of - objects names __unknown when classes could not be resolved - - - - updated slot graphics - -2011-01-25 Gustaf A. Neumann - - - - added experimental flag WITH_IMPORT_REFS to deactivate - automated alias deletion (seems, that this solves all issues we - had before) - - added flushing of bytecode on alias registration - - added regression test - -2011-01-24 Gustaf A. Neumann - - - - added flag to AliasGet() to leave optional error message if - alias data is removed - - some cleanup in NsfProcAliasMethod(): handle not existing alias data, - more careful refcounting - - - - added regression test - - - - use NsfCommandPreserve/NsfCommandRelease for tcd->aliasCmd as well. - In case of epoched cmdPointers, refetch the cmd and it client data. - -2011-01-22 Gustaf A. Neumann - - - - nsf.c: changed handling of cmdPtrs in callstack content. - * we use now explicit reference counting using - NsfCommandPreserve/NsfCommandRelease - * as a consequence, we do not need the following functions - Nsf_DeleteCommandFromToken() and CallStackClearCmdReferences() - any more. - * the flag NSF_CSC_OBJECT_ACTIVATED is not needed anymore and was - removed - - removed a small memory leak when a destroy method of an object o - deletes its grandparents namespace, containing also this class of o - (and its methods). Significantly eased by the change above. - - - - changed test in backport to use hashtablePtr->numEntries instead of - pointer check - -2011-01-21 Gustaf A. Neumann - - - - new function Nsf_NextHashEntry() simular Tcl_NextHashEntry(), - but handles triggered hash entry deletions - - fixed reference count in AliasDeleteObjectReference() - - - - check in correct version - -2011-01-20 Gustaf Neumann - - - - use same test for class cleanup in NSDeleteChildren as well - - - - use a different test for detecting already deleted items - -2011-01-20 Gustaf A. Neumann - - - - updated todo - - - - nx.tcl: added default/initcmd for ObjectParameterSlot - - added ::nx::Object as default for "superclass" slot to make - default superclass explicit - - unified interface for getParameterOptions - - extended regression test - - - - Backport of fix for nsf : fixed a nasty bug within namespace deletion - -2011-01-20 Gustaf Neumann - - - - nsf.c: fixed a nasty bug within namespace deletion, when a - deletion of one tcl cmd caused implicit deletions of other cmds - in the same namespace. The classical idiom for looking over - hash tables with Tcl_GetHashValue() and - Tcl_NextHashEntry(hSrch) can lead to crashes (and has different - behavior depending on the number of buckets). - - added regression test - -2011-01-19 Gustaf Neumann - - - - nx.tcl: needsForwarder is true, when method "get" is specified - on a slot - - nx.tcl: Don't generate per-slot add/assign handlers, when not needed - -2011-01-19 Gustaf A. Neumann - - - - updated class diagram - - - - removed deactivated slot optimizer - - - - nx.tcl: - * full rewrite of slot machinerie, much simpler structure - * relation handling via parameter aliases instread of pseudo - converter - * mixinclass SlotOptimizer removed - * new class BootStrapAttributeSlot - - ConvertToRelation() and handling of parametertype "relation" - - Make CompiledColonVarFetch() more robust in case of - half initialized objects (create vartable on the fly if needed) - - allow empty parameter options in parameter parser - - removed nsf::parametersfromslots (became simple, part of - objectparameter now) - - removed hardcoded objectparameter (attributes, volatile and noinit) - - updated regression test - -2011-01-16 Gustaf A. Neumann - - - - minor cleanup - - - - fixed potential access to freed memory (actually when checking - if namespace was removed by Tcl); found this problem when - compiling Tcl with SYSTEM_MALLOC (own modified version of - tclThreadAlloc.c) - - fixed memory leak (namespace names and structures) - -2011-01-15 Gustaf Neumann - - - - improved documentation - - - - added shadowing for ::tcl::info::body to allow "info body" to - be called on ::nsf::procs - - commented nsfShadow.c - - added regression test - -2011-01-15 Gustaf A. Neumann - - - - fixed potential crash with missing parent namespace - -2011-01-14 Gustaf A. Neumann - - - - extended regression test - - - - updated TODO - - - - update of diagram - - - - nx.tcl: - * new method requireClass to Combine two classes and return the - more specialized one - * make slot objects for parameter aliases and parameter forwarder - instances of ObjectParameterSlot - * get rid of attributes "isforward" and "isalias" and replace it - by "dispositon" - * complete list of predefined value checkers - * we have now three approaches for providing parameter -object-filter - and -object-method Approach 1: create RelationSlot with nosetter - Approach 2: use parameter forwarder Approach 3: use parameter alias we - switched from approach 1 to approach 3 - - - - update of graphic - - - - serializer.tcl: reactivated methodSerialize (used in api-browser of - OpenACS) - -2011-01-13 Gustaf A. Neumann - - - - handle spaces more carefully in [from|to]parameterSpec - - - - renamed object parameter type "method" to "alias" - - removed parameter option "slotobj=" in toParameterSyntax - - renamed to [from|to]parameterSyntax to [from|to]parameterSpec - - - - added first implementation of object parameter type forward - - - - parameter specs: use "arg=" in object parameter type "method" - as name of a called method to allow to call unregistered methods - - eliminate protected method "noinit" for nx and allow it just as an - object parameter - - - - add explicit reference counting for oacs-style flag value passing - -2011-01-12 Gustaf Neumann - - - - remove parameter option "opitional" when not needed - - - - improve error message - -2011-01-12 Gustaf A. Neumann - - - - add "filter" to the list of highlited words - - - - documentation updates - -2011-01-11 ssoberni - - - - "asciidoc" theme: Completed a first template suite which - renders an nxdoc project in terms of the html4/xhtml11 asciidoc - backend. Added new templates: singlefile.html.asciidoc, - class.html.asciidoc, attributemethod.html.asciidoc, - command.html.asciidoc, link.html.asciidoc, - listing.html.asciidoc, method.html.asciidoc, - object.html.asciidoc, package.html.asciidoc, - submethod.html.asciidoc. - - nxdoc now distinguishes between rendering format, layout - (multifile, singlefile, chunked) and refactored. All - layout/format/theme handling, for now, is provided by - ::nx::doc::Renderer. - - First step towards refactoring/automating template resolution; - see the TemplateData class. In a further step, this will permit - us to remove redundant declarations of template details in - render() and include() statements. - - List and link generation are now adaptable based on dedicated - templates per theme, e.g., link.html.tmpl|asciidoc. Note that - these file-based templates might be replaced by scripted ones - at a later point. - - Fixed pretty naming of @package - - Various refactorings, e.g. renderer mixin layers are now objects, - rather than classes. - -2011-01-10 Gustaf A. Neumann - - - - next-tutorial: documentation updates - - - - extended regression test - - - - nsf.c: added wideinteger to list of valuecheckers - - nsf.c: provide context for warning messages - - - - doc-tools.tcl: make -name parameter of method new always - required and "any" - - doc-tools.tcl: make object parameter of Entity of type "any" - - - - nx.tcl: defined method unknown as protected - - nx.tcl: never pass "substdefault" to a setter - - nx.tcl: define a minimal valuechecker any to suppress warnings for - potential conflicts with non-positional parameters, when the values - start with a dash - -2011-01-09 Gustaf A. Neumann - - - - adding obvously missing argument - -2011-01-07 Gustaf A. Neumann - - - - removed TCL_VWAIT from the code, since we have it in git - - - - updated method count in migration guide - - - - removed c-implementation of method vwait, it was replaced by - "vwait :varName". We had to allow flag TCL_GLOBAL_ONLY in - InterpColonVarResolver(), since Tcl vwait implementation calls - it with that flag. - - added a scripted implementation for vwait in xotcl2 - - - - provide full list of initializers - -2011-01-06 Gustaf A. Neumann - - - - add regression test - - - - make sure, that classes of the intrinsic class hierarchy are of the - same object system - - - - create slots via MetaSlot - - - - don't mix object systems - - - - xotcl2.tcl: defined ::xotcl::MetaSlot - -2011-01-05 Gustaf A. Neumann - - - - update of css file for prince - - - - minor improvements - - - - added first version of next-tutorial.[txt|html] - - - - nx::pp: added flag "-linenumbers on|off" to render method - - - - minor wording update - - - - eliminat build and OS files - -2011-01-04 Gustaf A. Neumann - - - - documentation work - - - - defined UNUSED macro to get more checking on unused arguments - - - - adjust doc-tools (removed obsolete -public flag) - - - - furter c cleanup - - - - removed leftover -public flag in nsf::method - - general cleanup: removed unused arguments - -2011-01-04 ssoberni - - - - library/lib/doc-tools.tcl: Some fixes, including adjusting - @class.inherited() to return only doc entities of classes which - are part of the same project as the inheritee. - - library/lib/doc-tools.tcl: Integrated an xodoc-compat - infrastructure and provided for processing xodoc packages (see - processor.process=@package()). - - tests/doc.test: Now also serves a nxdoc port of the - XOTcl-langref package - - library/xotcl/doc/langRef.xotcl: equipped with an empty namespace - declaration (to please pkg_mkIndex.tcl) and import ::xotcl::@ by - default (for convenience). - -2011-01-04 Gustaf A. Neumann - - - - doc updates - - - - doc-tools: added "-where" to !get - - doc-tools: title to internal links, provided css class, added - nicer label - - updated reference doc - - - - updated TODO - - - - no need to define "-class" as objectparameter - - no need to define "Object.cleanup" as a method - - - - let "obj class NEWCLASS" return NEWCLASS - - - - no need to define "-class" as objectparameter - -2011-01-03 Gustaf A. Neumann - - - - remove unneeded newline - -2011-01-02 ssoberni - - - listing(): Trim result string of pretty printer for trailing newlines - to avoid their transformation to multiple line breaks. - - - Added exclude filter for nx doc, fixed typo in @glossary entry - -2011-01-02 Gustaf A. Neumann - - - - playing with empty comment lines - - - - documentation updates - - - - reduced width of made program text columns for making easier - printable documents - - - - add type attribute to style tag - -2011-01-02 ssoberni - - - - library/lib/doc-tools.tcl: Added a link renderer for Tcl - commands, pointing to the tcl.tk online reference; usage: - <>. - - library/nx/nx.nxd: Fixed glossary references pointing to mixin - classes. - - glossary.html.tmpl: Made the tmpl more robust against the - non-existence of glossary entries. - - method.html.tmpl: Made Type and Protection fully conditional - - doc-tools.tcl: added a @project.is_validated attribute to - reflect the validation status of a given project. this should - later turn into a derived property. - - langRef.xotcl: added a missing closing tag, to avoid tt - pollution of the remaining document space. - - - nx.nxd: Shifted glossary entries to nsf.nxd - - - nx.nxd: Corrected the @glossary entries for empty leading comment lines - -2011-01-01 Gustaf A. Neumann - - - - documentation work - -2010-12-31 Gustaf A. Neumann - - - - update of the migration guide - -2010-12-30 Gustaf A. Neumann - - - - update of migration guide - -2010-12-29 Gustaf A. Neumann - - - - extended regression test - - - - improve error messages and warnings for nsfprocs - - - - some refactoring of the argument parser - - argument parser handles now as well OpenACS like single-word - parameter values (such as ... -flag=1 ....) - - - - improve documentation - - - - minor cleanup - -2010-12-28 Gustaf A. Neumann - - - - nsf::proc: alloc shadowed methods in ::nsf::procs - - new helper function ::proc strip_proc_name to strip nsf::procs - prefix - - improve error messages - - reduce verbosity - - removed the following obsolete macros: ALLOC_NAME_NS, ALLOC_TOP_NS, - ALLOC_DSTRING - - - - serializer.tcl: export nsf::procs via "Serializer all" - -2010-12-27 Gustaf A. Neumann - - - - added flag "-ad" to ::nsf::proc for obtaining the semantics of - ad_proc in OpenACS (boolean with no arguments, append "_p" to - variable names) - - added "... info method definition ..." for nsfprocs - - new function DStringAppendQualName() to append qualified name - to a DString - - removed obsolete function NSCmdFullName() - - - - added methodtype "nsfproc" to "... info methods ...", to be - used with namespace qualified names - - return "nsfproc" as methodtype for nsfprocs - - refactored InvokeShadowedProc() - - some minor code cleanup and improved documentation - - - - fixed spacing in error message - -2010-12-26 Gustaf A. Neumann - - - - added block for none-one-liner if statements - - - - removed unneded functions: NsfComputePrecedence(), - NsfComputeDependents(), Nsf_SetVar2Ex(), NsfOSetInstVar(), - Nsf_ObjGetVar2(), NsfOGetInstVar(), qNsfCreateObject() - - removed unneeded external declarations: NsfClassListAdd() - NsfClassListFree() - - make extern declarations explicit - - grouped most extern definitions together - - improved documentation - - moved variable declarations to inner scopes - - removed warning from cppcheck() - - - - update of changelog - - - - make cppcheck happy - -2010-12-24 Gustaf A. Neumann - - - - added experimental ::nsf::proc for realization of procs with next - scripting argument passing. These nsf::procs improve the - orthogonality of the code (using e.g. nonpos args and value checker for - procs) and allows the same introspection interface (info method - parameter|parametersyntax, ...) - -2010-12-23 Gustaf Neumann - - - - make determination of of aol_prefix more clever - -2010-12-23 Gustaf A. Neumann - - - - nx::pp: don't prepend newline after
-
-
-	- minor cleanup and refactoring
-
-
-	- improving documentation
-
-
-	- "info parameter": return :switch as parameteroption for
-	  C-defined cmds, when a nonpos-arg gets no arguments
-	- updated regression test
-
-
-	- some minor renaming
-
-
-	- defined nsf::deprecated as tcl proc, using ::nsf::log
-	- some minor refactoring
-
-2010-12-22  Gustaf Neumann  
-
-
-	- added missing required
-
-2010-12-22  ssoberni  
-
-
-	- doc-tools.tcl: Integrated the nx pretty printer (nx::pp) to
-	  render freestanding code listings.
-	- Minor cleanup
-
-2010-12-21  ssoberni  
-
-
-	- generic/gentclAPI.decls: Set the ::nsf::setter parameter as
-	  required, otherwise ::nsf::setter crashes upon omitting the
-	  parameter/setter name.
-	- library/lib/doc-tools.tcl: Reduced verbosity
-
-
-	- nsf.nxd: Completed a first draft version of the NSF reference
-	  (needs to be revised and improved in further iterations)
-	- doc-tools.tcl: Fixed an issue with closing comment blocks (the last
-	comment line closes with an eof), previously dropped silently by the
-	processor.
-
-2010-12-21  Gustaf A. Neumann  
-
-
-	- minor cleanup
-
-
-	- added flag: NSF_WITH_VALUE_WARNINGS
-
-
-	- made assertion code optional
-	- added and renamed additions compile flags NSF_WITH_INHERIT_NAMESPACES
-	  NSF_WITH_OS_RESOLVER NSF_WITH_ASSERTIONS
-
-
-	- nsf.c: code cleanup and documentation improvements
-
-
-	- nsf.c: renamed MethodNameString() to MethodName() (for
-	  consistency with ObjectName() and ClassName())
-	- raise error, when "obj :method ..." is invoked (colon
-	  misleading und not necessary)
-	- remove colon from method name in error message "unable to
-	  dispatch method ...."
-	- extended regression test
-
-
-	- added preprocessor swithch INHERIT_NAMESPACES_TO_CHILD_OBJECTS
-
-
-	- use MethodNameString() in ensemble-next instead of local logic
-
-2010-12-20  ssoberni  
-
-
-	- library/lib/doc-tools.tcl: added [pinfo append] to collect
-	  multiple validation reports per entity
-	- library/lib/doc-tools.tcl / owned_parts(): skip entities which
-	  are not structured themselves (namely parameters); otherwise
-	  they show up in the lefthand navigation or the autosearch box.
-	  also: glossary entries now disappeared from these navigation
-	  items (do we need them there?).
-	- library/lib/doc-assets/command.html.tmpl: validation reports
-	  need to be fused using [join]
-	- library/lib/doc-assets/command.html.tmpl: fixed subcommand
-	  support; adjusted and refined the per-command template, as well
-	  as @command validation.
-	- Provided for parameter validation for @command and the
-	  extraction of the parametersyntax for commands
-	- nsf.nxd: Added to the NSF documentation, namely completed a
-	  first round commands ::nsf::alias throughout ::nsf::log. Also:
-	  Refactored some glossary entries to nsf.nxd.
-	- glossary: glossary entries can now be shared between projects;
-	  this required to make the back references aware of their
-	  project context.
-	- @project: added a depends attribute which can be used to
-	  express inter-project dependencies.
-	- An empty @doc string is now reported during validation
-	- processor->process(): Added include/exclude filtering based on
-	  namespace patterns
-
-2010-12-20  Gustaf A. Neumann  
-
-
-	- added -noCSSClasses to nx::pp render method
-
-
-	- make usage of nx in nx::serializer explicit
-
-
-	- better separation of state management and css concerns
-
-
-	- initial checkin of the nx pretty printer
-
-
-	- added deletion functionality to nsf::mixin
-	- moved handling of methodNames of c-cmds to ResolveMethodName()
-	- extended regression test
-
-
-	- added further tests for the object-system specific resolver
-
-2010-12-20  ssoberni  
-
-
-	- nsf.c / ListCmdParams(): Fixed a crash scenario when relying on
-	  the methodName for trying to resolve the parametersyntax for
-	  C-implemented commands. In these cases, methodName stands for a
-	  null pointer, so we need to fall back to Tcl_GetCommandName().
-	- nsf.tcl / ::nsf::mixin: The proc implementation used "mixin" rather
-	  than "class-mixin" as (default) relation type.
-
-2010-12-18  Gustaf A. Neumann  
-
-
-	- Experimental Object-System specific resolver in method bodies
-	  (allows resolving to the "right" next, self, etc. without
-	  namespace imports/paths)
-	- deactivated automatic namespace path copying for child-objects
-	- extended regression test
-
-
-	- frame skipping in cmdresolver apprantly not needed anymore
-
-
-	- source code formatted via new pretty printer class
-
-2010-12-17  Gustaf Neumann  
-
-
-	- fixed in bug in ensemble-next (removed colon-prefix from
-	  methodname in next)
-	- extended regression test
-
-2010-12-16  Gustaf A. Neumann  
-
-
-	- removed method "setter" from migration guide
-
-
-	- removed method "setter" from migration guide
-
-
-	- serializer: updated serializer to avoid calls to "setter"
-	- extended regression test
-
-
-	- nx::test: made differences in regression test easier to read
-
-
-	- doctools: changed "-slotclass" to "-class"
-
-
-	- removed method "setter" from nx
-	- nx method "attribute": changed name of nonposarg from
-	  "slotclass" to "class"
-	- fix bug for "C class-object attribute foo" (incorrect forwarder)
-	- extended regression test
-
-2010-12-15  ssoberni  
-
-
-	- Changed parametersyntax visualisation to show
-	  variable/replacable elements in italics.
-	- Rewrote the method template for attribute accessors/mutators
-	- Revised and refactored the resolution helper of member entities
-	  along an inheritance path to reflect member overloading
-	- Reduced verbosity
-
-
-	- Adjusted the TODOs
-	- Completed marking internally-called methods and provided a
-	  first documentation draft for them.
-	- Fixed the indentation level for code listings
-	- Now using method.html.tmpl to render per-object methods in
-	  class.html.tmpl
-	- Fixed return (out parameter) validation
-
-2010-12-15  Gustaf A. Neumann  
-
-
-	- "/obj/ info method parametersyntax /method/": return results of
-	::nsf::parametersyntax in case, the parametersyntax cannot obtained
-	from a parameter definition (e.g. the method is a forwarder to a tcl
-	cmd).
-
-2010-12-14  Gustaf Neumann  
-
-
-	- streamlined error messages
-	- removed NsfErrBadVal() and replaced it with a generalized version of
-	  NsfObjErrType(
-
-
-	- made error messages more consistent
-	- improved error messages for "returns" and "nsf::is" (omit parameter
-	  name)
-
-2010-12-14  ssoberni  
-
-
-	- Adjusted for multiplicity types
-	- Added new templates: attributemethod.html.tmpl is responsible
-	  for rendering accessor/mutators for attribute slots,
-	  object.html.tmpl for objects.
-	- I now render attribute slots both in their object parameter
-	  view & a method view. Furthermore, I distinguish between the
-	  incremental vs. ordinary interface (as requested).
-	- Fixed div boxing scheme (again)
-	- Adjusted various places (method.html.tmpl, submethod.html.tmpl)
-	  to display the status marks (more to come)
-	- Streamlined the method views, introducing Type and Protection
-	  sections
-	- Started adopting the /obj/ prefix in parameter listings
-	- Made the @use mechanism working again (under validation). Once
-	  tiny bit needs to be fixed: The upward propagation of status
-	  messages if @use is in place.
-	- Removed the cause for redundant validation calls by traversing
-	  the entity hierarchy only once.
-	- Added nx-specific tracers (to distinguish between ensemble and
-	  slot objects, ...) For now, they work fine, but are tangled
-	  with non-nx tracing. This needs refactoring.
-	- Added another nx-specific tracer which tackles the issue of the
-	  __resolve_method_path helper. While quite cumbersome and
-	  coupling nxdoc to many internal design decisions of nx, it
-	  turns any change in nx.tcl unnecessary.
-	- Fixed ::nx::doc::handleinfo to deal with objects as methods
-	  (the case for intermediate ensemble objects).
-	- Added ::nsf::setter support
-	- Fixed the validation support for submethod structures.
-	- Some cleanup (to be continued)
-
-2010-12-14  Gustaf A. Neumann  
-
-
-	- provide warning if nonpositional argument is passed more than once
-
-
-	- improve wording in comment
-
-2010-12-11  Gustaf A. Neumann  
-
-
-	- added returns handling for nx in serializer
-	- extended regression test
-
-
-	- extended und overworked mirgration guide (added e.g. multiplicity)
-
-
-	- extended regression test
-
-
-	- further cleanup of error procs: eliminated NsfObjErrArgCnt()
-	- improve error message, when too many arguments are passed
-
-
-	- fix messages when test fails
-
-
-	- minor cleanup
-
-
-	- make sure to load the local version of the old XOTcl documentation
-	  toolkit
-
-2010-12-11  Gustaf Neumann  
-
-
-	- added strnstr emulation for installations without having it
-
-2010-12-10  Gustaf A. Neumann  
-
-
-	- new printf-style error message generator: NsfPrintError()
-	- simplified error handling: removed NsfVarErrMsg() and NsfErrMsg() and
-	  replaced it by NsfPrintError()
-
-
-	- fixed bug with required last object parameter without provided
-	  value
-	- extended regression test
-
-
-	- apply allowempty only on list, and not to elements
-
-
-	- fix a few typos in TODO
-
-
-	- introduced a few forms of multiplicty
-	  * 0..1 allow empty value
-	  * 0..* list, can be empty (equivalent to 0..n)
-	  * 1..* list, cannot be empty (equivalent to 1..n)
-	- deprecate multivalued in parameter specs in favor of multiplicty
-	- deprecate allowempty in parameter specs in favor of multiplicty
-	- adjust regression test
-
-
-	- make "... info children ?pattern?" compliant with XOTcl 1; if
-	  pattern contains no wildcard and is no absolute path, nsf
-	  completes it. (eg. Object create o; Object create o:x; o info
-	  children x" will return ::o::x)
-	- extended regression test
-
-
-	- quote name of referenced parameter in error message to ease
-	  reading
-	- new parameter checker "parameter", performing an approximate
-	  checking for valid parameter specs
-	- set NSF_ARG_CHECK_NONPOS only when there are multiple arguments
-	- remove space checking for NSF_ARG_CHECK_NONPOS in favor of parameter
-	  checker
-
-
-	- minor cleanup
-
-
-	- provide a generic logging interface
-	  * predefined for plain Tcl and aolserver/naviserver
-	  * C-level: NsfLog()
-	  * Tcl-level: ::nsf::log
-
-2010-12-10  ssoberni  
-
-
-	- Fixed some naming confusion around @class-object-method
-	- Completed statusmark support down to the @param level
-	- method parameter definitions are now pre-processed during
-	  tracing; see ::nx::doc::paraminfo
-	- Continued the pinfo/pdata-based refactoring
-
-2010-12-09  Gustaf A. Neumann  
-
-
-	- xotcl2.tcl: fix the default init handler
-	- nsf.c: provide warnings when unchecked parameter values might
-	  conflict with nonpos args
-
-
-	- nsf.c: aquire parameter structure for returns more lazyly
-	  (otherwise, a serializer handling returns would aquire the
-	  structure for every argument)
-	- extend regression test
-
-
-	- xotcl2.tcl: cleanup of forward implementation
-	- xotcl2.tcl: provide debug version of default init method
-
-
-	- nx.tcl: cleanup of forward implementation
-
-2010-12-09  ssoberni  
-
-
-	- Fixed an issue when accessing partly initialised NsfParamDefs
-	  (created e.g. by [::nsf::methodproperty ... returns]) from
-	  [info method] subcommands, previously leading to invalid memory
-	  accesses. Added a test to tests/returns.test.
-	- Minor correction: xotcl2's method_handle_to_xotcl was not aware of
-	  the change to "class-object" as scope modifier.
-
-2010-12-08  Gustaf A. Neumann  
-
-
-	- NSDeleteChildren: delete objects before classes
-	- NSDeleteChildren: delete here aliases as well
-	- fix potential crash when "next" is called from a non-proc frame.
-
-2010-12-07  Gustaf Neumann  
-
-
-	- fixed bug in xotcl 2.0 "info forward"
-	- extended regression test
-
-2010-12-07  ssoberni  
-
-
-	Accomplishments:
-	- Completed a first version of the sandboxed (partial) evaluation
-	  of Tcl source artifacts (packages, script files, C extensions)
-	  based on a dedicated child/slave interp environment: see
-	  ::nx::doc::Sandbox; the test suite and the test documentation
-	  builts run on it.
-	- Based on this infrastructure, we can now generate a snapshot of
-	  a program's structure to be documented (and contrast it to the
-	  explicitly documented structure).
-	- Added simplistic css sprites for visualising the doc entity
-	  status (extra, missing, mismatch, complete); see also
-	  library/lib/doc-assets/status.svg and
-	  library/lib/doc-assets/status.png
-	- The entity status is printed optionally along with the print
-	  name of an entity
-	- Added switch-like parts to represent properties of doc
-	  entities: @deprecated, @stashed, @c-implemented, @syshook. The
-	  implementation and use of ::nx::doc::SwitchAttribute should be
-	  reviewed after having figured out how to proceed using
-	  "switching" objparams.
-	- I provide a multi-property dispatcher as doc-syntactic sugar and for
-	  mere convenience: @property
-	Various:
-	- Corrected some div-boxing mess in the templates
-	- Added a filtered helper to process entity collections
-	- Made the mixin layer infrastructure more symmetric (a revoke
-	  operation).
-	- Added tracers for ::nsf::method and ::nsf::alias (remains to be
-	  completed)
-	- Renamed ::nx::doc to ::nx::processor and turned it into another
-	 mixin layer to trace the doc entity creation in e.g. readin()
-	- Companion (*.nxd) files: Revised the handling of companion
-	 files. Temporarily moved generic/nsf.nxd in the top-level
-	 directory. We need to find a permanent place as its location is
-	 currently derived from the location of the shared extension. A
-	 candidate is doc/ but this is not linked to the shared extension
-	 location at all.
-	- processor.readin() now returns a collection of entities created
-	 during its execution.
-	- Improved robustedness and orthogonality: destroy hooks; the
-	 tag-dispatcher can now handle empty comment lines; when placing NSF
-	 object tracer, we now use the freshly added introspection of an
-	 object system's method aliases.
-
-2010-12-06  Gustaf A. Neumann  
-
-
-	- Converted migration guide to asciidoc
-	- Overhaul of serveral sections in asciidoc
-	- Developed styles for nx for migration guide (.css and
-	  source-highlight)
-
-2010-12-03  Gustaf A. Neumann  
-
-
-	- Don't allow to call objects as methods (for the time being) via
-	  absolute names
-
-
-	- fix typo
-
-2010-12-02  Gustaf A. Neumann  
-
-
-	- follow Tcl nameing convention (uppercase functions)
-
-
-	- make handling of redefinitions in system methods more robust
-
-2010-12-01  Gustaf Neumann  
-
-
-	- improve robustness of varresolver for unconfigured objects
-
-2010-12-01  Gustaf A. Neumann  
-
-
-	- Fixed switching between INACTIVE_MIXIN frames to ACTIVE_MIXIN
-	  frames
-	- Extended regression test
-
-2010-11-28  Gustaf Neumann  
-
-
-	- don't leave error message when __default_superclass (or
-	  __default_metaclass) is not set
-
-2010-11-28  Gustaf A. Neumann  
-
-
-	- rebuild pkgIndex.tcl more eagerly
-	- added error handler to pkg_mkIndex when called via "make
-	  libraries-pkgindex"
-	  * just show warning and errors when rebuilding pkgIndex files
-	  * stop make in case of errors in pkg_mkIndex
-
-
-	- added mode-hint for Emacs
-
-
-	- remove CVS tag
-
-2010-11-27  Gustaf A. Neumann  
-
-
-	- added regression test for forwarder and returns
-
-
-	- nx: added "-returns" to forwarder
-
-
-	- remove verbosity
-
-2010-11-26  Gustaf Neumann  
-
-
-	- minor updates of the migration guide
-
-2010-11-26  Gustaf A. Neumann  
-
-
-	- typo in TODO
-
-
-	- changed returns syntax from '->' to '-returns'
-
-
-	- xotcl2: fixed and completed results of "info instforward" and "info
-	  forward"
-	 Please enter the commit message for your changes. Lines starting
-
-
-	- serializer: fixed handling of nsf::configure options
-
-2010-11-25  Gustaf A. Neumann  
-
-
-	- nx.tcl: removed debugging output
-	- nx.tcl: added syntactic sugar to "method" and "alias" for
-	  return value checking. One can write now: Class create C {
-	  :public method foo {a:int b:int} -> int { return [expr {$a +
-	  $b}] } }
-	- extended regression test
-
-
-	- xotcl2.tcl: added empty namespace eval to make package indexer happy
-
-2010-11-22  Gustaf A. Neumann  
-
-
-	- small cleanup
-
-2010-11-22  ssoberni  
-
-
-	 - Conditionally disabling redefine protection (based on the
-	  presence of a global var ::nsf::bootstrap) failed due to the
-	  result flag not being set to TCL_OK in this case.
-	- Adding a (redundant) [package provide nsf /version/] to the ifneeded
-	script in nsf's pkgIndex.tcl. Background: [load] is only executed
-	once (leaving aside [unload]) for a given interp. Hence, the
-	initialization function and its Tcl_PkgProvide() call are only
-	performed once. A subsequent [package forget] and [package req] barfs
-	because the package version information is removed internally upon
-	[package forget]:
-	 "attempt to provide package nsf 2.0.0 failed: no version of package
-	 nsf provided"
-	 The Tcl docu provides hints on this requirement (for C
-	 extensions); see man for [package provide]:
-	 "[package provide] is typically invoked once as part of an ifneeded
-	 script, and again by the package itself when it is finally loaded."
-	 Note that most C-extension packages (sqlite, tdom) do not meet this
-	 requirement.
-
-2010-11-22  Gustaf Neumann  
-
-
-	- provide a more explicit way to handle resourcing after a "package
-	  forget" in the info methods (similar to Stefan's suggestion).
-
-
-	- keep DEVELOPMENT macro
-
-
-	- changed relation handling by evaluating the relationcmd in the
-	  parent context to keep evaluation order.
-	- extend introspection "nsf::configure objectsystem": the command
-	  returns now all system methods in the syntax of
-	  nsf::createobjectsystem
-	- "nsf::createobjectsystem" creates now a warning when an
-	  existing objectsystem is redefined and ignores the new
-	  definition attempt. This was done with the purpose to allow
-	  "package forget nx; package require nx"
-	- Allow overwriting of redefine protected method during bootstrap
-	  to ease "package forget nx; package require nx"
-	- forward had just "-objscope", no general "-frame
-	  method|object". Since forwarder have client data, they always
-	  push a method frame. So, the situation is different to
-	  nsd::alias and ::nsf::dispatch. Therefore, the flag "-objscope"
-	  was renamed to "-objectframe" to provide better consistency
-	  with "-frame object"
-	- fixed bug, where error handling of invalid options in
-	  ForwardProcessOptions() could lead to a crash
-	- return forwardoption "-earlybinding" via instrospection
-	- extended regression test
-
-2010-11-14  Gustaf A. Neumann  
-
-
-	- perform relation handling in objectparameters outside of object-frame
-
-
-	- reduce verbosity
-
-2010-11-11  Gustaf A. Neumann  
-
-
-	- configure.in: removed --with-tclinclude option, since it appears to
-	be included in tcl.m4 (since a while). Many thanks to Victor Guerra
-	for noticing it.
-
-
-	- configure.in: removed --with-tclinclude option, since it appears to
-	be included in tcl.m4 (since a while). Many thanks to Victor Guerra
-	for noticing it.
-
-2010-11-10  Gustaf Neumann  
-
-
-	- disallow object parameter of type "switch" to avoid possible
-	  confusion between (a) providing a value for the o.p., (b)
-	  calling it as a setter, and (c) calling it as a getter. For
-	  providing a value, no arg is used for switch. For calling a
-	  setter, it is necessary to provide a value even for a switch.
-	- disallow type "switch" in setter definiton (use boolean instead)
-	- disallow type "switch" for positional arguments (use boolean
-	  instead)
-	- extended regression test
-
-2010-11-08  Gustaf A. Neumann  
-
-
-	- improve documentation
-
-
-	- Make sure that DispatchDestroyMethod() calls as well protected
-	  destructors
-	- New function NSCheckNamespace() as replacement for
-	  NSCheckForParent()
-	- pass parentNsPtr around instead of recomputing it in
-	  NSCheckForParent()
-	- removed unneeded argument from NSGetFreshNamespace()
-	- switched to dstring operations in NameInNamespaceObj() (seems
-	  slightly faster)
-	- factored out NSRequireParentObject()
-	- by the measures above, we obtained some speed improvements
-	- moved some more debug output to be controlled by the debuglevel
-	- extended regression test with testcases for creation of parent
-	  objects via method "__unknown"
-
-2010-11-04  Gustaf A. Neumann  
-
-
-	- provide error message, when provided setter name starts with a colon
-
-
-	- New function NsfNamespaceInit() to initialize pre-existing namespaces
-	  in PrimitiveOInit() and in RequireObjNamespace()
-
-2010-11-04  ssoberni  
-
-
-	Squashed commit of the following:
-	commit 370f47d26099dd8cda4125de67048461edb797a9
-	Author: ssoberni 
-	Date: Thu Nov 4 10:56:11 2010 +0100
-	 Due to recent changes in InterpColonVarResolver() to handle the
-	 slow-path execution the byte-compiled [variable], an unwanted
-	   interaction between ::nsf::setter, *certain* per-object namespaces,
-	 and the ColonCmd()-based invocation of setter methods became
-	 visible. In short: Given a pre-existing Tcl namespace and the
-	 colon-prefixed call specification to a setter method,
-	 InterpColonVarResolver() handles the var resolution request issued by
-	 the setter method (or SetInstVar(), more precisely). In a
-	 colon-prefixed call, the Tcl_Obj carrying the setter method name and
-	 used to lookup the object variable contains the ":". At the same time,
-	 the per-object namespace causes the TCL_NAMESPACE_ONLY flag to be set
-	 which causes InterpColonVarResolver() to pass on the request. In this
-	 setting, we end up with colon-prefixed object variables! See
-	 tests/parameter.test for an explanatory test case. For the time being,
-	 I fixed this by preserving and using the original, colon-free Tcl_Obj
-	 indicating the variable name in the client data structure of the
-	 settercmd.
-
-2010-11-01  Gustaf A. Neumann  
-
-
-	- show "unwind unstacked entry" message appear only when debug
-	  level>0
-	- removed fixed TODO entries
-
-
-	- fix a bug, where "o configure" (without arguments) resetted
-	  initialied values to the defaults.
-
-2010-10-31  Gustaf A. Neumann  
-
-
-	- added "nosetter" automatically, when attribute ":method" is used
-
-
-	- improving error messages from argument parser
-	- test "namespace current" and "self" in "contains" and "slots"
-	  regression test
-
-
-	- fix escaped duplicate line
-
-
-	- activated SKIP_LAMBDA in nsfCallstack. As a consequence, we disallow
-	resolving self/my ... from tcl-proc frames (use uplevel if necessary,
-	avoid "namespace eval")
-
-2010-10-30  Gustaf A. Neumann  
-
-
-	- fix wrong "self" inside contains
-
-2010-10-29  Gustaf Neumann  
-
-
-	- added new contains definition based on "apply" instead of
-	  "namespace eval". Main intention is to replace SKIP_LEVELS by
-	  SKIP_LAMBDA
-	- added functionality to use ":attribute contains:method,nosetter"
-	- added regression test for contains and attributes of type method
-
-2010-10-29  Gustaf A. Neumann  
-
-
-	- added an experimental code for setting parent namespace path as
-	default for child-objects. At the time when an object namespace is
-	created, the namespace path of the parent object is copied to the child
-	as default value.
-
-2010-10-28  Gustaf A. Neumann  
-
-
-	- gentclApi.tcl: added optimizer rule for single argument of type
-	  tclobj
-	- improved speed of CompiledLocalsLookup slightly
-
-2010-10-28  Gustaf Neumann  
-
-
-	- impoved NsColonVarResolver, made some assumptions explicit
-
-
-	- fixed scoping issue, when "-volatile" was used for object
-	  creation
-	- added regression test for interaction between filters and
-	  function resolver (and volatile)
-	- reactivated new volatile test in destroy.test
-	- undone temporary fixes for volatile in serializer and nx.tcl
-
-2010-10-28  Gustaf A. Neumann  
-
-
-	- temporary fix in serializer
-
-
-	- fixed langauge hooks for emacs
-
-
-	- updated TODO
-
-
-	- added deavtivated test for volatile via flag (unsetteled issue)
-
-
-	- output object frame to ease interpretation of [info frame]
-
-
-	- new function MethodNameString() to obtain name without colon
-	  prefix from tcl_obj
-	- fix bad interaction between filters and cmd name resolvers
-	- output object frame to ease interpretation of [info frame]
-
-2010-10-28  ssoberni  
-
-
-	Adding the -force flag to [namespace import ::xotcl::*] to guard
-	against "can't import command ... already existings" error exception
-	(observed under OpenACS package upgrading)
-
-2010-10-27  Gustaf A. Neumann  
-
-
-	- changed CallStackGetActiveProcFrame() to return also CMETHD
-	  frames This allows to execute :volatile in a initcmd and to
-	  delete the object at its end. As a consequence, code like
-	  [CopyHandler new -volatile] copy [::nsf::self] $newName has to
-	  be changed to CopyHandler new { :copy [:uplevel ::nsf::self]
-	  [uplevel set newName] :destroy }
-	- renamed CallStackUseActiveFrames() to CallStackUseActiveFrame() and
-	  ctx->framesSaved to ctx->frameSaved to reflect implementation
-
-2010-10-26  Gustaf A. Neumann  
-
-
-	- removed debugging from CscFinish when compiled without DEVELOPMENT
-
-
-	- remved debugging from NsfCleanupObject when compiled without
-	  DEVELOPMENT
-
-
-	- added regression tests for destroy-during-init
-
-
-	- renamed nx regression tests .test to follow tcl conventions
-
-
-	- extended regression tests for aliases to procs
-
-
-	- allowed public|protected for method deletion such as "Object
-	  public method foo {} {}"
-	- removed defaultMethodCallProtection in alias test
-
-
-	- fixed bug when calling aliased proc not via method interface
-	- fixed bug when calling destroy in initcmd
-
-2010-10-25  Gustaf A. Neumann  
-
-
-	- added a few more small optimization.
-	- code-generator: don't call argument parser, when no arguments are
-	  specified
-
-2010-10-24  ssoberni  
-
-
-	 - Adding some tests on the interactions between our var
-	  resolvers and link-creating commands: [variable], [upvar],
-	  [global], ...
-	- Amended the in-code documentation for InterpColonVarResolver(),
-	  InterpCompiledColonVarResolver() and CompiledColonVarFetch().
-	- Found another AVOID_RESOLVERS victim: [namespace which -variable
-	  /varName/]
-
-2010-10-23  Gustaf A. Neumann  
-
-
-	- removed bug-alert from nx.tcl (wrong false-positives for
-	  compiled locals in slots)
-	- added a few small optimization. nsf appears to run on the shootout
-	benchmark the same speed like a year ago (which much less
-	functionality)
-
-
-	- removed bug-alert from nx.tcl (wrong false-positives for compiled
-	  locals in slots)
-
-2010-10-22  Gustaf A. Neumann  
-
-
-	- implemented exported command ::nsf::self as fast conveniance
-	  replacement for "::nsf::current object".
-
-2010-10-21  Gustaf Neumann  
-
-
-	- make exit more silent, when not debugging
-
-2010-10-21  Gustaf A. Neumann  
-
-
-	- don't relay on gcc extensions
-
-
-	- make sure, standard pre-processors can process this file
-
-2010-10-20  ssoberni  
-
-
-	- Providing a fix (and some analysis documentation) for the
-	  prefixed-(":")-variable resolution, making the entire mechanism
-	  more robust under situations of var resolvers for compiled and
-	  non-compiled script execution interacting.
-	- Added a first sample test (which documents the motivating issue
-	  observed for AOLserver vs. NaviServer)
-	- Further testing and documenting are pending
-
-2010-10-18  ssoberni  
-
-
-	- Added a missing squared brace in the serializer
-	- Made sure that alias definitions are properly serialized: Starting at
-	a cutoff of 2 did not reflect the change of access modifiers being
-	reported in the alias definition string. Therefore, the cutoff
-	referred to the alias method itself, leading to an erroneous
-	::nsf::alias statement being generated.
-
-2010-10-16  Gustaf A. Neumann  
-
-
-	- make sure not to return CompiledLocal vars from
-	  InterpColonVarResolver() when TCL_NAMESPACE_ONLY is requested.
-	- delegate always from InterpColonVarResolver() to other resolvers,
-	  when TCL_NAMESPACE_ONLY is requested.
-
-2010-10-15  Gustaf A. Neumann  
-
-
-	- provided parametersyntax definitions for XOTcl 2.0 similar to nx for
-	  all methods without a spec (e.g. fur builtin Tcl cmds, forwarders)
-
-
-	- follow current Tcl vonvention for patchlevel var:
-	- changed name of ::nsf::patchlevel to ::nsf::patchLevel
-	- changed content ::nsf::patchLevel from eg .0 to full number including
-	  release details
-	- fixed bug in ::variable with colon-prefixed name
-	 (shadowCommands does not help, see above)
-	- removed traces of Nsf_VariableObjCmd()
-	- extended regression test
-
-2010-10-15  ssoberni  
-
-
-	- Corrected the link generation for autocomplete/search entries
-	  in case of @use chaining and made them location-independent
-	- Removed an superfluous div-closing tag in class.html.tmpl
-	- Refactored the backend code for the auto-completion search box,
-	  separating the concerns of rendering the JS array of hashes and
-	  serialising entities into a dict representation. The latter
-	  allows to discriminate entity-specific rendering behaviour
-	  (together with the mixin layer facility).
-	- Added the entity type (its pretty name) to the search results
-	  presented to the doc user.
-	- Removed the unwanted "::"s from @project and @package names.
-
-2010-10-14  ssoberni  
-
-
-	 - Switch to print_name() for rendering entity names for the
-	  search box
-	- Fixed the @parameter generation in method.html.tmpl
-	- @glossary: Support for referencing glossary entries with
-	  certain formatting annotations: @gls (minor letters only), @Gls
-	  (title), @glspl (plural), @Glspl (title plural), ... Added
-	  explicit acronym rendering (long and short forms): @acrfirst,
-	  @acr; fixing an id-generation issue for @glossary entities
-	- Completed the first round of amending nx.nxd with @glossary
-	  entries and references.
-	- I got rid of curly braces ("{", "}") as marker symbols
-	  ("{{...}}", "{{{ ... }}}") for formatting fragments of comment
-	  blocks. They proofed sufficiently hairy due to their heavily
-	  loaded meaning for the Tcl parser (the unclosed brace issue in
-	  Tcl comment blocks, the list-like processing in our comment
-	  block parser, ...). Instead, I introduced <<...>> for link-like
-	  elements (anchors, glossary references) and MediaWiki-like
-	  '''...''' blockmarkers for code listings. Thanks to Victor
-	  Guerra for reviewing and discussing this concrete-syntactic
-	  design decision.
-	- Increased the robustness of line-by-line parsing for comment
-	  blocks. Within the comment block parser, we operate on comment
-	  lines as Tcl lists (lindex, lassign, ...). While convenient
-	  from a processing perspective, this risks limiting the degrees
-	  of freedom when writing comments (e.g., using tabs and spaces
-	  to indent inline, grouping words to form lists of lists, ...).
-	  By leveraging "args" argument processing through [apply] for
-	  line preprocessing, we balance the two requirements.
-	- Verified that @use works between objects and methods.
-	- Some cleanup in the mixin layer code
-	- Resolve interp-alias chains to entity class objects explicitly
-	- Adjusting the Container/Containable mechanism to apply only to
-	  part classes relevant to particular container entities.
-	- Fixing support for package rendering as top-level entities
-	  (e.g., in the leftbar menu)
-	- Providing the project object to all entities subject to
-	  template processing.
-	- Declaring some forwarders public explicitly (to reflect recent
-	  changes in the reach of default call protection)
-
-2010-10-12  Gustaf A. Neumann  
-
-
-	- made handling of unstacked entries optional by defining macro
-	  CHECK_ACTIVATION_COUNTS)
-	- added macro NSF_DEVELOPMENT for toplevel handling if NDEBUG and
-	  CHECK_ACTIVATION_COUNTS
-	- cleanup of method-modifiers.tcl
-	- updated next migration guide
-
-2010-10-11  Gustaf A. Neumann  
-
-
-	- added handling of unstacked csc entries (removed all DEBUG warnings).
-
-2010-10-10  Gustaf A. Neumann  
-
-
-	- copied decls for objectMethod and classMethod as comments to
-	  nsf.c, fixed order
-	- documented a few functions
-
-
-	- use "nsf::configure debug" for value 1: compain about protected
-	  value >1: provide load messages for nx and xotcl
-	- unset unneeded variables in ::nx namespace
-
-
-	- fix requiredness of several info methods
-	- added "nsf::configure debug ?level?"
-
-2010-10-09  Gustaf A. Neumann  
-
-
-	- renamed some arguments of tcl interface to increase consistency
-	- make requiredness explicit for nsf::cmds
-	- introduce ::nsf::parametersyntax to provide syntax for
-	  potentially missing definitions
-	- provided ::nsf::parametersyntax for 3 ::nsf commands and 7 nx methods
-	  (from relationslots)
-
-2010-10-08  Gustaf A. Neumann  
-
-
-	- replaced "-objscope" and "-nonleaf" by "-frame
-	  object|method|default" for nsf::alias and nsf::default
-	- added functionality for "-frame method" to nsf::dispatch
-	- made the order of argument in ::nsf::alias and method "alias"
-	  the same (always first the method, then "-frame ...")
-	- extened regression test
-
-2010-10-07  Gustaf A. Neumann  
-
-
-	- added support for aolserver (essentially Makefile +
-	  aol-xotcl.tcl)
-	- removed unneded content from serializer output
-
-
-	- regenerated content
-
-
-	- added expermimental code to avoid "variable :x" crash based on
-	shadowCommands, but this does not work, when varible is bytecompiled.
-	deactivated for now.
-
-
-	- added functionality to show enumerated values in "info
-	  parametersyntax"
-
-
-	- removed CheckAllInstances()
-
-
-	- fixed aliasing warning for gcc 4.4.4
-
-
-	- fixed one aliasing warning for gcc 4.4.4
-
-2010-10-06  Gustaf Neumann  
-
-
-	- iteration over TODO file
-	- removed obsolete entries from generic/nsf.decls und
-	  generic/nsfInt.decls
-	- removed NSF_CMD_NOT_FOUND
-
-2010-10-06  Gustaf A. Neumann  
-
-
-	- updated TODO
-
-
-	- cleanup aol-xotcl.tcl and document usage in aolserver and naviserver
-
-
-	- make pickier compiler happy
-
-
-	- keep track of defaultMethodCallProtection and
-	  defaultAttributeCallProtection in serailizer
-
-
-	- document usage
-
-
-	- align logic with nstrace for naviserver
-
-
-	- remove obsolete TK_LIB_SPEC
-
-
-	- Implemented built-in-converter for "baseclass" and "metaclass".
-	  Change in performance for this call. >8 times faster before:
-	  parameters/parametercheck.007: 19.49 mms, ::nsf::is baseclass C
-	  after: parameters/parametercheck.007: 2.32 mms, ::nsf::is
-	  baseclass C
-	- remove scripted definition of "baseclass" and "metaclass"
-
-
-	- call scripted converters without checking protection
-	- removed defaultMethodCallProtection from tests/parameters.tcl
-
-2010-10-05  Gustaf A. Neumann  
-
-
-	- fixed wording
-
-
-	- changed option -expand in "info methods" and "info lookup
-	  methods" into "-path" to associate with the method path
-	- changed method property name from "protected" to
-	  "call-protected"
-	- changed nx::defaultMethodProtection to
-	  nx::defaultMethodCallProtection
-	- nx::defaultAttributeProtection is used for scripted methods,
-	  forwarders and aliases
-	- added nx::defaultAttributeProtection, used for setter and attributes
-
-
-	- changed option -expand in "info methods" and "info lookup methods"
-	  into "-path" to associate with the method path
-
-
-	- cleanup of __resolve_method_path
-	- change TclShowStack into NsfShowStack() to avoid possible
-	    interference with the Tcl* namespace
-	- made the following function static to avoid pollution of the global
-	  link namespace: CompiledColonVarFree(), GetRegObject(), ParamGetType()
-
-
-	- Methodpaths can be used now in the definition of "method",
-	  "alias" and "forward." We do not support it for "setter" and
-	  "attribute", since these require a parameter spec, which does
-	  not have clear semantics for a method path.
-	- scripted definition of nx::Object.forward and nx::Class.forward
-
-2010-10-05  ssoberni  
-
-
-	 - Major refactoring based on a minimal Mixin Layer facility to
-	  modularise optional features (such as templating, documentation
-	  verification etc.) in layers of mixins to be applied to the
-	  entire entity hierarchy.
-	- Rewrote the html templating machinery in terms of a mixin
-	  layer: NxDocRenderer
-	- Used the new modularisation granularity to add
-	  @glossary-specific link rendering (following ideas from
-	  http://www.alistapart.com/articles/hattrick/)
-	- Completed glossary support and added acronym handling
-	- Added back references and ref counting for @glossary entries
-	  (to be displayed with the glossary lists)
-	- I added the short-cut lists for selected part types of @class
-	  entities, namely @class-method and @class-attribute.
-	- Fixed the rendering of methods and attributes for ascending
-	  alphabetical order.
-
-2010-10-05  Gustaf A. Neumann  
-
-
-	- added syntax "?arg ...?" in parametsyntax output for "args"
-	- removed "info forward" from nx::Object and nx::Class (can be replaced
-	  by "info methods" and "info method")
-
-
-	- allow %method in forwarder.
-	- defined unknown methods as call-protected
-	- make __default_method_protection protected
-
-
-	- extended regression test for "current methodpath"
-
-
-	- push stack frame before calling the defaultcmd of an ensemble
-	  object to make implementation more simple.
-	- simplified EnsembleObject.defaultcmd and EnsembleObject.unknown
-	  significantly, scripted support methods are removed.
-	- extended regression test
-
-
-	- nsf::current: new option "methodpath", returns the full name of
-	  an ensemble method starting from the ensemble root.
-	- documented functions in nfsStack.c
-	- removed obsolete CallStackGetFrame(), replaced by
-	  CallStackGetTopFrame()
-
-
-	- factored out ParamGetType() to obtain from a paramPtr a type
-	  string
-	- parametersyntax:
-	  * changed "... -x arg ..." into ".... -x value ..."
-	  * changed multiple values notation from "list" to "..."
-
-
-	- strip space from source files
-
-2010-10-04  Gustaf A. Neumann  
-
-
-	- "info method parametersyntax" returns now for all nonpos args
-	  the type instead of "arg" when possible (eg ..... ?-x object?
-	  ....)
-	- extended regression test
-
-
-	- provide full set of ensemble methods from EnsembleObject.unknown
-	(i.e. from all classes along the precedence order. It was necessary
-	to pass calling object as first argument)
-
-
-	- "info lookup methods": order of non-pos parameters
-	  alphabetically
-	- added option "-expand" to "info lookup methods ". It collects
-	  ensemble methods along the precedence path
-	- added support for ensemble methods in "info lookup method"
-	- extended regression test
-
-2010-10-03  Gustaf A. Neumann  
-
-
-	- updated TODO
-
-
-	- make serializer more quiet
-
-
-	- nsf.c: use name "varTablePtr" instead of "varTable" when
-	  referring to the table
-	- new option "slotcontainer" for "methodproperty" to flag
-	  slotcontainer to make them easier to process in the serializer
-	  . don't report slot container in "info methods -expand"
-	- new function "::nx::isSlotContainer" to centralize checking for
-	  slotcontainers (used by serilaizer)
-	- support export of method ensembles in serializer
-
-2010-10-02  Gustaf A. Neumann  
-
-
-	- new option "-expand" for "obj|class info methods" to return
-	  compound names (i.e. it lists the full ensemble names) Example:
-	  ::nx::Object info methods -expand "*filter*" returns filter
-	  {info filter guard} {info filter methods} {info lookup filter}
-	- allow ensemble names in nsf::methodproperty
-	- fix compound name lookups when aliases link to shared ensemble
-	  objects
-	- make objectName() NULL-safe
-	- fix option "-source application" when applied directly on
-	  base-classes
-	- extend regression test
-
-
-	- make test more quiet
-
-2010-10-01  Gustaf A. Neumann  
-
-
-	- serializer: experimental code to serialize submethods
-
-
-	- "info method submethods": return all submethods, independent from
-	  protection
-
-
-	- fix potential crash in ::nx::Object info method definition
-	  ::nsf::methods::object::instvar
-
-
-	- fix typo
-
-
-	- slots:
-	  * change name "initcmd" of "experimental slot features" to
-	  "defaultcmd" to avoid naming conflict the the initcmd executed
-	  at the initilization of a slot object (effects XOTcl as well)
-	  * make defaultcmd/valuecmd/valuechangedcmd working for nx
-	  (absence of trace method)
-	  * provide error message, when default/defaultcmd/valuecmd are
-	  used non-exclusively
-	  * make sure to init per-object slots after copy operations
-	  * make nx::Attribute.destroy more definsive
-	  * extend test cases
-
-
-	- nsf: added flag NSF_DESTROY_CALLED_SUCCESS in addition to
-	NSF_DESTROY_CALLED to distinguish between attempted and successful
-	destroy method invocations (important for cleanup)
-
-
-	- update with decls generated from tcl 8.5.9
-
-2010-09-30  Gustaf A. Neumann  
-
-
-	- serializer:
-	  * added support for ordering on aliases referencing other
-	  objects/classes
-	  * provide shared version of the method warn via alias and removed
-	  direct output to stderr
-
-
-	- XOTcl 2: allow info slots for objects as well
-
-
-	- reduce size of output of serializer
-	- make nx::Object.serialize public
-
-
-	- filter more unneeded files from tar archive
-
-
-	- extended the apply regression test
-
-2010-09-29  ssoberni  
-
-
-	 - Minor revision of template files (to unify the naming of
-	  markup labels)
-	- Removed occurrences of old [:let]
-	- Use href() helper method to generate fragments of per-document
-	  ("local") anchor names
-	- Introduced more pretty_name and pretty_plurals for part
-	  attributes
-	- Make filename generation aware of the property of being a part
-	  or partof entity!
-	- Revised the documentation of [::nsf::current] slightly
-	- Adding setter ([:!let]) and getter ([:!get]) to the templating
-	  language, both being aware of @use chains.
-	- Refactored the resolution behaviour for part levels, relative
-	  to a given entity, into a helper
-	  StructuredEntity->owned_parts(). Based on this helper, the
-	  navigation structures can be rendered on common grounds (e.g.,
-	  drop-down search box, menus in th eleft bar)
-	- Adding the attributes "pretty_name" and "pretty_plural" to part
-	  attribute slots (used for rendering section names in the nav
-	  menu etc.).
-	- Adding a helper method href() to render the href attribute
-	  values of entity anchors (links, menu items, ...)
-	- Unified the rendering of the selection data used by the
-	  drop-down box for the various entity_types, again, using the
-	  owned_parts() helper
-	- Refactored the generation of navigation menu in the left bar
-	  into a proper template: leftbar.html.tmpl
-	- Reflect recent naming changes (e.g., predefined.tcl -> nsf.tcl)
-	- Adding support for documentation inheritance; first, fixed
-	  @command support for it
-	- Refactored the upward resolution of partof entities into a
-	  central and shared facility (Entity->get_upward_path())
-	- Adjusting for changes in introspection interface
-	  (info.callable() -> info.lookup())
-	- Adding a first aliasing (@use) mechanism. Remains to be tested
-	  properly, though it works sufficiently for the known use cases.
-	- Adding some safety checks to Tag->find()
-	- Refactoring context->parse@tag to use the Tag->find() helper
-	  (now shared between tag creation and link resolution)
-	- Tag path normalisation (expanding shortcuts, balanced list
-	  check, ...) went into Tag->normalise().
-	- Changed the [:link ...] mechansism ({{@someTag ...}}) to
-	  operate on the new tag notation. Added support for sub-method
-	  and sub-command link rendering (looks sufficient for the
-	  moment).
-	- Changed the existing *.nxd companions to match these notational
-	  modifications.
-
-2010-09-29  Gustaf A. Neumann  
-
-
-	- handle call-protection in serializer (works again with OpenACS /
-	  naviserver)
-
-
-	- added public|protected to output of "info method definition" (needed
-	  to make serializer more sane, neccessary on the longer range)
-
-2010-09-28  Gustaf A. Neumann  
-
-
-	- declare publically used methods as public
-
-
-	- change namespace to nsf
-
-
-	- make return statments explicit
-
-
-	- switch back to SKIP_LEVELS for work on OpenACS
-
-
-	- updte comments
-
-
-	- fix for the bug reported by Neil Hampton
-	- added regression test
-
-
-	- fix for the bug reported by Neil Hampton
-	- added regression test
-
-
-	- used Tcl_ObjCmdProc in prototypes
-	- allow CMETHOD to be target of calling-object/calling-level
-	- added NSF_CSC_CALL_IS_TRANSPARENT to handle proc aliases
-	  transparently
-	- access self in NsfProcAliasMethod() from tcl->object
-
-2010-09-27  Gustaf A. Neumann  
-
-
-	- updated TODO
-
-
-	- removed NXSH and XOWISH from Makefile.in
-
-
-	- altered xotcl.m4 to nsf.m4 in .,
-	  library/xotcl/library/store/XOTclGdbm/,
-	  library/xotcl/library/store/XOTclSdbm/,
-	  library/xotcl/library/xml/TclExpat-1.1/
-	- removed traces of xotcl.m4
-	- removed build flags with-nxsh, with-xowish (since these are
-	  scripted now)
-	- removed flag --with-tk (not needed anymore)
-
-2010-09-27  ssoberni  
-
-
-	Removed the nxsh (@NXSH@) and xowish (@xowish@) deps of the binaries
-	target in Makefile.in (as shell deployment is now handled in the
-	install-shells target). If not removed, make would barf ...
-
-2010-09-27  Gustaf A. Neumann  
-
-
-	- added nxwish.in (scripted replacement for former xowish)
-	- added xotclsh.in (scripted replacement for former xotclsh)
-	- added xowish.in (scripted replacement for former xowish)
-	- added error handling to all scripted shells
-	- removed old xotclsh.in and xowish.in (from apps/utils)
-
-
-	- removed DISPATCH_TRACE
-	- moved return-value checking into ObjectDispatchFinalize()
-	- perform invariants checking after cmd execution, not
-	  additionally before
-	- commented dispatch machinery
-
-
-	- renamed/removed remaining ::nsf::commands with capitalized
-	  names: parametersFromSlots ==> parametersFromSlots
-	  unsetUnknownArgs ==> __unset_unknown_args infoError removed
-	- renamed predefined.tcl into nsf.tcl
-	- remaining cmds in nsf (except __*) containing "_":
-	  ::nsf::provide_method, ::nsf::require_method
-
-2010-09-26  Gustaf A. Neumann  
-
-
-	- fixed typo in exithandler definition
-
-
-	- removed capitalization from exit handler interface
-	- reduced interface of exithandler to ::nsf::exithandler set|get|unset
-	  ?arg?
-
-
-	- renamed ::nsf::cmd::ObjectInfo into ::nsf::methods::object::info
-	- renamed ::nsf::cmd::ClassInfo into ::nsf::methods::class::info
-
-
-	- added scripted replacement for binary nxsh
-	- new define SKIP_LAMBDA to make apply tests working without SKIP_LEVELS
-
-2010-09-25  Gustaf A. Neumann  
-
-
-	- provide debugging output when varFramePtr in GetSelfObj() is
-	  NULL
-	- filter misleading "proc" entry for "info frame" for nsf-stack
-	  entries
-	- add "method" for "info frame" for nsf-stack entries
-	- defnied SKIP_LEVELS to omit optionally skipping of tcl-stack entries
-	  in GetSelfObj()
-
-
-	- added fake calue for cmdPtr in fakeProc to make "info frame" happy
-
-2010-09-24  Gustaf Neumann  
-
-
-	- changed "info method lookup -application" into "info method
-	  lookup -source application"
-	- introduced "info method lookup -source
-	  application|baseclasses|all"
-	- updated migration guide
-	- extended regression test
-
-2010-09-24  Gustaf A. Neumann  
-
-
-	- removed TCL85STACK_TRACE
-	- renamed cscPtr->callType to cscPtr->flags, since this is now
-	  more appropriate
-	- some more minor cleanup
-
-
-	- changed debug command __db_yield (unporable between various 8.6b*
-	  version) into __db_show_stack
-
-
-	- changed internal method name requireNamespace to "require_namespace"
-
-
-	- added tcl-cool as an additional sample-object-system for nsf
-
-
-	- minimal cleanup
-
-
-	- make "createobjectsystem" more robust (allow to provided not fully
-	  qualified names).
-
-2010-09-23  Gustaf A. Neumann  
-
-
-	- simplification and unification of unknown handling and method
-	  finalization
-	- some cleanup
-
-
-	- save snapshot; refactoring in order to ease NRE development
-	  with unified method and dipatch exit.
-	- named debugging cmds __db_*
-	- new cmd __db_run_assertions to perform checking of the internal state
-
-
-	- some refactoring for making code structure more sane for NRE (but not
-	  done yet)
-
-2010-09-22  Gustaf A. Neumann  
-
-
-	- removed third level from libary/pkgIndex.tcl (not needed)
-
-
-	- make coloncmd are NRE-enabled
-	- make every internal method invokation (NsfCallMethodWithArgs()
-	  and CallMethod()) NRE-configurable
-	- use "Nsf" prefix for global vars to avoid potential conflicts
-	- minimal support for sane-NRE patch
-	- failed so far to make my NRE-enabled
-	- new compile-flag for tracing: NRE_CALLBACK_TRACE
-	- extended regression test (added test for 8.6 apply)
-	- renamed tests/coroutines.tcl to tests/tcl86.tcl
-
-
-	- provide comments for NextInvokeFinalize()
-
-
-	- make ::nsf::next and ::xotcl::next NRE-enabled
-
-
-	- some cleanup concerning TCL_STACK_ALLOC_TRACE
-
-
-	- passing part of dispatch flags in cscPtr->callType
-	- runs now full regression test NRE enabled, but still much debugging
-	  and options for less conservative behaviour
-
-2010-09-21  Gustaf A. Neumann  
-
-
-	- make comparison slightly simpler (C style)
-
-
-	- Big internal changes for handling nre-enabled procs in more
-	situations. Handles now all nx regression tests, but fails in
-	testx.xotcl (just nre-enabled)
-
-2010-09-21  ssoberni  
-
-
-	Fixed the bitwise flag comparison in ProtectionMatches() which failed
-	to yield a boolean result. This resulted in unanticipated [obj info
-	methods -callprotection] behaviour, with the -callprotection filter
-	seemingly being ignored. Added some tests to tests/info-method.tcl.
-
-2010-09-20  ssoberni  
-
-
-	Make library/pkgIndex.tcl traversing three directory levels (instead of
-	just 2). This is necessary to catch the packages and
-	library/xotcl/library. As a symptom, xocomm.test failed. This was
-	because it was picking up comm packages in the install, rather than the
-	source tree which did not reflect the changes in the nested object
-	dispatches: [my connection foo] -> [[self]::connection foo]
-
-2010-09-18  Gustaf A. Neumann  
-
-
-	- fixed handling of TclNRRunCallbacks, such that coroutines can
-	  be easily used (more testing required)
-	- added temporary routine ::nsf::yieldcheck for coro debugging
-	- renamed Tcl85showStack() to TclShowStack()
-
-
-	- regenerated pkgindex files
-
-
-	- improved library/lib/make.tcl once more
-
-
-	- fixed again library/xotcl/library/pkgIndex.tcl
-
-
-	- regenerated index files
-
-
-	- removed unneeded line
-
-2010-09-17  Gustaf A. Neumann  
-
-
-	- added explicitly library/xotcl/library/pkgIndex.tcl
-
-
-	- make changes for public methods
-
-
-	- fixed a crash for tcl 8.6b1 in return value checking. now it
-	complains about missing cmdPtr; it is not clear, why this is missing
-	at the first place in 8.6b1 while working in 8.5
-
-
-	- merged Stefan's updates into TODO
-
-
-	- made methods (for now just scripted methods) by default
-	  protected.
-	- provide methode __default_method_protection to obtain the
-	  default method protection when neither protected or public is
-	  used.
-	- per default methods are now protected
-	- provide ::nx::configure defaultMethodProtection true|false as
-	  conveniant interface
-	- update regression test and serializer to handle default protection
-
-
-	- updated todo
-
-
-	- fix typo
-
-
-	- removed obsolete code
-
-
-	- handle next in ensemble with arguments
-	- extended regression test
-
-
-	- new nsf::next cmd. receives 0 or 1 argument, which might be a
-	  list of arguments. This avoids ambiguity of ::xotcl::next with
-	  "--noArgs".
-	- renamed namespace_copycmds and namespace_copyvars to nscopycmds
-	  and nscopyvars (we don't use "_" in nsf::*-names as delimiters
-	  elsewhere)
-	- renamed __qualify to qualify (it is a non-exported cmd)
-
-
-	- call internal NextSearchAndInvoke (without NextGetArguments)
-	  from the implicit next in ensemble methods
-	- made NsfNextMethod() obsolete to ease different noarg handling
-	  policies
-
-2010-09-16  Gustaf A. Neumann  
-
-
-	- renamed functions in nsfStack.c to follow Tcl naming guidelines
-
-
-	- rennamed tests/subcmd.tcl info tests/submethods.tcl
-	- moved relevant tests from tests/parameters into tests/submethods.tcl
-
-
-	- renamed "... info ... subcommands ..." into "... submethods ..."
-
-
-	- refactored next and argument passing (new methods
-	  NextGetArguments(), NextSearchAndInvoke() and
-	  CallStackFindEnsembleCsc())
-	- doing an internal next in cases where a method ensemble does
-	  not contain the called submethod
-	- added regression tests for partial ensembles
-
-2010-09-15  Gustaf A. Neumann  
-
-
-	- implemented next within ensemble methods
-	- added regression tests for next within ensembles
-	- added regression tests for upvar with ensembles
-
-2010-09-15  Gustaf Neumann  
-
-
-	- added test case for next in ensemble
-
-
-	- working on next from ensemble
-
-2010-09-14  Gustaf A. Neumann  
-
-
-	- first steps towards next-handling in ensemble methods
-
-
-	- provide cscPtr in debug output
-
-
-	- updated todo list
-
-
-	- remove useless line
-
-2010-09-13  Gustaf A. Neumann  
-
-
-	- documented behavior of upvar/uplevel with aliases on scripted procs
-	  through regression test
-
-
-	- renamed "parameter" into "attributes" in nx
-	- renamed "info parameter" into "info attributes" in nx
-	- updated migration guide
-	- fixed several common typos
-
-
-	- checked equivalence of the following two commands in respect to
-	fully-qualified names ::nsf::dispatch $obj
-	::nsf::cmd::ObjectInfo2::hastype $class ::nsf::parametercheck
-	object,type=$class $obj extended regression test (paramters.tcl)
-
-
-	- removed overhead on ::nsf::dispatch when called with absolute
-	  paths
-	- absolute paths have to start with ":".
-
-
-	- improve comments in nsf.c
-	- follow closer naming of Tcl style guide
-
-
-	- added "info method subcommands ..." to return list of
-	  subcommands (of the ensemble)
-	- extended regression test
-	- use always NULL instead of 0 when assigning to a pointer variable
-
-
-	- changed "cls object method ..." and friends into "cls class-object
-	  method ..."
-
-2010-09-11  Gustaf A. Neumann  
-
-
-	- fixed handles with subcommands for class methods when called on
-	  classes or objects
-	- extended regression test
-
-
-	- fixed handles with subcommands used on objects without
-	  namespaces
-	- new functions: GetRegObject()
-
-2010-09-10  Gustaf A. Neumann  
-
-
-	- polish comments
-
-
-	- second part of ensemble name resolver, distinguish between
-	  registration object and definition object
-	- new functions: GetRegObject()
-	- extended regression test
-
-
-	- pass tclobj instead of string to NsfObjInfoMethodMethod and
-	  NsfObjInfoMethodsMethod
-	- first part of ensemble name resolver. We can resolve now e.g.
-	  [nx::Object info method parameter "info lookup methods"]
-
-
-	- changed "info available" into "info lookup" (and accordingly c
-	  definitions, migration guide)
-
-
-	- new function AliasDeleteObjectReference() to delete aliases to
-	  objects
-	- removed some obsolete functions
-
-2010-09-09  Gustaf A. Neumann  
-
-
-	- handle aliases to (sub)ensemble objects during final cleanup to
-	  improve sharing of logic.
-	- share definition of "info callable" and "info has" ensemble between
-	  object info and class info
-
-
-	- splitted "info callable" into an ensemble (submethods have
-	  quite different signatures)
-	- added "info callable slots" with functionality of "info
-	  slotobjects"
-	- removed "info slotobjects"
-
-
-	- [::nx::Object info method parameter info] returns now empty
-	  instead of error.
-	- extended regression test
-
-
-	- added flag "-type" to NsfObjInfoChildrenMethod
-	- added flag "-type" to NsfObjInfoSlotObjectsMethod
-	- removed dummy argument "pattern" from
-	  NsfObjInfoSlotObjectsMethod
-	- removed NsfClassInfoSlotsMethod (implemented via "children ...
-	  -type ...")
-	- moved "info slots" from nx::Class to nx::Object (to report e.g.
-	  per-object attributes)
-	- extended regression test
-
-2010-09-08  ssoberni  
-
-
-	 - Added support for companion documentation files (based on the
-	  file extension *.nxd)
-	- Moved the nsf and nx documentation blocks in
-	  generic/predefined.nxd and library/nx/nx.nxd, respectively
-	- Un-exported @param, provide two aliases @attribute and
-	  @parameter (in the respective contexts).
-	- Changed the test suite and the two documentations to reflect the
-	  naming changes.
-
-2010-09-08  Gustaf A. Neumann  
-
-
-	- BRO continues:
-	- overworked function prototype definitions in nsf.c
-	- renamed some static definitions on the way to follow Tcl conventions
-	  (start with a capital character)
-
-2010-09-08  ssoberni  
-
-
-	 - Added two new templates: method.html.tmpl and
-	  submethod.html.tmpl
-	- Generalised the support for sub-commands and sub-methods,
-	  including a shortcut notation for tag lines.
-	- Adding the special handling of initcmd blocks of attribute
-	  slots: They are processed as @param specifications of their
-	  owning (class) object. In a next step, I will limit this
-	  special handling to the first comment block only, while
-	  subsequent ones are evaluated in the context of the slot object
-	  itself.
-	- Fixed an issue with cleaning up the processing-related mixin
-	  classes in the CommentBlockParser: As the nested notation of
-	  doc entities can conflict with relation slot forwarders
-	  (*::info::mixin vs. *::info mixin ), I revert to
-	  using ::nsf::relation directly.
-	- Fixed the default namespace resolution (still needs some
-	  review, once all use cases are figured out!) Changed nx and nsf
-	  documentation accordingly.
-	- Add first doc text for Object->info() and its sub-methods (for
-	  testing purposes, merely)
-	- Added an initial implementation for parsing level support. By
-	  introducing skipping axes into the tag notation (e.g.,
-	  @..param), we can now differentiate between different scopes of
-	  applications for tags. This has a number of advantages: a)
-	  processing becomes more efficient (skip-level annotated tags
-	  can be identified early), b) we do not have maintain different
-	  tag labels for different parsing levels (e.g., @child-object
-	  vs. @object), ...
-	- Parsing levels have to be maintained within the documentation
-	  processor and provided to the comment block parsers at work.
-	  This still has to be accomplished.
-	- Adapted the naming scheme for qualifier tags (for now). Instead
-	  of "child" scopes, we coerce the entity names using namespace
-	  delimiters (this fits nested objects nicely)
-	- Changed the resolution behaviour for dotted tag labels:
-	  Intermediate nodes (i.e., entities) are not allocated anymore,
-	  on the fly. Rather, it is a pure id resolution, except from the
-	  leaf element which is effectively initialised as a
-	  documentation entity. This has major implications: It requires
-	  partof entities to exist prior to any part entity. However, the
-	  id resolution work can later be reused when introducing the new
-	  tag notations into the link block markers in the templating
-	  engine (avoiding zombie and widely undescribed doc entities).
-	- Started shifting id generation into part attributes (for the
-	  time being). Probably I will do so permanently to avoid the
-	  complexity in the various new() factories for doc entity types.
-	- Adjusted the tests accordings and added many more on the
-	  navigatable tag notation.
-	- Renamed EntityClass and PartClass into Tag and PartTag. The
-	  meta-class names so better reflect their purpose as entity
-	  factory classes, based on the tag notation scheme. Added a
-	  QualifierTag meta-class which marks tags (@class, @object,
-	  @command) which impose extra requirements when not being part
-	  of another entity (in particular, default namespace
-	  resolution). If not part of another entity, they represent
-	    *qualifying* language constructs, i.e. language constructs
-	  which help identify other elements (command -> subcommand,
-	  object -> nested object or method).
-	- Started harmonising the entity class hierarchy (not ready cooked
-	yet): Entity < StructuredEntity < ContainerEntity < @project <
-	@method < @package < PartEntity < @object (@param) < @class < @command
-	The most important change is that all entities (entity instances) can
-	become parts, however, only a single entity class (@param) is critical
-	about it.
-
-2010-09-06  Gustaf A. Neumann  
-
-
-	- BRO continues:
-	- overworked function prototype definitions in nsf.c
-	- renamed some static definitions on the way to follow Tcl conventions
-	  (start with a capital character)
-
-
-	- BRO continues:
-	- changed all XOTCL_ into NSF_
-	- changed all XOTCLINLINE into NSF_INLINE
-	- changed all XOTCLOBJ_TRACE into NSFOBJ_TRACE
-	- changed all XOTcl_ into Nsf_
-	- changed all XOTcl([A-Z]) into Nsf\1
-	- changed all xotcl into nsf
-	 - changed changeClass into ChangeClass
-	 - changed XOTclpGetObject into GetObjectFromString
-	 - changed XOTclpGetClass into GetClassFromString
-	 - changed callDestroyMethod into DispatchDestroyMethod
-
-
-	- big renaming orgy (BRO):
-	- changed filenames starting to "xotcl" into filename starting
-	  with "nsf"
-	- adoped Makefile insfrastructure accordingly
-	- removed compile flag XOTCL_METADATA and generic/xotclMetaData.c
-	- changed compile flag PROFILE into NSF_PROFILE
-
-
-	- checked "my" vs. "nsf::dispatch" in nx.tcl and xotcl2.tcl
-
-
-	- changed stub naming from "[Nn][Xx]*" to nsf (for next scripting
-	  framework)
-
-2010-09-04  Gustaf A. Neumann  
-
-
-	- new flag for configure: "nx::configure checkarguments on|off"
-	- turn off argument-checking for non-converters, when checking is
-	  off (per default, it is on)
-	- extended regression test for optional argument checking
-
-2010-09-03  Gustaf A. Neumann  
-
-
-	- new flag for configure: "nx::configure checkresult on|off"
-	- turn off result-checking for non-converters, when checking is
-	  off (per default, it is on)
-	- extended regression test for optional result checking
-
-2010-09-02  Gustaf Neumann  
-
-
-	- renamed slot attribute "noforwarder" to "nosetter"
-	- method parameter can now use option "nosetter" to allow object
-	  parameterization witout providing a setter method (example:
-	  "Class create C -parameter {x:integer,nosetter}")
-	- extended regression test to include "nosetter"
-
-
-	- make method EnsembleObject.methodPath more independet of Ensemble
-	  objects
-
-2010-09-02  Gustaf A. Neumann  
-
-
-	- added handling of parameter options "allowemtpy" and "convert" in
-	  createFromParameterSyntax
-
-
-	- new parameter option "convert" to signal that an application
-	  specific parameter checker should convert the value (takes the
-	  result of the methods as conversion result)
-	- added parameters for slots "allowemtpy" and "convert"
-	- extended regression test
-
-
-	- extended regression test
-
-
-	- added flag -complain to ::nsf::is
-	- removed ::nsf::parametercheck
-
-2010-09-01  Gustaf A. Neumann  
-
-
-	- fixed reference counting problem with user-defined converters
-
-
-	- minor cleanup
-
-
-	- report "invalid parameter" in nsf::is and parametercheck, even when
-	  no-complain is used.
-
-
-	- some cleanup
-
-
-	- changed argument order on nsf::is to make it conformant with
-	  Tcl conventions
-	- removed objectproperty, replaced it by ::nsf::is
-	- move functionalizy of objectproperty to make "obj info is ..." more
-	  efficient
-
-
-	- minimal changes
-
-
-	- fix onbsolete objectproperty inside catch
-
-
-	- fix editing
-
-
-	- replaced argument order on objectproperty to make it conformant
-	  with Tcl conventions
-	- updated migration guide
-
-2010-09-01  ssoberni  
-
-
-	 - Replaced the former "exception" handling mechanism by a
-	  simplified one. This speeds up e.g. the generation of the
-	  current nx.tcl documentation by 15-20%.
-	- Adjusted the tests for the modified CommentBlockParser
-	  interface.
-	- Implemented a first version of the revised tagline notation.
-	  Changed the documentation in nx.tcl and predefined.tcl
-	  accordingly.
-	- Discriminate between parsing simple and complex part entities.
-	  In the simple case, multi-line part sections are not allowed
-	  anymore.
-	- Adopted the recent changes in the object introspection interfaces
-
-2010-08-31  Gustaf A. Neumann  
-
-
-	- removed "infoObjectMethod" and "infoClassMethod"
-	- replaced ::nsf::cmd::ClassInfo2 by ::nsf::cmd::ClassInfo
-	- replaced ::nsf::cmd::ObjectInfo2 by ::nsf::cmd::ObjectInfo
-
-
-	- introduced ::nsf::isobject
-	- replaced in all scripts "::nsf::objectproperty ... object" by isobject
-
-
-	- removed "nsf::is ... -type ...."
-	- adoped emulation layer in xotcl2 accordingly
-	- extended regression test
-
-
-	- removed "objectproperty .... type"
-	- renamed isSubType() to IsSubType()
-	- adoped emulation layer in xotcl2 accordingly
-	- added two tests for "info has type" in regression test
-
-
-	- removed "objectproperty .... hasmixin"
-	- removed "nsd::is ... -hasmixin ...."
-	- removed type-converter "type=hasmixin"
-	- adoped emulation layer in xotcl2 accordingly
-	- added two tests for "info has mixin" in regression test
-
-
-	- updated interface definitions for info methods, sort these
-	  alphabetically
-
-
-	- implemented XOTclObjInfoHasMixinMethod() and
-	  XOTclObjInfoHasTypeMethod()
-	- renamed "$obj info hasnamespace" to "$obj info has namespace"
-	- added "$obj info has mixin $class"
-	- added "$obj info has type $class"
-	- extended regression test for parametercheck/objectproperty/is
-
-
-	- documented incompatiblity of object-invocation via method interface
-	  (due to ensemble objects) in migration guide
-
-
-	- make sure to test next to non-existing shadowed method in connections
-	  with filters and unknwon handlers
-
-
-	- fixed silent (scripted) unknown handler.
-	- reavtivated corresponding regression test
-	- extended regression tests (call unknown method with filter with and
-	  without unknown handlers)
-
-2010-08-30  ssoberni  
-
-
-	- Refactoring templating code: Separated generic and
-	  backend-specific templating behaviour into distinct classes:
-	  BaseTemplateData and NxDocTemplateData. Rewrote the getter
-	  logic for the @doc strings to retrieve different
-	  representations (as_text() and as_list()).
-	- Multi-line block markers: To achieve this, I moved the handling
-	  of block markers into the template data classes.
-	- Adjusted the tests for the changes ...
-
-
-	Temporarily fixed an issue with cleaning up comment section states set
-	on an entity object. This needs to be improved and to be made more
-	robust!
-
-
-	Adding tests for multi-line param descriptions
-
-
-	- Added an experimental gathering facility for part objects,
-	  relative to a given entity object. It returns a [dict] which
-	  allows to reuse the parts gathered throughout the templates
-	  rendering process.
-	  - Moved the process=@* methods to the doc object (this increases
-	  the cohesion).
-	- Adjusted the current documentation artifacts for the changes (@object
-	  -> @class where applicable).
-
-
-	- Renamed the existing object.html.tmpl to class.html.tmpl and
-	  fix it to reflect class features. Providing an object-only
-	  template remains to be done.
-	- Added an experimental gathering facility for part objects,
-	  relative to a given entity object. It returns a [dict] which
-	  allows to reuse the parts gathered throughout the templates
-	  rendering process.
-	  - Moved the process=@* methods to the doc object (this increases
-	  the cohesion).
-	- Adjusted the current documentation artifacts for the changes (@object
-	  -> @class where applicable).
-
-2010-08-30  Gustaf A. Neumann  
-
-
-	- fixed test with UnknownClass in xotcl/tests/testx.xotcl
-
-
-	- update generated file (containing new names)
-
-
-	- added untracked file
-
-
-	- scripted "info slotobjects" to return only objects of class ::nx::Slot
-
-2010-08-30  Gustaf Neumann  
-
-
-	- added test/subcmd.tcl
-
-
-	- updated TODO
-
-
-	- added tests/subcmd.tcl
-
-
-	- factored out DispatchUnknownMethod()
-	- added flag XOTCL_CM_NO_OBJECT_METHOD to ObjectDispatch() and
-	  friends
-	- added tests/subcmd.tcl
-	- added methods "defaultmethod" and "unknown" to ::nx::EnsembleObject
-	(together with a set of helper methods to provide user-friendly
-	information)
-
-
-	- removed some deubug output
-
-2010-08-29  Gustaf Neumann  
-
-
-	- added class ::nx::EnsembleObject
-
-
-	- updated todo
-
-
-	- backported fix for xotcl 1.6.6 reported by kristoffer lawsow,
-	  which helps just partly here
-	- extended regression test
-
-
-	  * Fixed bug in filters reported by Kristoffer Lawson. When a filter
-	chain reaches its end without finding the invoked method, the unknown
-	state was not resetted correctly and affected method invocations in the
-	filter after "next".
-
-2010-08-28  Gustaf Neumann  
-
-
-	- fix syntax of last commit
-
-
-	- simplified "info is"
-
-
-	- fix requiredness of last argument in parametercheck
-	- return "object" for "info method type ...." when method is an
-	  object.
-	- return valid creation command in "info method definition ...."
-	  when method is an object.
-	- extend regression test
-
-
-	- fix requiredness of last argument of objectproperty
-
-2010-08-27  ssoberni  
-
-
-	Removed some print statements and comments
-
-
-	  - Fixed a relict of switching from ::nx::core::* to ::nsf::*.
-	  Removing the *::unsetUnknowArgs script fragment from proc
-	  bodies assumed 29 characters rather than 24 characters. This
-	  left proc bodies amputated when e.g. retrieved through [info
-	  method definition] in the presence of unknown (non-initialised)
-	  proc-local variables.
-	- Corrected the submethod definition of Object->info()->is(): It did
-	not check for the existence of the optional trailing parameter and so
-	info()->is() barfed.
-
-2010-08-26  Gustaf A. Neumann  
-
-
-	- eliminated "info classparent" and "info classchildren"
-	- added tests to xotcl/tests/testx.xotcl to assure equivalence
-
-
-	- changed resolve_method_path to __resolve_method_path and made it
-	  protected
-
-
-	- reanimated 5 tests in tests/destroytest.tcl
-
-
-	- reanimated 5 tests in xotcl/tests/testx.xotcl
-
-
-	- Changed handling of "child objects": now, they are shown by
-	  default.
-	- At the same time, the subobject "slot" was made protected to
-	  avoid its listing per default in "info methods"
-	- unified slot parent-object creation handling
-	- changed XOTcl info to new interface
-
-
-	- some simplifications
-
-
-	- fix capitalization
-
-2010-08-25  Gustaf Neumann  
-
-
-	- fixed "info methods" and added "-methodtype all" for setting
-	  class-only
-
-2010-08-25  Gustaf A. Neumann  
-
-
-	- changed info to new interface (partly done for nx, migration for
-	  xotcl to be done)
-
-2010-08-25  ssoberni  
-
-
-	- Started separating the documentation into four documentation
-	  projects, each with its own documentation artifact: nsf
-	  (predefined.tcl), nsl/nx (nx.tcl), xotcl (xotcl2.tcl),
-	  libraries (several?).
-	- Removed documentation blocks from gentclAPI.decls
-	- Added default namespace resolution for documentation entities.
-	  @project and @package can now specify a default namespace which
-	  is applied to all relative (not fully qualified) entity names.
-	  This avoids the redundant writing of longish qualified entity
-	  names. As a @project may contain several @packages, multiple
-	  default namespaces can be specified.
-	- Added a distinct @class entity family.
-	- @project and @package can now trace the creation of specified
-	  part entities (@class, @object, @command) to be structurally
-	  linked to them.
-	- Fixed search box support for @command views
-	- Excluded template files from output directories
-
-2010-08-25  Gustaf A. Neumann  
-
-
-	- added object info methods mixinguard, mixinclasses to
-	  objectInfoMethod
-	- added class info methods mixinguard, mixinclasses to
-	  classInfoMethod
-	- built a temporary solution for dispatcher "mixin", since
-	  forward mangles args
-	- nx: we have now "obj info mixin guard name" instead of "obj
-	  info filter -guard name"
-	- nx: we have now "obj info mixin classes ...." instead of "obj
-	  info filter ...."
-	- updated migration guide
-
-2010-08-24  Gustaf A. Neumann  
-
-
-	- started new interface bundles, objectInfoMethod and
-	  classInfoMethod for using new infrastructure
-	- added object info methods filterguard, filtermethods, vars to
-	  objectInfoMethod
-	- added class info methods filterguard, filtermethods to
-	  classInfoMethod
-	- built a temporary solution for dispatcher "filter", since
-	  forward mangles args
-	- nx: we have now "obj info filter guard name" instead of "obj
-	  info filter -guard name"
-	- nx: we have now "obj info filter methods ...." instead of "obj info
-	  filter ...."
-
-
-	- added option "-returns" to Class.method
-	- added subcmd to method/object method in nx
-	- delete class methods in freeAllXOTclObjectsAndClasses()
-	  explicitly to handle potential double-deletes
-	- extended regression test for subcmds
-
-
-	- implemented "object-methods-only" as alternative for prefix for
-	  invoke "object as a method"
-	- added option "-returns" to Object.method
-
-
-	- use prefix sub= for methods invoked on "object as method"
-	- change further instances of "my connection" to "[self]::connection"
-	  in xo*comm*
-
-
-	- changed requireNamespace to "require namespace" in lib/make.tcl
-
-2010-08-23  Gustaf A. Neumann  
-
-
-	- implemented experimental delegating version of "object as method"
-	  that keeps the original self.
-
-2010-08-22  Gustaf A. Neumann  
-
-
-	- updated todo list
-
-
-	- deactivated "abstract"
-
-
-	- replaced "obj|cls mixinguard name cond" by "obj|cls mixin guard
-	  name cond"
-	- replaced "obj|cls info mixinguard name" by "obj|cls info mixin
-	  -guard name"
-	- replaced "cls object info mixinguard name" by "cls object info
-	  mixin -guard name"
-	- removed XOTclObjInfoMixinguardMethod()
-	- removed XOTclClassInfoMixinguardMethod()
-	- extended regression test
-	- updated migration guide
-
-
-	- replaced "obj|cls filterguard name cond" by "obj|cls filter
-	  guard name cond"
-	- replaced "obj|cls info filterguard name" by "obj|cls info
-	  filter -guard name"
-	- replaced "cls object info filterguard name" by "cls object info
-	  filter -guard name"
-	- removed XOTclObjInfoFilterguardMethod()
-	- removed XOTclClassInfoFilterguardMethod()
-	- extended regression test
-	- updated migration guide
-
-
-	- use now class-only for all methods methods of meta-classes.
-	  Methods of meta-classes are intended to be applied on classes,
-	  one should not change this via per-object mixins.
-	- respect class-only in "info callable methods|method"
-	- extended regression test
-	- provided relation name "object-filter" to slot filter.
-
-2010-08-21  Gustaf Neumann  
-
-
-	- updated TODO
-
-
-	- experimental method-property "class-only": this allows to make
-	  object save against per-object mixins of meta-classes. the flag
-	  is only used in the mixin-resolver
-	- used for the time being in nx only for Class.info, but would apply as
-	  well for methods defined on both Object and Class.
-
-2010-08-20  Gustaf Neumann  
-
-
-	- changed __invalidateobjectparameter from a method of class to
-	  framework primitiv ::nsf::invalidateobjectparameter
-
-2010-08-20  ssoberni  
-
-
-	Fixed some more [info callable] occurrences
-
-2010-08-20  Gustaf A. Neumann  
-
-
-	- removed XOTCL_METHODTYPE_OBJECT from XOTCL_METHODTYPE_BUILTIN
-	- default methodtype returns now everything, which is a true
-	  method (except objects)
-	- methodtype -all includes objects
-	- the object "slot" does not appear now in the method listing per
-	  default for classes having slots
-
-
-	- removed methods object-mixin and object-filter from the
-	  interface. (Caused some duplication of logic in the method
-	  "object") _ added option noforwarder to RelationSlots
-	- some minor cleanup
-
-2010-08-20  ssoberni  
-
-
-	- Accomplished major rewrite and cleanup of the comment block
-	  parser. The revised design allows us to express parsing states
-	  (context, description, part) as well as their substates
-	  reflecting the comment line processed (tag, text, space)
-	  directly. The design follows a METHODS-FOR-STATES strategy.
-	  Also, the parsing logic is now self-contained and is not
-	  interwoven with the class hierarchy documentation entities
-	  anymore (i.e., the former process() method of Entity and its
-	  subclasses).
-	- The modal/reactive design of the comment block parser has been
-	  streamlined: There is a CommentBlockParser class which acts as
-	  the event source. The actual parsing is achieved by the
-	  mixin-refined entity objects by reacting upon the parsing
-	  events (process, parse, next).
-	- Adjusted the tests in doc.tcl accordingly.
-	- Changed occurrences of [info callable] to reflect the latest changes.
-
-2010-08-20  Gustaf A. Neumann  
-
-
-	- made slot optimizer more robust
-
-2010-08-19  Gustaf A. Neumann  
-
-
-	- checked saftey of Class.method, Class.alias, Class.setter,
-	  Class.forward
-	- made Class.filterguard, Class.mixinguard, Class.attribute
-	  robust against per-object mixins from meta-classes
-	- fixed mixin/filter delete methods with guarded operations
-	- extended regression test
-	- all methods defined on both, Object and Class are now safe in respect
-	  to per-object mixins with meta-classes
-
-
-	- made Class.info, Class.mixin, Class.filter robust against
-	  per-object mixins from meta-classes
-	- extended regression test
-
-
-	- changed "info method filter ...." into "info callable filter
-	  ..."
-	- fixed "o info callable method" in some cases with mixins
-	- extended regression test
-	- updated migration guide
-
-
-	- renamed "info method name ..." into "info method handle ...",
-	  since it returned already the handle
-	- renamed ListMethodName() to ListMethodHandle()
-	- changed output of "info callable -which ..." from definition to
-	  method handle
-	- renamed "info callable -which ..." into "info callable method
-	  ..."
-	- updated regression test to reflect the changes
-
-2010-08-18  Gustaf A. Neumann  
-
-
-	- removed method "filtersearch" from nx.tcl
-	- added "obj info method filter methodName" to nx
-	- updated xotcl.2 to use new filtersearch imprementation
-	- updated migration guide
-
-
-	- removed method "autoname" from nx.tcl
-	- added "method require autoname"
-	- added "method require exists"
-
-
-	- nsf: provided scripted support for "require/provide methods"
-	- nx: new method ":require namespace" ":require method" "require
-	  object method"
-	- added regression test method-require
-	- removed requireNamespace from nx.tcl (still exists in xotcl)
-	- replaced "requireNamespace" by "require namespace" in nx
-	  regression tests
-	- updated migration guide
-
-
-	- upgraded to TEA 3.9
-
-
-	- fixed typo
-
-2010-08-17  Gustaf A. Neumann  
-
-
-	- implemented return value checker (for scripted and
-	  c-implemented methods)
-	- additional methodproperty returns (for registering a return
-	  value checker)
-	- support for incrementally adding stuff to paramDefs (such as
-	  slotobj or return value)
-	- new c-function ParamDefsNew()
-	- added regression test for return value checker
-
-2010-08-16  Gustaf A. Neumann  
-
-
-	- commented out XOTCL_CMD_NOT_FOUND, since it seems to be
-	  obsolete by now
-	- extended regression test to avoid CallDirectly on dealloc (the last
-	  place, where XOTCL_CMD_NOT_FOUND was used)
-
-
-	- implemented parameter option "allowempty"
-	- extended regression test
-
-
-	- make one more instproc context explicit
-
-
-	- make capitalization in comments consistent
-
-
-	- make resolving context explicit in migration guide
-
-2010-08-15  Gustaf A. Neumann  
-
-
-	- added object-parameter sections to migration guide
-
-2010-08-13  Gustaf Neumann  
-
-
-	- use testfile name as additional prefix in test reports
-
-2010-08-13  Gustaf A. Neumann  
-
-
-	- sketch next migratin guide examples
-
-
-	- continue work on migration guide
-
-
-	- replaced several occurrences of "eval" in nx.tcl and xotcl2.tcl
-
-
-	- Implemented "interp alias" support for classes. In some cases.
-	  interp-aliased classes worked already without additional code,
-	  but e.g. in "... -superclass C ..." it failed. Without this
-	  feature, one could not reuse a class with a different
-	  namespace, unless it was explicitely "namespace exported" in
-	  the source. The problem was the implementation of
-	  "::nx::Attribute", which should not be exported in nx (most
-	  people do a "namespace import ::nx::*") because there is no
-	  need to do so, but ::xotcl::Attribute should reuse it
-	- without subclassing). .... However, we still seem to have a problem,
-	when the interp-aliased Class is exported and imported to a different
-	namespace.
-	- removed definition of slots from nx, changed regression tests
-	 examples to to ::attribute instead of -slots
-
-
-	- adjusted path in documentation system for nx/nx.tcl
-
-
-	- moved all exports of nsf to predefined.tcl
-	- made imports in xotcl2 and nx explicit
-
-2010-08-12  Gustaf A. Neumann  
-
-
-	- updated to TEA 3.8
-
-
-	- some updates
-
-
-	- made the "next scripting laguage" a own, loadable tcl package
-	  (currently named nx, name is subject of change)
-	- predefined.tcl is now pretty minimal.
-
-
-	- fix further pathnames
-
-
-	- refactor make file to better separate xotcl from the rest
-
-2010-08-11  Gustaf A. Neumann  
-
-
-	- changed more self/current
-
-
-	- added interp alias "nx::self" to "nx::core::current method"
-	- changed "current proc" into "current method" in scripts and tests
-
-
-	- Introduced $xotcl_target_doc_dir for generated xotcl
-	  documentation. Generate xotcl documentation in this directory.
-	- moved more (hopefully all) xotcl doc components into library/xotcl/doc
-
-2010-08-10  Gustaf A. Neumann  
-
-
-	- updated migration guide, added section for callstack
-	  introspection
-	- updated serializer for new names
-
-
-	- xotcl.c:
-	  * new function GetObjectFromNsName() to obtail object or class
-	  from a fully qualified namespace name used in method handles
-	  (such as e.g. ::nx::core::classes::X)
-	  * new function MethodHandleObj() to return a tcl_obj containing
-	  the methodhandle
-	  * removed obsolete method getFullProcQualifier()
-	  * info methods obtain now object and/or class from fully
-	  qualified method names (method handles) if possible
-	  * return message handles in "current next", "current filterreg"
-	  and "... info filter ... -order", which can be used in "info
-	  method .... " for obtaining more details.
-	  * change all occurrances of "self" in next regression tests to
-	  current.
-	- xotcl2.tcl
-	  * implemented "self" as a proc to provide extensibility and full
-	  backward compatibilty; this opens opportunity to replace now
-	  e.g. "self proc" by "current method", etc.
-	  * provide full compatibility for "self next", "self filterreg"
-	  and "... info filter ... -order", returning old-style multiword
-	  method handles (such as e.g. "::C instproc foo")
-	- changed "next" to current in documentation framework and templates
-
-
-	- iterated through doc.tcl-TODOs
-	- changed CheckVarName to allow array names like e.g. a(::b)
-	- extended regression test
-	- fixed serializer to handle subobjects of explicitely exported objects
-
-2010-08-09  Gustaf A. Neumann  
-
-
-	- deactivated __next for now
-	- iterated thought doc.tcl-TODOs
-	- fixed path in invocation of xotcl doc script
-
-
-	- moved slottest to library/xotcl
-	- added new Makefile target test-xotcl
-	- finished test migration for now
-
-
-	- moved some more xotcl specfic tests to library/xotcl
-	- transformed forwardtest from xotcl to next
-
-2010-08-08  Gustaf A. Neumann  
-
-
-	- created own directory structure xotcl under library containing
-	  doc, tests, apps, lib etc. and moved obvious content here.
-	- adjusted regression test and old documentation system to work with
-	  new structure
-
-
-	- added redefine-protected to the object template
-	- added methodtype to object template
-	- some documentation updates
-	- some indentation/spacing improvements on xotcl.c
-	- let ".... info method .... METHOD" return values, when METHOD
-	  contains namespace prefix. This can be used to obtain the
-	  parmeter definitions from nx::core
-	- get forward definition from the original command
-
-2010-08-07  Gustaf A. Neumann  
-
-
-	- added @properties and has_property to the documentation
-	  classes. Current primary purpose: define, which methods are
-	  internally-called
-	- added interanlly-called to the method object template
-
-2010-08-06  Gustaf A. Neumann  
-
-
-	- renamed mk_predefined.xotcl -> mk_predefined.tcl
-	- renamed predefined.xotcl -> predefined.tcl
-	- additional subcommand "info method parametersyntax
-	  " returns parameters in a syntax similar to the tcl
-	  man pages
-	- added ability to pass syntax for forwarded methods via set
-	  ::nx::core::signature(::nx::Object-method-forward)
-	  (experimental)
-	- fixed documentation system to work with actual version
-	- added undocumented methods for quality control in documentation
-	- added checks for documented, but unavailable methods in
-	  documentation
-	- added comparison of documented parameters vs. actual parameters in
-	  documentation
-
-2010-08-05  Gustaf A. Neumann  
-
-
-	- changed "Serializer.xotcl" to "serializer.tcl" (package name
-	  from xotcl::serializer to nx::serializer)
-	- added stub for xotcl::serializer for backward compatibility
-	- changed serializer to new namespaces
-	- renamed xotcl.tcl to xotcl2.tcl
-	- added proc finalize to xotcl2.tcl
-
-2010-08-04  Gustaf A. Neumann  
-
-
-	- changed stubs from xotcl to nx
-	- first part of openacs updates
-
-
-	- changed stubs from xotcl to nx
-
-
-	- changed pkgIndex reference for .so file from next ot nx
-
-
-	- added section about registering filters and mixin to migration
-	  guide
-	- moved and transformed to next tests/mixinoftest.xotcl ->
-	  tests/mixinoftest.tcl
-	- moved and transformed to next tests/object-system.xotcl ->
-	  tests/object-system.tcl
-
-
-	- added section abput registration of mixins and filters
-
-
-	- added missing file
-
-
-	- changed prefix
-
-2010-08-03  Gustaf Neumann  
-
-
-	- changed "require next" to "... nx"
-	- changed "require next::test" to "... nx::test"
-	- changed "require next::doc" to "... nx::doc"
-
-2010-08-03  Gustaf A. Neumann  
-
-
-	- update of migration guide
-
-2010-08-02  Gustaf A. Neumann  
-
-
-	- minor documentation updates
-
-
-	- renamed tests/method-modifiers.xotcl to
-	  tests/method-modifiers.tcl
-	- changed "require xotcl::test" to "... next::test"
-
-
-	- rename xotcl1.xotcl to xotcl.tcl
-	- some cleanup (version variables, etc.) in xotcl.tcl
-
-
-	- get rid of ":::xotcl::use"
-	- renamed tests based on next from .xotcl to .tcl
-	- extended regression tests
-	- use namespace ::nx::test instead of ::xotcl::test
-	- use namespace ::nx::serializer instead of ::xotcl::serializer
-
-
-	- added minimal stack example
-
-
-	- Implemented "Class info parameter" in Tcl, aliases for xotcl. Now
-	  both definition of parameters and setting of __parameter are in Tcl.
-
-2010-08-01  Gustaf A. Neumann  
-
-
-	- generalized comment removal code in mk_predefined
-
-
-	- change mk_predefined to handle longish comments in predefined.xotcl
-	  (due to documentation system)
-
-
-	- minor typographical changes
-
-
-	- cover different kind of methods and method protection in mirgration
-	  guide
-
-2010-07-31  Gustaf A. Neumann  
-
-
-	- changed one more int to size_t
-
-
-	- use size_t where appropriate
-	- added notnull annotations
-
-2010-07-30  Gustaf Neumann  
-
-
-	- provide error messages for [objectproperty ... type ...]
-	- replace 0 by NULL in calls to GetClassFromObj()
-	- extended regression test
-
-
-	- reanimated "info vars" to show locals in eval method
-
-
-	- removed "[o exists varname]" from next scripting language
-
-2010-07-30  Gustaf A. Neumann  
-
-
-	- updated migration guide
-	- updated TODO
-
-
-	- copied infoObjectMethod and infoClassMethod decls as comments to
-	  xotcl.c, aligned order of method definitions
-
-2010-07-29  Gustaf Neumann  
-
-
-	- renamed varresolutiontest to .tcl
-	- updated TODO
-
-
-	- new function CheckVarName() to check for colons in instance
-	  variable names
-	- unified name-checking in "nx::var import|exists|set"
-	- extended regression test
-
-2010-07-29  ssoberni  
-
-
-	- I created a first draft of the nx language manual, based on the new
-	next::doc facilities. It is still incomplete, but demonstrates the
-	use of next::doc for authoring code documentation.
-	 To re-create the language reference (which is not yet integrated into
-	 the build environment), run:
-	 ./nextsh tests/doc.xotcl
-	 You will then find an output directory "NextLanguageCore" in your
-	 /tmp/ directory.
-	- The next::doc comments which are sourced for generating the manual
-	 can be found in generic/gentclAPI.decls and
-	 generic/predefined.xotcl. I tried to add most comments to the
-	 former, as the complexity of the predefined script does not comfort
-	 documentation comments (and vice versa).
-	- Applied many fixes to the templates (based on the needs of the
-	 language reference)
-
-2010-07-29  Gustaf A. Neumann  
-
-
-	- migration guide overhaul
-
-
-	- define ensemble-like command for accessing instance variables
-	  ::nx::var set ... ::nx::var import ... ::nx::var exists ...
-
-2010-07-28  ssoberni  
-
-
-	Adding the interim logo
-
-
-	- Added a placeholder logo image, to replace the YUI one for the
-	  time being
-	- Provided for giving some version information at either the project or
-	  package level
-
-
-	- Fixed search box and autocompletion support (for packages and
-	  objects)
-	- I allow for selecting/deselecting structural features set
-	  "private" ("deprecated" remains to be done)
-	- I added the generation of links between documentation entities based
-	on {{...}} markers. Any marker (code as well as links) can now be
-	used in both description and parts sections.
-
-2010-07-27  ssoberni  
-
-
-	- Adding basic support for subcommands (a @subcommand part type;
-	  formerly @variant)
-	- Introducing comment reuse and cross-linkage along the class
-	  hierarchy upwards ("subclass of ...", showing inherited
-	  attributes and methods; using a @superclass attribute)
-	- Amending the documentation of @param and @return with "type"
-	  information (checkoptions, constraints, defaults)
-	- Showing both per-class and per-object methods
-	- I now allow for inline- and out-of-line (block) code snippets
-	  in the description sections, based on wiki-like {{{...}}}
-	  marker annotation (same as in scaladoc2).
-	- Adding support for newline representations in description
-	  sections (for a more convenient formatting).
-	- Some bugfixes (e.g., @object-method did not work outside of an
-	  initcmd)
-	- Started refactoring the entity tracing procedure (moving from
-	  [namespace import] resolution to mixin-based creation tracing)
-
-
-	- Adding basic support for subcommands (a @subcommand part type;
-	  formerly @variant)
-	- Introducing comment reuse and cross-linkage along the class
-	  hierarchy upwards ("subclass of ...", showing inherited
-	  attributes and methods; using a @superclass attribute)
-	- Amending the documentation of @param and @return with "type"
-	  information (checkoptions, constraints, defaults)
-	- Showing both per-class and per-object methods
-	- I now allow for inline- and out-of-line (block) code snippets
-	  in the description sections, based on wiki-like {{{...}}}
-	  marker annotation (same as in scaladoc2).
-	- Adding support for newline representations in description
-	  sections (for a more convenient formatting).
-	- Some bugfixes (e.g., @object-method did not work outside of an
-	  initcmd)
-	- Started refactoring the entity tracing procedure (moving from
-	  [namespace import] resolution to mixin-based creation tracing)
-
-2010-07-26  Gustaf Neumann  
-
-
-	- added to git
-
-2010-07-22  Gustaf Neumann  
-
-
-	- don't allow names with namespace separators or colon prefix in
-	  importvar/instvar
-	- provide error message, when method (proc scope) is not found
-	- fix array boundaries for looping on variables in
-	  importvar/instvar
-	- extended regression test
-
-2010-06-23  Gustaf A. Neumann  
-
-
-	- provide spacing in conditional assignments
-
-
-	- fix cleanup of subclasses of metaclasses, keeping metaclass property
-	  (thanks to Stefan for digging into this)
-
-2010-06-18  ssoberni  
-
-
-	 - Added a first set of documentation templates, based on the the
-	  TemplateData engine and the YUI doc styles available from
-	  http://yuilibrary.com/downloads/ (see
-	  library/lib/doc-assets/*.tmpl.html)
-	- Added a @project entity class, which will become the root
-	  concept in a documentation hierarchy. For now, it only serves
-	  for some auxiliary purposes when processing the doc templates.
-	- Continued documenting the next::doc package for testing purposes.
-
-2010-06-16  ssoberni  
-
-
-	 - I made sure that the existing HtmlRenderer infrastructure
-	  remains functional
-	- Added a simplistic templating machinery (see TemplateData), based on
-	cascading [subst] calls in per-object evals (assuming the nonleaf
-	mode) and a basic templating instruction set (i.e., "let", "for", as
-	well as "?" representing if-elseif-else blocks and "include" for
-	composing template fragments). This will help me to transpose the YUI
-	doc templates more easily (and split them up into template fragments).
-	Also, it will allow future documentation writers to provide custom
-	templates or modifications of existing ones. This was somehow inspired
-	by Kristoffer Lawson "templating engine" in his Spindle web framework,
-	which is solely based on Tcl namespaces, however.
-
-2010-06-14  ssoberni  
-
-
-	- Removed @attribute parts and realise them as @param parts which
-	  are parts of @object parts
-	- Renamed PartAttribute->get_part() to require_part()
-	- The line scanner now stores all comment lines as list by using
-	[split] at an early stage to improve the robustness when line strings
-	are fed to list-specific commands.
-
-
-	 - Introduced a PartClass meta-class which seconds Part and its
-	  subclasses (for a uniform id generation etc.)
-	- Removed the kludge around new_from_attribute(), there is now a
-	  canonical new().
-	- "scope" turned into a property of PartAttributes and, as such,
-	  of the association (slot) objects managing parts. this more
-	  closely resembles the idea of per-class and per-object
-	  interfaces. in turn, parts now contain a navigatable
-	  association to their managing part attributes (e.g., to resolve
-	  their scope).
-	- Adding some basic exception-catching infrastructure too better
-	  differentiate between error conditions (style violation,
-	  invalid tags, arbitrary errors emerging from the parsing
-	  machinery). Adjusting and extending the test suite.
-	- Simplified/generalised the parser's tag dispatcher; also, there
-	  is no a general @doc tag which allows to add documentation
-	  lines as tagged parts, rather than a distinct doc block
-	- Removed the tagged_entity mechanisms and per-tag forwards on
-	  EntityClass
-	- Documentation blocks may now contain intermediate space lines
-	  (by adding a space->text transition to the parsing spec).
-	- Adding basic support to trace script sources from [package req]
-	  calls, needs to be polished and refactored
-
-2010-06-05  Gustaf A. Neumann  
-
-
-	- provide explicit error message stating the "substdefault" is
-	  not allowed for setters
-	- don't add "substdefault" a second time, in case it was already
-	  used
-	- never add "substdefault" to methodopts
-	- extended regression test
-
-2010-05-31  ssoberni  
-
-
-	- Renamed EntityFactory to EntityClass
-	- Introduced PartAttribute for managing entity-part associations,
-	  they also protect against duplicate entries
-	- Added NextAttribute (though it should fuse with parameter
-	  entities in the end)
-	- Completed basic support for embedded (initcmd) and freestanding
-	  (script): This multi-stage processing introduces a precedence
-	  order between the commenting levels (script < initcmd < method
-	  bodies).
-	- Renamed most entity classes using their tag equivalent
-	  (@object, ...)
-	- Introduced offset feature for the comment line scanner (offsets
-	  are used to select embedded comment blocks, e.g., in initcmds
-	  or method bodies)
-	- Parsing of arbitrary scripts is now realised in a child interp
-	- Introduced qualified entity names (e.g., @attribute Bar#a1) and
-	  per-object scope (through a scope prefix in tags, e.g.,
-	  @object-method)
-	- Did some cleanup and extended the test suite
-
-2010-05-25  Gustaf A. Neumann  
-
-
-	- minor updates
-
-
-	- fix wording in documentation
-
-
-	- update migration guide from XOTcl 2 to Next
-
-
-	- fix wording in documentation
-
-2010-05-21  ssoberni  
-
-
-	Finished and tested the rewrite of the scanning&parsing front-end for
-	the doc processor. Remains to be integrated with the intermediate @
-	notation (basics are already working)
-
-2010-05-12  ssoberni  
-
-
-	  Upgrading to the ::nx::* namespace renaming
-
-
-	tests/doc.xotcl
-
-2010-05-03  Gustaf A. Neumann  
-
-
-	- changed prefix from "::next::" to "::nx"
-
-2010-04-08  Gustaf A. Neumann  
-
-
-	- updated Changelog
-	- added Annouce files
-
-
-	- updated changelog
-	- deactivated assertions for release
-
-2010-04-07  Gustaf A. Neumann  
-
-
-	- namespace changes: mostly due to marketing reasons, the naming of the
-	top-level namespace changed from "xotcl2" to "next". reasons: xotcl
-	is hard to pronounce for beginners, sounds like "exotic" (but who wants
-	to program in an exotic language) has a certain stigma of strange
-	namings (e.g. "instproc"), is seen as a precursor of tcloo, the
-	top-level namespace ::xotcl2:: is not very nice either, the separation
-	of framework and language is not clear.
-	 We have now:
-	 ::next (the new object system, former ::xotcl2)
-	 ::next::core (framework, primitives)
-	 ::xotcl (former xotcl1)
-	- "::xotcl::use" no longer needed, use Tcl standard mechanisms instead
-	(e.g. "package req next"; "package req XOTcl", "namespace import
-	::next*")
-
-2010-04-06  Gustaf A. Neumann  
-
-
-	- first checkin of doc-tools
-
-2010-04-03  Gustaf A. Neumann  
-
-
-	- undid part of last commit
-
-2010-04-02  Gustaf A. Neumann  
-
-
-	- xotcl 1.6.6: initialize value
-
-
-	- backported part of the deletion logic of xotcl 2.0 to 1.6.6 to avoid
-	  a potential crash with volatile objects
-
-2010-03-31  Gustaf Neumann  
-
-
-	- ::xotcl:.configure: added option "keepinitcmd" to flag, whether or
-	  not initcmds should be kept as instance variables
-
-
-	- remove unneeded attribute for method setter
-
-2010-03-29  Gustaf A. Neumann  
-
-
-	- Allow to speficy last arg of objectparameter to replace scripted init
-	block. The redefinition of objectparameter allows us to specify
-	whether no/some/classical/altered/additional arguments should be
-	allowed during object creation
-
-
-	- Handle cases, where objects/classes are created with the name of
-	preexiting namespaces. Cases, where pre-exisitng namespaces contained
-	classes/objects lead to problems, since xotcl did not see the
-	object/classes of the pre-exiting namespace as children of the new
-	object/class.
-
-2010-03-27  Gustaf A. Neumann  
-
-
-	- backport change from 2.0 to 1.6.6 concerning cylcic dependencies
-	  through namespace imported commands
-
-
-	- fix a potential ordering problem with cyclic dependencies created by
-	  namespace import commands
-
-2010-03-26  Gustaf Neumann  
-
-
-	- fix 64bit problem
-
-
-	- fixed 64bit problem
-
-2010-03-26  Gustaf A. Neumann  
-
-
-	- change library/lib/make.xotcl to xotcl2
-
-
-	- xotcl 1.6.6: backport of memory fixes from xotcl 2.0
-
-
-	- add check for optional match arguments in tcl stub generator
-	- fix potential memory leaks all "definitely losts" from valgrind
-	  (except 24 bytes from Tcl_PkgRequire) gone
-
-2010-03-25  Gustaf A. Neumann  
-
-
-	- minor leak cleanup
-
-
-	- make valgrind + system malloc (instead of tcl malloc) run cleanly
-
-2010-03-23  Gustaf A. Neumann  
-
-
-	- replace hash-lookup in namespace in ObjectHasChildren() by
-	  pointer lookup to reduce namespace dependency.
-	- fix memcopy size
-
-2010-03-22  Gustaf A. Neumann  
-
-
-	- xotcl 1.6.6: one more cases for the packaging, where we want to load
-	  xotcl1 not 2
-
-
-	- xotcl 1.6.6: more cases for the regression test, where we want to
-	  load xotcl1 not 2
-
-
-	- xotcl 1.6.6: make sure to load always xotcl 1 versions when
-	  needed
-	- xotcl 1.6.6: make compilation clean when compiled with assertions on
-
-
-	- remove "buffer" from compiled var structures
-	- remove xotcl1 dependency from aol-tcl
-	- removed conditional var table creation by assertion
-	- make clean compile with assertions turned on
-
-2010-03-19  Gustaf A. Neumann  
-
-
-	- add verbosity for varname copying
-
-2010-03-15  Gustaf A. Neumann  
-
-
-	- rename CallStackPush() to CscInit()
-	- rename CallStackPop() to CscFinish()
-
-
-	- get rid of reminder of tcl 8.4 compatiblity and remove range of
-	ifdefs, such as PRE85, FORWARD_COMPATIBLE, TCL85STACK,
-	CANONICAL_ARGS, USE_COMPILED_VAR_RESOLVER
-
-
-	- removed EXPERIMENTAL_CMD_RESOLVER
-
-2010-03-15  Gustaf A. Neumann  
-
-
-	- handling of minimal object systems. For example, the following three
-	  command create an object system around ::object and ::class ...
-	 ::xotcl::createobjectsystem ::object ::class
-	 ::xotcl::alias ::class + ::xotcl::cmd::Class::create
-	 ::xotcl::alias ::object
-	- ::xotcl::cmd::Object::destroy
-	 ... where no internal message dispatch are used (e.g. no
-	 constructor "init", and where just two methods ("+" and "-")
-	 are used to create and destroy objects
-	- extended regression test
-
-2010-03-14  Gustaf A. Neumann  
-
-
-	- provide prefix for internally called methods to distinguish between
-	  methods called on objects or classes
-
-2010-03-13  Gustaf A. Neumann  
-
-
-	- eliminated XOTE___UNKNOWN
-	- renamed __unknown to requireobject
-
-
-	- eliminated XOTE_UNKNOWN
-
-
-	- eliminated XOTE_RESIDUALARGS
-
-
-	- renamed MethodObj() to XOTclMethodObj() (it is an exported
-	  symbol)
-	- eliminated XOTE_MOVE
-
-2010-03-13  Gustaf Neumann  
-
-
-	- replaced hard-coded method calls for XOTE_DEFAULTMETHOD, XOTE_INIT,
-	  XOTE_OBJECTPARAMETER with MethodObj()
-
-2010-03-12  Gustaf A. Neumann  
-
-
-	- created new functions: ObjectSystemFree(), ObjectSystemAdd(),
-	ObjectSystemsCheckSystemMethod(), ObjectSystemsCleanup(),
-	GetObjectSystem(), CallDirectly() for better separation of systems. We
-	keep track which essential system methods are defined and which which
-	methods are potentially overloaded.
-
-2010-03-11  Gustaf A. Neumann  
-
-
-	- move refcount fixing logic for exit from higher stackframes to new
-	  function: finalObjectDeletion()
-
-
-	- first part of allowing arbitrary named internally called methods.
-
-
-	- fix last issue, with freeing objects, when exit happens from higher
-	  stack frames
-
-2010-03-10  Gustaf A. Neumann  
-
-
-	- block call-stack deletes during XOTCL_EXITHANDLER_ON_SOFT_DESTROY;
-	however, this seems to create a small leak during exit (revant for
-	threads); so currently, debug still turned on
-
-2010-03-09  Gustaf A. Neumann  
-
-
-	- replace all CanInvokeDirectly() by InvokeMethodObj()
-
-
-	- remove some more obsolete RCS Ids
-	- call Tcl_Objs "Obj", not "Object"
-
-
-	- remove filter deactivation to a later point in time (should finally
-	  be before freeAllXOTclObjectsAndClasses())
-
-
-	- deactivate filters in finialize
-	- new method InvokeMethodObj() to replace finally CanInvokeDirectly()
-
-2010-03-08  Gustaf A. Neumann  
-
-
-	- one more change for handling expat dirs n version 1.6.6 (fallback to
-	  bundle)
-
-
-	- handling OBJECT-frames in CallStackPopAll() (for handling exit with
-	  active stack frames)
-
-
-	- one more change for handling expat dirs (fallback to bundle)
-
-
-	- call all truely essential methods directly if possible
-	(Object.destroy, Class.alloc, Class.dealloc, Class.create) The basics
-	of XOTcl can work now also in cases, when these are not defined as
-	methods.
-
-
-	- reduce verbosity
-
-
-	-minor cleanup
-
-
-	- make XOTcl_FrameDecls transparent (use variable declarations in
-	  place instead of the macro)
-	- fix variable shadowing bug in error handling (could cause crashes
-	  when initcmd lead to errors)
-
-
-	- define RecreateObject() for internal call via diect invocation
-	- doCleanup is just called by recreate; merge it into
-	XOTclCRecreateMethod. Is method cleanup necessary? is recreate not
-	sufficient?
-
-2010-03-07  Gustaf Neumann  
-
-
-	- call c-implemented methods directly for XOTE_RECREATE as well
-	  (otherwise, create is faster than recreate)
-
-2010-03-06  Gustaf A. Neumann  
-
-
-	- added stefan's expat library linking extension
-
-
-	- remove unneeded files from repository
-
-
-	- get rid of misleading RCS: lines
-	- passing --prefix to subdirs
-	- regenerated configure files
-
-
-	- added Stefan's expat linking addition for debian
-
-
-	- removed redundant section in configure.in (1.6.6)
-
-
-	- updating tcl.m4 in version 1.6.6 to the actual verison (TEA 3.7)
-
-
-	- removed redundant part from configure.in
-	- regenerated configure
-
-2010-03-05  Gustaf A. Neumann  
-
-
-	- call c-implemented methods directly, when this is safe
-	  (implemented for XOTE_ALLOC, XOTE_CLEANUP, XOTE_CONFIGURE,
-	  XOTE_CREATE, XOTE_DEALLOC); this improves create/destroy speed
-	  by up to 15%
-	- allocate namespaces for objects less eager
-	- make nameing more consistent (change newObj into newObject when
-	  variable is an xotcl object)
-
-2010-03-04  Gustaf A. Neumann  
-
-
-	- fixing "-parameter" with empty content
-	- more variable naming cleanup
-	- fix line breaking in serializer for "exportedObjects"
-
-2010-03-02  Gustaf A. Neumann  
-
-
-	- make sure a childobject ::slot exists after calling "-parameter"
-
-
-	- fix syntax in predefined
-	- let serializer call "init" of attributes, even if it is protected
-
-
-	- use a more recent version of unix/tclAppInit.c
-
-
-	- move pre85 stack specific code into xotclStack.c
-
-
-	- change frametype in "info frame" form bitpattern to symbolic names
-
-
-	- fixed wrong name for per-object filter in RelationSlot
-	- fixed condition in filter-incovation to top-level frames
-	- added frametype to information returned by "info frame"
-
-2010-03-01  Gustaf A. Neumann  
-
-
-	- added an experimental "info frame" handler, which appends "object"
-	  and "class" pairs
-
-
-	- remove dependency from xotcl1 in handling of forwarders in
-	  method "copy"
-	- further cleanup using "CONST char *", improving on naming conventions
-
-
-	- further cleanup using "CONST char *"
-
-
-	- use "CONST char *" in generated interface and below
-
-2010-02-28  Gustaf A. Neumann  
-
-
-	- use "::xotcl::current" instead of "xotcl::self" in predefined
-
-
-	- defined "xotcl::current" as synonym for "::xotcl::self"
-	- new options for ::xotcl::current current object == current
-	  current method == current proc current callingmethod == current
-	  callingproc
-	- "self proc" and friends are for backward compatibility for
-	  xotcl1, "current method" and friends are for xotcl2
-	- namespace exported "::xotcl::current"
-
-
-	- minor cleanup (varresolution test and comment)
-
-
-	- updating tcl.m4 to the actual verison (TEA 3.7)
-
-
-	- removed obsolete generic/xotclAppInit.c
-	- changed loading method in xotclsh from Xotcl_Init() to
-	  Tcl_PkgRequire()
-
-
-	- enable compilation with assertion turned on (via NDEBUG)
-	- fix potentially uninitialized flags for ArgumentCheck()
-	- some further cleanup, tested with 32 bit under Mac OS X 10.6
-
-2010-02-26  Gustaf Neumann  
-
-
-	- keep variables defined from an CMETHOD frame local to this
-	  frame (e.g. initcmd, -nonleaf option, ...); previously
-	  variables without xotcl resolver prefix were defined globally
-	- fix regression test according to previous item
-	- generalize nonXotclObjectProcFrame() and rename it to
-	  activeProcFrame()^
-
-2010-02-25  Gustaf A. Neumann  
-
-
-	- working towards KEEP_VARS_IN_CMETHOD_FRAME
-
-2010-02-24  Gustaf A. Neumann  
-
-
-	- requireNameSpace:
-	  * fix potental crash in requireNameSpace in objscoped methods by
-	  swapping all vartable references in objscopes on stack to the
-	  vartable in the namespace, when it is created
-	- extending regression test
-
-2010-02-23  Gustaf A. Neumann  
-
-
-	- fix for logdir parameter (introduced 10 mins ago)
-
-
-	- renaming of instance variable specific primitiva for more
-	  constistency with ::xotcl::importvar:
-	 ::xotcl::exists -> ::xotcl::existsvar
-	 ::xotcl::setinstvar -> ::xotcl::setvar
-
-
-	- removed XOTclCreateClass() and XOTclDeleteClass(); both are identical
-	  with XOTclCreateObject() and XOTclDeleteObject()
-
-
-	- removed obsolete ::xotcl::configure option "cacheinterface"
-
-
-	- added option "-nonleaf" for method alias
-	- added introspection (for "info method definition") for "alias ...
-	  -nonleaf ..."
-
-
-	- XOTclCallStackFindLastInvocation(): return last scripted
-	  invocation
-	- use xotcl1 in webserver test to make rull regression test
-	  working
-	- make xotcl::use silent
-
-
-	- further naming cleanup
-
-
-	- some more minor cleanup
-
-
-	- cleanup in stack handlers (naming, arguments)
-
-
-	- initcmd: use for initcmds CMETHOD frames instead of OBJECT
-	  stack frames
-	- initcmd: skip parent-stack frame's objscope for initcmd
-	- changed hash-based lookup of children into a cmd-based lookup
-	- extended regression test
-
-
-	- call XOTclObject always "object" instead of "obj"
-
-2010-02-22  Gustaf A. Neumann  
-
-
-	- fixed namespace handling on stack for objects with namespaces
-	  (before, it was possible that a variable was created in an
-	  object's namespace without -objscope)
-	- as a consequence, ListChildren() had to be adjused, since it
-	  depended on the previous namespace handling on the stack
-	- fixed object sesolving in NsDotVarResolver() (before, it was
-	  possible that NsDotVarResolver could create variables in the
-	  wrong namespace)
-	- simplified NsDotVarResolver()
-	- more cleanup in name resolver
-	  * USE_DOT is gone
-	  * XOTclDotDotCmd() removed
-	  * improved performance of InterpCompiledDotVarResolver()
-	  * made LookupVarFromTable() obsolete and removed it
-	  * renamed DotVarResolver() and friends to ColonVarResolver() etc.
-	- extended regression test
-
-2010-02-21  Gustaf A. Neumann  
-
-
-	- replaced in predefined occurances of ::xotcl::is by
-	  ::xotcl::objectproperty
-
-
-	- renamed ::xotcl::valuecheck -> ::xotcl::parametercheck
-
-
-	- defined "info is" as alias of "::xotcl::objectproperty"
-
-2010-02-21  Gustaf A. Neumann  
-
-
-	- renamed old "xotcl::is" -> "xotcl::objectproperty"
-	- renamed old "xotcl::is2" -> "xotcl::is"
-	- we have now is tests for objects in ::xotcl::objectproperty
-	::xotcl::objectproperty $obj object ::xotcl::objectproperty $obj
-	class ::xotcl::objectproperty $obj baseclass ::xotcl::objectproperty
-	$obj metaclass ::xotcl::objectproperty $obj type XXXX
-	::xotcl::objectproperty $obj hasmixin XXXX
-	- "::xotcl::is" is the higher level command,
-	 supporting string contstraints "e.g. upper", user defined type checkers
-	and as well object properties (every parameter type supported for
-	object
-	 and method paameter). Examples:
-	 ::xotcl::is $obj object ?-type $type? ?-hasmixin $mixin?
-	 ::xotcl::is $cl class ?-type $type? ?-hasmixin $mixin?
-	 ::xotcl::is obj metaclass
-	 ::xotcl::is $num integer
-	 ::xotcl::is $string upper
-	- implemented 2nd level reference counting for paramObjType
-
-2010-02-20  Gustaf A. Neumann  
-
-
-	- Unified on c-level "info class-mixin-of" and "info
-	  object-mixin-of" to "info mixinof ?-scope all|object|class?
-	  ?-closure? ?pattern? The former "info class-mixin-of" is now
-	  "info mixinof -scope class"
-	- adapted xotcl1 layer for this change
-	- extended experimental ::xotcl::is2 to handle flags -type and
-	  -hasmixin ::xotcl::is2  object ?-type ? ?-hasmixin ?
-
-2010-02-19  Gustaf A. Neumann  
-
-
-	- experimental checking function ::xotcl::is2 implemented, which
-	generalizes between ::xotcl::is and ::xotcl::valuecheck (it is a
-	valuecheck -nocomplain with an ::xotcl::is syntax and switched
-	arguments)
-
-2010-02-19  Gustaf A. Neumann  
-
-
-	- support for method modifier "object", "protected" and "public" for
-	  method "attribute". One can use now e.g.
-	 Class create C {
-	 :attribute a
-	 :public attribute b
-	 :protected attribute c
-	 :object attribute A
-	 :public object attribute B
-	 :protected object attribute C
-	 }
-	 "protected" and "public" refers to the registered accessor functions
-
-2010-02-18  Gustaf A. Neumann  
-
-
-	- centralize fetching of tcl-obj-types in xotcl_init
-
-2010-02-17  Gustaf Neumann  
-
-
-	- fix namespace in method "case" of "Test"
-	- use Test->case for all tests in parameter.xotcl
-
-2010-02-17  Gustaf A. Neumann  
-
-
-	- new "Test case" method with initblock
-
-
-	- removed the following classes and methods
-	::xotcl::Attribute->check_single_value
-	::xotcl::Attribute->check_multiple_values
-	::xotcl::Attribute->mk_type_checker class ::xotcl::Attribute::Nocheck
-
-
-	- added a version of the "attribute" method to predefined
-
-2010-02-15  Gustaf A. Neumann  
-
-
-	- new methods for MetaSlot to factor out common code: + slotName
-	  (to ease name-construction, care about slot container) +
-	  createFromParameterSyntax: essentially move from
-	  ::xotcl::Attribute to the meta class
-	- test environment: make sure to avoid confusions between the
-	  "namespace" method and command
-
-2010-02-14  Gustaf A. Neumann  
-
-
-	- experimental: allow to show built-in types provided that a)
-	  slot= is specified explicitely, and b) the specified slot is
-	  not the default slot. This should guarantee that we do not
-	  interfere with the predefined converters for the c-level
-	  interface.
-	- incremented ref count on results of all-level converter
-	- extended regression test
-
-2010-02-12  Gustaf A. Neumann  
-
-
-	- ::xotcl::valuecheck: moved "-nocomplain" to first position (similar
-	  to e.g. unset)
-
-
-	- fixed result resetting for user defined converters
-
-2010-02-11  Gustaf A. Neumann  
-
-
-	- implemented "info method definition|parameter|args $name" for
-	  settercmds (with parameter constraints)
-	- extended regression test
-
-
-	- fixed returned method name when setter was used on objects
-	- reduce verbosity
-
-
-	- added parameter "incremental" to ::xotcl::Attribute: when set,
-	  one can use "object paramname add|delete $value" etc.
-	- use setters with parameter constraints in slot optimizer
-	- as a consequence, setting attributes via slot names is about
-	  twice as fast as before, when parameter constraints are used.
-	- extended regression test
-
-
-	- added a "-nocomplain" option to ::xotcl::valuecheck
-	- changed semantic of ::xotcl::valuecheck: per default,
-	  valuecheck raises an error or returns true. If "-nocomplain" is
-	  used, valuecheck returns 0 or 1 like implemented befor this
-	  change
-	- extended regression test
-
-
-	- add comment to converter, make it less verbose
-
-
-	- removed duplciate error message in "hasmixin" converter
-	- fixed refcounting in converting user-types in case of errors
-	- extended regression test
-
-
-	- setterCmd(): Do not allow methodNames start with "-"
-	- setterCmd(): Do not allow defaults for setters
-	- extend regression test
-
-2010-02-10  Gustaf A. Neumann  
-
-
-	- Allowed parameter specification for setters. One can define now
-	  a setter with constraints like e.g. ::xotcl::setter o a:integer
-	  to define a setter named "a" for object "o" which has to be
-	  integer.
-	- Extended regression test
-	- Followed nameing conventions for several structures
-
-2010-02-09  Gustaf A. Neumann  
-
-
-	- bumped version number to 1.6.6
-
-
-	   * provide compatibility with 8.6b1
-
-
-	- fixed compilation for tcl 8.6b1
-
-
-	- fixed valuecheck in connection with modifying converters
-	- extended regression test
-
-2010-02-08  Gustaf A. Neumann  
-
-
-	- made error messages for failed conversions more consistent (note that
-	tcl does not provide the parameter name in the error message, but
-	user-defined converters do)
-
-
-	- clean up comments
-
-
-	- renamed "::xotcl::is ... mixin ..." to "::xotcl::is ... hasmixin ..."
-	  (affects parametertypes as well)
-
-
-	- move methodParameter checkers for "mixin", "baseclass" and
-	  "metaclass" to predefined.
-	- deactivated checkMethods in gentclAPI.decls and in xotcl.c
-
-
-	- provide error message for cases, where parameter options are not
-	  allowed (or ignored)
-
-
-	- fix counter initialization in ::xotcl::importvar
-	- register alternate "new" method in "contains" for xotcl2 and (if
-	  available) for xotcl1 objects
-
-2010-02-07  Gustaf A. Neumann  
-
-
-	- streamline quoting in regression test
-
-
-	- handle multivalued + values converted viaCmd converter the new output
-	  list is only built when needed via ArgumentCheckHelper()
-
-2010-02-05  Gustaf Neumann  
-
-
-	- added argument for converter to return the converted tcl_obj, which
-	should be passed on (currently only used for viaCmd); this way, we
-	could remove the kludge of querying the converter after the conversion
-	for special handling.
-
-
-	- treat currently unknown converters in valuecheckcmd as error
-	- fix the regression test from the last changes
-
-
-	- added parameter option slot= to pass slotobj to a certain
-	  parameter
-	- use slot option to keep relation between parameter and slot
-	- object parameter dispatch type checker on slot objects
-	- allow transformation via user-defined converter (can be use to
-	standardize parameter values) experimental implementation,
-	refcounting has to be looked in detail, maybe we need a different
-	interface for the converters
-
-2010-02-04  Gustaf Neumann  
-
-
-	- added error message when substdefault is specified without a
-	  default value
-	- extend regression test
-
-2010-02-03  Gustaf Neumann  
-
-
-	- predefined.xotcl: move toParameterSyntax and objectparameter to
-	  a position, where basic slot definitions are provided
-	- fixed default value setting in bootstrap code
-	- provide more precise error message in converter, when object
-	  type are used
-	- extend regression test
-
-
-	- get rid of convertToObjectOfType(), make convertToClass() and
-	  converterToObject() more general, accepting type constraints
-
-2010-02-02  Gustaf Neumann  
-
-
-	- support for all string constraints provided by "string is ...
-	  $value" in object and method parameters ("alum", "alpha", ...,
-	  "xdigit"). Technically, these types are tclobjs (using
-	  converter convertToTclobj) having pParm->converterArg set to
-	  the constraints.
-	- extended regression test
-
-2010-01-29  Gustaf A. Neumann  
-
-
-	- moved slot optimizer from ::xotcl::ObjectParameterSlot::Optimizer to
-	  ::xotcl::Attribute::Optimizer
-
-
-	- refactor Slot class hierarchie
-	- new methods in ObjectParameterSlot "toParameterSyntax" and
-	  "createFromParameterSyntax"
-	- some more cleanup
-	- removed legacy syntax for "-parmeters"
-
-2010-01-28  Gustaf A. Neumann  
-
-
-	- cleanup of legacy stuff in slot management.
-	  * merged InfoSlot and InterceptorSlot into RelationSlot
-	  * get rid of legacy "mixin set ...." command
-	- renamed "parameterSlot" into "methodParameterSlot" to avoid potential
-	  confusions
-
-
-	- define everything concerning basic slot setup in a single
-	  "namespace eval ::xotcl {...}"
-	- undefine ::xotcl::createBootstrapAttributeSlots after this block
-	- fix default DefaultSuperClass() with isMeta==1 in cases, where
-	  we are already at the root meta class
-	- use "-parameter" in xotcl1 instead of createBootstrapAttributeSlots
-
-2010-01-27  Gustaf Neumann  
-
-
-	- name parameterType -> parameterSlot
-	- use for now same parameterSlot for xotcl1 + 2
-	- disallow unknown types (otherwise interpreted as user-types) in
-	  valuecheck
-
-2010-01-26  Gustaf A. Neumann  
-
-
-	- allow syntax "object,type=::SomeClass" and
-	"class,type=::SomeMetaClass" (currently identical, we should as well
-	check for class/meta-class in case of "class,type=SomeClass")
-
-2010-01-25  Gustaf A. Neumann  
-
-
-	- remove unneeded push and pop operations in ListChildren() and
-	  ObjectHasChildren()
-
-
-	- name XOTclObjects always "object" instead of "obj" to avoid potential
-	  confusion with Tcl_Objs
-
-
-	- support for parameter spec of form "type=XXX" to denote that
-	  the parameter must be an object of the specified type (class;
-	  directly or indirectly)
-	- new built-in converter: convertToObjectOfType()
-	- keep parameterObj (source for conversion to XOTclParam) for
-	  making introspection less work. However, this is only used for
-	  XOTclParams generated via ParamParse().
-	- extending regression test
-
-2010-01-24  Gustaf A. Neumann  
-
-
-	- pass arg from objectparameter as first argument to objparms (similiar
-	  to client data)
-
-
-	- parameterFromSlot returns now pair object-param & method-param
-	- define dissallowed parameter options for object parameter,
-	  method parameter and valuecheck command
-	- make canonical table of parameter options (currently in
-	  tests/parameter.xotcl)
-	- extend regression test
-
-
-	- new cmd "::xotcl::valuecheck  " where
-	  "valueConstraints" is whatever is allowed in e.g. parameters
-	  (including user defined types)
-	- new Tcl_ObjType "xotclParam"
-
-2010-01-23  Gustaf A. Neumann  
-
-
-	- checking multivalued types in "-parameters" by using argument
-	  checker
-	- some cleanup
-	- extend regression test
-
-
-	- added "multivalued" to parameter options
-	- made error message produced by XOTclObjErrType look like Tcl's
-	  error messages
-	- extended regression test
-	- test utility: changed "?" to return error msg in case of error
-
-
-	- don't run multiple queries in "??"
-	- fixed last changes to regression test as usual
-
-2010-01-22  Gustaf A. Neumann  
-
-
-	- new function ::xotcl::parameterFromSlot (used in argument
-	  checker as well)
-	- use ::xotcl::forward in Slot constructor (instead of dispatch)
-	- checking methods on slots for single- and multivalues slots
-	  (can be optimized)
-	- extended regression test
-
-2010-01-21  Gustaf Neumann  
-
-
-	- added instance variable arg for interfacing with parameter
-	  interface. "arg" acts like a clientdata for type converter
-	- added multiple parameter options handling to method "parameter"
-	  to obtain similar functionality from object parameters as from
-	  method parameters
-	- added conveniance method "??" to test to indicated test that
-	  should fail with an error
-	- added severy type converters to achieve same object type
-	  checking as in ::xotcl::is (these are currently in the
-	  regression test, should move finally into predefined.xotcl)
-	- extended regression test
-
-2010-01-19  Gustaf A. Neumann  
-
-
-	- making methodDefinitions NULL terminated
-	- passing optional arg to user-defined argument converter
-	- refuse to redefine type converters for a single parameter
-	- adding regression test for parameters
-
-2010-01-15  Gustaf A. Neumann  
-
-
-	- experimental change of resolver name prefix char from dot to single
-	  colon
-
-2010-01-14  Gustaf A. Neumann  
-
-
-	- extended migration guide
-	- defined eval in predefined via "-nonleaf", used at various
-	  places
-	- added "info mixinof ?-scope all|object|class? ?pattern?",
-	  dropped "object-mixin-of" and "class-mixin-on" from registerd
-	  method
-	- extended regression test
-	- xotcl1: make "-volatile" invoked via unknown behave correctly
-
-2010-01-11  Gustaf A. Neumann  
-
-
-	- keep orignial objc/objc in call stack context such that
-	  next/self args works with canonical args (allow e.g. different
-	  order of nonpos args in a next)
-	- make naming in xotcl.c more consistent
-	- ensure to return empty, when "info callable -which" fails
-	- extend regression test
-
-
-	- add calltype to tcl85showStack
-
-
-	- Serializer: include ObjectSystemSerializer in "Serializer all"
-	- Serializer: use class-mixin in dependency order
-	- Serializer: add appropriate "::xotcl::use xotcl1|xotcl2"
-	- Serializer: fix syntax in exportMethods
-	- Serializer: provide limited support for exporting aliases for xotcl1
-	  objects
-
-2010-01-09  Gustaf A. Neumann  
-
-
-	- NsDotVarResolver: don't create variables on CMETHOD frames when their
-	  names do not start with a "."
-	- general overhaul of XOTcl_PushFrame()XOTcl_PopFrame():
-	 new functions:
-	   * XOTcl_PushFrameCsc()/XOTcl_PopFrameCsc(): for CMETHOD fames
-	   * XOTcl_PushFrameObj()/XOTcl_PopFrameObj(): for OBJECT frames
-	 (objscope)
-	- preallocate obj->vartable in XOTcl_PushFrameObj() to
-	 avoid situations where to non-existing vartable is created
-	 on demand at different places (e.g. on stack and in
-	 var resolver)
-	- caller of convertToRelationtype(): make sure that last argument
-	 keeping the result is large enough to held pointer (in case of
-	 sizeof(void) != sizeof(int)
-
-2010-01-08  Gustaf A. Neumann  
-
-
-	- use uplevel in slot add/delete to evalute in calling namespace
-	  (for not fully qualified object names)
-	- determine namespace in test method "?" to allow its execution
-	  in an "namespace eval"
-	- added regression tests
-
-
-	- extend regression test
-
-
-	- make sure to have an xotcl frame pushed, when byte-code-compiler is
-	invoked. This is necessary for providing the context for dotCmd
-	resolvers
-
-
-	- improved naming of resolvers: use InterpDot*Resolver and
-	  NsDot*Resolver for interp wide and namespace specific resolvers
-	- added possibility to escape the call of commands starting with a dot
-	  from method bodies by prefixing with a second dot.
-
-
-	- make allocation sizes for dynamically allocated
-	  parameterContexts consistent between alloc and realloc
-	- added sanity check in getAllClassMixinsOf() It seems as it would be
-	possible with __defaultSupeclass to define a class which has itself
-	als a subclass. Just a quick fix, we have investigate more on this.
-
-2010-01-07  Gustaf A. Neumann  
-
-
-	- serializer: move checking of the requested objects to be
-	  exported to the invocation of "Serializer all"
-	- replace "namespace import ::xotcl::*" by "xotcl::use xotcl1"
-
-
-	- improved comments
-
-2010-01-06  Gustaf A. Neumann  
-
-
-	- added option "objectsystems" to ::xotcl::configure to obtain
-	  the currently defined object systems
-	- added option "baseclass" to ::xotcl::is to check, whether a
-	  class is a baseclass of an object system (root class or root
-	  meta-class of object system)
-	- changed result of "... info methods -methodtype scripted" to
-	  return only truely scripted methods (no aliases)
-	- some more cleanup in regression tests
-	- first version of serializer for xotcl1 + xotcl2
-
-2010-01-05  Gustaf A. Neumann  
-
-
-	- modernize test a little: all local definitions of proc "?" are
-	  gone.
-	- added interface to test: "Test parameter count SOMEVALUE" to
-	  specify conveniently e.g. the number of tests the be executed
-	- add XOTCL_CM_NO_UNKNOWN to dispatch of defaultmethod
-
-
-	- added "info method" to migration guide
-
-
-	- added option "-application" to "info callable" to omit methods
-	  from base classes
-	- extended regression test
-	- changed naming of methodtype "system" to "builtin"
-	- added "info methods" to migration guide
-
-
-	- xotcl.c: removed all names starting with "inst" (exception: instvar)
-
-
-	- added option "arg=.." to parameter options; this argument can
-	  be passed to converter; used currently for "type=relation" to
-	  flag, that the relation type is different from the parameter
-	  name
-	- extended "objectparameter" to handle such cases
-	- removed relationtypes "mixin", "filter", "instfilter" and "instmixin"
-	  since not needed due to converterArg
-
-
-	- removed all unreferenced entries from XOTE_*
-	  - regrouped XOTE_* for easier comprehension
-	  - used XOTE_* on more occations
-	- used XOTclCallCommand() for calling Tcl "format" and "interp"
-
-
-	- removed XOTclInstVar from the C-level API. todo: add all xotcl*cmds
-	  to C api, including importvar
-
-
-	- changed resultss of "filtersearch" and "self next" to new
-	  naming Caveat: for xotcl1, there is no mapping for the names to
-	  the old style in "self next" and "self filterreg"
-	- backwards compatible mapping of filterseach in xotcl1
-
-2010-01-04  Gustaf A. Neumann  
-
-
-	- removed dependency on proc/instproc in copy/move. code is now
-	  independet of class system
-
-
-	- allow invovation of fully qualified method names (determined via ...
-	  info method name ...)
-
-
-	- moved cmd flags into xotclInt.h
-	- added missing prototype
-
-
-	- added interface definitions for generated tcl commands to xotcl.c
-
-2010-01-04  Gustaf A. Neumann  
-
-
-	- added experimental flag for alias "-noleaf" to force a stack frame to
-	be written (e.g. necessary for "next"). makes only sense for aliases
-	to c-implemented cmds
-	- fix inconsistent behaviour of dotVarResolver
-	 "o eval {set .x 1}" was setting var ".x" instead of "x"
-	 The problem was due to a interaction between
-	 the namespace varResolver() and the DotVarResolver()
-	- fix for DotCmdResolver during compilation of a proc by Tcl.
-	- extended regression text
-	- found 2 potential bugs (not fixed yet)
-
-2010-01-04  Gustaf A. Neumann  
-
-
-	- moved "-per-object" consequently immediately after obj in the
-	following commands : ::xotcl::alias, ::xotcl::methodproperty,
-	::xotcl::setter to achiev conformance with ::xotcl::forward and
-	::xotcl::method
-
-2010-01-03  Gustaf A. Neumann  
-
-
-	- reduce verbosity
-
-
-	- added ::xotcl::forward as cmd instead of method now, all
-	method-defining-methods (alias, method, forward, setter) are defined
-	as cmds (this should make life of serializer easier)
-
-
-	- added ::xotcl::method as cmd instead of methods object-method and
-	  class-method
-
-
-	- added ::xotcl::exists as cmd
-
-
-	- minor refactoring
-
-
-	- made some more xotcl2 methods protected (no big need to call these
-	  from different objects): unknown, uplevel, upvar
-
-2010-01-03  Gustaf A. Neumann  
-
-
-	- changed assertions: old (xotcl1) interface: 3 methods + 3 info
-	  methods
-	  *  check Options
-	  *  info check
-	  *  invar Conditions
-	  *  info invar
-	  *  instinvar Conditions
-	  *  info instinvar
-	 new (xotcl2) interface: 1 cmd (similar to ::xotcl::relation)
-	 ::xotcl::assertion check|object-invar|class-invar ?arg?
-	- added emulation for xotcl1
-	- deleted namespecific C macros:
-	isInfoString, isInstinvarString, isInvarString, isInstprocString,
-	isProcString
-
-2010-01-02  Gustaf A. Neumann  
-
-
-	- added method "eval" on ::xotcl2::Object
-	- used "o eval {....}" as generic method to apply commands/methods to
-	  other objects
-
-
-	- change and rename cmd instvar ::xotcl::instvar -object someObject
-	newVar into ::xotcl::importvar someObject newVar Rationale of change:
-	only needed in xotcl2 for importing variables from different objects
-
-
-	- handle HAVE_UINTPTR_T like HAVE_INTPTR_T
-	- use ::xotcl::setinstvar instead of ::xotcl::setinstvar in serializer
-
-
-	- use INT2PTR and PTR2INT macros in generated stubs
-
-
-	- update to TEA 3.7 (from TEAD 3.5)
-	- use of INT2PTR to avoid warnings about different sizes on 64bit
-	  architectures
-	- defined HAVE_INTPTR_T as a macro to make definition of INT2PTR working
-
-2010-01-01  Gustaf A. Neumann  
-
-
-	- changed level of headings
-
-
-	- added headings for parameter sections
-
-
-	- first skeleton of migration guide
-
-
-	- renamed "ClassName info instmixinof ?-closure? ?pattern?" into
-	  "ClassName info class-mixin-of ?-closure? ?pattern?"
-	- renamed "ClassName info mixinof ?-closure? ?pattern?" into
-	  "ClassName info object-mixin-of ?-closure? ?pattern?"
-	- added emulation "ClassName info instmixinof|mixinof" for xotcl1
-
-
-	- add minor comment
-
-
-	- reactivated XOTclErrInProc()
-
-
-	- get rid of rst->deallocCalled (not needed due to reference
-	  counting on xotcl objects)
-	- reduce verbosity
-
-
-	- added existence test for slot extractor (needed for 8.5.8)
-	- added refcounting CallStackDoDestroy() to ensure existance of
-	  object until end of function
-	- make sure to call PrimitiveDestroy() before
-	  DeleteCommandFromToken(), otherwise e.g. unset traces on this
-	  object cannot be executed
-	- regression test works again
-
-2009-12-31  Gustaf A. Neumann  
-
-
-	- added refounting in ObjectDispatch() to make sure, obj survives until
-	  the end of the function
-
-
-	- comment manual call to DoDealloc() in case the method has failed
-
-
-	- handle change in tcl 8.5.8:
-	  http://tcl.cvs.sourceforge.net/viewvc/tcl/tcl/generic/tclObj.c?sortby=date&r1=1.139.2.1&r2=1.139.2.2&pathrev=core-8-5-branch in xotcl:
-	  * when e.g. the parent namespace is deleted with a "namespace
-	  delete", the change above causes, the no xotcl methods could be
-	  resolved (and called) anymore.
-	  * therefore, e.g. a "C dealloc c1" did not work, since dealloc
-	  passes c1 via tcl_obj, and the tcl_obj is as well converted to
-	  an xotcl object via Tcl_GetCommandFromObj(), which fails as
-	  well.
-	- to bypass this problem, xotcl has now a C-function DoDealloc(),
-	  which is called, when this situation is detected.
-	- some more cases, where xotcl could reference already freed
-	  memory were fixed (thanks to enable-symbols=mem)
-	- as collateral damage, parts of the regression test don't work
-	  currently
-
-2009-12-30  Gustaf A. Neumann  
-
-
-	- space changes
-
-
-	- made naming more consisent
-	- alway initialize parse context properly
-
-2009-12-29  Gustaf A. Neumann  
-
-
-	- updated tutorial further
-
-
-	- updated first part of tutorial to xotcl2 syntax
-	- fixed examples in tutorial
-	- added soccerClub2.xotcl
-
-
-	- fix example in the tutorial
-
-
-	- new subcommand "... info method body ..." to avoid to relay on syntax
-	  of "info method definition" in xotcl1 compatibility
-
-
-	- removed -per-object from ::xotcl::relation
-	- removed -per-object from methods "mixinguard" and "filterguard"
-	- removed -per-object from methods "alias" and "method"
-	- added "... object filterguard ..." and "... object mixinguard
-	  ..."
-	- implemented "info method definition" with "object" modifier
-	- extended regression test
-
-2009-12-28  Gustaf A. Neumann  
-
-
-	- call __UNKNOWN with XOTCL_CM_NO_PROTECT (don't complain when it is
-	  protected)
-
-
-	- added " object filter" and " object mixin"
-	- use explicit "(object|class)-(mixin|filter)" relations in
-	  ::xotcl::relation
-	- removed "-per-object" from all user-level relation commands
-	  (::xotcl::relation has still "-per-object"), but it is not
-	  needed anymore
-	- register slots "object-mixin" and "object-filter" for conveniance to
-	allow object-filter and object-mixins via configuration via object
-	parameter
-
-
-	- turned "setter" method into a command "::xotcl::setter" with
-	  the same interface like "::xotcl::alias"
-	- removed flag -per-object from XOTclCForwardMethod
-	- require "object" to be followed directly by either method defining
-	command or info, etc. (use "public object method" instead of "object
-	public method")
-
-2009-12-26  Gustaf A. Neumann  
-
-
-	- renamed method property "static" to "redefine-protected"
-
-
-	- removed "-protected" and "-public" from method defining methods
-	  ("alias", "method")
-
-
-	- Definition of method modifiers "public", "protected" and
-	  "object"
-	- all method-creating methods ("method", "alias", "forward",
-	  "setter") return now the fully qualified method names
-	- extending 50 regression tests fpr method modifiers
-	- Make "unknown" for ::xotcl2::Class" to raise an error instead of
-	warning. Otherwise, protected class-level methods would create
-	objects with the name of protected methods. Other option: make calls to
-	protected methods raise an error, instead of calling "unknown"
-
-2009-12-23  Gustaf A. Neumann  
-
-
-	- return fully qualified name from method defining commands (part 1,
-	  "method")
-
-2009-12-22  Gustaf A. Neumann  
-
-
-	- changed in xotcl-core "method" into "object-method" and
-	  "class-method", provided scripted definition for method in
-	  xotcl2
-	- removed "setter" from methods in xotcl1
-	- defined xotcl1 methods in terms of "proc" and "instproc"
-
-2009-12-21  Gustaf A. Neumann  
-
-
-	- dropped method "instvar" from the xotcl2 interface
-
-
-	- Methods defined via "method" are now per default "protected"
-	- new switch "-public" for "method" to define public methods
-	- new flag for "info callable": -callprotection", values
-	  "all|protected|public"
-	- new flag for "info methods": -callprotection", values
-	  "all|protected|public"
-	- converted part of regression test
-
-
-	- minor refactoring to reflect changes in "info methods"
-
-2009-12-19  Gustaf A. Neumann  
-
-
-	- changed "info methods" (without defined, as defined in xotcl1)
-	  into "info callable"
-	- changed "info methods -defined" into "info methods"
-	- replaced "procsearch " by "info callable -which "
-	- added emulation for procsearch for xotcl1
-
-2009-12-18  Gustaf A. Neumann  
-
-
-	- removed "obj|class info alias"; obsoleted by "info method definition"
-
-
-	- renamed "info method pre" to "info method precondition"
-	- renamed "info method post" to "info method postcondition"
-
-
-	- removed "-per-object" slot from infoslot->get and infoslot->add
-
-
-	- reduce verbosity
-
-
-	- added changes for new behavior
-
-
-	- keep last setting of per-object and per-class mixins, when list of
-	new mixins contains invalid ones (prev. versions: registered mixins
-	were reset)
-
-
-	- reseting interceptor list in interceptorslot->mixin via relation
-	- adding rests for behavior, when setting invalid mixins
-
-2009-12-17  Gustaf A. Neumann  
-
-
-	- remove experimental code
-
-
-	- info "pre" is gone, now subcommand " info method pre
-	  ", added emulation in xotcl1
-	- info "inst pre" is gone, now subcommand " info method pre
-	  ", added emulation in xotcl1
-	- info "post" is gone, now subcommand " info method post
-	  ", added emulation in xotcl1
-	- info "instpost" is gone, now subcommand " info method post
-	  ", added emulation in xotcl1
-	- "info instinvar" gone, added emulation in xotcl1
-
-
-	- minor cleanup of obsolete code
-
-
-	- removed deprecated calls from predefined and regression test
-
-
-	   * info params removed
-	  * info instparams removed
-	  * added subcommand to "info method args ": similar to "info
-	method parameter ...", but returns only names of parameters instead
-	of full parameter definitions
-
-
-	- method "instfilterguard" is gone (for xotcl2) we have now
-	  " filterguard  ... " " filterguard
-	  ?-per-object?  "
-	- added emulation for old "filterguard" and "instfilterguard" in xotcl1
-
-
-	- "info instforward" gone, added emulation in xotcl1
-
-
-	- "info instfilterguard" gone, added emulation in xotcl1
-
-
-	- "info instfilter" gone, added emulation in xotcl1
-
-
-	- "info instmixinguard" gone, added emulation in xotcl1
-
-
-	- "info instmixin" gone, added emulation in xotcl1
-
-
-	- provide method get for Interceptor slots
-	- added tests/info-method.xotcl
-	- added tests/interceptor-slot.xotcl
-
-
-	- handling forward case with nonpos-arg and zero positional
-	  arguments (many thanks to Stefan)
-	- treating "-per-object" in infoslot get method (many thanks to
-	  Stefan)
-	- removing obsolete function from xotcl.c
-
-2009-12-16  Gustaf A. Neumann  
-
-
-	- method "instmixinguard" is gone (for xotcl2) we have now
-	  " mixinguard  ... " " mixinguard
-	  ?-per-object?  "
-	- added emulation for old "mixinguard" and "instmixinguard" in xotcl1
-	- xotcl1: defined "parametercmd" and "instparametercmd" in terms of
-	 alias instead of forward
-
-2009-12-15  Gustaf A. Neumann  
-
-
-	- forward: new option for handling flags syntax "%-SOMEFLAG ?insert?%"
-	The option checks the actual arguments, if they start with "-", it
-	compares it with the provided name. If it matches, the flag is consumed
-	and added at the provided position in the output list. If the flag does
-	not match, but "insert" is given with the value of 1, then the flag is
-	output as well. Note that the last feature is added for omitting double
-	inserts.
-	- due to the new forward option, the following important
-	 cases work now:
-	 - adding/deleting/... per-object mixins for classes via
-	 slot methods
-	 C mixin -per-object add M
-	 - adding per-object mixins for classes in short form
-	 C mixin -per-object M
-	- added "what" argument to deprecated command to let the
-	 user be more exact, what is actually deprecated
-
-2009-12-01  Gustaf A. Neumann  
-
-
-	- new XOTclClassInfoMixinMethod (will replace
-	  XOTclClassInfoInstmixinMethod)
-	- adding some tracing for handling "mixin" in relation cmd and
-	  info methos for now
-	- removed registry of instmixin and instfilter for xotcl2
-
-2009-11-30  Gustaf A. Neumann  
-
-
-	- moving definitions to the right place
-	- added "-per-object" to XOTclRelationCmd
-	- skipping "mixin" and "filter" in ::xotcl::parametersFromSlots
-	  for xotcl1 objects
-	- added parameter "forward-per-object" to slots in order to flag
-	  whether "per-object" should be passed via the forwarder
-	- new function MethodTypeMatches() for filtering on methodtypes
-	- provide faster lookup when pattern for info methods does not contain
-	  meta characters
-
-2009-11-16  Gustaf A. Neumann  
-
-
-	- updated changelog
-
-2009-11-11  Gustaf A. Neumann  
-
-
-	- removed "-per-object" from " info alias"
-
-
-	- xotcl2: implemented " info -per-object subcmd" (moved
-	  "-per-object" in front of info, since it specifies, what kind
-	  of info is requested). As a consequence,
-	  XOTclObjInfoMethodMethod() works returns always object specific
-	  infos and XOTclClassInfoMethodMethod() class specific infos, no
-	  "-per-object" switch for the subcmd required.
-	- cleanup in other subcomds than "info method" and "info methods"
-	  required
-
-
-	- gentTclAPI: create every converter only once.
-
-2009-11-10  Gustaf A. Neumann  
-
-
-	- xotcl2: added "obj info method parameter name"
-
-
-	- adding missing brace
-
-
-	- xotcl2: extended list of options for alias method
-	- xotcl2: defined 2 different "alias" methods for Object and Class
-
-2009-11-09  Gustaf A. Neumann  
-
-
-	- new method named "setter"
-	  *  setter 
-	  * <|Class> setter ?-per-object? 
-	- new info method named "method"
-	  *  info method ?-per-object? definition|name|type
-	  "
-	   * "info method definition" returns full cmds
-	 (e.g. for scripted methods parameters, body, pre- and postconditions)
-	   * fixed proper list handling in AssertionList()
-	   * added tests for "info method" (infomethodtest.xotcl)
-	- changed method "alias" in xotcl2:
-	   * removed the long list of arguments
-	 ".... -cmd -source-object -source-method -source-per-object:switch"
-	   * determine method cmdname via "... info method name "
-	 and pass it to alias
-	- method "parametercmd" and "instparametercmd" are gone (for xotcl2)
-	 we have now
-	 " setter "
-	 " setter ?-per-object? "
-	- added emulation for old "parametercmd" and "instparametercmd" in
-	  xotcl1
-	- method "instforward" is gone (for xotcl2),
-	 we have now
-	 " forward  ... "
-	 " forward ?-per-object?  ... "
-	- added emulation for old "forward" and "instforward" in xotcl1
-	- "info body" gone, added emulation in xotcl1
-	- "info instbody" gone, added emulation in xotcl1
-	- "info commands" gone, added emulation in xotcl1
-	- "info instcommands" gone, added emulation in xotcl1
-	- "info parametercmd" gone, added emulation in xotcl1
-	- "info instparametercmd" gone, added emulation in xotcl1
-
-2009-11-07  Gustaf A. Neumann  
-
-
-	- adding tests for the alias store (many thanks to Stefan)
-
-
-	- avoid conflict with of object "package" with pkg_mkIndex in library
-	  file
-
-2009-11-06  Gustaf A. Neumann  
-
-
-	- updated changelog
-
-
-	- fix package resolution, if multiple different xotcl versions are
-	  installed
-
-
-	- updated changelog
-
-
-	- applying changes from Stefan Sobernig for object specific slots
-	- extended regression test
-	- fix for the problem reported by Mykhaylo Sorochan in the xotcl
-	  mailing list (::xotcl::Attribute not visible)
-	- extended regression tests
-
-2009-10-24  Gustaf A. Neumann  
-
-
-	- fixed var resolver/memory leak problem reported by Victor Mayevski
-	(only needed when xotcl is compiled under tcl 8.4 and loaded into tcl
-	8.5)
-
-
-	- updated changelog
-
-
-	- fixed var resolver/memory leak problem reported by Victor
-	  Mayevski
-	- bumped version number to 1.6.5
-
-2009-10-20  Gustaf A. Neumann  
-
-
-	- new info command for Object and Class: "info alias -per-object
-	  -definition name" (similar to "info forward"/"info
-	  instforward") should probably be moved into a more general
-	  "info method -per-object -definition name"
-	- extended regression test
-
-
-	- finished implementtion of "info method -methodtype alias"
-
-2009-10-19  Gustaf A. Neumann  
-
-
-	- renamed methodType "compiled" to "system" (for system/builtin
-	  methods);
-	- saving and maintaining alias command in associative Tcl array
-	  ::xotcl::alias
-	- returning aliases to procs and methods via "info methods -defined
-	-methodType alias" (other aliases are still missing, but should be
-	straigth forward with data in associative array)
-
-2009-10-17  Gustaf A. Neumann  
-
-
-	- added aliastest provided by stefan
-	- handle [self class] in aliased methods properly
-	- use xotcl2 per default in xotclsh
-
-
-	- doc changes from 1.6.4 release
-
-
-	- added announce file for 1.6.4
-
-
-	- regenerated documentation
-
-
-	- fixed some typos
-
-
-	   * Some documentation fixes, added stack example to documentation
-	  * Bumped version number to 1.6.4
-
-2009-10-15  Gustaf Neumann  
-
-
-	- added new file
-
-2009-10-12  Gustaf Neumann  
-
-
-	- extended genrclAPI to allow enumeration type for nonpos args
-	- changed api of "info methods": added nonpos arg "methodType"
-	  possible values: "all", "scripted", "compiled", "alias",
-	  "forwarder", "object", "setter"
-	- added compatible scripted "info methods" interface for xotcl1
-	- "info methods -methodtype alias" not tested and not working
-
-2009-10-11  Gustaf Neumann  
-
-
-	- removed to unneeded ::xotcl::dispatch from predefined.xotcl
-
-
-	  - moved xotcl-1.* definition into an own library file
-	- renamed library/lib/changeXOTclVersion.xotcl to
-	  library/lib/changeXOTclVersion to ease pkgIndex generation
-	- new function "xotcl::use xotcl1" or "xotcl::use xotcl2" to ease
-	  switching between xotcl 1 and 2
-	- changed library/lib/test to xotcl2
-	- added for all regression test "xotcl::use xotcl1" instead of
-	  "namespace import ::xotcl::*"
-
-2009-10-10  Gustaf A. Neumann  
-
-
-	- added options -defined and -per-object to "info methods" (can
-	  be used to query, what methods are defined on the class/object).
-	- removed c-definition of ".info procs" and ".info instprocs"
-	  (can be replaced by a ".info methods -defined ?-per-object?
-	  -nocmd")
-	- defined an alias method for ::xotcl2::Object
-	- simplified predefined.xotcl further, using more new features
-
-
-	- managing status of import refs in aliased cmds
-
-2009-10-09  Gustaf A. Neumann  
-
-
-	- added non-positional argument "-object" to ::xotcl::instvar
-	- removed all dependencies to the method "instvar" in predefined
-	- defined "abstract" for xotcl2 similar to classical xotcl1
-	- simplified exit handlers
-	- use of proc-aliases in predefined
-	- simplefied predefined a little
-
-
-	- added automatic deletion of aliased commands
-	- deletion of aliased procs works, deletion of aliases to procs not yet
-
-
-	- further rearrangement of predefned.xotcl (removed further
-	dependencies from ::xotcl::Object/Class and formed a common
-	definition block)
-
-2009-10-08  Gustaf A. Neumann  
-
-
-	- some renaming DoDispatch() -> ObjectDispatch() InvokeMethod() ->
-	MethodDispatch() invokeProcMethod() -> ProcMethodDispatch()
-	invokeCmdMethod() -> CmdMethodDispatch()
-
-
-	- white space cleanup
-
-
-	- white space cleanup
-
-
-	- solved contains aliasing problem by defining a separate
-	  "conains" for ::xotcl::Object
-	- make the serializer less object system dependent
-	- make slottest regression test work with xotcl2 objects
-
-
-	- make volatile work with object frames
-	- fix typo in error message
-
-
-	- don't pass arguments to residualargs except when "args" are
-	  specified
-	- added "-foo:method,noarg" to allow to call a method without
-	  arguments
-	- added definition to allow "-volatile" for obejct/class creation
-	- added definition to allow "-noinit" for obejct/class creation
-
-2009-10-07  Gustaf A. Neumann  
-
-
-	- change slots to xotcl2 Objects and Classes
-
-
-	- eliminated set methods in predefined
-
-
-	- implemented refcounting for variables allocated by the compiled
-	  var resolver
-	- changed most of predefined to xotcl2 style
-	  * replaced all "my instvar" by access via dotName resolver
-	  * replaced most "my" (only "eval my ...." stayed)
-
-
-	- fix mixin deletion in next. Previouly, redundant computations of
-	filters circumvented the problem. The bug was in the code at least
-	since 2004.
-
-2009-10-06  Gustaf A. Neumann  
-
-
-	- new parameter type method (similar to initcmd, but calls a same-named
-	  method)
-
-
-	- simplified resolver for compiled variables
-	- small improvement for "next"
-
-2009-10-05  Gustaf A. Neumann  
-
-
-	- fix object access in dotVarResolver for frames of type
-	  FRAME_IS_XOTCL_OBJECT
-
-2009-10-05  Gustaf Neumann  
-
-
-	- temporary commit to swich to machine with valgrind
-
-
-	- provide explicit unknown handler
-	- fix cases, where unknown hander was unknown
-
-
-	- extend predefined for a minimal xotcl2 implementation
-	- simplified slot initialization
-	- new function: isRootNamespace()
-	- simplified callingNameSpace()
-	- merge destroyObjectSystems of multiple object systems into a common
-	block for interleaved objects (e.g. using ::xotcl::Objects under
-	::xotcl2::Object)
-
-2009-10-02  Gustaf Neumann  
-
-
-	- avoid potential crashes, when next is not called from withing a
-	  methods context
-
-2009-10-01  Gustaf Neumann  
-
-
-	- don't assume, "objectparameter" returns as last argument "args"
-	- allow argument type "initcmd" to contain dotCmds and dotVars
-
-
-	- remove "." treatment from residual args handler
-
-
-	- minor polishing
-
-
-	- allow to distinguish for enumeration values between missing
-	  value and given first value (numerically 0)
-	- generated stub for selfCmd
-
-2009-09-30  Gustaf Neumann  
-
-
-	- kip in forwarded "." in method name
-
-
-	- avoid overshooting the point in the argument vector for looking at
-	  nonpos args
-
-
-	- supporting "per-object" for alias
-	- extending regression test
-
-2009-09-27  Gustaf A. Neumann  
-
-
-	- reduce verbosity
-
-
-	- implement first version of resudialargs parser, accepting methods
-	  starting with a "."
-
-
-	- change "setvalues" to "residualargs"
-
-2009-09-25  Gustaf A. Neumann  
-
-
-	- DotCmdResolver() with XOTclDotCmd() only lookups within
-	  XOTCL_METHOD_FRAMES to minimize interactions supports efficient
-	  method-lookup via notation {.method in method bodies}
-	- extended regression tests
-
-2009-09-24  Gustaf A. Neumann  
-
-
-	- added several CONST flags
-	- added experimental cmd resolver
-
-
-	- fix typo in naming (class_filter => class-filter)
-
-
-	- factor out VarHashTableCreate() and CompiledLocalsLookup()
-	- new debug flag VAR_RESOLVER_TRACE
-	- new varResolver DotVarResolver(): catches variable names
-	  starting with a ".", only lookups within XOTCL_METHOD_FRAMES to
-	  minimize interactions
-	- don't clobber from guard calls for 8.5 and earlier as well
-	- extended regression tests
-
-2009-09-23  Gustaf A. Neumann  
-
-
-	- made compiledlocal handler more robust
-	- added regression tests for compiled local handler
-
-
-	Revert "- add makefile rule for gegenerating stub files"
-	This reverts commit 0955eb6cf110e17fd6f9e87d1ae7d6785e4458c5.
-	... the files are needed for the configure magic
-
-
-	- add makefile rule for gegenerating stub files
-
-
-	- change configure to run genstubs automatically
-	- change scoping of variables on c-stack for not running in a optimizer
-	  problem
-
-2009-09-22  Gustaf Neumann  
-
-
-	- cache var lookup (needs detailed testing)
-
-
-	- added experimental USE_COMPILED_VAR_RESOLVER Example:
-	 Foo instproc bar2 {} {
-	 set .x [expr {!${.x}}]
-	 }
-
-2009-09-22  Gustaf A. Neumann  
-
-
-	- provide propagation of errors from mixin guards (in earlier
-	  XOTcl versions, these were silently ignored)
-	- don't clobber from guard calls
-	- added new regression tests for mixin and filter guards called
-	  via next and trigger errors
-	- fix result code handling for tcl 8.6
-	- fix tcl stack allocs/deallocs for tcl 8.6
-	- new debug flag TCL_STACK_ALLOC_TRACE
-	- improve comments
-	- new function CmdIsProc() to handle different behavior of
-	  TclIsProc() in 8.6
-	- passing regression test with tcl 8.6
-
-2009-09-21  Gustaf A. Neumann  
-
-
-	- more work on 8.6b1: xotcl 2.0 boots now
-	- fixed a few regression tests for 8.6 TclIsProc((Command*)cmd)
-	  not equiv to (Tcl_Command_objProc(cmd) == TclObjInterpProc)
-	- not all regression tests run yet
-	- make sure to run " make clean;configure;make genstubs" to compile
-	  under 8.5
-
-2009-09-19  Gustaf A. Neumann  
-
-
-	- first steps towards 8.6
-
-2009-09-18  Gustaf A. Neumann  
-
-
-	- improve debug message
-
-
-	- fixed var resolver problem
-	- reactivated "set" method via "::set"
-	- removed private realization via XOTclOSetMethod
-
-2009-09-16  Gustaf A. Neumann  
-
-
-	- made create statments in xoDoc and loaded packages explicit
-	- added tests/protected.xotcl
-
-2009-09-16  Gustaf A. Neumann  
-
-
-	- changed interface of ::xotcl::methodproperty to be used as well for
-	  introspection
-	- added ::xotcl::methodproperty ... static
-	 We have now
-	   * call-protection via methodproperty "protected"
-	   * overwrite-protection via methodproperty "static"
-	 Static methods can be deleted, but not overwritten (accidentially)
-	- added flag "-protected" to "method" for call-protected methods
-	- added checks for overwrite-protection to tcl implemented methods.
-	 aliases, forwarder, and parametercmds
-	- removed "classscopedinstproc" (use "method -inner-namespace" instead)
-	- removed C-implemented unknown handler for ::xotcl::Class
-	 and replaced by a Tcl-implemented one (should move into
-	 compatibility library)
-	- removed XOTclAddPMethod() (use XOTclAddObjectMethod instead)
-	- removed XOTclAddIMethod() (use XOTclAddInstanceMethod instead)
-	- generalized MakeObjectMethod() and MakeClassMethod() into MakeProc()
-	- removed compile-flag NAMESPACEINSTPROCS and AUTOVARS
-	- removed defines for isClassString, isDoubleDashString, isAllocString,
-	 isDeallocString, isDestroyString
-
-2009-09-15  Gustaf A. Neumann  
-
-
-	- implementing "method" instead of "proc" and "instproc" on the C level
-
-2009-09-14  Gustaf A. Neumann  
-
-
-	- removed c-level support for the following methods and provide
-	emulation on the script level isobject, isclass, ismetaclass, ismixin
-	istype
-
-
-	- generated interfaces for XOTclIsCmd() and XOTclQualifyObjCmd()
-	- simplified PrimitiveODestroy()
-	- eliminated XOTcl_TraceObjCmd()
-
-2009-09-11  Gustaf A. Neumann  
-
-
-	- removed obsolete todo and improvded documentation
-
-
-	- reuse tcl_obj passed from alloc in Primitive*Create() commands.
-
-
-	- removed deprecated :xotcl::setrelation
-	- fixed potential crash in bootup code, when destroy method was defined
-	  for ::xotcl::Slot
-
-
-	- generated interface for XOTclNSCopyCmds()
-
-
-	- generated interface for XOTclNSCopyVars()
-	- grouped genreated tcl commands together in source code
-
-
-	- provided parameter definitions for XOTclInterpObjCmd()
-
-2009-09-10  Gustaf A. Neumann  
-
-
-	- implemented -objscope for ::xotcl::dispatch
-	- debugged and added tests for XOTclDispatchCmd()
-
-
-	- following tcl naming conventions
-
-
-	- cleanup of checker obj
-	- renamed nonposargType() to ParamCheckObj()
-
-2009-09-09  Gustaf A. Neumann  
-
-
-	- first implementation of application specific checkers
-	- changed XOTclDispatchCmd to parameter interface (testing and
-	  adjustment outstanding)
-	- reactivated XOTclOSetMethod, since one test in regression test caused
-	  troubles for still unknown reasons
-
-2009-09-08  Gustaf A. Neumann  
-
-
-	- drop XOTclOSetvaluesMethod(), use alias for "set" instead of it
-	- implement parameter option "optional" for positional parameters
-	- extend regression test
-
-
-	- handling of aliased objects, when the target objects are
-	  destroyed (realized via refcounting on objects)
-	- distinguishing between nested and aliased objects in cmd table
-	  during deletion
-	- extended regression test
-
-2009-09-07  Gustaf A. Neumann  
-
-
-	- better error message in case parameter definition could not be
-	  obtained
-
-
-	- simplified and more regular method lookup interface
-	- "info params" and "info instparams" work now as well with
-	  C-implemented methods (e.g. Class info instparams instproc)
-
-2009-09-05  Gustaf A. Neumann  
-
-
-	- some code cleanup (some more TODOs removed)
-
-2009-09-04  Gustaf A. Neumann  
-
-
-	- passing disallowed options to ParamParse() to disallow e.g. parameter
-	  option "relation" for method parameter
-
-2009-09-03  Gustaf A. Neumann  
-
-
-	- some cleanup of visibility of symbols
-
-2009-09-03  Gustaf A. Neumann  
-
-
-	- new function: ParamDefsList(),
-	- extended ListParams() to work with and without parameter definitions
-	- deleted following functions:
-	 AppendOrdinaryArgsFromNonposArgs(),
-	 GetProcDefault(),
-	 ListArgsFromOrdinaryArgs(),
-	 ListDefaultFromOrdinaryArgs(),
-	 ListProcArgs()
-	 ListProcDefault(),
-	 SetProcDefault(),
-	 XOTclClassInfoInstargsMethod(),
-	 XOTclClassInfoInstdefaultMethod(),
-	 XOTclClassInfoInstnonposargsMethod(),
-	 XOTclObjInfoArgsMethod(),
-	 XOTclObjInfoDefaultMethod(),
-	 XOTclObjInfoNonposargsMethod(),
-	 checkRequiredValue(),
-	 evalValueIfNeeded(),
-	 setDefaultValue()
-	- provided backward compatibility on tcl level (currently in
-	  predefined, should be moved into library)
-
-2009-09-03  Gustaf A. Neumann  
-
-
-	- 2 new info methods: "info params", "info instparams" as
-	  replacement for old diversity
-	- ParamDefsFormat() returns now pos and nonpos parameters, reports
-	  "initcmd" and "substdefault"
-
-
-	- improve variable name
-
-
-	- remove debug output
-
-
-	- shortend some function/type names (e.g. use everywhere "Param"
-	  instead of "Parameter")
-	- delayed parseContextRelease() in InvokeProc() until end if proc
-	- process all argumens of proc/instpoc; before, this happend
-	  only, when nonpos parameters were used;
-	- use parameter definitions only when they provide a value-add
-	- finish freeing of parameter definitions
-
-2009-09-02  Gustaf A. Neumann  
-
-
-	- passing obj to ArgumentParse() to get the object-context and to
-	  be able to produce nicer error messages
-	- pass pushFrame to ProcessMethodArguments() to signal, whether
-	  stack frame was already pushed or not
-	- deactivated check for {$} in objectparameter (for activating
-	  substdefault)
-	- fixed class converter, which was to liberal
-	- extended objparametertest for substdefault and some types
-
-2009-09-01  Gustaf A. Neumann  
-
-
-	- renamed parseObjv() -> ArgumentParse()
-	- renamed ifdSize -> nrParameters
-	- argDefinitionsFree() -> ParameterDefinitionsFree()
-	- renamed argDefinitionsNew() -> ParameterDefinitionsNew()
-	- renamed struct XOTclParsedInterfaceDefinition ->
-	  XOTclParsedParameterDefinition
-	- renamed ParsedInterfaceDefinitionFree() ->
-	  ParsedParameterDefinitionFree()
-	- renamed struct argDefinition -> parameterDefinition
-	- renamed struct XOTclNonposArgs ->XOTclParamDefs
-	- renamed GeneratIfd() -> ParsedParameterDefinitionGet()
-	- renamed parseNonposArgs() -> ParseParameterDefinitions()
-	- renamed parseArgDefinition() -> ParseParamDefintion()
-	- new function ArgumentDefaults()
-	- new functions ArgumentError()
-	- ArgumentParse() handles now defaults as well (could be optimized)
-	- made varargs passing explicit
-
-
-	- new functionparseContextExtendObjv() to eliminate hard coded
-	  limits on argument lengths
-	- reduced PARSE_CONTEXT_PREALLOC 20
-	- new function XOTclPrintObjv() for debugging (output of objv vector)
-
-2009-08-31  Gustaf A. Neumann  
-
-
-	- keep flags for every objv in the parse context to communicate
-	  needed DECR_REF_COUNTS
-	- keep Tcl_Obj "nameObj" in argDefinitions to avoid repetitious
-	  creations
-	- move convertToRelation handling from ProcessMethodArguments()
-	  to configureMethod
-	- move substDefault handing from configureMethod to other default
-	  handling in ProcessMethodArguments()
-
-
-	- renamed GetObjectInterface() -> GetObjectParameterDefinition()
-	- renamed canonicalNonpositionalArgs() -> ProcessMethodArguments()
-	- simplified XOTclOConfigureMethod(), 30% speedup, when defaults are
-	  used
-
-2009-08-30  Gustaf Neumann  
-
-
-	- renamed test/objconfigurtest.xotcl to objparametertest.xotcl
-	- incorporated recent changes and extended test
-
-2009-08-30  Gustaf A. Neumann  
-
-
-	- new option initcmd for nonposarg parser (necessary for
-	  regression test)
-	- error handling for failed relation settings
-	- fixed crash when canonicalNonpositionalArgs returned result != 0
-	- regession test runs again
-
-2009-08-29  Gustaf A. Neumann  
-
-
-	- renamed "objinterface" to "objectparameter"
-	- renamed "invalidateinterfacedefinition" to
-	  "invalidateobjectparameter"
-	- fixed regression test "filterAddRemove" and "filterClassChange"
-	  to be more robust
-	- deactivated regression test "filterInfo", since this traces the
-	  detail of object configuration
-	- object parameters pass now testx regression test, run currently into
-	  problems in slottest
-
-2009-08-29  Gustaf Neumann  
-
-
-	- renamed "configureargs" to "objinterface"
-
-2009-08-29  Gustaf A. Neumann  
-
-
-	- new option substdefault for nonposarg parser
-	- changed per-argument options for argument definitions to
-	  bitfield named "flags"
-	- removed CONFIGURE_SIGNATURE_GENERATOR
-	- can start now with cacheInterface 1
-
-2009-08-28  Gustaf A. Neumann  
-
-
-	- new functions NonposArgsFree(), ParsedInterfaceDefinitionFree()
-	- new class method invalidateinterfacedefinition
-	- renamed convertToInterceptor() to convertToRelation()
-	- added test tests/objifdtest.xotcl (not yet in test suite)
-
-
-	- added first verison of configure based on nonpos args (many thanks to
-	  Stefan!)
-
-2009-08-27  Gustaf A. Neumann  
-
-
-	- added destroy test to regression tests
-
-
-	- delay deletion of active classes until after last activation ends
-	  (similar to handling of active objects)
-
-2009-08-26  Gustaf A. Neumann  
-
-
-	- fix deletion order for exit() calls with active stack frames
-
-
-	- activated test in filterGuard regression test. the former problem
-	  healed itself with the recent changes
-
-
-	- simplify interface of callDestroyMethod()
-	- some cleanup for destroy stuff (inline comments, etc.)
-	- checked all flags setting in connection with deletion
-	- make sure, destroy methods are called on exit
-
-
-	-added missing Makefile dependency for xotclAccessInt.h -switched from
-	XOTclObjectType to Tcl cmdName type (removed all type usages, removed
-	RegisterObjTypes()) -removed compile flag KEEP_TCL_CMD_TYPE -renamed
-	XOTclObjConvertObject() to GetObjectFromObj() -renamed
-	GetXOTclClassFromObj() to GetClassFromObj() -simplified name/object
-	conversion to lookup xotcl Objects -handle imported cmds in
-	XOTclGetClientDataFromCmdPtr() -removed object flag XOTCL_NS_DESTROYED
-	-removed member "parameters" from XOTclClass -removed member
-	"parameterClass" from XOTclClassOpt
-
-
-	- fix a bug in CopyHandler (while copying slot objects)
-	- found and fixed two cases, where xotcl could crash during
-	  deletion of active objects
-	- simplified deletion logic of active objects significantly
-	  unsing an explicit activation count
-	- removed old deletion logic (state variable callIsDestroy,
-	  callstate XOTCL_CSC_CALL_IS_DESTROY, destroyedCmd on stack
-	  content)
-	- removed now obsolete functions CallStackMarkDestroyed() and
-	  CallStackMarkUndestroyed()
-	- made changes for with and without TCL85STACK
-
-2009-08-21  Gustaf A. Neumann  
-
-
-	- changed version number from 2.0.0a to 2.0.0 to avoid problems
-	  with package require
-	- found crashes in deletion order (when tcl implicitly deletes xotcl
-	  objects), introduced temporary compile flag OLD_DELETE
-
-
-	- set version number to 2.0.0a
-
-
-	- generated interface for ::xotcl::deprecated
-
-2009-08-20  Gustaf A. Neumann  
-
-
-	- generated interface for ::xotcl::XOTclInstvarCmd
-	- define objects with cmdName of tcl obj type "cmd"
-
-2009-08-19  Gustaf A. Neumann  
-
-
-	- no need to call objvparser in stub code, when just "allargs" are
-	  specified in a method
-
-
-	- generated interface for ::xotcl::createobjectsystem and
-	  ::xotcl::finalize
-
-
-	- added c functions for handling nonposargs in XOTclProcContext:
-	  getNonposArgs(), addNonposArgs()
-	- provide convenient means to get Proc *: getObjectProc()
-	  getClassProc()
-	- removed old hashtables and managing functions for nonposargs
-	- reduced size of XOTclObject and XOTclClass structures
-
-2009-08-18  Gustaf A. Neumann  
-
-
-	- XOTclProcContext and XOTclProcDeleteProc(): hooks for storing
-	  method information in command structures
-	- added nonpos args lookup via XOTclProcContext
-
-2009-08-17  Gustaf A. Neumann  
-
-
-	- minor cleanup
-
-
-	- split callProcCheck() into invokeProcMethod() and
-	  invokeCmdMethod()
-	- renamed DoCallProcCheck() into InvokeMethod()
-
-2009-08-17  Gustaf A. Neumann  
-
-
-	- removed XOTclCallStack definition and datastructures, when compiled
-	  with TCL85STACK
-	- CallStackPop(): when compiled with TCL85STACK,
-	 the function just initializes a given call stack content;
-	 allocation based on C-Stack
-	- some function cleanup and minor optimizations
-
-2009-08-14  Gustaf A. Neumann  
-
-
-	- added option withRootClass to ComputePrecedenceList();
-	- exclude rootClass in search for defaults (for the time being)
-	- implemented cmd ::xotcl::instvar
-
-2009-08-13  Gustaf A. Neumann  
-
-
-	- get rid of fakeNS
-	- minor simplification in XOTcl_PopFrame()
-
-
-	- Removed currentFramePtr (the pointer from the xotcl stack to the tcl
-	stack) from the call stack content. Now, all access to the call stack
-	content happens via the tcl85stack.
-	- For the time being, the xotcl stack is purely an allocation stack
-	(we still have to evaluate, where we should store the call stack
-	content efficiently:
-	some options: via alloca, on the c-stack, on the tcl stack, on an
-	allocation stack)
-
-
-	- new method CallStackPopAll() for making ExitHandler() independent
-	  from call stack structures
-
-
-	- implemented doCleanup() independent from stack structures
-	- some variable renaming
-
-
-	- renamed UndestroyObj() to CallStackMarkUndestroyed() and implemented
-	  it for tcl85stack
-
-
-	- get rid of CallStackIsDestroyed()
-
-
-	- move tcl85showStack(), nonXotclObjectProcFrame() and
-	  nextFrameOfType() to xotclStack*.c
-
-
-	- get rid of GetSelfProc()
-	- implemented XOTclNextMethod() for tcl85stack
-
-
-	- implemented XOTclForwardMethod () for tcl85stack
-
-
-	- return Tcl frame pointer as last arguments in
-	  CallStackGetFrame() and CallStackGetTopFrame()
-	- pass call stack content to GetSelfProc()
-	- some simplifications to avoid multipe stack searches
-	- implemented XOTclSelfSubCommand () for tcl85stack
-
-
-	- implemented FilterActiveOnObj() for tcl85stack
-
-
-	- pass conditionally XOTclCallStackContent to GuardCall() due to
-	  different stack lifetime
-	- CallStackPush() returns now callstack content
-	- implemented CallStackFindActiveFilter() for tcl85stack
-
-
-	- implemented computeLevelObj() for tcl85stack
-
-2009-08-12  Gustaf A. Neumann  
-
-
-	- implemented CallStackUseActiveFrames() for tcl85stack
-	- nonXotclObjectProcFrame returns now only active frames
-
-2009-08-11  Gustaf A. Neumann  
-
-
-	- implemented XOTclCallStackFindActiveFrame() for tcl85stack
-
-
-	- defined new (3rd) frame type FRAME_IS_XOTCL_CMETHOD for calling
-	  c-implemented methods (the same as FRAME_IS_XOTCL_OBJECT,
-	  except that it uses csc as clientData instead of only the xotcl
-	  object
-	- implemented XOTclCallStackFindLastInvocation() for tcl85stack
-
-
-	- pass call stack content explicitly to
-	  canonicalNonpositionalArgs to obtain active class or object
-	- fix two more regression test entries with canonical args (info
-	  body, order in info locals)
-	- canonical args passes now regression test (also in connection with
-	  tcl85stack)
-
-
-	- pass call stack content explicityl to XOTclNextMethod, which is
-	  used on one occurance outside the tcl callstack scope, such
-	  that CallStackGetTopFrame() gets the previous stack entry
-	- implemented CallStackGetTopFrame() for tcl85stack
-	- implemented CallStackGetObjectFrame() for tcl85stack
-
-2009-08-10  Gustaf A. Neumann  
-
-
-	- new function CallStackDestroyObject() to factor out xotcl stack
-	access Since tcl-stack-entries have a lightly different life-time
-	(pop is managed by tcl), we have as well slightly different life-times
-	of objects. One test in the test suite is deactivated for now, we will
-	see, if this turs out to become a problem as we proceed.
-
-
-	- new function CallStackClearCmdReferences() to factor out xotcl stack
-	  access
-
-
-	- moved stack procs into new files xotclStack.c and xotclStack85.c
-	- based CallStackGetFrame() in addition to GetSelfObj() to new
-	  stack structure, when TCL86STACK is defined
-	- fixed error and warning message for failed assertions to avoid access
-	  to the xotcl stack
-
-
-	- follow naming conventions for defines TCL85STACK_TRACE
-	- deactivate CANONICAL_ARGS for the time being
-
-
-	- Stefan implementation for args with canonical args
-	- canonicalNonpositionalArgs() receives explicit current xotcl object
-
-2009-08-09  Gustaf A. Neumann  
-
-
-	- remove debug output
-
-2009-08-09  Gustaf Neumann  
-
-
-	- rename variable "ns" (namespace pointer) to "nsPtr" for tcl naming
-	  compliance
-
-
-	- simplified callingNameSpace() significantly (works with and
-	  without TCL85STACK the same way)
-	- simplified GuardCall (removed argument push)
-	- removed unneeded functions, reduced tracing
-
-2009-08-09  Gustaf A. Neumann  
-
-
-	- snapshot 3
-	- first version passing regression test again
-
-2009-08-07  Gustaf A. Neumann  
-
-
-	more trace
-
-
-	- snapshot #2
-
-2009-08-06  Gustaf A. Neumann  
-
-
-	- starting to use tcl85 stack (when complied with TCL85STACK).
-	  Goal is to remove the own stack handling, when compiled with
-	  Tcl 8.5+ Introduced two frame types, FRAME_IS_XOTCL_METHOD and
-	  FRAME_IS_XOTCL_OBJECt
-	- Currently, only self is resolved this way from the Tcl stack.
-	- Currentlsy, just parts (e.g. testo.tcl) of the regression test work
-
-2009-08-05  Gustaf A. Neumann  
-
-
-	- updating changelog
-	- cleanup and documentation in xotcl.c
-
-
-	- cleanup of arguments in makeproc (Stefan Sobernig)
-
-
-	- finishing unset unspefied values in nonpos arg passing under
-	canonical args, when a nonposarg has no default, and the parameter is
-	not required, we have to unset the dummy default value. Since causes
-	some overhead, since unset is done via ::xotcl::unsetUnknownArgs
-
-2009-08-04  Gustaf A. Neumann  
-
-
-	commit snapshot
-
-2009-08-03  Gustaf Neumann  
-
-
-	- releasing dynamically allocated parse contexts
-	- tried to reduce overhead of method invocation when no nonposArgs are
-	  used, but failed, sind proc has neither flags not clientData
-
-2009-07-29  Gustaf Neumann  
-
-
-	- make ifdsize explicit (stubcode generator)
-	- new method parseContextInit(), will be used for variable sized
-	  interfaces (for nonpos arg parsing)
-
-2009-07-28  Gustaf Neumann  
-
-
-	- first implementation of canonical arguments
-
-2009-07-24  Gustaf Neumann  
-
-
-	removed duplicate line
-
-2009-07-07  Gustaf A. Neumann  
-
-
-	- based introspection for procs/instprocs on new argument definition
-	  structures
-	 - allowing type checkers also for positional arguments
-	 (for now only, when nonpos args are given as well; we have
-	 to think about using these either for all procs/instprocs,
-	 or only, when e.g. type checkers are used; we have to
-	 make more benchmarking to get a better foundation)
-	 - registered the following type checkers for procs/instprocs:
-	 switch, integer, boolean, object, class
-	 Example
-	 o proc bar {-enable:switch o:object c:class} {
-	 return "o=$o c=$c"
-	 }
-	 - generated interface for ::xotcl::configure; now 97 interfaces are
-	 generated; shortcoming for bool/int converter stubs: optional
-	 0-vaues are not recognized, so use tclobj for the time being
-	 - extended regression test
-
-2009-07-06  Gustaf A. Neumann  
-
-
-	 - parse non-pos-args for procs/instprocs into new argument
-	  definition structure
-	- using new parseObjv for calling procs and instproc when
-	  nonpos-args are used (invocation time went from 9.08ms to
-	  5.95ms)
-	- TODO: complete implementation for regression test, base
-	  introspection/copy etc. on new structures
-
-2009-07-05  Gustaf A. Neumann  
-
-
-	 - support for enumeration types in c-code generator
-	- use function pointer for type checker instead of strings
-	- generated interface for ::xotcl::methodproperty
-
-2009-07-04  Gustaf A. Neumann  
-
-
-	- ::xotcl::my generated
-
-
-	- generated interface for ::xotcl::relation
-
-
-	 - support for generating interface for ::xotcl commands
-	- generated interface for ::xotcl::alias
-
-
-	- removed compatibility for versions before Tcl 8.4 (was not tested
-	  anyhow) This version requires at least Tcl 8.4.
-
-2009-07-01  Gustaf A. Neumann  
-
-
-	- separated C-code generator from declarations
-
-2009-07-01  Gustaf Neumann  
-
-
-	 - moved all definitions of method commands to generated code
-	- from 15356 generic/xotcl.c => 13408
-
-2009-06-30  Gustaf Neumann  
-
-
-	- all object methods generated
-	- added reference counting for patternobj
-	- some cleanup and reordering
-
-2009-06-30  Gustaf A. Neumann  
-
-
-	- committing snapshot
-
-2009-06-29  Gustaf Neumann  
-
-
-	- fixed regression test
-
-
-	- improved varargs handler, instforward
-
-2009-06-29  Gustaf A. Neumann  
-
-
-	 - !!! removed obsolete features
-	  * ability to specify nonpos args and pos args as different
-	  arguments
-	  * compile flags AUTOVARS, REFCOUNTED, REFCOUNT_TRACE
-	- added -flags with one argument + type
-	- generated all class methods from interface descriptions
-	- transtional version, not all test of regression test work correctly
-
-
-	- 3 class methods generated, handling args/allargs
-
-2009-06-28  Gustaf A. Neumann  
-
-
-	- added check methods
-
-
-	- all " info" commands generated
-
-
-	 - changed " info hasNamespace" to " info
-	  hasnamespace" (all commands and info options are lowercase
-	  only, no underscore)
-	- 11 " info" commands generated
-
-
-	- objv-stubs for all 23 class info methods
-
-2009-06-28  Gustaf Neumann  
-
-
-	- defined 5 more info methods view generator
-	- simplified objpattern handling
-
-2009-06-28  Gustaf A. Neumann  
-
-
-	- improved changelog entry
-
-
-	- added c-stub generate (generates Tcl_ObjCmdProc from method
-	  definitions in Tcl)
-
-2009-06-27  Gustaf A. Neumann  
-
-
-	- added generator for tclAPI.h
-	- defined 8 info methods based on the new objv parseing
-	  infrastructure
-	- replaced occurances of "instdestroy" by "dealloc" in documentation
-
-2009-06-27  Gustaf Neumann  
-
-
-	- committing snapshot
-	- changed method name "instdestroy" into "dealloc"
-	- new file: tclAPI.h
-
-2009-06-26  Gustaf A. Neumann  
-
-
-	- implemented yet another objv parser
-	- used currently only for XOTclClassInfoInstancesMethod()
-
-2009-06-25  Gustaf A. Neumann  
-
-
-	- new command: ::xotcl::createobjectsystem  
-	This command creates a basic object system with the specified
-	 as most general root class and the specified metaclass as
-	most general meta class.
-	 Example: ::xotcl::createobjectsystem ::oo::object ::oo::class
-	 In general, it would be possible to remove an objects system
-	 at runtime, but there is so far no tcl interface for this.
-	- extended framework to work with multiple root classes
-	- the basic root class of XOTcl is now ::xotcl::Object again
-	 (instead of ::oo::object) as before. The old setup can be
-	 achieved on the Tcl-layer.
-
-2009-06-25  Gustaf Neumann  
-
-
-	- added metaclass property for root metaclass
-	- metaclass property is set via ::xotcl::relation ... metaclass
-
-2009-06-23  Gustaf A. Neumann  
-
-
-	- new parse() infrastructure for factoring out common parsing
-	  patterns of objv[] parsers
-	- new error message handler: XOTclObjErrArgCntObj()
-	- shortend code by about 1000 lines (about 100 due to parse())
-
-
-	-implemented XOTclObjInfoParametercmdMethod(),
-	XOTclClassInfoInstparametercmdMethod() -implemented -closure for
-	XOTclClassInfoInstmixinMethod()
-
-
-	- use objectName() and className() when possible
-	- implemented XOTclClassInfoMixinofMethod() and
-	  XOTclClassInfoInstmixinofMethod()
-	- some cleanup in regression tests
-
-
-	update changelog
-
-
-	- add object-system test to regression test target
-
-2009-06-22  Gustaf A. Neumann  
-
-
-	- fixed bug in "info precedence -intrinsic"
-
-
-	 - define default meta-class for ::xotcl::Class
-	- use default meta-class, when a the topmost meta-class of an
-	  object system is deleted
-	- fix regression test
-
-
-	- work on collateral damage after merge
-	- fixed many test cases from the regression thest
-	- wrote some changes to ChangeLog as a reminder
-
-
-	- new regression test file
-
-
-	 merge with 1.6.3 (HEAD)
-
-2009-06-19  Gustaf Neumann  
-
-
-	- follow Tcl's naming conventions more closely
-
-2009-06-14  Gustaf A. Neumann  
-
-
-	- updated Changelog
-
-
-	- 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
-
-2009-03-20  Gustaf A. Neumann  
-
-
-	- fix wording
-
-2009-03-19  Gustaf A. Neumann  
-
-
-	- finishing release 1.6.3
-
-
-	updated changelog, wrote announcement
-
-
-	- removed references to 1.6.2
-
-2009-03-04  Gustaf Neumann  
-
-
-	- re-enable small optimization
-
-
-	- factor out common code
-
-
-	- provide compatibility with Tcl 8.4
-
-2009-03-04  Gustaf A. Neumann  
-
-
-	- bump version number to 1.6.3
-
-
-	- simplify semantics of MixinSeekCurrent and FilterSeekCurrent,
-	  improve speed
-	- remove necessity to have tclCompile.h
-	- improve documentation
-
-2009-03-02  Gustaf A. Neumann  
-
-
-	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  Gustaf A. Neumann  
-
-
-	- 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  Gustaf A. Neumann  
-
-
-	- 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  Gustaf A. Neumann  
-
-
-	- Correct deletion of user-metaclasses
-	- commenting existing and potential usage of namespace resolvers
-
-2008-12-01  Gustaf A. Neumann  
-
-
-	- 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-03  Gustaf A. Neumann  
-
-
-	- remove CVS-based date line from documentation
-
-
-	- minor documentation updates
-
-2008-11-02  Gustaf A. Neumann  
-
-
-	- documentation updates
-
-
-	- removed unneeded function
-
-
-	- update Changelog and documentation
-
-
-	- new command ::xotcl::finalize to delete all xotcl objects and
-	  classes. Calls as well exit handler
-	- some cleanup
-
-2008-10-17  Gustaf Neumann  
-
-
-	- handle nonposargs in method "copy" properly
-	- extend regression test for copy
-	- added " mixinof -closure ?pattern?"
-	- extended regression test for mixinof
-	- updated documentation
-
-2008-09-11  Gustaf A. Neumann  
-
-
-	update documentation
-
-
-	- upgrading object to class and downgrading class to object not
-	  allowed via "class" method
-	- upgrading and downgrading can be performed via create (but
-	  using destroy/create instead of recreate)
-	- fixed bug, where an "o info precedence" could core, after a
-	  class C was destroyed, where class C was used as a superclass
-	  of a mixin of o.
-	- minor refactoring
-
-
-	extended regression test
-
-
-	fix close of TT
-
-2008-09-10  Gustaf A. Neumann  
-
-
-	first part of fix when a class is "casted" (via method "class") into an
-	object
-
-2008-06-24  Gustaf A. Neumann  
-
-
-	added release statement to Changelog
-
-
-	added annouce files for 1.6.1
-
-2008-06-23  Gustaf A. Neumann  
-
-
-	   * 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.
-	  * Remove pattern argument from "info class"
-	  * Check results for guards to be boolean instead of integer (now,
-	  guards are allowed to return e.g. "true")
-	  * Bump version number to 1.6.1
-
-2008-06-04  Gustaf Neumann  
-
-
-	  * check in guards for boolean values, not for integer values, such
-	  that a guard {true} means success
-
-2008-05-30  Gustaf A. Neumann  
-
-
-	   * 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  Gustaf Neumann  
-
-
-	   * make "info (inst)?forward -definition name" more robust
-	  (provide an error message, if  is nog given
-	  * New info subcommands "info parametercmd" and "info
-	  instparametercmd"
-	  * export *parametercmds in Serializer, use "-noinit" on slots as well
-
-2008-05-26  Gustaf Neumann  
-
-
-	- fixed bug in info instdefault, when argument is an empty string.
-
-2008-05-09  Gustaf A. Neumann  
-
-
-	  * used catch in the deprecated package xotcl::upvar-compat as
-	  suggested by Jeff Hobbs
-
-2008-03-18  Gustaf Neumann  
-
-
-	fixed error message
-
-
-	  * allowed "abstract method" in additon to "abstract instproc" and
-	  "abstract proc"
-
-2008-03-04  Gustaf Neumann  
-
-
-	moved examples out of library
-
-2008-02-26  Gustaf A. Neumann  
-
-
-	- xotcl.c: fix for double ;; (causes chokes MSVC6 in the next line)
-
-2008-02-25  Gustaf A. Neumann  
-
-
-	updated url of tcl wiki
-
-
-	- Fix for "x configure -set";
-
-
-	fix url of tcl wiki
-
-2008-02-24  Gustaf A. Neumann  
-
-
-	minor documentation improvements
-
-
-	update info page to include xotcl-mailing-list
-
-
-	fix typos
-
-2008-02-24  Gustaf Neumann  
-
-
-	updated announcement file
-
-2008-02-24  Gustaf A. Neumann  
-
-
-	don't include .orig files in the tar files
-
-2008-02-23  Gustaf A. Neumann  
-
-
-	update release date in changelog
-
-
-	updating copyright time range
-
-
-	fix man dir
-
-2008-02-22  Gustaf Neumann  
-
-
-	updated announce
-
-
-	updated Announce, removed unneeded files from git
-
-
-	regenerated doc files
-
-
-	iinitalize olways test name
-
-
-	added annouce file
-
-
-	remove obsolete files
-
-
-	removed obsolete file
-
-
-	removing test file
-
-
-	include tcl license termin in distro
-
-
-	updateing dates in copyright
-
-
-	updating dates in copyright
-
-
-	updateing dates in copyright
-
-
-	updating dates in copyrights
-
-
-	unset debug mode
-
-
-	improved documentation
-
-
-	bump version number
-
-2008-02-22  Gustaf A. Neumann  
-
-
-	- clear XOTCL_MIXIN_ORDER_VALID flag unconditionally in
-	  MixinInvalidateObjOrders() for mixins
-
-2008-02-21  Gustaf A. Neumann  
-
-
-	- improved formatting and wording in Changelog entry
-
-
-	  * 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,
-
-2008-02-08  Martin Matuska  
-
-
-	- new info option for "info instmixin" supporting -guards and
-	  -closure support
-	- extended test cases for "info instmixin"
-
-2008-02-06  Gustaf A. Neumann  
-
-
-	   * 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.
-	 Still to do "-closure" in
-	  info instmixin -closure ?pattern?
-	   * 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  Gustaf A. Neumann  
-
-
-	 - 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  Gustaf Neumann  
-
-
-	Complete todos in Changelog
-
-2008-02-04  Gustaf A. Neumann  
-
-
-	  * 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 korrespinding 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.
-	 Still to do:
-	 children
-	 parent
-	 classchildren
-	 classparent
-
-2008-02-04  Martin Matuska  
-
-
-	- update ChangeLog
-
-2008-02-04  Gustaf A. Neumann  
-
-
-	- 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  Gustaf A. Neumann  
-
-
-	- fixed softcrecreate for subclasses of recreated classes
-	- fixed softcrecreate when recreate defines different superclasses
-	- extended test cases for mixinoftest
-
-
-	- added missing src_man_dir
-
-
-	updated version number
-
-
-	- added ::xotcl::test::case
-	- shortended output
-
-2008-02-01  Gustaf Neumann  
-
-
-	- Add closure option to mixinofinfo
-	- Enhance getAllClassMixinofs
-
-2008-01-23  Gustaf Neumann  
-
-
-	 - saveing object->id in cl->opt->id (probably a temporary
-	  solution)
-	- new function: MixinResetOrderForAllInstances (transitive
-	  version of MixinResetOrderForInstances()
-	- use MixinResetOrderForAllInstances for resetting instances
-	- extended regression test
-
-2008-01-07  Gustaf A. Neumann  
-
-
-	 - don't call unset traces during an object move
-
-2008-01-04  Gustaf Neumann  
-
-
-	 - preserving var traces when copying objects
-
-2008-01-01  Gustaf A. Neumann  
-
-
-	- fixed evaluation context in guard expressions ([self callingproc]
-	  returned "" in cases, where the callingproc was possible to determine)
-
-2007-12-28  Gustaf A. Neumann  
-
-
-	added CVS to ignore files
-
-
-	extended test slightly
-
-
-	added test for mixinof
-
-
-	name change to reduce confusion:
-	  * mixinofs -> isObjectMixinOf
-	  * instmixinofs -> isClassMixinOf
-	  * getAllInstMixinofs -> getAllClassMixinsOf
-	  * RemoveFromMixinofs -> removeFromObjectMixinsOf
-	  * RemoveFromInstmixinsofs -> removeFromClassMixinsOf
-
-
-	updated recent changes
-
-
-	- fixed crash for deleted classes in new code
-	- changed name from MixinResetInstanceOrder() to
-	  MixinResetOrderForInstances()
-	- imporving documentation
-	- made code more local
-	- activate assertion during development
-
-
-	- new function from Martin MixinResetInstanceOrder()
-	- better cleanup when classes are deleted
-
-
-	Adding Martin's patches for instmixinof
-
-2007-12-13  Gustaf Neumann  
-
-
-	fix alias command for aliasing to tcl procs
-
-2007-11-13  Gustaf Neumann  
-
-
-	insert missing word "list" (typo)
-
-2007-11-09  Gustaf Neumann  
-
-
-	added missing file (install.sh from tclconfig)
-
-
-	add missing file
-
-2007-11-01  Gustaf Neumann  
-
-
-	 - change panic() to Tcl_Panic()
-	- panic, when cmdlist contains deleted command
-
-
-	make test slightly more verbose
-
-
-	added xotclConfig.sh
-
-2007-10-31  RebuM  
-
-
-	- set clopt->assertions to NULL on class cleanup
-
-
-	- do not remove class from mixinof and instmixinof lists on
-	  recreate
-	- fix deletion of clopt on Class recreate
-	- fix street address in file header
-
-2007-10-30  Gustaf Neumann  
-
-
-	added project-wide ignore-file
-
-
-	added more patterns
-
-
-	add a project-wide ignore file
-
-
-	remove files, which should not be in git
-
-
-	syntactical cleanup
-
-
-	syntactical cleanup
-
-
-	follow tcl coding convention to make merge easier
-
-
-	fixed typo
-
-
-	synchronized with head version xotcl-2007-10-30
-
-
-	   * change Tcl_ObjSetVar2() to Tcl_SetVar2Ex() to address problem
-	  in setting variables from C. The set variable was not seen in
-	  an eval.
-	  * extended regression test
-
-2007-10-29  Gustaf Neumann  
-
-
-	Don't though error when the last argument of "obj info class <...>" or
-	"cl info superclass <....>" is a non-existing class, but return false
-	instead. This leaves room for pattern matching.
-
-
-	return mixins before procs in procsearch added regression test for
-	this case
-
-
-	minor cleanup and variable renaming
-
-
-	some code refactoring making new code more robust
-
-2007-10-28  Martin Matuska  
-
-
-	Adding mixinof and instmixinof
-	- new class info options: mixinof instmixinof
-	- on class destroy entry is now removed from mixin and instmixin lists
-
-2007-10-14  Gustaf Neumann  
-
-
-	removed unneeded file
-
-2007-10-12  Gustaf Neumann  
-
-
-	prepare forthcoming version
-
-
-	importing experimental xotcl version
-
-
-	restructured directory to remove superfluous directory xotcl
-
-2007-10-12  neumann  
-
-
-	1.5.6 release
-
-
-	added missing files
-
-2007-10-05  neumann  
-
-
-	1.5.6 release candidate 1
-
-2007-09-18  neumann  
-
-
-	1.5.5 release
-
-2007-09-13  neumann  
-
-
-	1.5.5 release candidate 2
-
-2007-09-05  neumann  
-
-
-	1.5.5 release candidate
-
-2007-08-14  neumann  
-
-
-	1.5.4 release
-
-
-	1.5.4 release
-
-2007-08-08  neumann  
-
-
-	1.5.4 release candidate 2
-
-2007-08-06  neumann  
-
-
-	1.5.4 release candidate
-
-2006-10-04  neumann  
-
-
-	1.5.2 release
-
-2006-09-27  neumann  
-
-
-	1.5.2 release
-
-2006-09-25  neumann  
-
-
-	1.5.1 release
-
-2006-09-14  neumann  
-
-
-	complete fileset for xotcl 1.5.0
-
-
-	1.5.0 release
-
-2006-02-18  neumann  
-
-
-	1.4.0 release
-
-2005-09-09  neumann  
-
-
-	1.3.7 prerelease
-
-
-	1.3.7 prerelease
-
-2005-01-15  neumann  
-
-
-	final cleanup for release 1.3.5
-
-
-	final cleanup for release 1.3.5
-
-2005-01-10  neumann  
-
-
-	added class method allinstances
-
-2005-01-07  neumann  
-
-
-	fix for serializer, when xotcl is not imported globally
-
-
-	fix for serializer, when xotcl is not imported globally
-
-
-	fix for serializer, when xotcl is not imported globally
-
-
-	fix glitch for pkg_mkindex.tcl
-
-
-	serialier extensions, namespace fixed for xotcl.tcl
-
-2005-01-06  neumann  
-
-
-	nonpos arg fixes, pos args and nonpos args in same argument list
-
-2004-12-02  neumann  
-
-
-	Jeffrey's fixes, metadata not recursive
-
-2004-11-27  neumann  
-
-
-	final cleanup for release 1.3.3
-
-
-	final cleanup for release 1.3.3
-
-2004-11-20  neumann  
-
-
-	fixed nested uplevel with 1 and filters
-
-2004-11-19  neumann  
-
-
-	nonposargs fix
-
-
-	fixed returncode for unknown and nested uplevel with 1
-
-2004-11-14  neumann  
-
-
-	fixed yet another fmr
-
-
-	fixed fmr for 'namespace delete topofobj'
-
-2004-10-30  neumann  
-
-
-	doc improvement, saving memory on objects and classes, errors for
-	deletions of nonexisting methods
-
-2004-10-13  neumann  
-
-
-	namespace resolving for __unknown, made namespace handling more
-	orthogonal
-
-2004-10-10  neumann  
-
-
-	namespace fixes, exists fixed
-
-2004-09-21  neumann  
-
-
-	namespace fixes, nonpos args fixes
-
-2004-08-26  neumann  
-
-
-	interpProc
-
-
-	interpProc
-
-2004-08-25  neumann  
-
-
-	1.3.1
-
-2004-08-22  neumann  
-
-
-	distcleaned tar files
-
-
-	first checkin
-
-
-	distcleaned tar files
-
-
-	cleanup of xotcl.h and xotclInt.h
-
-
-	fixed for nonposargs with blanks in arguments, doc in build tree
-
-2004-08-19  neumann  
-
-
-	fixed configure with subdirs outside of source tree
-
-2004-08-18  neumann  
-
-
-	finsishing touches
-
-
-	finsishing touches
-
-2004-08-17  neumann  
-
-
-	finsishing touches
-
-
-	finsishing touches
-
-
-	fix for my, documenting changes, serialzier, rpmbuild
-
-2004-08-04  neumann  
-
-
-	positional arguments for forwarder
-
-2004-08-03  neumann  
-
-
-	extended __unknown
-
-2004-08-02  neumann  
-
-
-	some cleanup
-
-
-	fix in doObjInitialization
-
-2004-07-30  neumann  
-
-
-	extended forwarder to execute commands
-
-2004-07-28  neumann  
-
-
-	more mem fixes
-
-
-	more mem fixes
-
-2004-07-27  neumann  
-
-
-	mem fixes
-
-
-	next method
-
-2004-07-23  neumann  
-
-
-	next method
-
-2004-07-20  neumann  
-
-
-	fixed a potential crash when a instmixin was registered on itself;
-	nonposargs
-
-2004-07-18  neumann  
-
-
-	extended commands filter, mixin, instfilter, instmixin
-
-2004-07-03  neumann  
-
-
-	extended commands filter, mixin, instfilter, instmixin
-
-2004-07-02  neumann  
-
-
-	removed tclcmd/insttclcmd, more tests and cleanup, more speed, config
-	improvements
-
-2004-07-01  neumann  
-
-
-	fixes and introspection for forwarder
-
-2004-06-30  neumann  
-
-
-	added percent substitutions for forwarder
-
-2004-06-25  neumann  
-
-
-	fixed coredump in delegation, when no method is given
-
-2004-06-21  neumann  
-
-
-	instcmd and cmd, -inscope and -nomethod
-
-2004-06-20  neumann  
-
-
-	mkinstdelegate and mkdelegate
-
-
-	mkinstdelegate and mkdelegate
-
-2004-06-18  neumann  
-
-
-	subdir traversal for distclean
-
-
-	jim's patch for distclean
-
-
-	jim's patch for distclean
-
-
-	jim's patch for distclean
-
-
-	execute instproc in definition namespace
-
-2004-05-24  neumann  
-
-
-	added $id$
-
+-----------------------------------------------------------------------------
+2000-06-05 XOTcl 0.81 Release -- Major Changes to Version 0.80
+        - changelog started by Uwe Zdun
+        * xotcl.c:
+        - deep copy/move with all language features
+         - renamed "parameters" to "parameter"
+        - renamed "info filters" and "info mixins" to "info filter"/
+          "info mixin"
+        - added deprecated error message
+        - added "xotcl_interp" command to start an XOTcl slave interp
+        - better "package" support and integration
+        - linearizing of per-object mixin hierarchy with ordinary
+          class hierarchy
+        - isobject, isclass, and ismetaclass with identical interface:
+          all have the obj/cls in question as argument
+        - reference tracing with "info reference", "info referencedby" added
+        - internal xotcl-lib now in predefined.xotcl -> make file
+          automatically creates predefined.h
+        * toplevel-configure added
+        * Actiweb:
+        - early alpha preview for code mobility, registry, web objects
+          added. be careful: the APIs will most likely change in the
+          future
+        - SSL Place
+        * HTTPserver/access:
+        - Open SSL support
+        * xoXML/xoRDF:
+        - RDF Typed Node support
+        - Parsing of several top nodes at once -> mixing of XML and RDF easier
+        - Tests integrated and several new tests
+        - XML/RDF recreation added
+        * xoStore:
+        - Support for tclgdbm added -- thanks to Stefan Vogel for
+          providing the Win version of gdbm