Index: ChangeLog =================================================================== diff -u -r6d3fa5f6de5f6a4bc1ef7dbcc2e56edf9307be64 -r02c12f61000d623a065b4efd62a3c5ee428e1bb5 --- ChangeLog (.../ChangeLog) (revision 6d3fa5f6de5f6a4bc1ef7dbcc2e56edf9307be64) +++ ChangeLog (.../ChangeLog) (revision 02c12f61000d623a065b4efd62a3c5ee428e1bb5) @@ -1,3874 +1,12712 @@ -2014-04-29 - * Release of XOTcl 1.6.8 +2013-06-10 Gustaf Neumann -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 + - More release work + - Release NSF 2.0b5 -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 +2013-06-10 ssoberni -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 + - Fix the implementation of NsfInterpObjCmd() which crashed + previously due to the broken resolution of the child + interpreter -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). +2013-06-09 Stefan Sobernig -2013-07-16 - * library/actiweb/HttpPlace.xotcl: add URL query variables as - arguments + - Proof-read announcement for a second time -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 +2013-06-09 Gustaf Neumann -2013-03-26 - * doc/langRef.xotcl: update documentation + - NsfDStringPrintf(): set the length of the resulting DString -2012-10-13 - * Make sure to NS_EXPORT Ns_ModuleVersion for people using still - the old-style aolserver module. +2013-06-08 Stefan Sobernig -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 + - 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-14 - * xotcl.c Don't overwrite error messages from __unknown handler in - several situations (superclass, parameter class, mixin class) +2013-06-07 Gustaf Neumann -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). + - 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 -2011-12-22 - * Httpd: force GMT dates as required by RFC +2013-06-06 Gustaf Neumann -2011-11-12 - * Removed obsolete CVS-$Ids - * Updated dates of Copyrights - * Removed unneeded c++ hints for Emacs + 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-02 - * Release of XOTcl 1.6.7 + nx::test: + - change test cases to newer interface + - don't use "namespace import nx::*" in test cases when not required -2011-11-01 - * xotcl.c: some c-cleanup - * library files: require exact version numbers to avoid conflicts - with XOTcl 2.0 + 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-08-07 - * backport of autoname fix from nsf +2013-06-05 Gustaf Neumann -2011-04-28 - * serializer: fix allChildren to handle names with semicolons - * serializer: fix allInstances to handle names with semicolons -2011-02-09 - * Backport of nsf to handle partial implicit deletes + - Eliminate all use of Tcl_GetStringFromObj() function. + - fix typos, example code + - further release work -2011-01-20 - * Change backport of fix below to a check of numEntries +2013-06-05 ssoberni -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. + Fixed some typos and suggesting some rewording -2010-12-26 - * Make cppcheck happy +2013-06-05 Gustaf Neumann -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". + - initial checkin of nx-mode.el + - preparing 2.0b5 release -2009-11-13 - * Release of XOTcl 1.6.6 +2013-06-04 Stefan Sobernig -2010-04-01 - * make sure, Tcl var traces are not called twice - for volatile objects - * fix for info: make sure, value is always initialized + Left a to-do in the nxdoc backend + Completed update of nxdoc for NX -2010-03-27 - * avoid cyclic dependencies with namespace imported command - during final cleanup +2013-06-04 Gustaf Neumann -2010-03-26 - * fixed 64bit problem in expat code - * fixed memory leaks in info methods and forward (error case) + serializer.tcl + - added flag -objmap to Serialzer.deepSerialize to make serializer + usable for copying (-map is to coarse) + - extended regression test -2010-03-22 - * clean up compilation when compile with assertions turned on - * make sure to use xotcl 1.* when regression testing xotcl 1.* +2013-06-04 Stefan Sobernig -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 + Adjusted nxdoc for the recent changes to NSF/NX -2010-02-09 - * provide compatibility with 8.6b1 - * bumped version number to 1.6.6 +2013-06-03 Gustaf Neumann -2010-12-29 - * fix example in tutorial + 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 -2009-11-13 - * Release of XOTcl 1.6.5 + nsf.c + - fixed a potential crash for objects having a wrapper-less alias defined -2009-11-06 - * applied per-object slot changes from Stefan Sobernig - * extended regression tests - * fix package resolution, if multiple XOTcl versions are installed +2013-06-03 ssoberni -2009-11-02 - * fixed namespace visibility problem reported by Mykhaylo Sorochan + nsf.c + - Make sure that the original error message is preserved when + calling destroy after a failed CMD or INITCMD -2009-10-24 - * fixed var resolver/memory leak problem reported by Victor Mayevski - * bumped version number to 1.6.5 +2013-06-03 Gustaf Neumann -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 + 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-06-19 - - minor variable renaming to follow tcl naming conventions more closely +2013-06-02 Gustaf Neumann -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 + nx::test: + - deactivate calling overhead calculation, since this is not reliable + (sometimes larger than the call). -2009-03-19 - * Release of XOTcl 1.6.3 + - 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 - - removed references to 1.6.2 + - when creation with an required configure parameter failed, delete the + half-baked object to avoid confusing states. -2009-03-04 - - re-enable small optimization - - factor out common code - - fix compatibility with Tcl 8.4 - - bump version number to 1.6.3 + - nx::test: show msg at start of test file -2009-03-03 - - simplify semantics of MixinSeekCurrent and FilterSeekCurrent, improve speed - - remove necessity to have tclCompile.h - - improve documentation +2013-06-01 Gustaf Neumann -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 + - 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-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 + nx.tcl: + - renamed variable option "-config" to "-configurable" to make its + intention clearer -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 +2013-05-31 Gustaf Neumann -2009-01-19 - - Finish work on deletion of user-metaclasses - - commenting existing and potential usage of namespace resolvers + - traits: added ability to turn on verbosity for traits by using + nx::configure trait-verbosity on|off -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 + 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-11-02 - * Release of XOTcl 1.6.2 + 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-01 - * added command ::xotcl::finalize + package nx::plain-object-method: + - made warnings configurable via nx::configure + plain-object-method-warning on|off + - completed coverage and test cases - This command has the only purpose to delete all objects and classes - of an interpreter in a multi-threaded environment at a safe time. +2013-05-30 Gustaf Neumann - 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). + nsf.c + - fixed potential infinite loop in pattern matching for + precedence lists + - cget: make error message closer to tcl conventions + - extended regression test - Note, that ::xotcl::finalize is not intended for application programs. +2013-05-29 Gustaf Neumann - * some code cleanup + - 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 ..." -2008-10-17 +2013-05-28 Gustaf Neumann - * handle nonposargs in method "copy" properly + - renamed initblock parameter from __initcmd to __initblock + - renamed nsf::configure parameter from "keepinitcmds" to + "keepcmds" - * extend regression test for copy + - 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) - * added " mixinof -closure ?pattern?" - Query the objects for which is used as a per-object-mixin - (directly or indirectly) + nx.tcl: + - removed "info is .." since it might raise more questions + than it solves - * extended regression test for mixinof + - 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 - * updated documentation +2013-05-26 Gustaf Neumann -2008-09-11 - * Implement proper downgrading of Classes to Objects: + 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 - 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). + Cleanup of nsfAPI.decls + - remove unneeded enumeration types + - use "typeName" to shorten reported names of parameters + - use camel case for reported names - 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. + - changed ::nsf::parametersyntax(..) to + ::nsf::parameter::syntax(..) - * reset mixin order for per-object mixins, when the superclass - of a class is deleted, which is used as per-object mixin + - xotcl2: adjusted manual parameter syntax entries to new conventions - * extended regression test - * Updating and improving documentation +2013-05-24 Gustaf Neumann -2008-06-24 - * Release of XOTcl 1.6.1 + - added implementation for slots with traces+types for classes + - exception for incorrect defaults are thrown during slot creation -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") + - extended nsf::is, added parameter + * ?-configure? -- accept configure parameter options + * ?-name /name/? -- provide a parameter name for error message -2008-05-30 - * updating language reference + - simplified nx.tcl by using new nsf::is + - extended regression test - * 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. + - added partly implementation for slots with traces+types for + classes -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 + - 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-26 - * fixed bug in info instdefault, when the given argument name - is an empty string. Example: - X info instdefault crash "" var + - extended regression test -2008-05-09 - * used catch in the deprecated package xotcl::upvar-compat - as suggested by Jeff Hobbs +2013-05-23 Gustaf Neumann -2008-03-18 - * allowed "abstract method" in addition to "abstract instproc" - and "abstract proc" + 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-02-26 - * xotcl.c: The double ;; chokes MSVC6 in the next line. - (many thanks for Andreas Kupries for reporting) + - 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-25 - * Fix for "x configure -set"; many thanks to - Rene Zamseil for reporting. + - streamline documentation -2008-02-24 - * Release of XOTcl 1.6.0 + 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-22: - * Update of documentation + - renamed option "-methodtype" to "-type" in -2008-02-21: - * Clear XOTCL_MIXIN_ORDER_VALID flag unconditionally - in MixinInvalidateObjOrders() for mixins (Neophytos - had problems in naviserver; many thanks for reporting!) + /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: + - minor code cleanup - * 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. +2013-05-22 Gustaf Neumann - 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). + - streamlined AddSlotObjects() + - cleanup of TODOs + - nsf.c: handle full-qualified name for private slots + (AddSlotObjects()) + - extended regression test - 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] - } +2013-05-21 Gustaf Neumann - 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. + - updated next-tutorial: + * bring definitions of properties and variables up to date + * fix "object methods" -2008-02-08: - * New info option "-closure" for "info instmixin" with - -guards and -closure support + - XOTcl2: ensure public accessor when "-parameter ..." is used - * Extended test cases for "info instmixin" + - extended parameter extractor: new functionality -2008-02-06: - * Continued with info orthogonality change + ::nsf::parameter get default /parameter/ ?/varname/? + ::nsf::parameter get type /parameter/ + /obj/ info parameter get default /parameter/ ?/varname/? + /obj/ info parameter get type /parameter/ - info mixin ?pattern? - info instmixin ?pattern? +2013-05-20 Gustaf Neumann - ?pattern? behaves exactly like in the change of two days - ago. Preceding colons in the name of the queried class are not - required. + - hopefully the last changes for ?object? + method|variable|property: defined + * "/obj/ delete object method" + * "/obj/ delete object property" + * "/obj/ delete object variable" - * 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 + - "info method syntax" returns now "/cls/ ...." + - "info object method syntax" returns now "/obj/ ...." - * Made the behavior "pattern" in the following calls identical - concerning wild cards and object lookups + - updated next-migration guide to reflect changes from the + configure reform + - make name fully qualified for symmetry reasons + - minor cleanup - mixin delete pattern - instmixin delete pattern - superclass delete pattern + - nx-pp.tcl: fixed changed accessor handling, added cget to + highlight words - * extended regresson test +2013-05-19 Gustaf Neumann -2008-02-05: + - added new regression test info-variables.test - * fix getAllClassMixinsOf to handle combinations of transitive per - class mixins and inheriting per-class mixin via the class - hierarchy, removed getAllSubClasses +2013-05-19 Gustaf Neumann - * extend test cases + Method and configure parameter reform, Part 3: + - added -2008-02-04: - * Potential incompatibility: - provide a uniform interface to the following info subcommands + /cls/ info lookup variables -> list of handles + /obj/ info lookup object variables -> list of handles + /obj/ info variable definition|name|parameter /handle/ - info superclass ?-closure? ?pattern? - info subclass ?-closure? ?pattern? - info instances ?-closure? ?pattern? - info instmixinof ?-closure? ?pattern? - info mixinof ?pattern? + - 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/" - In cases, where the option "-closure" is defined, the values are - computed transitively. +2013-05-18 Gustaf Neumann - 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. + - dropped "/obj/ info slot definition /obj/" in favor of "/slotobj/ + definition" - 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. +2013-05-17 Gustaf Neumann - By using the option "-closure" one can perform the lookup in the - transitive or in the intransitive sets. + - nx.tcl: handle "incremental" in slot reconfigure + - nx.tcl: change defaultAccessor to "none" -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") +2013-05-17 Gustaf Neumann -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 + - 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-01: - - new info option "-closure" for "info mixinof" (transitive version) - - process subclasses for getAllClassMixinsOf + /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-01-23: + /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/? - - saving object->id in cl->opt->id (probably a temporary solution) +2013-05-16 Gustaf Neumann - - improving reset of affected objects, when (transitive) per class - mixins change + - Method and configure parameter reform - - extended regression test + /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 -2008-01-07: - - don't call unset traces during an object move (related to fix below) +2013-05-14 Gustaf Neumann -2008-01-04: - - preserving var traces when copying objects - (Many thanks to Florian Murr for reporting the bug) + - avoid crash in case NsfParameterGetCmd() is passed a plain value -2008-01-02: - - fixed evaluation context in guard expressions - ([self callingproc] returned "" in cases, where the callingproc - was possible to determine) +2013-05-13 Gustaf Neumann -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 + - minor documentation updates -2007-12-28: - - new function from Martin MixinResetInstanceOrder() - - better cleanup when classes are deleted +2013-05-10 Gustaf Neumann -2007-12-13: - * fix alias command for aliasing to Tcl procs + - initialize stub-tables only once -2007-11-09: - * added missing file (install.sh from tclconfig) + - syntax formatter: use /value/ for denoting placeholder in + "... info method syntax ..." -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 +2013-05-07 Gustaf Neumann -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. + - parametersyntax: make placeholders explicit -2007-10-28: - * some code refactoring - * making new code more robust + - moved "/obj/ info slot definition|..." to "/obj/ info object + slot definition|..." for consistency -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 + - provided "parametersyntax()" for "object mixin" and "object + filter" -2007-10-12: - * Release of XOTcl 1.5.6 +2013-05-05 Stefan Sobernig -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... + - win/makefile.vc: have the install target copy the public + headers as well -2007-10-04: +2013-05-04 Stefan Sobernig - * 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. + - MinGW toolchains do not provide support _vscprintf(), so we + limit the use of it to MSVC; tested NsfDStringPrintf under + MinGW - * Improve debugging code to make it easier to trace - problems with Tcl_Objs. + - Provide tcl library path to summary.tcl and remove + intermediate file from repo - * Serializer: Added dependency rule in serializer to ensure slots of - superclasses are listed before subclasses. (Thanks to Stefan - Sobernig for reporting the problem) + - Fixed the Win32 logic for computing the Tcl_DString in + NsfDStringPrintf(), tested for MSVC under x86 and amd64 - * Serializer: moved deactivation of traces into "Serializer all" - to get simpler results on "o serialize". +2013-05-04 Gustaf Neumann - * Regression tests: extended tests to address - the newly identified and fixed problem cases. + - updating next-tutorial to object method syntax -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(). +2013-05-03 Gustaf Neumann -2007-09-29: - * Fix for cases, where volatile objects are - deleted before the corresponding trace variable. + - updated migration guide + - update to new naming -2007-09-18: - * Release of XOTcl 1.5.5 +2013-05-03 ssoberni -2007-09-18: - * Fix rpm build (most probably due to TEA 3.6) + - Fix the 86-specific tests to reflect the object-modifier + reform -2007-09-13: - * Use AssocData instead of the clientdata of the - global namespace to store the XOTcl interpreter's +2013-05-03 Gustaf Neumann -2007-09-13: - * Upgrade to TEA 3.6 + - try to print arguments in one sweep in NsfDStringPrintf() + - remove "extern" declarations -2007-09-10: - * Make forward option -earlybinding more robust, when - forwards are done to Tcl procs +2013-05-02 ssoberni -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 + - Revised NsfDStringPrintf() for portability to + non-C99-compliant C runtimes (MSVC); remains to be tested - * 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 +2013-05-02 Gustaf Neumann - 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 + - first and incomplete update of migration guide to new syntax - 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. +2013-05-01 Stefan Sobernig -2007-08-10: - * Release of XOTcl 1.5.4 + - Re-enabling deletion of intermediate file in makefile + - Remove legacy build artifacts -2007-08-10: - * fixed regression test in rdf-tests (introduced - due to autoname changes in 1.4.0) + - 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: - * Fixing bugs introduced by VarReform - * Extending regression test to handle the cases +2013-04-29 Gustaf Neumann -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) + - bumped version number to 2.0b5 -2007-08-06: - * Changed all references to /tmp to [::xotcl::tmpdir] to honor - TMPDIR TEMP TMP if set + - 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) - * 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 + - fix xotcl instance method serialization (still not covered + in regression test) - (Many thanks to Stefan Sobernig for the help!) + - renamed "package require nx::class" to "package require + nx::class-method" in analogy to "nx::plain-object-method" -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. + - added "/obj/ object variable" and "/obj/ object property" - (Many thanks to Miguel Sofer for the help!) +2013-04-28 Gustaf Neumann - From the Tcl Changelog - *** 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: + 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 - 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. + 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 - 2. 'struct Bytecode' has an additional field that has to be - initialized to NULL + - nsfPointer.c: add parameter to Nsf_PointerDelete() for + allowing optional freeing - 3. 'struct Namespace' is larger, as the varTable is now one - pointer larger than a Tcl_HashTable. Direct access to its - fields will malfunction. + - reduced default verbosity + - moved NsfConfigEnabled from nsf.h to nsfInt.h (no need to be + part of the public interface) - 4. 'struct CallFrame' grew one more field (the second such - growth with respect to Tcl8.4). + - moved NSF_ARGPARSE_* macros to nsf.h (since arg parser is + public and uses these flags) - 5. api change for the functions TclFindCompiledLocal, - TclDeleteVars and many internal functions in tclVar.c +2013-04-23 Gustaf Neumann -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 + Object-method Reform: -2007-07-23 - * Pre-Release of XOTcl 1.5.4 + - 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: - * fixed a bug with empty argument names - (Many thanks for Stefan Sobernig for reporting the bug) + Now we define methods via: -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). + /cls/ method foo {args} {...body...} + /cls/ object method foo {args} {...body...} + /obj/ object method foo {args} {...body...} -2007-06-05: - * Fixed spelling mistakes in the tutorial - (Many thanks to Robert Hicks for reporting) + Similarly, aliases, forwards and mixins are defined, e.g. -2007-05-27: - * Fixed potential error with default values for parameters - starting with a "-". (Many thanks to Shishir Ramam - for reporting) + /cls/ mixin add ... + /cls/ object mixin add ... + /obj/ object mixin add ... + /obj/ require object method ... -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) + The same change propagated as well to the "info" method. + Now we have: -2007-01-14: - * fixing error message propagation for methods called via - configure. (Many thanks for Kristoffer Lawson - for reporting the bug) + /cls/ info methods ... + /cls/ info object methods ... + /obj/ info object methods ... -2006-12-12 - * changing "test == " to "test =" as required by FreeBSD - (many thanks to Martin Matuska for providing - the patch) + Similar, the object parameterization uses -2006-12-07 - * MinGW patches - (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-11-25 - * Release of XOTcl 1.5.3 + - as a consequence, -2006-11-24 - * provided compatibility with Tcl 8.5 - (checking callframe level instead of empty varframe for toplevel - frames) + 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 - * 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. + 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 - * reduced calling overhead of methods with non-positional arguments - by about 10 percent by avoiding shimmering. + - added package nx::class to allow optionally the "class" notation + "/cls/ class method ..." (and friends, see (a)), and + "/cls/ class info ... - * fixed handling of "return -code break" from xotcl methods - (thanks to Artur Trzewik for the bug report) + - added package nx::plain-object-method to allow optionally + plain method b) "/obj/ method ...." (and friends, see (b)) - * library/comm/Access.xotcl: fixed handling of chunked encoding + - add support to slots to use ensemble methods as setters -2006-09-29 , Uwe Zdun - * Release of XOTcl 1.5.2 +2013-04-17 Gustaf Neumann -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) + - allow explicit unsetting of -per-object flag in 0-argument + -flag=value notation -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) +2013-04-05 Gustaf Neumann -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 + - reduce variable scope -2006-09-24 - * xotcl.c: make sure, that no - Tcl_SetIntObj(Tcl_GetObjResult(interp), 1); - happens on shared objects. +2013-03-25 ssoberni -2006-09-22 , Uwe Zdun - * Release of XOTcl 1.5.1 + - 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 - * 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. +2013-03-25 Stefan Sobernig -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 + - 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-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 +2013-02-19 Gustaf Neumann -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. + - 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 - Example: - XOTclAddIMethod( interp, MyClass, "mymethod", MyMethod, - XOTCL_NONLEAF_METHOD, 0 ); +2013-01-22 Gustaf Neumann -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) + - more code cleanup + - reduce variable scopes + - remove EXTERN declarations from function definitions -2006-09-17 - * fixed a bug in deprecated part, when -setter is used in parameter - options. +2013-01-08 Gustaf Neumann -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) + - Update to latest TEA. + - Follow new naming convention for auto-tools (using configure.ac) -2006-09-14 , Uwe Zdun - * Release of XOTcl 1.5.0 + - silence compiler warnings -2006-09-13 Uwe Zdun - * Update of build files for windows +2012-12-12 Gustaf Neumann -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) + - replace Tcl_GlobalEval by Tcl_Eval, since Tcl_GlobalEval will be + removed in futures versions of Tcl -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 +2012-11-26 Stefan Sobernig -2006-09-07 - * provided Tcl 8.5a4 compatibility - * spellechecking langref, make terminology more consistent - (naming of arguments like .e.g methodName) + - Checked built and test suite against Tcl 8.6rc2 + (core-8-6-0-rc) under MinGW32; removed temporary fix for bug + #3401422 -2006-09-04 - * update of tcl.m4 for newest TEA from CVS +2012-11-19 Gustaf Neumann -2006-09-03 - * "mixin|filter|instmixin|instfilter set ..." deprecated, use - "mixin|filter|instmixin|instfilter assign ..." instead + - quote filename in content disposition -2006-09-01 - * fixed a bug in the xotcl trace module (many thanks to jima for reporting) - * extended procsearch to report parametercmd and instparametercmd +2012-11-16 Gustaf Neumann -2006-08-30 - * extended procsearch to report as well [inst]parametercmd + - replace nx::configure option defaultPropertyCallProtection by + defaultAccessor -2006-08-26 - * extended procsearch to report as well [inst]forward and [inst]cmd + - protect trf against leading dashes -2006-08-25 - * new subcommand "info slots" - * implemented backwards bug-compatible "info parameter", deprecated +2012-11-15 Gustaf Neumann -2006-08-23 - * added system slots and attribute slots (see documentation) + - deactivate tests in library file -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. +2012-11-14 Gustaf Neumann -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) + - add additional "convertto" when generating zip files from strings -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). +2012-10-30 Stefan Sobernig -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) + - 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-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. +2012-10-28 Stefan Sobernig -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) + - Extending test case to cover slotassign issue + - Adding a test and a temporary fix for the ::nsf::is issue in + setCheckedInstVar -2006-03-22 - * deprecated command filterappend, instfilterappend, mixinappend, - instmixinappend, tclcmd, insttclcmd deleted +2012-10-13 Gustaf Neumann -2006-03-20 - * allow single colons in method names (fix in xotcl.c, NSTail()) + - Make sure to NS_EXPORT Ns_ModuleVersion for people using + still the old-style AolServer module. -2006-02-17 , Uwe Zdun - * release of 1.4.0 +2012-10-04 Gustaf Neumann -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 + - make assumptions in code explicit -2006-02-08 Uwe Zdun - * fixed a bug with transitive mixins +2012-10-03 Gustaf Neumann -2006-02-02 - * Upgrade to TEA 3.5 + 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-01-10 - * fixing exit behavior with variable traces in multi-threaded - environments (volatile objects could be demalloced twice before) +2012-10-02 Gustaf Neumann -2006-01-08 - * allowing tcl commands and variables as default values for parameters; previously, - only one-word commands were allowed. + 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-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 +2012-09-30 Gustaf Neumann -2006-01-06 - * unsetting the global variable "cmd" from predefined.xotcl - (Many thanks to Koen Danckaert for reporting) + - remove debug output -2006-01-05 , Uwe Zdun - * fixing incorrect state in filters after next - * extended regression test + 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-02 - * info children returns true children, no namespace imported objects/classes - * extended regression test +2012-09-29 Gustaf Neumann -2005-12-20 - * upgrading configure scripts of subcomponents to TEA 3.4 + - extended regression test -2005-12-17 - * fixing missing omitted message for unknown subcommand to self + - 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-07 , Uwe Zdun - * release of 1.3.9 + nx.tcl: + - change parameter name in "/cls/ info parameter ... ?pattern?" from + "name" to "pattern" -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) +2012-09-28 Gustaf Neumann -2005-12-04 - * Upgraded TEA to 3.4 - * updated rpm build (many thanks to Ildiko Schmidt and Alexander Bergolth) + - 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-11-28 - * new command ::xotcl::__qualify: convert an relative name - into an command name (exactly as create does it, ignoring - namespaces from transparent interceptors) +2012-09-27 Gustaf Neumann -2005-11-26 - * require automatically a namespace when a childobject is added + - 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-18 - * new switch -nocomplain for "mixin|instmixin|filter|instfilter delete" - to avoid error messages when deleting entries not there (similar unset) + - 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-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 + - rename invalidateobjectparameter -> + parameter:invalidate::classcache + - rename invalidateobjobjectparameter -> + parameter:invalidate::objectcache + - bring cmds into alphabetical order -2005-11-02 - * new subcommand of self: [self args] return the full argument list - of the current call +2012-09-26 Gustaf Neumann -2005-10-02 , Uwe Zdun - * release of 1.3.8 + - first draft of per-object parameter caching (for per-object-mixins + and per-object properties). -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) + nsf.c: + - fix potential bad interaction between per-object mixins and per-class + caching of object-parameters -2005-09-28 - * fixed bug in instvar (many thanks to Koen Danckaert for the report) - extended regression test +2012-09-25 Gustaf Neumann -2005-09-27 , Uwe Zdun - * release of distribution XOTcl 1.3.7 + - don't blindly register all object/class methods for XOTcl -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. + 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-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" + 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-14 - * Fixing serializer to enforce methods on ::xotcl::Object or ::xotcl::Class - before other objects and classes + - 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-13 - * adding two package require into library files - (many thanks to Andreas Kupries for the report) +2012-09-22 Gustaf Neumann -2005-09-09 - * fixing various namespace issues in library files to make - regression test working again. + - renamed timing variable from "time" to "ms" + - added timing statistics -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 +2012-09-21 Gustaf Neumann -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].... - * 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! + - generalize handling for per-object-properties + - added additional file for regression test - * fixed refrence resolving in istype; the following works now the same - way: - C create c1 - c1 istype ::C - c1 istype C +2012-09-19 Gustaf Neumann -2005-09-02 - * code cleanup: removed ifdefs for TCLCMD + Property reform part 1: + - disallow protection modifiers for "properties" and + add new flag "-accessor" to "property" and "variable" + This changes definitions like -2005-08-04 - * fixed instvar implementation when variable names - are empty strings (many thanks to Zoran for reporting this) + Class create C { + :property {a a1} + :public property {b b1} + :protected property {c c1} + :private property {d d1} + } -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. + to -2005-05-04 - * prevent new from overwriting an existing object - (increment further until unused name is found) + Class create C { + :property {a a1} + :property -accessor public {b b1} + :property -accessor protected {c c1} + :property -accessor private {d d1} + } -2005-07-04 Jeff Hobbs - * providing update for configure + 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-04-04 - * allow xotcl to be used in safe safe interpreters + - 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. - ~rlwrap /usr/bin/tclsh - % package req XOTcl - 1.3.7 - % interp create -safe slave - slave - % load "" xotcl slave - % slave eval ::xotcl::Object o1 - ::o1 + old: + Class create C { + :property foo:int,incremental + :variable bar:int,incremental + } + new: + Class create C { + :property -incremental foo:int + :variable -incremental bar:int + } -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" + - disallow "public class property" and friends since these are + not needed - * 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 parameter property "noaccessor" -2005-03-17 , Uwe Zdun - * release of distribution XOTcl 1.3.6 + - removed "nx::configure defaultPropertyCallProtection" and + method hook "__default_property_call_protection" -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. + - introduced "nx::configure defaultAccessor" and + method hook "__default_accessor" - * 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 + - for the time being, "defaultAccessor" is "public" for NX and + XOTcl, will be changed to "none" in NX -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 + - extended regression test (new file properties.test) -2005-03-01 - * improved documentation of next in langRef +2012-09-15 Gustaf Neumann -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) + 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-01-15 , Uwe Zdun - * release of distribution XOTcl 1.3.5 + nx.tcl: + - remove debugging output + - renamed testlog file, remove it on "make clean" -2005-01-10 - * added instproc for ::xotcl::Class allinstances - to return all instances for the actual class + nsf.c: + - made argument of cget required -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 + nx.tcl: + - added Tk-style methods "configure" and "cget" + - added additional regression test set for cget and configure -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) + nsf.c: + - implemented cget as a configure-like method, dropped ensemble method + variant -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 + nx.tcl: + - simplified "/obj|cls/ delete method" due to resolving capabilities in + nsf::delete::method + - fixed regression test to run all test again correctly -2004-12-15 - * fixed crash for empty arguments - (thanks to Gerald Stermsek for reporting this bug) + xotcl2.tcl: + - made destructor of Connection more robust such it does not depend on + accessor methods. -2004-12-02 , Uwe Zdun - * release of distribution XOTcl 1.3.4 +2012-09-14 Gustaf Neumann -2004-12-02 - * changed metadata analyser from recursive to iterative + 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-11-30 - * various fixes to improve portability +2012-09-13 Gustaf Neumann -2004-11-27 , Uwe Zdun - * release of distribution XOTcl 1.3.3 + - updated 34 copyright notices -2004-11-20 - * fixed [self callinglevel] in nested uplevel loops - in the presence of filters, extended regression test + 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-19 Uwe Zdun - * fixed bug: empty non-pos args, double dash alone. - Thanks to Bryan Schofield for reporting this bug. - Added tests. + 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-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) +2012-09-10 Gustaf Neumann -2004-11-14 - * fixed yet another free memory read - (many thanks for Zoran for help with purify) + - finalize transition from old code -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 +2012-08-28 Gustaf Neumann -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 + - fix frame scoping for myvar/myproc -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 +2012-08-10 Gustaf Neumann -2004-10-09 - * fixed recreation bug in connection with namespace eval - * fixed exists for objects with own namespaces + - allow to change title of a scripted document + - make doc beautifier more robust for invalid lists + - use explicit return in tutorial example scripts -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. +2012-08-01 Gustaf Neumann -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. + - improve documentation + - use "nsf::relation $cl superclass" instead of "$cl configure + -superclass" + - minor documentation updates -2004-08-26 , Uwe Zdun - * release of distribution XOTcl 1.3.1 + nx::test: + - added summary at the end of "make test" via log file + - updated .gitignore -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 +2012-07-31 Gustaf Neumann -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 + 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-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. + - handle cyclical superclass/class dependencies during object + system finalize + - extend regression test -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 +2012-07-18 Gustaf Neumann -2004-08-17 , Uwe Zdun - * release of distribution XOTcl 1.3.0 + nsf.c: + - ignore in internal calls to "dealloc" protection settings + - handle cyclical class dependencies during object system finalize + - extend regression test -2004-08-17 - * fixing make for rpm - * tweaking configures stuff to work with rpm +2012-07-18 Stefan Sobernig -2004-08-16 - * adding two sections to tutorial, updated langref.xotcl + - 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-15 - * Adding non positional arguments to serializer + - tests/parameters.test: Adjusted the relevant tests -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 + - 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-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 +2012-07-17 Gustaf Neumann -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) + - define method "proc" of ::xotcl::Attribute in terms of + ::xotcl::Object proc -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 + - make sure to have gcc branch hints in generated code -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) + - honor default type in "info slot names" -2004-07-28 - * yet another fixed access to freed memory - (thanks to Zoran for his help with Purify ) +2012-07-17 ssoberni -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 ) + - Addressed a number of issues in the NX slot infrastructure + (which revealed themselves when running Mark's + BusinessActivities implementation in XOTcl2 mode): -2004-07-23 - * implemented experimental next method for delegating same-named procs - to different objects + - 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-20 - * fixed a potential crash when a instmixin was registered on itself + - 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-19 Uwe Zdun - * added checkoptions to non pos args - * added tests & documentation of non pos args + - 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-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 + - library/xotcl/tests/slottest.xotcl: Added tests for the above compatibility + enhancements. -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?) +2012-07-16 Gustaf Neumann -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. + - allow instance property inheritance for traits -2004-07-03 - * extended commands filter, mixin, instfilter, instmixin: - These commands are changed in a backward compatible manner. They - can be used as follows +2012-07-11 Gustaf Neumann - 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 + - Don't advertise to use "configure" method for calling + class/superclass in documentation sice we have better + ways. - 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 +2012-06-27 ssoberni -2004-07-02 Uwe Zdun - * integrated support for non-positional arguments for procs - and instprocs + - 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 - * 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 +2012-06-25 Gustaf Neumann -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. + - 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-06-29 - * changed name of delegator methods to forward/instforward - * removed most of the switches of the forwarder. We have now +2012-06-01 Gustaf Neumann - 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. + 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 -2004-06-24 - * fixed coredump for delegation to object without method specified - (many thanks for Bryan Schofield for the bug report) +2012-05-22 Gustaf Neumann -2004-06-20 - * removed inclusion of - * second version of delegator methods cmd and instcmd + - 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 - 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... +2012-05-22 Stefan Sobernig - Class instcmd \ - ?-nocaller? \ - ?-nomethod? \ - ?-inscope? \ - ?-skip nr_of_tokens? \ - ?-insert tokens? - ?-prefix string? \ - ?-defaultmethod subcommand? \ + - configure, configure.in: Under win, the CLEANFILES missed a + pattern for object files - 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 + - 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. - -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) + - NsfProcStub(): Use the EXTERN macro rather than extern directly +2012-05-21 Gustaf Neumann -2004-06-18 - * added *.a to CLEANFILES in configure.in to rm stublibfile - on a "make clean" - * added subdir traversal for distclean + - 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-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 +2012-05-17 Gustaf Neumann -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 + - change "#!/bin/env" into "#!/usr/bin/env" -2004-05-29 - * first version of instdelegatecommand +2012-05-14 Gustaf Neumann - * defined metaclass ::xotcl:.SelfApplicableClass to allow - for instprocs of this class to be applicable for itself - (useful for delegation objects) + - increase backward compatibility for ::xotcl::Attribute by defining + the public methods "set", "exists" and "istype" - * first version of ::xotcl::relations - (for relations between objects and classes and for - inter-class-relations) +2012-05-14 ssoberni -2004-05-22 - * fixed path for installing files in Makefile.in - (many thanks to Jeffrey Hobbs) - * fixed path searching in xotcl.m4 + - apps/utils/nxdoc: fix shebang path to env ... -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 + - 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-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. + - 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-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 +2012-05-13 Gustaf Neumann -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 + - 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-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. +2012-05-11 Gustaf Neumann -2004-03-03 - * fixed a potential crash in procSearch method (Thanks to - Artur Trzewik for the good error report) + - implement escaping for comma in value of parameter options: + escaping in values can be achieved via duplicating the comma. + - extend regression test -2004-02-29 - * callMethod* calls DoDispatch instead of ObjDispatch - * adding a callStackPush() for XOTclOEvalMethod() such that - 'o eval self' returns '::o' +2012-05-04 ssoberni -2004-02-21 - * added link to XOTcl wiki to xotcl homepage. + - 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-20 , Uwe Zdun - * release of distribution XOTcl 1.2.0 +2012-04-20 Gustaf Neumann -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 + - explorative implementation of object method dispatches with + KEEP_CALLER_SELF and no NSF_PER_OBJECT_DISPATCH + - extend regression test -2004-02-16 - * fixed a reference to a structure of a destroyed object +2012-04-16 Gustaf Neumann -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 + 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-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 +2012-04-11 Gustaf Neumann -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 + - fix off-by-one error + - add regression test for keepcallerself with and without + perobjectdispatch + - fix typo -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 +2012-04-10 Gustaf Neumann -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. + - serializer: + * pertain perobjectdispatch and keepcallerself in serializer + * extend regression test -2004-01-31 - * performed coverage analysis of regression test - * changed unsuccessful branches into asserts - * extended testx.xotcl for better coverage + nsf.c: + - generalize stack monitor by handling growing and shrinking + stacks + - refactor into function CheckCStack() -2004-01-28 - * Streamlined code; removed mixinChainOn from mixinStack and - filterChainOn from filterStack and use callstack - frameTypes instead. - * some performance improvements + - serializer: -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 + * 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-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. + - extended regression test -2004-01-16 - * defined upvar method (uses [self callinglevel] when no level - specified) - * simplified stringIncrement method and added a couple of - assert(). +2012-04-05 Gustaf Neumann -2004-01-15 - * allow volatile to be called from toplevel - * decrementing refcount of global objects as needed - (some had a high increment) + - 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-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'. +2012-03-09 Gustaf Neumann - * 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 + - protect serial generation for parameters via mutex + - fix compilation when compiled without threads (many thanks for + r.zaumseil for noting this). - package require xotcl::upvar-compat +2012-03-05 Gustaf Neumann - * moved resetting of shadowed tcl commands after the deletion - of object (as suggested by Zoran) + - tcl86.test: better implementation of method "each", cleanup and + extension of enumerator tests -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 +2012-02-29 Gustaf Neumann -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 + - extended regression tests for yield + - implemented "next" for ruby-like enumerators (each needs still more + work) -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 +2012-02-27 Gustaf Neumann -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 + - 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-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 +2012-02-24 Gustaf Neumann -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 + 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-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 +2012-02-22 Gustaf Neumann -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 + - 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 -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 + - Improve wording in instructions + - Improve comments + - Documented dependencies between configure flags and feature + activation cpp macros -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 +2012-02-17 Gustaf Neumann -2003-12-25 - * update of various library functions (such as Httpd) to - use sub-objects as methods (avoids calls of [self]::objname) -2003-12-19 - * xotcl.c: allow to call sub-objects as methods via "my" + - 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-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 +2012-02-16 Gustaf Neumann -2003-11-13 , Uwe Zdun - * release of distribution XOTcl 1.1.1 + - don't allow object creation to overwrite non-object cmds (e.g. procs) + - improve debug line -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 +2012-02-16 ssoberni - eval "SHARED_LIB_SUFFIX=${VERSION}${TCL_DBGX}${TCL_SHLIB_SUFFIX}" - eval "UNSHARED_LIB_SUFFIX=${VERSION}${TCL_DBGX}.a" + - 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. - and pass it through xtoclConfig.sh to the c based - c-components (sdbm, gdbm, expat) + - 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. -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} + - 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-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 + - 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-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 +2012-02-16 Gustaf Neumann - % mkdir -p /tmp/xotcl/unix - % cd /tmp/xotcl/unix - % ~/xotcl-1.1.1/unix/configure --with-all - % make - % make test - % make install DESTDIR=/tmp + - treating incompatible forwarding to slot vs. slot option + noaccessor + - extended regression test -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 -2003-12-02 - * added "--with-tkinclude" - * fixed "--with-tclinclude" to set TCL_INCLUDES (for all - subdirs) + - use Tcl's EXTERN macro instead of "extern" -2003-11-29 , Uwe Zdun - * release of distribution XOTcl 1.1.0 +2012-02-04 Gustaf Neumann -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 -2003-11-28 - * fixed include path for actiweb components (sdbm and expat) - * extended transparent mixins for upvar, uplevel - * extended regression test + update release procedure -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 +2012-02-03 Gustaf Neumann -2003-11-26 - * removed ::xotcl::lib from predefined variables and from man - page - * added namespace require to xotclsh - * added transparent mixins for instvar + - 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-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 +2012-02-01 Gustaf Neumann -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) + - released NSF 2.0b3 -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 +2012-02-01 Gustaf Neumann -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. + - extended blacklist for tar file + - reduce variable scopes -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 +2012-01-31 Gustaf Neumann -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. -2003-11-09 - * xotcl.c: fixed calling exit-handler twice for threads + - 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-06 - * xotcl.c: simplified handling of command substitutions; - starts to work with Zoran's nstrace.tcl for AOLserver -2003-11-02 MichaelL@frogware.com - * XOTcl Stub lib configure files for C-based extensions. + - 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 - * 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 -2003-10-31 - * Substituted config/config.sub and config/config.guess - (many thanks to Zoran) - * unix/Makefile.in fixed target install-aol + add missing question mark -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) -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. + fix typo -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. +2012-01-29 Gustaf Neumann -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. -2003-09-10 Uwe Zdun - * Integrated bug fixes provided by Klaus Kolowratnik - for the secure http server. + - 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-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 -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 + - remove debug output -2003-08-26 Uwe Zdun - * doc for precedence order and transitive instmixins in - tutorial +2012-01-28 Gustaf Neumann -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 -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 + - Don't export symbols in the general case just because of MSC/C89 + compliance -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 -2003-07-13 - * Fixed potential crash with shared objects in configure - * First version of object tree creation via parameter + - updates -2003-07-11 - * extended parameter handling code to support the creation - of parameter objects - * fixed a few documentation bugs -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> + - Cleanup for compilation under MSC (avoid unsupported forward + declaration of array) + - further documentation of functions, better grouping of functions -2003-06-28 - * added --with-xotclsh and --with-xowish to create - shell optionally +2012-01-27 ssoberni -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 -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) + - 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-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 +2012-01-26 Gustaf Neumann -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' -2003-05-11 Uwe Zdun - * added new methods '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-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 +2012-01-25 Gustaf Neumann -2003-05-03 - * xotcl.c: Changed mixinlist creation from quadratic to linear - (both, in XOTclAddClass and CmdListAdd) -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) + doc: fixed line-number handling locally -2003-04-25 - * fixed various typos in examples in tutorial - * first implementation of guarded mixins -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 + - removed documentation about incompatibility to XOTcl1 in respect of + the method interface for object invocations -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) +2012-01-23 Gustaf Neumann -2003-04-17 Uwe Zdun - * Unified ListObjChildren and ListClassChildren into one - method ListListChildren -2003-04-16 - * xotcl.c: fixed segfault from classchildren - (many thanks to Michael Cleverly for pointing this out) + - fixed NRE memory management (for Tcl 8.6) by refactoring alias + handling -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. +2012-01-21 Gustaf Neumann -2003-03-19 , Uwe Zdun - * release of full distribution XOTcl 1.0.2 -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 - * 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 +2012-01-20 Gustaf Neumann -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 -2003-03-07 - * Made output of the serializer more compact - (omitting unnecessary references to ::xotcl::Object + - 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 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. -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 + - 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 - # 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 +2012-01-20 ssoberni - 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 -2003-03-04 - * xotcl.c: abort, when a non-threaded xotcl version - is loaded into a threaded environment (e.g. aol-server) + - 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-02-28 - * xotcl.c: fixed a bug the lead to a crash in "self x" +2012-01-20 Gustaf Neumann -2003-02-20 - * fixes to compile xotcl as a module for aolserver-4 -2003-02-06 - * made -volatile a method rather than an option of the - new method + - nsf.c: start all error messages with a lower case word for + consistency and to follow closer to Tcl's conventions -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) -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. + - 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-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 +2012-01-19 Gustaf Neumann -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 -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. + - 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 -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" +2012-01-16 Gustaf Neumann -2002-12-27 - * removed deprecated methods "parameters", "applymethods", - "newChild", "newChildOf" -2002-12-23 - * release of full distribution XoTcl 1.0.1 + - improve handling of multiple error messages in a single command -2002-12-22 - * xotcl.c: some cleanup - * aol-server: improved namespace.tcl (using Serializer) -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. + 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-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) -2002-12-17 Uwe Zdun - * installWin.tcl: correction for patchlevel - * changed version to 1.0.1 + Fix typo in nsf::predefined -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) -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 + Fix typo in ::nsf::deprecated -2002-11-22 - * fixes in documentation - * automatic generation of pdf files and make target - for the tutorial and the language reference +2012-01-15 Gustaf Neumann -2002-11-19 - * fixes for configure for aolserver 3.5.* -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 + - 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-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 +2012-01-14 Gustaf Neumann -2002-11-06 Uwe Zdun - * let the Unix Makefile also (try to) cleanup Win->Release dirs -2002-10-30 Uwe Zdun - * fixes for tcl 8.0.5 + remove namespace import nx::* -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. +2012-01-13 Gustaf Neumann -2002-10-26 - * xotcl.c: fixed problem with external symbol for - cmdType and reactivated KEEP_TCL_CMD_TYPE for all - tcl versions -2002-10-25 Zoran Vasiljevic - * xotcl.c: fixed memory leak for new method. + - removed TODOs from keepcallerself in destroy.test; calls were truely + recursive, behavior was correct. -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). -2002-10-22 Uwe Zdun - * used Tcl's Assoc structures for runtime state + - 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-21 Uwe Zdun - * corrected "abstract" next handling in predefined.xotcl -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. + Version generated for Tcl 8.5 + - maybe we keep this out from the repo in the future -2002-09-14 - * Trace.xotcl: fixed typos in documentation code, changes - for "my". -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. + Allow to pass casts to macros ClassName and ObjectName -2002-08-27 Uwe Zdun - * disabled KEEP_TCL_CMD_TYPE for 8.4, as it did not compile for 8.4b1 +2012-01-10 Gustaf Neumann -2002-08-04 - * Httpd.xotcl: order directories before files in directory - listings -2002-07-18 - * Httpd.xotcl: fix for handling broken links + Bump version number to 2.0 to avoid confusions with the serializer from + XOTcl 1 -2002-07-12 Uwe Zdun - * Win fixes for compilation with Tcl 8.4b1 - * fixed mem leak of filter search +2012-01-02 ssoberni -2002-07-10 - * fixes for compilation with Tcl 8.4b1 -2002-07-06 - * Fixed a compilation bug concerning Tcl 8.2 and younger + - 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-05-30 - * xotcl.c: fixed destroy bug, when object was destroyed - during init - * xotcl.c: minor cleanup -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. + - TODO: updated -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 -2002-05-05 - * fixed UTF-8 conversion for filenames + - 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-04-30 - * Httpd.xotcl: minor cleanup (removed superfluous instvars) - * xotcl.c: removed incr/decr refcount on cl-names in DoDispatch -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. + - Make sure "info method definition" includes the "-returns" + clause. + - generic/nsf.c: Added a helper function AppendReturnsClause() -2002-04-20 Uwe Zdun - * fixed a bug in filter code (recursion blocking) -2002-04-20 - * Http client code: fixed several small bugs: - - url composition - - error handling - - redirects to different ports + - 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-09 Uwe Zdun -2002-04-09 - * finshing rpm and bin-tar generation - * patch release of full distribution (0.9.4) +2011-12-25 Gustaf Neumann -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. -2002-04-08 Uwe Zdun - * fixed .add files for Windows + - remove leftover from merge -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 +2011-12-24 Gustaf Neumann -2002-04-05 - * defined the following policies for excplicit freeing in the - exit handler: - NO_CLEANUP for processes, the physical free in the exit handler - is not needed + - remove file which was placed into generic/asm - 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) - FULL_CLEANUP for testing purposes, to check, whether xotcl - has memory leaks; all global procs and vars - are deleted as well. + - added two files to the asm directory (one needed for compilation, one + for documentary purpose) -2002-04-04 - * fixed a bug with duplicated tcl_objs of XOTclObjectType - that could cause double frees. +2011-12-22 Gustaf Neumann -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). -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.... + - initialize result properly -2002-03-27 Zoran Vasiljevic - * more code for volatile objects moved to C -2002-03-26 - * Fixed a few more places, where recounted xotcl-objects - can cause troubles (mem-leaks + invalid pointers) + - updates for the tutorial (mustly typos and stilistic changes) -2002-03-24 - * auto-deletion of global vars and proc to - get rid of references to xotcl-objects for deletion -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) + - xotcl/library/comm/Httpd.xotcl: force dates in GMT as HTTP RFCs + require -2002-03-11 Zoran Vasiljevic - * xotcl.c: fixed XOTclReplaceCommand for AOL-Server - (multi threading bug) -2002-03-11 - * Httpd.xotcl: fixed relative pathname-bug for basic authentification + - added README file -2002-03-02 - * marked newChild as deprecated (use new -childof) -2002-03-02 - * Changed name of selfdispatch to "my" + - restructured directories, added configure options, some more cleanup -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 +2011-12-18 Gustaf Neumann -2002-02-24 - * Httpd.xotcl: added functionality to provide directory listings - * Httpd.xotcl: create specified root directory if it does not - exist -2002-02-13 - * Makefile.in: fixed a bug in make install - ("package require package" did not work) + - generate AsmAssemble() from definition file as well (currently + included in LabelThreading template) -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. +2011-12-16 Gustaf Neumann -2002-01-10 Uwe Zdun - * removed duplicated system library in library/system. The correct - one is in xotcl-XXX/library!! -2002-01-09 - * fixed path determination code during - startup to avoid "cant read 'pf'" messages + - nx based c code generator for experimenting with different code + engines -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 +2011-12-13 Gustaf Neumann -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 -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) + - doc fixes in tutorial: fix typos and improve some wordings -2001-12-28 - * fixed changeXOTclVersion, made more generic - * fixed Agent migration, made all migrations synchronous - (for the time being) -2001-12-17 Uwe Zdun -2001-12-17 - * finshing rpm and bin-tar generation - * patch release of full distribution (0.9.3) + - initial checkin of experimental assemble support -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 +2011-12-06 ssoberni -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) -2001-12-07 Uwe Zdun - * documented recent changes in XOTcl for release + - 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-05 - * fixed call to unknown in copy method -2001-12-01 Uwe Zdun - * xotcl.c: xotcl::interp rewritten + - 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-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 +2011-12-02 Gustaf Neumann -2001-10-23 - * removed code for calling variable command -2001-10-22 - * xotcl.c: fixed bug for empty superclass list - * fixed stub-install under 8.0.5 + - simplify macro handling with __WIN32__ + - regroup some macro definitions -2001-10-20 -2001-10-20 Uwe Zdun - * patch release of source distribution (0.9.1) +2011-11-30 ssoberni -2001-10-20 - * reimplemented method 'new' of Class in C - * various cleanups for stub handling - * added regression test for stub library -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) + - 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-17 Uwe Zdun - * removed "can't instvar to link" problem during aliasing - to a link var +2011-11-21 Gustaf Neumann -2001-10-15 -2001-05-15 Uwe Zdun - * XOTcl 0.9 Release -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 + - improve branch prediction -2001-10-11 - * improved make clean - * fixed incompatibilities in various - scripts distributed with xotcl -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. + - fix typos + - extend regression test to improve coverage -2001-10-10 - * fixed autoname method for Tcl 8.0.5 +2011-11-18 Gustaf Neumann -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) -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) + 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-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 -2001-10-04 Uwe Zdun - * minor fixes to get WIN version to run again + - minor cleanup, added regression test -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) +2011-11-17 Gustaf Neumann -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 -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 + - fixed potential crash when generating error message about argument + usage when called without a callstack -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 +2011-11-13 Gustaf Neumann -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 -2001-09-25 Uwe Zdun - * merge with - * 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)) +2011-11-12 Gustaf Neumann -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 -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 + nsf.c, nsf.h, nsfStack.c, nx.tcl, tcl-cool.tcl, xotcl2.tcl + - fix spelling in comments + - strip unneeded space -2001-09-18 Uwe Zdun - * xotcl.c: removed object reference code ... I guess we won't do - references this way -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: + - better to let file classify this file as latex than C++ - Object instproc lappend {varName args} { - [self] objeval [concat ::lappend [list $varName] $args] - } - This is easier an faster than using an alias ... -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. + - removed c++ mode -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. - - 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??? + - fix typo -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) -2001-09-13 Uwe Zdun - * xotcl.c: - - eliminated some flaws in filterguards - - forbid "new" filtering during checking a filterguard + 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-06 Uwe Zdun - * xotcl.c: - - also allowed instfilters on a mixin class of an object +2011-11-09 Gustaf Neumann -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 -2001-09-03 - * various cleanup and fixes due to new features + - fix spelling -2001-09-03 Uwe Zdun - * testx.xotcl: - - filterguard tests - * xotcl.c: - - bug corrected: filter order invalidation upon new proc/instproc - ... for filter inheritance +2011-11-05 Gustaf Neumann -2001-08-25 Uwe Zdun - * xotcl.c: - - new filter guards language construct for constraining filter - appliance - - introduced generic Tcl_obj* list instead of - XOTclAssertion*, -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. + - improve wording of comment -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 - Now inside of a namespace, like ::Object, you can call global - methods, like ::set without preceding "::" ... + - 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 - => 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 - } -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 + - handle duplicates in the cmd-list during cleanup -2001-08-20 Uwe Zdun - * xotcl.c and all tests: moved xotcl classes from ::XOTclClasses - to ::xotcl::classes +2011-11-04 ssoberni -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 -2001-08-17 Uwe Zdun - * xotcl.c: integrated complete rewrite of filter code with - per-object filters + - 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-13 - * patch release of source distribution (0.85.3) - * following naming conventions of Tcl for minor changes +2011-11-01 Gustaf Neumann -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 -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 + - 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-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 +2011-10-30 Gustaf Neumann -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) -2001-07-23 - * improved parameter support (see apps/scripts/parameter.xotcl) - * custom setter/getter methods - * xotcl.h: make it usable from C++ + - updated TODO -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 -2001-07-13 - * patch release of source distribution (0.85-p2) + nsf.c: + - added method NsfMethodNamePath() to compute the ensemble path + in error messages + - reduce verbosity + - extended regression test -2001-07-10 - * xotcl.c: first draft of new implementation of parameter - see apps/scripts/parameter.xotcl for a list of features -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 + - minor reformatting -2001-06-21 Uwe Zdun - * fix for tclexpat in Tcl 8.2 versions -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) + nsf.c: + - removed conditionals in AddInstance() and RemoveInstance() + - dropped result from RemoveInstance() -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 -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 + - 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-12 Uwe Zdun - * xotcl.c: fixed reference counting for volatile objects +2011-10-29 Gustaf Neumann -2001-05-01 - * patch release of source distribution (0.85p1) -2001-05-30 - * new predefined method: newChildOf + - fixed documentation bug in migration guide, since arguments in "info + slot ..." were deleted in the code, but not in the guide -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 -2001-05-22 -2001-05-22 Uwe Zdun - * XOTcl 0.85 Release + - fix requiredness of subcmd in "info method subcmd" -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 +2011-10-28 Gustaf Neumann -2001-05-15 - * xotcl.c: fix for colon checking to determine parent namespace - * xotcl.c: Object and Class create returns absolute name (with leading ::) -2001-05-15 Uwe Zdun - * xotcl.c: fix for checking in parent namespace + - bump version number to 2.0b3 -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 +2011-10-28 ssoberni -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 -2001-04-07 - * Access.xotcl: added :: in front of global objects, more robust - * using namespace for soap, implifying interface + - library/nx/nx.tcl: Some slight renamings for the sake of consistency + in the docs -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. -2001-04-03 - * xotcl::comm::httpAccess: user-agent string more generic + - library/nx/nx.nxd: Rewrote and completed API doc for nx::Class -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 -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. + - library/lib/nxdoc-assets/submethod.html.yuidoc: Supporting origin + resolution for submethods. -2001-03-22 Uwe Zdun - * xotcl.c: "cleanup" does not receive args anymore - * xoXML.xotcl: used [self class] for parser autoname -2001-03-19 - * removed dependencies form wafecompat - * Sccs support added to makefiles - * documentation for mixins updated - * decode POST moved before "respond" to ease overloading + - 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-09 -2001-03-09 Uwe Zdun - * release of Version 0.84 -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 + - generic/nsfAPI.decls, generic/nsfAPI.h: + NsfObjInfoFiltermethodsMethod() Fixed a parameter name, from + "fileName" to "filter" -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) -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 + - 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-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. -2001-03-05 Uwe Zdun - * metadataAnalizer: split into dynamic and static variant (static - is used for xodoc + Having rewritten 2/3 of nx::Object -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. +2011-10-27 Gustaf Neumann -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 -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 + - added copyright notice to c code generators -2001-02-22 Uwe Zdun - * xoDoc.xotcl, metadataAnalyzer.xotcl: added documentation and - handling for "abstract" methods, and corrected bugs in html - appearance -2001-02-22 - * xotkAppInit.c: added static package Tk + - add print statements for debugging wierd missing free operations for + internal reps of tcl objs -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. -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 + - remove obsolete comments -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) -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. + - handle preallocated namespace + - fix a small memory leak of a varname -2001-02-06 Uwe Zdun - * xotcl.c, testx.xotcl, ...: tests for new destroy logic -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! + - exclude generated .txt files from tar -2001-02-01 Uwe Zdun - * xotcl.c: new destroy logic with recreate +2011-10-26 Gustaf Neumann -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 -2001-01-25 Uwe Zdun - * xotcl.c: class redefinition logic instead of direct command - destroy added to solve destroy problems identified - by Kristoffer Lawson. + - updated build scripts to reflect dropped files and to reduce + xotcl-references -2001-01-24 Uwe Zdun - * xotcl.c: fixed alias bug identified by Kristoffer Lawson. -2001-01-22 - * fixed regression test for new path settings - * removed Unix dependencies from regression test (sleep) + - 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-18 Uwe Zdun - * all storages: added nextkey + firstkey methods - for traversal of DBs -2001-01-17 Uwe Zdun - ! all packages: all internal distribution package names now - start with "xotcl::" to avoid name clashes with other - packages + - provided a minimal nsf based README file for people having just the + source code distribution -2001-01-16 Uwe Zdun - * XOTclGdbm: added XOTcl Gdbm wrapper -2001-01-15 Uwe Zdun - * xotcl.c: alloc now handled as a Class instproc, like - create. Thanks to Kristoffer Lawson for the hint. + - updated indentation -2001-01-15 - * new Interface for persistent storage +2011-10-25 Gustaf Neumann - 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 {} -2001-01-12 Uwe Zdun - * Storage test suite added + - update of "baustellen" -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 -2001-01-08 - * The search for the XOTcl library is performed according to the - following rules: + - updated migration guide - 1) If the environment variable XOTCL is set and points to a - directory, it is taken as the XOTCL directory. - 2) If the auto_path (determined in part by the environment - variable TCLLIBPTH) contains a directory named "xotcl" - and it exists, it is taken. + - added copyright notice to nx.tc and xotcl2.tcl - 3) If no xotcl library is determined yet, check - whether the current directory is in an xotcl source tree. If - yes take it. - 4) If the auto_path contains a directory, that has a - sub-directory named xotcl, it is taken. + - fixed bug with recursive aliases + - extended regression test - 5) If the auto_path contains a directory that has a - directory named xotcl as a neighbor, it is taken. +2011-10-25 ssoberni - 6) Take the compiled-in path for the xotcl library. - 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. + Revert "- Changed "Institute of IS ..." to "Institute for IS ..."" -2000-12-15 - * packages/make.xotcl: passing target to avoid grep - through Makefile +2011-10-24 Gustaf Neumann -2000-12-15 - * packages/make.xotcl: less verbose - * new environment variable XOTCL, points to directory - where the XOTcl library lives -2000-12-13 - * packages...Httpd.xotcl: close connection after errors - * packages...Httpd.xotcl: elementary support for HTTP method - OPTIONS + - run FilterInvalidateObjOrders() only, when filters are/were defined -2000-12-04 - * xoXML: fix info vars - instvar method creates variable that is not accessible and - should not be listed in info vars +2011-10-24 ssoberni -2000-12-04 - * version changed to 0.84 - * xoXML: fix for multiple PCDATA calls after one element ------------------------------------------------------------------------------ -2000-11-30 -2000-11-30 Uwe Zdun - * release of Version 0.83 + - Changed "Institute of IS ..." to "Institute for IS ..." -2000-11-30 Uwe Zdun - * xoXML/xoRDF: added the ability to process mixed content PCDATA - (i.e. more than one pcdata in one element) +2011-10-24 Gustaf Neumann -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). -2000-11-29 - * tried to improve documentation tool - * work on xotcl homepage, manual section added + - update copyright files -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) -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 @ + - update copyright notices with MIT licens from OSI + (http://www.opensource.org/licenses/MIT) -2000-11-27 - * src/Makefile.in: changed logic for building and - installing xowish - * xotcl.c: fixed bug in "info mixins" -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 + - update the (mostly obsolete) aolserver c module to reflect proper + names in NSF -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 -2000-11-22 - * dmalloc defines added to Makefile.in - * xotcl.c: removed some mem leaks + - updated .gitignore -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. -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. + - updated "make tar" -2000-11-21 Uwe Zdun - * xotcl.c: corrected infinite loop in instvar assertions - (thanks to Zoran Vasiljevic for the hint) -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) + - remove obsolete CVS IDs -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 -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 + - 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-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 -2000-10-28 Uwe Zdun - * testx.xotcl: added tests for instmixins + - remove currently untested scripts, requiring in part currently + unssupported packages -2000-10-26 Uwe Zdun - * xotcl.c: added instmixins -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 + - appended .tcl suffix ------------------------------------------------------------------------------ -2000-10-09 Uwe Zdun - * prepared Version 0.82 -2000-10-06 Uwe Zdun - * experimental tests for actiweb apps (invoke - with 'make test' at toplevel) + - add .tcl to nxdocIndex to make it recognized as Tcl file (pkgIndex + has as well a .tcl extension) -2000-10-02 Uwe Zdun - * Documented xotcl.c + src/lib and src/scripts directories +2011-10-23 Gustaf Neumann -2000-09-29 Uwe Zdun - * xodoc.xotcl new XOTcl documentation package .. all docs - are now in file docs, with @ object -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 + - remove (currently) onsolete pieces from configure -2000-09-26 Uwe Zdun - !! src/xotcl.c: short form for creation of nested object and - classes removed. - * new documentation tool -2000-09-22 - * new configure flags: - --with-gdbm=INCDIR,LIBDIR - --with-tk=INCDIR,LIBDIR - --with-tcl=INCDIR,LIBDIR + - minor documentation updates -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?) -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, .. + - minor documentation updates - * rdf/xoRDF.test, rdf/RDFTriple.xotcl: used new autonames here - in order to make triples sort-able with lsort +2011-10-21 Gustaf Neumann -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) -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 + 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-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) -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) + - 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-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) -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) + - renamce NsfObject->filters and mixins to objFilters and objMixins -2000-08-31 Uwe Zdun - * xoRDF: added subject ID to anonymous descriptions & fixed bugs +2011-10-19 Gustaf Neumann -2000-08-30 Uwe Zdun - * xotcl.c: fixed xotcltrace - * trace.xotcl: "deprecated messages" show* fixed -2000-08-19 - * toplevel Makefile: target "make test" added + - added function CmdListAddSorted() to improve mixinof management -2000-08-16 - * RDFTriple got a new method "prettyTriples" which uses - indentation to show connections between triples (used in xoRDF.test) -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 + - adding method epoch incr to NsfAddObjectMethod() and + NsfAddClassMethod() -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) -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 + - cleanup "//" in sources -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 -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 + - 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-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 +2011-10-18 Gustaf Neumann -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 -2000-06-20 Uwe Zdun + - 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) - * 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 - * AgentClient/Receiver: example enhanced with class cloning and - sync invoke, clone, and migrate + - update configure file to reflect version number ------------------------------------------------------------------------------ -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 + - 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$
+
Index: ChangeLog-2.0b3-2.0b5
===================================================================
diff -u -r2154d899afddb7acd71ceb258af0004fcb919ba6 -r02c12f61000d623a065b4efd62a3c5ee428e1bb5
--- ChangeLog-2.0b3-2.0b5	(.../ChangeLog-2.0b3-2.0b5)	(revision 2154d899afddb7acd71ceb258af0004fcb919ba6)
+++ ChangeLog-2.0b3-2.0b5	(.../ChangeLog-2.0b3-2.0b5)	(revision 02c12f61000d623a065b4efd62a3c5ee428e1bb5)
@@ -1,3 +1,8 @@
+2013-06-10  Gustaf Neumann  
+
+	- More release work
+	- Tag git with 2.0b5
+
 2013-06-10  ssoberni  
 
 	- Fix the implementation of NsfInterpObjCmd() which crashed