2013-06-10 Gustaf Neumann - More release work - Release NSF 2.0b5 2013-06-10 ssoberni - Fix the implementation of NsfInterpObjCmd() which crashed previously due to the broken resolution of the child interpreter 2013-06-09 Stefan Sobernig - Proof-read announcement for a second time 2013-06-09 Gustaf Neumann - NsfDStringPrintf(): set the length of the resulting DString 2013-06-08 Stefan Sobernig - 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 2013-06-07 Gustaf Neumann - 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 2013-06-06 Gustaf Neumann 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 nx::test: - change test cases to newer interface - don't use "namespace import nx::*" in test cases when not required 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). 2013-06-05 Gustaf Neumann - Eliminate all use of Tcl_GetStringFromObj() function. - fix typos, example code - further release work 2013-06-05 ssoberni Fixed some typos and suggesting some rewording 2013-06-05 Gustaf Neumann - initial checkin of nx-mode.el - preparing 2.0b5 release 2013-06-04 Stefan Sobernig Left a to-do in the nxdoc backend Completed update of nxdoc for NX 2013-06-04 Gustaf Neumann serializer.tcl - added flag -objmap to Serialzer.deepSerialize to make serializer usable for copying (-map is to coarse) - extended regression test 2013-06-04 Stefan Sobernig Adjusted nxdoc for the recent changes to NSF/NX 2013-06-03 Gustaf Neumann 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 nsf.c - fixed a potential crash for objects having a wrapper-less alias defined 2013-06-03 ssoberni nsf.c - Make sure that the original error message is preserved when calling destroy after a failed CMD or INITCMD 2013-06-03 Gustaf Neumann 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 2013-06-02 Gustaf Neumann nx::test: - deactivate calling overhead calculation, since this is not reliable (sometimes larger than the call). - 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) - when creation with an required configure parameter failed, delete the half-baked object to avoid confusing states. - nx::test: show msg at start of test file 2013-06-01 Gustaf Neumann - 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. nx.tcl: - renamed variable option "-config" to "-configurable" to make its intention clearer 2013-05-31 Gustaf Neumann - traits: added ability to turn on verbosity for traits by using nx::configure trait-verbosity on|off 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 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 package nx::plain-object-method: - made warnings configurable via nx::configure plain-object-method-warning on|off - completed coverage and test cases 2013-05-30 Gustaf Neumann nsf.c - fixed potential infinite loop in pattern matching for precedence lists - cget: make error message closer to tcl conventions - extended regression test 2013-05-29 Gustaf Neumann - 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 ..." 2013-05-28 Gustaf Neumann - renamed initblock parameter from __initcmd to __initblock - renamed nsf::configure parameter from "keepinitcmds" to "keepcmds" - 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) nx.tcl: - removed "info is .." since it might raise more questions than it solves - 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 2013-05-26 Gustaf Neumann 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 Cleanup of nsfAPI.decls - remove unneeded enumeration types - use "typeName" to shorten reported names of parameters - use camel case for reported names - changed ::nsf::parametersyntax(..) to ::nsf::parameter::syntax(..) - xotcl2: adjusted manual parameter syntax entries to new conventions 2013-05-24 Gustaf Neumann - added implementation for slots with traces+types for classes - exception for incorrect defaults are thrown during slot creation - extended nsf::is, added parameter * ?-configure? -- accept configure parameter options * ?-name /name/? -- provide a parameter name for error message - simplified nx.tcl by using new nsf::is - extended regression test - added partly implementation for slots with traces+types for classes - 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. - extended regression test 2013-05-23 Gustaf Neumann 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 - 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). - streamline documentation 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. - renamed option "-methodtype" to "-type" in /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? ... - minor code cleanup 2013-05-22 Gustaf Neumann - streamlined AddSlotObjects() - cleanup of TODOs - nsf.c: handle full-qualified name for private slots (AddSlotObjects()) - extended regression test 2013-05-21 Gustaf Neumann - updated next-tutorial: * bring definitions of properties and variables up to date * fix "object methods" - XOTcl2: ensure public accessor when "-parameter ..." is used - extended parameter extractor: new functionality ::nsf::parameter get default /parameter/ ?/varname/? ::nsf::parameter get type /parameter/ /obj/ info parameter get default /parameter/ ?/varname/? /obj/ info parameter get type /parameter/ 2013-05-20 Gustaf Neumann - hopefully the last changes for ?object? method|variable|property: defined * "/obj/ delete object method" * "/obj/ delete object property" * "/obj/ delete object variable" - "info method syntax" returns now "/cls/ ...." - "info object method syntax" returns now "/obj/ ...." - updated next-migration guide to reflect changes from the configure reform - make name fully qualified for symmetry reasons - minor cleanup - nx-pp.tcl: fixed changed accessor handling, added cget to highlight words 2013-05-19 Gustaf Neumann - added new regression test info-variables.test 2013-05-19 Gustaf Neumann Method and configure parameter reform, Part 3: - added /cls/ info lookup variables -> list of handles /obj/ info lookup object variables -> list of handles /obj/ info variable definition|name|parameter /handle/ - 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/" 2013-05-18 Gustaf Neumann - dropped "/obj/ info slot definition /obj/" in favor of "/slotobj/ definition" 2013-05-17 Gustaf Neumann - nx.tcl: handle "incremental" in slot reconfigure - nx.tcl: change defaultAccessor to "none" 2013-05-17 Gustaf Neumann - 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 /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 /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/? 2013-05-16 Gustaf Neumann - Method and configure parameter reform /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 2013-05-14 Gustaf Neumann - avoid crash in case NsfParameterGetCmd() is passed a plain value 2013-05-13 Gustaf Neumann - minor documentation updates 2013-05-10 Gustaf Neumann - initialize stub-tables only once - syntax formatter: use /value/ for denoting placeholder in "... info method syntax ..." 2013-05-07 Gustaf Neumann - parametersyntax: make placeholders explicit - moved "/obj/ info slot definition|..." to "/obj/ info object slot definition|..." for consistency - provided "parametersyntax()" for "object mixin" and "object filter" 2013-05-05 Stefan Sobernig - win/makefile.vc: have the install target copy the public headers as well 2013-05-04 Stefan Sobernig - MinGW toolchains do not provide support _vscprintf(), so we limit the use of it to MSVC; tested NsfDStringPrintf under MinGW - Provide tcl library path to summary.tcl and remove intermediate file from repo - Fixed the Win32 logic for computing the Tcl_DString in NsfDStringPrintf(), tested for MSVC under x86 and amd64 2013-05-04 Gustaf Neumann - updating next-tutorial to object method syntax 2013-05-03 Gustaf Neumann - updated migration guide - update to new naming 2013-05-03 ssoberni - Fix the 86-specific tests to reflect the object-modifier reform 2013-05-03 Gustaf Neumann - try to print arguments in one sweep in NsfDStringPrintf() - remove "extern" declarations 2013-05-02 ssoberni - Revised NsfDStringPrintf() for portability to non-C99-compliant C runtimes (MSVC); remains to be tested 2013-05-02 Gustaf Neumann - first and incomplete update of migration guide to new syntax 2013-05-01 Stefan Sobernig - Re-enabling deletion of intermediate file in makefile - Remove legacy build artifacts - 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. 2013-04-29 Gustaf Neumann - bumped version number to 2.0b5 - 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) - fix xotcl instance method serialization (still not covered in regression test) - renamed "package require nx::class" to "package require nx::class-method" in analogy to "nx::plain-object-method" - added "/obj/ object variable" and "/obj/ object property" 2013-04-28 Gustaf Neumann 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 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 - nsfPointer.c: add parameter to Nsf_PointerDelete() for allowing optional freeing - reduced default verbosity - moved NsfConfigEnabled from nsf.h to nsfInt.h (no need to be part of the public interface) - moved NSF_ARGPARSE_* macros to nsf.h (since arg parser is public and uses these flags) 2013-04-23 Gustaf Neumann Object-method Reform: - 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). Now we define methods via: /cls/ method foo {args} {...body...} /cls/ object method foo {args} {...body...} /obj/ object method foo {args} {...body...} Similarly, aliases, forwards and mixins are defined, e.g. /cls/ mixin add ... /cls/ object mixin add ... /obj/ object mixin add ... /obj/ require object method ... The same change propagated as well to the "info" method. Now we have: /cls/ info methods ... /cls/ info object methods ... /obj/ info object methods ... Similar, the object parameterization uses /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 - as a consequence, 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 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 - added package nx::class to allow optionally the "class" notation "/cls/ class method ..." (and friends, see (a)), and "/cls/ class info ... - added package nx::plain-object-method to allow optionally plain method b) "/obj/ method ...." (and friends, see (b)) - add support to slots to use ensemble methods as setters 2013-04-17 Gustaf Neumann - allow explicit unsetting of -per-object flag in 0-argument -flag=value notation 2013-04-05 Gustaf Neumann - reduce variable scope 2013-03-25 ssoberni - Improved wording in comment on NsfConfigEnabled() - Irgh. Had forgotten about two-level stringification to provide configuration macro expansions as strings in NsfReportVars() 2013-03-25 Stefan Sobernig - 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. 2013-02-19 Gustaf Neumann - 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 2013-01-22 Gustaf Neumann - more code cleanup - reduce variable scopes - remove EXTERN declarations from function definitions 2013-01-08 Gustaf Neumann - Update to latest TEA. - Follow new naming convention for auto-tools (using configure.ac) - silence compiler warnings 2012-12-12 Gustaf Neumann - replace Tcl_GlobalEval by Tcl_Eval, since Tcl_GlobalEval will be removed in futures versions of Tcl 2012-11-26 Stefan Sobernig - Checked built and test suite against Tcl 8.6rc2 (core-8-6-0-rc) under MinGW32; removed temporary fix for bug #3401422 2012-11-19 Gustaf Neumann - quote filename in content disposition 2012-11-16 Gustaf Neumann - replace nx::configure option defaultPropertyCallProtection by defaultAccessor - protect trf against leading dashes 2012-11-15 Gustaf Neumann - deactivate tests in library file 2012-11-14 Gustaf Neumann - add additional "convertto" when generating zip files from strings 2012-10-30 Stefan Sobernig - 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 2012-10-28 Stefan Sobernig - Extending test case to cover slotassign issue - Adding a test and a temporary fix for the ::nsf::is issue in setCheckedInstVar 2012-10-13 Gustaf Neumann - Make sure to NS_EXPORT Ns_ModuleVersion for people using still the old-style AolServer module. 2012-10-04 Gustaf Neumann - make assumptions in code explicit 2012-10-03 Gustaf Neumann nsf.c: - handling of method names in error messages from nsfAPI.h. Make sure that error message is generated with the actual method name. 2012-10-02 Gustaf Neumann 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 2012-09-30 Gustaf Neumann - remove debug output 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 2012-09-29 Gustaf Neumann - extended regression test - 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") nx.tcl: - change parameter name in "/cls/ info parameter ... ?pattern?" from "name" to "pattern" 2012-09-28 Gustaf Neumann - 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 2012-09-27 Gustaf Neumann - 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 - 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 - rename invalidateobjectparameter -> parameter:invalidate::classcache - rename invalidateobjobjectparameter -> parameter:invalidate::objectcache - bring cmds into alphabetical order 2012-09-26 Gustaf Neumann - first draft of per-object parameter caching (for per-object-mixins and per-object properties). nsf.c: - fix potential bad interaction between per-object mixins and per-class caching of object-parameters 2012-09-25 Gustaf Neumann - don't blindly register all object/class methods for XOTcl 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?" 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" - 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 2012-09-22 Gustaf Neumann - renamed timing variable from "time" to "ms" - added timing statistics 2012-09-21 Gustaf Neumann - generalize handling for per-object-properties - added additional file for regression test 2012-09-19 Gustaf Neumann Property reform part 1: - disallow protection modifiers for "properties" and add new flag "-accessor" to "property" and "variable" This changes definitions like Class create C { :property {a a1} :public property {b b1} :protected property {c c1} :private property {d d1} } to Class create C { :property {a a1} :property -accessor public {b b1} :property -accessor protected {c c1} :property -accessor private {d d1} } 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" - 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. old: Class create C { :property foo:int,incremental :variable bar:int,incremental } new: Class create C { :property -incremental foo:int :variable -incremental bar:int } - disallow "public class property" and friends since these are not needed - removed parameter property "noaccessor" - removed "nx::configure defaultPropertyCallProtection" and method hook "__default_property_call_protection" - introduced "nx::configure defaultAccessor" and method hook "__default_accessor" - for the time being, "defaultAccessor" is "public" for NX and XOTcl, will be changed to "none" in NX - extended regression test (new file properties.test) 2012-09-15 Gustaf Neumann 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 nx.tcl: - remove debugging output - renamed testlog file, remove it on "make clean" nsf.c: - made argument of cget required nx.tcl: - added Tk-style methods "configure" and "cget" - added additional regression test set for cget and configure nsf.c: - implemented cget as a configure-like method, dropped ensemble method variant nx.tcl: - simplified "/obj|cls/ delete method" due to resolving capabilities in nsf::delete::method - fixed regression test to run all test again correctly xotcl2.tcl: - made destructor of Connection more robust such it does not depend on accessor methods. 2012-09-14 Gustaf Neumann 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 2012-09-13 Gustaf Neumann - updated 34 copyright notices 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 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 2012-09-10 Gustaf Neumann - finalize transition from old code 2012-08-28 Gustaf Neumann - fix frame scoping for myvar/myproc 2012-08-10 Gustaf Neumann - allow to change title of a scripted document - make doc beautifier more robust for invalid lists - use explicit return in tutorial example scripts 2012-08-01 Gustaf Neumann - improve documentation - use "nsf::relation $cl superclass" instead of "$cl configure -superclass" - minor documentation updates nx::test: - added summary at the end of "make test" via log file - updated .gitignore 2012-07-31 Gustaf Neumann 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. - handle cyclical superclass/class dependencies during object system finalize - extend regression test 2012-07-18 Gustaf Neumann nsf.c: - ignore in internal calls to "dealloc" protection settings - handle cyclical class dependencies during object system finalize - extend regression test 2012-07-18 Stefan Sobernig - 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. - tests/parameters.test: Adjusted the relevant tests - 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. 2012-07-17 Gustaf Neumann - define method "proc" of ::xotcl::Attribute in terms of ::xotcl::Object proc - make sure to have gcc branch hints in generated code - honor default type in "info slot names" 2012-07-17 ssoberni - Addressed a number of issues in the NX slot infrastructure (which revealed themselves when running Mark's BusinessActivities implementation in XOTcl2 mode): - 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. - 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). - 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. - library/xotcl/tests/slottest.xotcl: Added tests for the above compatibility enhancements. 2012-07-16 Gustaf Neumann - allow instance property inheritance for traits 2012-07-11 Gustaf Neumann - Don't advertise to use "configure" method for calling class/superclass in documentation sice we have better ways. 2012-06-27 ssoberni - 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. 2012-06-25 Gustaf Neumann - 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 2012-06-01 Gustaf Neumann 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 2012-05-22 Gustaf Neumann - 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 2012-05-22 Stefan Sobernig - configure, configure.in: Under win, the CLEANFILES missed a pattern for object files - 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. - NsfProcStub(): Use the EXTERN macro rather than extern directly 2012-05-21 Gustaf Neumann - added documentation for "/obj/ info name" to migration guide and .nxd file - adding more comments to examples in migration guide - added design study ruby-mixins.tcl to example-docs and regression test - minor polishing 2012-05-17 Gustaf Neumann - change "#!/bin/env" into "#!/usr/bin/env" 2012-05-14 Gustaf Neumann - increase backward compatibility for ::xotcl::Attribute by defining the public methods "set", "exists" and "istype" 2012-05-14 ssoberni - apps/utils/nxdoc: fix shebang path to env ... - 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). - tests/methods.test: Added basic tests on the (current) handling for such ::* dispatches and a specific test set on the intended XOTcl behavior. 2012-05-13 Gustaf Neumann - 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 2012-05-11 Gustaf Neumann - implement escaping for comma in value of parameter options: escaping in values can be achieved via duplicating the comma. - extend regression test 2012-05-04 ssoberni - 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 2012-04-20 Gustaf Neumann - explorative implementation of object method dispatches with KEEP_CALLER_SELF and no NSF_PER_OBJECT_DISPATCH - extend regression test 2012-04-16 Gustaf Neumann 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 2012-04-11 Gustaf Neumann - fix off-by-one error - add regression test for keepcallerself with and without perobjectdispatch - fix typo 2012-04-10 Gustaf Neumann - serializer: * pertain perobjectdispatch and keepcallerself in serializer * extend regression test nsf.c: - generalize stack monitor by handling growing and shrinking stacks - refactor into function CheckCStack() - serializer: * 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 - extended regression test 2012-04-05 Gustaf Neumann - 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 2012-03-09 Gustaf Neumann - protect serial generation for parameters via mutex - fix compilation when compiled without threads (many thanks for r.zaumseil for noting this). 2012-03-05 Gustaf Neumann - tcl86.test: better implementation of method "each", cleanup and extension of enumerator tests 2012-02-29 Gustaf Neumann - extended regression tests for yield - implemented "next" for ruby-like enumerators (each needs still more work) 2012-02-27 Gustaf Neumann - 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") 2012-02-24 Gustaf Neumann 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 2012-02-22 Gustaf Neumann - 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 - Improve wording in instructions - Improve comments - Documented dependencies between configure flags and feature activation cpp macros 2012-02-17 Gustaf Neumann - 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 2012-02-16 Gustaf Neumann - don't allow object creation to overwrite non-object cmds (e.g. procs) - improve debug line 2012-02-16 ssoberni - 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. - 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. - 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. - 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 ... 2012-02-16 Gustaf Neumann - treating incompatible forwarding to slot vs. slot option noaccessor - extended regression test - use Tcl's EXTERN macro instead of "extern" 2012-02-04 Gustaf Neumann update release procedure 2012-02-03 Gustaf Neumann - mv next-tutorial (source, images) into own subdirectory doc/next-tutorial/ - Bump version number of head to 2.0b4 - improve wording in documentation 2012-02-01 Gustaf Neumann - released NSF 2.0b3 2012-02-01 Gustaf Neumann - extended blacklist for tar file - reduce variable scopes 2012-01-31 Gustaf Neumann - 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. - 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) add missing question mark fix typo 2012-01-29 Gustaf Neumann - Forward setting of object parameters to the slot object, when assign method is user-defined on the slot object - Cleanup and extend regression test - remove debug output 2012-01-28 Gustaf Neumann - Don't export symbols in the general case just because of MSC/C89 compliance - updates - Cleanup for compilation under MSC (avoid unsupported forward declaration of array) - further documentation of functions, better grouping of functions 2012-01-27 ssoberni - 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) 2012-01-26 Gustaf Neumann - changed object->flags from "unsigend short" to "unsigned int" - reintroduced NSF_TCL_DELETE to address bug flagged from memdebug - extended regression test 2012-01-25 Gustaf Neumann doc: fixed line-number handling locally - removed documentation about incompatibility to XOTcl1 in respect of the method interface for object invocations 2012-01-23 Gustaf Neumann - fixed NRE memory management (for Tcl 8.6) by refactoring alias handling 2012-01-21 Gustaf Neumann - extend regression test for interactions between "keepcallerself" and "perobjectdispatch" - some minor cleanup 2012-01-20 Gustaf Neumann - 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 - 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 2012-01-20 ssoberni - 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) 2012-01-20 Gustaf Neumann - nsf.c: start all error messages with a lower case word for consistency and to follow closer to Tcl's conventions - 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. 2012-01-19 Gustaf Neumann - 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 2012-01-16 Gustaf Neumann - improve handling of multiple error messages in a single command Extend handling of dashses in XOTcl's configure method to perform a more eager search for command begins (same change as in XOTcl 1) Fix typo in nsf::predefined Fix typo in ::nsf::deprecated 2012-01-15 Gustaf Neumann - 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 2012-01-14 Gustaf Neumann remove namespace import nx::* 2012-01-13 Gustaf Neumann - removed TODOs from keepcallerself in destroy.test; calls were truely recursive, behavior was correct. - simplified usage of ObjectName() and ClassName() macros (no caller parenthesis needed) - added exerpimental object property keepcaller self (currently only evaluated by aliased objects) Version generated for Tcl 8.5 - maybe we keep this out from the repo in the future Allow to pass casts to macros ClassName and ObjectName 2012-01-10 Gustaf Neumann Bump version number to 2.0 to avoid confusions with the serializer from XOTcl 1 2012-01-02 ssoberni - library/serialize/serializer.tcl: Remove uses of ::nsf::method::property to handle "returns", now redundant because "returns" are properly reported by "info method definition" - TODO: updated - 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. - Make sure "info method definition" includes the "-returns" clause. - generic/nsf.c: Added a helper function AppendReturnsClause() - 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" 2011-12-25 Gustaf Neumann - remove leftover from merge 2011-12-24 Gustaf Neumann - remove file which was placed into generic/asm - added two files to the asm directory (one needed for compilation, one for documentary purpose) 2011-12-22 Gustaf Neumann - initialize result properly - updates for the tutorial (mustly typos and stilistic changes) - xotcl/library/comm/Httpd.xotcl: force dates in GMT as HTTP RFCs require - added README file - restructured directories, added configure options, some more cleanup 2011-12-18 Gustaf Neumann - generate AsmAssemble() from definition file as well (currently included in LabelThreading template) 2011-12-16 Gustaf Neumann - nx based c code generator for experimenting with different code engines 2011-12-13 Gustaf Neumann - doc fixes in tutorial: fix typos and improve some wordings - initial checkin of experimental assemble support 2011-12-06 ssoberni - 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. - 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(). 2011-12-02 Gustaf Neumann - simplify macro handling with __WIN32__ - regroup some macro definitions 2011-11-30 ssoberni - 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 2011-11-21 Gustaf Neumann - improve branch prediction - fix typos - extend regression test to improve coverage 2011-11-18 Gustaf Neumann nsf.c: - change argument of IsMetaClass() to type *NsfObject - provide basic pretection against most likely unintended deletion/overwriting of base classes. - extend regression test - minor cleanup, added regression test 2011-11-17 Gustaf Neumann - fixed potential crash when generating error message about argument usage when called without a callstack 2011-11-13 Gustaf Neumann - fix some more typos 2011-11-12 Gustaf Neumann nsf.c, nsf.h, nsfStack.c, nx.tcl, tcl-cool.tcl, xotcl2.tcl - fix spelling in comments - strip unneeded space - better to let file classify this file as latex than C++ - removed c++ mode - fix typo 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 2011-11-09 Gustaf Neumann - fix spelling 2011-11-05 Gustaf Neumann - improve wording of comment - 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 - handle duplicates in the cmd-list during cleanup 2011-11-04 ssoberni - 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. 2011-11-01 Gustaf Neumann - 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 2011-10-30 Gustaf Neumann - updated TODO nsf.c: - added method NsfMethodNamePath() to compute the ensemble path in error messages - reduce verbosity - extended regression test - minor reformatting nsf.c: - removed conditionals in AddInstance() and RemoveInstance() - dropped result from RemoveInstance() - 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 2011-10-29 Gustaf Neumann - fixed documentation bug in migration guide, since arguments in "info slot ..." were deleted in the code, but not in the guide - fix requiredness of subcmd in "info method subcmd" 2011-10-28 Gustaf Neumann - bump version number to 2.0b3 2011-10-28 ssoberni - library/nx/nx.tcl: Some slight renamings for the sake of consistency in the docs - library/nx/nx.nxd: Rewrote and completed API doc for nx::Class - library/lib/nxdoc-assets/submethod.html.yuidoc: Supporting origin resolution for submethods. - 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, ... - generic/nsfAPI.decls, generic/nsfAPI.h: NsfObjInfoFiltermethodsMethod() Fixed a parameter name, from "fileName" to "filter" - 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. Having rewritten 2/3 of nx::Object 2011-10-27 Gustaf Neumann - added copyright notice to c code generators - add print statements for debugging wierd missing free operations for internal reps of tcl objs - remove obsolete comments - handle preallocated namespace - fix a small memory leak of a varname - exclude generated .txt files from tar 2011-10-26 Gustaf Neumann - updated build scripts to reflect dropped files and to reduce xotcl-references - 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 - provided a minimal nsf based README file for people having just the source code distribution - updated indentation 2011-10-25 Gustaf Neumann - update of "baustellen" - updated migration guide - added copyright notice to nx.tc and xotcl2.tcl - fixed bug with recursive aliases - extended regression test 2011-10-25 ssoberni Revert "- Changed "Institute of IS ..." to "Institute for IS ..."" 2011-10-24 Gustaf Neumann - run FilterInvalidateObjOrders() only, when filters are/were defined 2011-10-24 ssoberni - Changed "Institute of IS ..." to "Institute for IS ..." 2011-10-24 Gustaf Neumann - update copyright files - update copyright notices with MIT licens from OSI (http://www.opensource.org/licenses/MIT) - update the (mostly obsolete) aolserver c module to reflect proper names in NSF - updated .gitignore - updated "make tar" - remove obsolete CVS IDs - 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 - remove currently untested scripts, requiring in part currently unssupported packages - appended .tcl suffix - add .tcl to nxdocIndex to make it recognized as Tcl file (pkgIndex has as well a .tcl extension) 2011-10-23 Gustaf Neumann - remove (currently) onsolete pieces from configure - minor documentation updates - minor documentation updates 2011-10-21 Gustaf Neumann 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) - 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. - renamce NsfObject->filters and mixins to objFilters and objMixins 2011-10-19 Gustaf Neumann - added function CmdListAddSorted() to improve mixinof management - adding method epoch incr to NsfAddObjectMethod() and NsfAddClassMethod() - cleanup "//" in sources - 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 2011-10-18 Gustaf Neumann - 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) - update configure file to reflect version number - 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$