antoniop
committed
on 13 Dec 16
Remove possible lefrover trigger and function from the old good days.
New instances don't even have this, but old born instances that get
up… Show more
Remove possible lefrover trigger and function from the old good days.

New instances don't even have this, but old born instances that get

updated could still have it. It is not necessary anymore and breaks

current cast rules in postgres.

Show less

ChangeLog-2.0b5-2.0.0.log (+1720)
  1 2014-10-28  Gustaf Neumann  <neumann@wu-wien.ac.at>
  2         - Don't complain at final ObjectDeletion about object refcounts unless
  3           we are in development mode
  4         - adding .3 man pages to ease installation
  5         - adding .1 man pages to ease installation
  6
  7 2014-10-28  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  8
  9         - Effectively remove getstubs from makefile.vc
  10         - Apply stubs* resolution without getstubs to makefile.vc
  11
  12 2014-10-27  Gustaf Neumann  <neumann@wu-wien.ac.at>
  13
  14         - use newest versions, re-generated stub files
  15         - adjust genstubs target to subdir logic
  16         - handle nsfUtil.c from version-specific subdirectory
  17         - binor polishing
  18
  19 2014-10-27  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  20
  21         - NsfDStringPrintf(): Fix vargs processing under VC 12
  22
  23 2014-10-27  Gustaf Neumann  <neumann@wu-wien.ac.at>
  24
  25         - get rid of getstubs
  26         - provide actual pkgIndex files
  27         - keep an internal list of Tcl_Objs of type mixinrefs for classes used
  28           as mixins. This list is used for avoiding stale entries in cases the
  29           mixin class is destroyed.
  30         - remove redundant and different prototype
  31
  32 2014-10-27  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  33
  34         - Bump version numbers in nx.tcl and xotcl2.tcl; adjust license statements
  35         - Rearrange 'make getstubs' slightly, so that we do not require the stub
  36           files present in generic/* for the build machinery to work properly
  37         - Done revising license statements in generic/*
  38
  39 2014-10-27  Gustaf Neumann  <neumann@wu-wien.ac.at>
  40
  41         - fix a heisenbug probably showing sometimes up due to more aggressive
  42           Tcl_Obj sharing in newer versions of tcl 8.6
  43
  44 2014-10-27  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  45
  46         - Correct and unify licensing statements in header files
  47         - Fix copyright statements in stubs* files
  48         - Fix copyright dates
  49
  50 2014-10-26  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  51
  52         - Silence instructions, do not install xowish.in/ xotclsh.in
  53         - Bump version number in win build files
  54         - Trigger generation of pgk index scripts
  55         - Add EXTERN to calm VC12, add missing C files from makefile.vc
  56
  57 2014-10-25  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  58
  59         - Use correct slashing
  60         - Render file paths in a platform-independent manner
  61         - Make sure genstub.tcl is called in makefile.vc
  62         - Update nmakehlp (required for VC 12+)
  63
  64 2014-10-24  Gustaf Neumann  <neumann@wu-wien.ac.at>
  65
  66         - set the right version number to 2.0.0
  67         - Make dtplite configurable in Makefile, e.g. make
  68           "DTPLITE=/usr/local/ns/bin/tclsh8.5 /usr/local/ns/bin/dtplite" man
  69         - regenerate documentation
  70         - bump version number to 2.0 (also in .man files)
  71         - add Changelog for 2.0 release
  72         - updated for mongo-c-driver 1.0.2 and MongoDB 2.6.5
  73         - minor changes were necessary: MongogDB does not allow to delete a
  74           capped collection, one has to use drop
  75         - white-space changes
  76         - move variable declaration to the front
  77
  78 2014-10-23  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  79
  80         - Fixing listings in shell-wrapper manpages
  81         - Fix a typo reported by lintian
  82         - Fix two more wordings lintian complained about
  83         - Revise manpages; add copyright notes
  84
  85 2014-10-22  Gustaf Neumann  <neumann@wu-wien.ac.at>
  86
  87         - reduce number of unused symbols
  88         - fix a possible double refcount increment for argument converter (e.g.
  89           for normalizing input values). This could lead to small memory leaks.
  90
  91 2014-10-22  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  92
  93         - Continue man corrections
  94         - Work on corrections for Object.man & friends, based on Thorsten's
  95           proof-reading
  96         - Remove an nxdoc artifact
  97         - Remove unneeded make variables
  98         - Revive nsfConfig.sh: The paths expanded during a configure run were
  99           broken, partly due to substituting obsolete variables
  100
  101 2014-10-21  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  102
  103         - Use revised interpreter directive throughout
  104
  105 2014-10-21  Gustaf Neumann  <neumann@wu-wien.ac.at>
  106
  107         - fix final refcounting bug: it was possible that classes contained in
  108         Tcl_Objs of type mixinreg were not freed, although their
  109         reference-counter became 0; now all test cases free all tcl_objs and
  110         referenced data structures allocated from nsf
  111
  112 2014-10-21  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  113
  114         - First solution to provide a multi-step resolution of a Tcl interpreter
  115         in our shell wrappers. Uses some bash scripting to walk a list of
  116         candidates: 1) interp in build directory, 2) interp in install
  117         directory, 3) tcl interp in PATH. Where appropriate (cases 2 & 3),
  118         restricts search to a specific tinterp version. By relying on a generic
  119         shebang line (/bin/sh) we do not run into package-dependency
  120         restrictions on Debian. So a win-win?
  121
  122 2014-10-21  Gustaf Neumann  <neumann@wu-wien.ac.at>
  123
  124         - fix (probably quite old) memory leak when parameter passing fails to
  125           reclaim temporary Tcl_Objs
  126         - fix memory leak with virtual parameters (resolved via args) with
  127           ref-counting
  128
  129 2014-10-21  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  130
  131         - Adding man pages for shell wrappers
  132         - Adjust file extension for nroff files to reflect manpage section
  133
  134 2014-10-20  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  135
  136         - Fix the remaining shebangs
  137         - Fix shebang lines
  138         - Remove any nxdoc artifacts from repo, to ease Debian packaging (incl.
  139           binary js is not accepted by lintian
  140
  141 2014-10-20  Gustaf Neumann  <neumann@wu-wien.ac.at>
  142
  143         - fix execution with --enable-memcount=yes: second argument of
  144           NsfMemCountAlloc() and NsfMemCountFree() may be empty
  145         - don't put macro arguments between parens when these are used for
  146           concatenation
  147         - remove // comments
  148
  149 2014-10-19  Gustaf Neumann  <neumann@wu-wien.ac.at>
  150
  151         build system:
  152         - don't call genstubs from configure, since Debian does not seem to
  153           have genstubs.tcl installed. Now, we pre-generate the stub files for
  154           tcl8.5 and tcl8.6 and copy the "right" version depending on the
  155           configured version.
  156         - avoid old-style prototypes
  157
  158 2014-10-15  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  159
  160         - Done with basic princexml integration, improve Makefile integration
  161         - Provide first stylesheet based on HTML markup by doctools HTML backend
  162         - Integrating manpages into build setup
  163
  164 2014-10-14  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  165
  166         - Improve wording
  167         - Add a draft section on self-references
  168         - Improve wording in overview diagram of Class doc item
  169         - Working on overview diagram for Class doc item
  170         - Add to the overview diagram
  171         - Adding overview diagram to Object doc item
  172         - Cleanup namespace export statement
  173         - Reflect plural reform in all doc items
  174
  175 2014-10-10  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  176
  177         - Doc item on nx::configure
  178         - Doc item on nx::current
  179         - Doc item for nx::next
  180
  181 2014-10-10  Gustaf Neumann  <neumann@wu-wien.ac.at>
  182
  183         - minor cleanup of "//"-comments
  184
  185 2014-10-07  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  186
  187         - Add some documentation on 'info info'
  188         - Make 'info info' behaving as expected again
  189
  190 2014-10-06  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  191
  192         - Minuscule refactoring, have DispatchUnknownMethod() reset the interp
  193           unknown-state directly, rather than its clients.
  194
  195 2014-10-06  Gustaf Neumann  <neumann@wu-wien.ac.at>
  196
  197         nsf.c:
  198         - make types for bit operations unsigned (mostly flags)
  199
  200 2014-10-05  Gustaf Neumann  <neumann@wu-wien.ac.at>
  201
  202         nx.tcl:
  203         - simplify the info ensembles on nx::Object or nx::Class
  204           significantly, by making use if ensemble-next.
  205         - delete "info unknown", since this is not called.
  206         - extend regression test
  207
  208         nsf.c:
  209         - implement a new approach to error reporting in ensembles: instead of
  210         trying to find the "right" place to report the best "error", compute
  211         the longest valid ensemble prefix from all the stack frames.
  212
  213 2014-09-29  Gustaf Neumann  <neumann@wu-wien.ac.at>
  214
  215         - make compilation clean again
  216         - improve safety of macro arguments
  217
  218 2014-09-29  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  219
  220         - Adding a test showing the yet to solve unknown-handling issue in info
  221           ensembles
  222
  223 2014-09-28  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  224
  225         - Work-in-progress on sanitizing unknown handling in ensembles
  226
  227 2014-09-28  Gustaf Neumann  <neumann@wu-wien.ac.at>
  228
  229         - remove useless distinction from the past
  230         - revise sanity check for tcl _objs in 8.6 once one: length field might
  231           be garbage
  232         - add alternative test for sanity checking of tcl_objs: when bytes not
  233           NULL, length must be 0 or higher
  234
  235 2014-09-27  Gustaf Neumann  <neumann@wu-wien.ac.at>
  236
  237         nsf.c:
  238         - remove redundant definition
  239         - reduce variable scope
  240         - make sure to follow nonnull assumptions
  241         - improve cppcheck flags
  242
  243         nsf.h
  244         - In Tcl 8.6.1 it might be that a Tcl_Obj has length > 0 but bytes ==
  245         NULL. We have to relax out tcl_obj-sanity test for this case to avoid
  246         false-positives from assertions()
  247
  248 2014-09-22  Gustaf Neumann  <neumann@wu-wien.ac.at>
  249
  250         - documentation update to reflect recent changes
  251
  252 2014-09-17  Gustaf Neumann  <neumann@wu-wien.ac.at>
  253
  254         documentation:
  255         - add current args to migration guide
  256         - fix cut&paste error: replace "current currentclass" by "current
  257           calledclass"
  258
  259         nsf.c:
  260         - remove redundant null check for object and add assertion
  261         - remove duplicate entry for returns_nonnull
  262         - serializer: keep parameter properties in xotcl parameter lists
  263
  264 2014-08-08  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  265
  266         - Revise Object documentation, align with output from quant.tcl helper
  267         - Reflect recent parameter syntax change in corresponding test
  268         - Revise Class documentation, align with output from quant.tcl helper
  269         - Provide corrections for some syntax strings
  270
  271 2014-07-09  Gustaf Neumann  <neumann@wu-wien.ac.at>
  272
  273         - no need to "set nodashalnum for int types"
  274         - extended regression test
  275
  276 2014-06-23  Gustaf Neumann  <neumann@wu-wien.ac.at>
  277
  278         nsf.c:
  279         - provide error messages for ambiguous abbreviations
  280         - extend regression test (now 5460 tests)
  281
  282 2014-06-23  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  283
  284         Revised life-cycle section further
  285
  286 2014-06-23  Gustaf Neumann  <neumann@wu-wien.ac.at>
  287
  288         nsf.c:
  289         - dropped unused object::info::is
  290         - renamed ::nsf::methods::class::info::filtermethods ->
  291         ::nsf::methods::class::info::filters
  292         ::nsf::methods::object::info::filtermethods ->
  293         ::nsf::methods::object::info::filters
  294         ::nsf::methods::class::info::mixinclasses ->
  295         ::nsf::methods::class::info::mixins
  296         ::nsf::methods::object::info::mixinclasses ->
  297         ::nsf::methods::object::info::mixins
  298
  299 2014-06-23  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  300
  301         - Change overview illustration on object life cycle in Class.man
  302         - Adjust for changes in plural reform
  303
  304 2014-06-22  Gustaf Neumann  <neumann@wu-wien.ac.at>
  305
  306         nx.tcl: pluralism reform part 3
  307         - introduced simple plural form "mixins" and "filters" for
  308           introspection
  309         - moved differentiated interface into slot methods. the
  310           slot methods "get" stay symmetrically to "set", but
  311           additional methods "classes" or "methods" are used like
  312           "guard" to obtain partial results of the mixin and filter
  313           specs
  314         - changed info methods /cls/ info mixin classes -> /cls/
  315           info mixins /cls/ info filter methods -> /cls/ info
  316           filters /obj/ info object mixin classes -> /obj/ info
  317           object mixins /obj/ info object filter methods -> /obj/
  318           info object filters
  319         - dropped /cls/ info mixin guard /cls/ info filter guard
  320           /obj/ info object mixin guard /obj/ info object filter
  321           guard
  322         - added /cls/ mixin classes /cls/ filter methods /obj/ object filter
  323           methods /obj/ object mixin classes
  324
  325 2014-06-21  Gustaf Neumann  <neumann@wu-wien.ac.at>
  326
  327         nx.tcl:
  328         - make all __* system methods in nx redefine-protected
  329         - let "nsf::configure objectsystem" return handles and protections as
  330           well
  331
  332 2014-06-20  Gustaf Neumann  <neumann@wu-wien.ac.at>
  333
  334         nx.tcl: pluralism reform part 2
  335         - changed methods /cls/ info subclass -> /cls/ info
  336           subclasses /cls/ info superclass -> /cls/ info
  337           superclasses /cls/ mixin ... -> /cls/ mixins /cls/ filter
  338           ... -> /cls/ filters /cls/ object mixin ... -> /cls/
  339           object mixins /cls/ object filter ... -> /cls/ object
  340           filters
  341         - changed configure parameters /cls/ configure -mixin ->
  342           /cls/ configure -mixins /cls/ configure -filter -> /cls/
  343           configure -filters /obj/ configure -object-mixin -> /obj/
  344           configure -object-mixins /obj/ configure -object-filter
  345           -> /obj/ configure -object-filters
  346         - added handling for calling relation slot with unknown sub method
  347
  348 2014-06-20  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  349
  350         - Revising lifecycle section; adding TODOs
  351         - Restructuring __* doc fragments to an life-cycle section
  352
  353 2014-06-19  Gustaf Neumann  <neumann@wu-wien.ac.at>
  354
  355         nsf.c:
  356         - allow abbreviated nonpos args
  357         - change name of relation slot "superclass" to "superclasses". (part of
  358           a planned change to use plural for setvalued parameters, "info
  359           superclasses" and similar changes for mixins/filters will probably
  360           follow)
  361
  362 2014-06-18  Gustaf Neumann  <neumann@wu-wien.ac.at>
  363
  364         nsf.c:
  365         - define means to protect "undefined" internally-directly
  366           called methods __alloc and __dealloc in nx. This is
  367           achieved mostly via a an additional value in a method
  368           declaration in ::nsf::objectsystem::create. Example:
  369           -class.dealloc {__dealloc ::nsf::methods::class::dealloc
  370           1}
  371         - extend regression test
  372
  373 2014-06-18  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  374
  375         - Adding missing doc fragments on __* methods for Object and Class
  376
  377 2014-06-17  Gustaf Neumann  <neumann@wu-wien.ac.at>
  378
  379         nsf.c:
  380         - relax the meaning of noleadingdash to allow negative
  381           numbers
  382         - rename noleadingdash to e.g. nodashalnum
  383
  384 2014-06-16  Gustaf Neumann  <neumann@wu-wien.ac.at>
  385
  386         - extend regression test
  387         - update parse context
  388         - remove debugging output
  389         - improve argument name
  390
  391 2014-06-15  Gustaf Neumann  <neumann@wu-wien.ac.at>
  392
  393         - extended regression test
  394         - cleanup, reduce verbosity
  395         - minor cleanup
  396         - allow to configure verbosity in test sets
  397
  398         genttclAPI.tcl:
  399         - added option "-flags", which can be used for every
  400           parameter. example: .... -flags NSF_ARG_NOLEADINGDASH ....
  401         - experimental: use NSF_ARG_NOLEADINGDASH for pattern "info subclass"
  402           to improve error messages.
  403
  404         nsf.c:
  405         - checked, that all CallDirectly() cases, where method is
  406           dispatched (no direct call) are covered by the regression
  407           tests
  408         - avoid double memcpy() in dispatch recreate by using
  409           ObjectDispatch() rather than CallMethod()
  410         - removed memcpy() in call-directy for "create"
  411         - some more cleanup
  412
  413 2014-06-14  Gustaf Neumann  <neumann@wu-wien.ac.at>
  414
  415         nsf.c: parameter passing reform
  416         - don't pass full argument list for filtering methods calle
  417           further methods from C (such as new/create/... ) to allow
  418           processing of e.g. "--" in "new" to separate arguments to
  419           "new" cleanly from arguments passed to "create". Now we
  420           can use e.g. "C new -- -childof 123" in case class C has
  421           a property "childof".
  422         - extend c-generator to accept option "-objv0" to pass the
  423           original "objv[0]" to the called command. Since we had
  424           previously "allargs", we have to pass the objv[0] now
  425           differently
  426         - more thorough checking ISOBJ(someObj) macro for asserts
  427           (use "assert(ISOBJ(someObj))" instead of just
  428           "assert(someObj)")
  429         - extend regression test
  430
  431 2014-06-13  Gustaf Neumann  <neumann@wu-wien.ac.at>
  432
  433         - fix parse context initialization
  434
  435 2014-06-12  Gustaf Neumann  <neumann@wu-wien.ac.at>
  436
  437         - collecting arguments
  438
  439 2014-06-11  Gustaf Neumann  <neumann@wu-wien.ac.at>
  440
  441         - fix shutdown comparison
  442         - don't invalidate class-level param caches during shutdown
  443         - add assertions for class colorings
  444
  445 2014-06-11  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  446
  447         - Clarify usage of 'current methodpath' in defaultmethod of ensembles
  448         - Editing TODO
  449         - Add doc fragment on new
  450         - Adding missing info sub-method docs for Class, document -dependent flag,
  451           and method create
  452
  453 2014-06-11  Gustaf Neumann  <neumann@wu-wien.ac.at>
  454
  455         - simplify test
  456         - use 3-argument version of NsfMethodNamePath()
  457
  458 2014-06-11  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  459
  460         - Add basic test for unexpected-#-args error in ensembles
  461         - Adding to the state of the method-path introspection reform;
  462           introducing CallStackGetFrame() which can also be used to implement
  463           CallStackGetTopFrame
  464
  465 2014-06-10  Gustaf Neumann  <neumann@wu-wien.ac.at>
  466
  467         nsf.c:
  468         - fix name paths in error messages triggered from ArgumentParse()
  469         - move NsfMethodNamePath() out of NsfUnexpectedArgumentError() and
  470           NsfUnexpectedNonposArgumentError()
  471         - no need to call NsfMethodNamePath in NsfArgumentError()
  472         - move NsfMethodNamePath() out of NsfUnexpectedArgumentError() and
  473           NsfUnexpectedNonposArgumentError()
  474         - move NsfMethodNamePath() out of NsfObjWrongArgs()
  475         - added option "-dependent" to "info subclass"
  476         - extended regression test
  477
  478 2014-06-10  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  479
  480         - Working on info sub-methods for Class
  481
  482 2014-06-09  Gustaf Neumann  <neumann@wu-wien.ac.at>
  483
  484         - white-space change
  485
  486         nsf.c
  487         - base MixinInvalidateObjOrders() on DependentSubClasses()
  488           and avoid the need of using a separate hash table for
  489           class-mixin handling. The new implementation is several
  490           times faster and improves the speed of the functions
  491           CleanupDestroyClass(), SuperclassAdd() and
  492           NsfRelationClassMixinsSet(). Adding a class-mixin to
  493           ::xotcl::Object in OpenACS is more than 4x faster.
  494         - remove obsolete function MixinResetOrderForInstances()
  495         - rename ResetOrderOfClassesUsedAsMixins() to
  496           ResetOrderOfObjectsUsingThisClassAsObjectMixin()
  497         - used consistently DependentSubClasses() instead of
  498           TransitiveSubClasses() for invalidations.
  499         - extend regression test
  500
  501 2014-06-08  Gustaf Neumann  <neumann@wu-wien.ac.at>
  502
  503         - fix a few more cases, where required accessor method "get" was missing
  504         - omit warnings, when value of "expected" looks like a non-positional
  505           parameter
  506
  507 2014-06-07  Gustaf Neumann  <neumann@wu-wien.ac.at>
  508
  509         nsf.c:
  510         - improve performance of MixinInvalidateObjOrders() by
  511           about 30% by recompiling the list of the dependent classes
  512           over and over again, since MixinInvalidateObjOrders()
  513           iterates over the full list already.
  514         - Document NsfRelationClassMixinsSet() and add nonnull declarations and
  515           the usual assertions()
  516
  517 2014-06-06  Gustaf Neumann  <neumann@wu-wien.ac.at>
  518
  519         - added experimental code feature CYCLIC_MIXIN_ERROR
  520
  521 2014-06-05  Gustaf Neumann  <neumann@wu-wien.ac.at>
  522
  523         nsf.c:
  524         - new function DependentSubClasses() to determine all
  525           classes that inherit from a given class. The result
  526           extend TransitiveSubClasses() by including class mixin
  527           relationships.
  528         - simplify NsfParameterCacheClassInvalidateCmd() by using the new
  529           function DependentSubClasses(). With the new implementation,
  530           NsfParameterCacheClassInvalidateCmd() is as efficient as before without
  531           to MostGeneralSuperclass optimization (but being complete now) when
  532           working on the root classes (an more efficient on subclasses).
  533
  534 2014-06-04  Gustaf Neumann  <neumann@wu-wien.ac.at>
  535
  536         - fixed error message for forward ... onerror and method paths. The
  537           command "C object mixin" returns now "::C object mixin
  538           add|clear|delete|get|guard|set" and not "::C mixin
  539           add|clear|delete|get|guard|set" as before.
  540
  541 2014-06-03  Gustaf Neumann  <neumann@wu-wien.ac.at>
  542
  543         - add ".add" file for mongodb interface
  544         - use cget interface
  545         - rename nsf::parameter:invalidate::classcache ->
  546                  nsf::parameter::cache::classinvalidate
  547           nsf::parameter:invalidate::objectcache ->
  548                 nsf::parameter::cache::objectinvalidate
  549           reasons: (a) remove single colon inside the name,
  550           (b) put verb to the end
  551
  552         - use functions IsRootClass(), IsRootMetaClass() and
  553           IsBaseClass() to access object/class properties
  554         - add gcc attribute "pure"
  555
  556         nsf.c:
  557         - cleanup of NsfParameterInvalidateClassCacheCmd(): performance
  558           improvements. After the fixing of indirect mixin validation,
  559           performance of invalidation went up by a factor of 5. At least, in some
  560           important cases (invalidation of rootclasses like nx::Object /
  561           xotcl::Object), we are again on the same level as before (actually
  562           slightly faster).
  563
  564 2014-06-02  Gustaf Neumann  <neumann@wu-wien.ac.at>
  565
  566         - reduce variable scopes
  567         - fix error message
  568         - add target for cppcheck with same arguments as for compilation
  569
  570 2014-06-02  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  571
  572         - Removing traces of nxdoc
  573
  574 2014-06-01  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  575
  576         - Fixing an example script for changes in getter/setter reform
  577
  578 2014-06-01  Gustaf Neumann  <neumann@wu-wien.ac.at>
  579
  580         - updated migration guide and tutorial to reflect recent changes
  581         - minor cleanup
  582         - improve spelling
  583         - update of TODO and regression test
  584         - adapt mixinof.test to the additional information
  585         - transform mixinof.test to newer style regression test with automated
  586           object deletion
  587         - add test file nsf-cmd.test
  588         - ignore generated .txt files
  589
  590         nx.tcl:
  591         - removed /cls/ info configure parameters /cls/ info configure /cls/
  592           info syntax Use e.g. "/cls/ info lookup parameters create" instead
  593
  594 2014-06-01  Gustaf Neumann  <neumann@wu-wien.ac.at>
  595
  596         - nsf.c:
  597         - Let "/cls/ info mixinof -closure" return as well implicit mixin
  598           classes to make it easier to determine class dependencies.
  599          Example:
  600          nx::Class create M0
  601          nx::Class create M1 -superclass M0
  602          nx::Class create M2 -superclass M1
  603          nx::Class create C
  604          nx::Class create D -superclass C
  605          C mixin add M2
  606          # M2 is mixed into C, and implicitly into D
  607          #
  608          # Since M2 is a subclass of M1, classes C and D depend as well
  609          # on M1 and M0, as seen in the heritage:
  610          ? {C info heritage} ":M2 ::M1 ::M0 ::nx::Object"
  611          ? {D info heritage} ":M2 ::M1 ::M0 ::C ::nx::Object"
  612          # previously, only "M2 info mixinof -closure" showed the
  613          # mixin relations, even with "-closure", while M1 and M0 did not.
  614          ? {M2 info mixinof -closure} "::C ::D"
  615          # now these show the same relations (in this example).
  616          ? {M1 info mixinof -closure} "::C ::D"
  617          ? {M0 info mixinof -closure} "::C ::D"
  618
  619 2014-06-01  Gustaf Neumann  <neumann@wu-wien.ac.at>
  620
  621         - handle ensembles in info nx::help
  622         - harden code
  623
  624         mongodb:
  625         - upgrade to the newly released version 0.96 of the c-driver
  626         - replace deprecated function mongoc_collection_delete by
  627           mongoc_collection_remove
  628         - tested with MongoDB v2.6.1
  629
  630 2014-05-31  Gustaf Neumann  <neumann@wu-wien.ac.at>
  631
  632         - provide a minimal nx::help
  633         - provide contextObj when required argument is missing
  634
  635         nsf.c:
  636         - added options to filter output from ::nsf::cmd::info
  637           parameter options (args, syntax, parameter)
  638         - deleted:
  639         - "/obj/ info lookup configure parameters ?pattern?"
  640         - "/obj/ info lookup configure syntax"
  641         - added:
  642         - "/obj/ info lookup parameters /methodName/ ?pattern?"
  643         - "/obj/ info lookup syntax /methodName/ ?pattern?" This
  644           covers as well
  645         - "/obj/ info lookup parameters configure|create|new|...
  646           ?pattern?"
  647
  648         - extend regression test
  649         - remove dead code
  650         - white-space change
  651         - improve error message
  652
  653         nsf.c, gentclAPI.tcl:
  654         - new argument types "virtualobjectargs" and
  655           "virtualclassargs" for context-specific argument
  656           resolutions: when a context object is provided, arguments
  657           of type "virtualobjectargs" are determined based on the
  658           slots applicable for the object (like "... lookup ..."),
  659           arguments of type "virtualclassargs" are resolved against
  660           a class. These types are used as follows: /obj/ configure
  661           /virtualobjectargs/ /cls/ create /name/
  662           /virtualclassargs/ /cls/ recreate /name/
  663           /virtualclassargs/ /cls/ new ?-childof /obj/?
  664           /virtualclassargs/ This new feature allows us to provide
  665           better error messages and to make much of the "... info
  666           ... configure parameter ..." infrastructure much less
  667           important.
  668         - For "virtualclassargs" we need the functionality to
  669           obtain from the C-Code based on a class the configure
  670           parameters applicable to objects of this class.
  671         - add argument "-context ..." to "cmd::info" to pass the
  672           context object (so far the only place where the
  673           context-object is used)
  674         - object system configuration parameters changes: new:
  675           -class.configureparameter new: -object.configureparameter removed:
  676           -class.objectparameter
  677
  678 2014-05-30  Gustaf Neumann  <neumann@wu-wien.ac.at>
  679
  680         nsf.c
  681         - renamed parameter::get -> parameter::info
  682         - renamed method::get -> cmd::info
  683
  684         gentclAPI.tcl:
  685         - handle duplicated domains by folding these to a single definition
  686
  687         nsf.c:
  688         - added command nsf::method::get.
  689           Rationale: provide a central place to obtain information
  690           about all kind of method handles, which might be
  691          - scripted and c-based methods
  692          - nsf::procs
  693          - plain tcl procs
  694          - cmds (with and without parameter definitions)
  695         - make results of ListMethod() robust against missing
  696          information (e.g. plain tcl cmds, missing object registrations,
  697          etc.)
  698         - factor out common code for ListMethod call sites
  699          for per-object methods, instance methods and procs/cmds
  700          to ListMethodResolve()
  701         - return errors from failing converter registrations
  702         - extend regression test (new test set nsf-method.test)
  703
  704 2014-05-30  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  705
  706         - Done with first version of Class.man
  707
  708 2014-05-29  Gustaf Neumann  <neumann@wu-wien.ac.at>
  709
  710         - also drop class level "info configure"
  711
  712         nx.tcl
  713         - drop short form "/obj/ info configure" for now
  714         - make output of "/obj/ info lookup configure syntax" equivalent to
  715           "/obj/ info configure"
  716         - updated TODOs
  717         - updated documentation
  718         - simplify slot parameter settings for object-mixins and object-filter
  719           lightly by omitting redundant method name
  720         - minor cleanup
  721
  722 2014-05-29  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  723
  724         - Some polishing of Object.man
  725         - Done with 'info method *' ensemble
  726         - Working on 'info object *' ensemble
  727
  728 2014-05-28  Gustaf Neumann  <neumann@wu-wien.ac.at>
  729
  730         - make error-checks as unlikely to succeed
  731         - we must replace ::get command with ::set commands for reestablishing
  732           relationships
  733         - return class of desired object in nsf::parameter::get when provided
  734
  735         nsf.c:
  736         - extend nsf::parameter::get to obtained more detailed
  737           information for objects/classes/metaclasses/baseclasses
  738           and specified types
  739         - extend regression test
  740
  741 2014-05-28  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  742
  743         - Add doc fragment about 'info variable *'
  744
  745 2014-05-28  Gustaf Neumann  <neumann@wu-wien.ac.at>
  746
  747         nx.tcl
  748         - switch from "/obj/ info parameter" -> "nsf::parameter::get" to reduce
  749           potential semantic confusion of info options. "info parameter" was
  750           not object/class specific at all, but is just a syntax extractor
  751
  752         nsf.c
  753         - force again literal "-guard" in a "mixinreg" type to
  754           avoid potential confusions
  755         - Base nsfRelationSet for mixins on cmds rather than
  756           TclObjs to avoid confusions and duplication of guard
  757           detection logic
  758         - Add interp to NsfMixinregGet() and NsfFilterregGet() to
  759           be able to return error messages
  760         - return more error message from mixinreg converter
  761         - provide at least minimal support for "funny class names"
  762           (i.e. containing spaces)
  763         - FinalObjectDeletion: don't enforce namespace = 1 for
  764           cases with weird namespace deletion order
  765         - extended regression test
  766
  767 2014-05-28  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  768
  769         - Amend doc of filter|mixin clear, re-instate -guard in filter|mixin set
  770         - Adding doc for the two new lookup sub-methods
  771
  772 2014-05-27  Gustaf Neumann  <neumann@wu-wien.ac.at>
  773
  774         - added methods "info lookup filters ?-guards? ?/pattern/?"
  775           and "info lookup methods *-guards? ?/pattern/?"
  776         - extended regression test
  777         - have "filter|mixin clear" return the list of former|removed
  778           filters|mixins.
  779         - disallow arguments for "... info configure"
  780
  781 2014-05-27  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  782
  783         - Complete info lookup doc
  784         - Adjust filter|mixin method for recent changes; working on info ensemble
  785           doc
  786
  787 2014-05-27  Gustaf Neumann  <neumann@wu-wien.ac.at>
  788
  789         - improve handling of space in object names
  790
  791         nsfObj.c:
  792         - allow to omit "-guard" within arguments to flag
  793           definition of a filter/mixin guard
  794         - extended regression test
  795
  796         - name parameter option "slotset" instead of "slotassign"
  797         - use "mixin|filter clear" instead of "mixin|filter unset"
  798
  799 2014-05-26  Gustaf Neumann  <neumann@wu-wien.ac.at>
  800
  801         nsf.c:
  802         - fixed unary argument passing notation for "-nocomplain" of nsf::var
  803           and for 42 other options of other commands
  804
  805         nx.tcl:
  806         - added flag -nocomplain to "/obj/ /prop/ unset ?-nocomplain?"
  807         - renamed nsf::relation to nsf::relation::set and added
  808           nsf::relation::get in accordance with nsf::var::get
  809
  810         nsf.c:
  811         - added nsf::var::get and "::nx::var get" to provide selector based
  812           interface for variable reading (used in slot-method get of
  813           nx::VariableSlot)
  814         - cleanup of nx.tcl and TODO
  815
  816 2014-05-26  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  817
  818         - Updated doc fragments to reflect recent changes
  819
  820 2014-05-26  Gustaf Neumann  <neumann@wu-wien.ac.at>
  821
  822         nsf.c:
  823         - finish implementation of NsfForwardPrintError()
  824         - use NsfForwardPrintError() in ForwardArg() for all error messages
  825
  826         traits:
  827         - define simple setter methods "requiredMethods" and
  828           "requiredVariables" to avoid to "set" these explicitly
  829         - fix compilation for OpenSolaris (e.g. OmniOS)
  830
  831 2014-05-25  Gustaf Neumann  <neumann@wu-wien.ac.at>
  832
  833         - fix compilation for OpenSolaris (e.g. OmniOS)
  834
  835 2014-05-23  Gustaf Neumann  <neumann@wu-wien.ac.at>
  836
  837         - cleaned up relation slot mixin variants
  838
  839         nx.tcl:
  840         - reworked error message generation of slot-forwarder (list all
  841           available slot methods with prefix value=)
  842
  843         xotcl2:
  844         - use xotcl::RelationSlot instead of nx::Relationslot in xotcl2
  845          (we can more value=assign here).
  846         - fix load paths for sub-libs (e.g. mongodb) in regression test
  847
  848         nx.tcl:
  849         - add slot method value=unset to nx::RelationSlot and
  850           nx::VariableSlot
  851         - extended regression test
  852         - added likely/unlikely to result == TCL_OK etc.
  853
  854         xotcl2:
  855         - use value=set instead of value=assign
  856         - simplify "-parameter" implementation
  857         - add setters for "name", "domain", and "default" to xotcl::Attribute
  858           for backward compatibility
  859
  860         mongodb:
  861         - by directing calls to the setter, it is now more complex
  862           to determine the true calling object for an converter,
  863           since the set operation might be routed though the slot
  864           object. It would be nice to have framework support for
  865           this.
  866         - fix 2 error messages
  867         - provide shorter tracebacks by using "return -code error ..." rather
  868           than "error ..."
  869
  870         nsf.c:
  871         - fix one more subtle case of an error being swallowed: for xotcl, the
  872           constructor returns the list of residual arguments. In case there was
  873           an error, it was possible that the returned residual arguments
  874           overwrote the error message in the interp result
  875
  876 2014-05-23  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  877
  878         - Adjust variable doc for recent changes
  879         - Extending mixin/filter doc to cover guards
  880         - Adding filter doc fragment
  881         - Adjust mixin doc for recent changes
  882         - Adjusting property doc to reflect recent changes
  883
  884 2014-05-22  Gustaf Neumann  <neumann@wu-wien.ac.at>
  885
  886         - don't delete system slot ::xotcl::Attribute on cleanup
  887
  888         nx.tcl, xotcl2.tcl:
  889           - use value=* as names for internally called and
  890           forwarder-called accessor methods
  891         - disallow "assign" for nx::variableSlots
  892
  893         nsf.c:
  894         - rename default slot methods add/get to value=add/value=get
  895         - provide an error message, when referring to a non-existing slot object
  896
  897 2014-05-21  Gustaf Neumann  <neumann@wu-wien.ac.at>
  898
  899         nx.tcl:
  900         - use set/get/add as slot methods for
  901           get/configure/incremental operations
  902         - demangle slots for nx/xotcl2 further
  903
  904         xotcl2:
  905         - use assign/get/add as slot methods for get/configure/incremental
  906           operations
  907         - use object system configuration for -slot.get and -slot.set
  908         - allow configuration of internally called "slot.get" and "slot.assign"
  909           methods via objectsystem::create
  910
  911 2014-05-20  Gustaf Neumann  <neumann@wu-wien.ac.at>
  912
  913         - enforce usage of "get" for all slots in nx
  914         - TODO: check, what in detail "parameter" in xtocl2 inherit from
  915           nx::variableslot (e.g. needsForwarder?)
  916         - enforce using "set" for filter/object-filter in slot operations (same
  917           as for mixins)
  918
  919         nx.tcl:
  920         - remove setter methods from BootstrapVariableSlots
  921         - reducing interface of BootstrapVariableSlots by setting methods
  922           protected
  923
  924 2014-05-18  Gustaf Neumann  <neumann@wu-wien.ac.at>
  925
  926         - put test cases for all kind of mix setter / getter together in one
  927           test case
  928         - reduce verbosity
  929
  930         nx.tcl:
  931         - add "set" as a method name for relation slots
  932         - implemented relation slot "mixin" and "object-mixin" via
  933           "slotassign" to disallow "/obj/ mixin /value/" and "/obj/
  934           object mixin /value/" to use instead "/obj/ mixin set
  935           /value/" and "/obj/ object mixin set /value/" while
  936           keeping "configure" and "cget" working. This has the
  937           advantage that "/obj/ mixin set" does not try to replace
  938           the mixin chain by "set"
  939         - adapted regression test
  940         - TODO: check, if we need the explicit "slotassign"? isn't
  941           the presence of the slotObj sufficient? maybe
  942           "-forwardToSlot" in relationSlots?
  943         - TODO: demangle "slotassign" in "ObjectParameterSlot
  944           protected method getParameterOptions" and check
  945           interactions
  946         - TODO: to the same as -mixin and -object-mixin to -filter
  947           and -object-filter
  948         - TODO: clean up relation slot mixin variants
  949         - TODO: do we really like the fact that we have to write
  950           now "B mixin set M2" instead of "B mixin M2"?
  951         - TODO: should we disallow "B mixin" and enforce instead of
  952           "B mixin get" ?
  953         - TODO: we could as well allow "B mixin clear" instead of
  954           "B mixin set {}"
  955         - TODO: allow "set" for variable slots as well. Do we need "assign"?
  956
  957         nsf.c:
  958         - allow parameter option "method=" for slotassign as well.
  959           rationale: this allows to use the parameter
  960           "forwardername" to specify a different forwarder target
  961           method (e.g. in case of object-mixins). The method is
  962           used both in "configure" and "cget".
  963         - allow method name to consist of max tow words in relation slots (e.g.
  964           "-methodname {mixin set}"}
  965
  966 2014-05-17  Gustaf Neumann  <neumann@wu-wien.ac.at>
  967
  968         - extend bagel example slightly
  969         - finalize dropping of setter methods for nx
  970         - show info line for every test case
  971
  972 2014-05-16  Gustaf Neumann  <neumann@wu-wien.ac.at>
  973
  974         - add flag "-onerror" to nsf::forward::method to handle
  975           errors during dispatch of a forwarder (not all error
  976           messages of forwarder are already transformed)
  977         - added log-level Info which prints always, e.g. for
  978           "-verbose" flag of forwarder
  979         - drop setter-rule from properties (use always forwarder)
  980
  981         - drop "/obj/ /prop/" and "/obj/ /prop/ /value/" in favor of
  982           "/obj/ /prop/ get" and "/obj/ /prop/ assign /value/"
  983           to achieve better orthogonality with e.g. incremental properties
  984
  985 2014-05-14  Gustaf Neumann  <neumann@wu-wien.ac.at>
  986
  987         - replace empty-named arrays by dicts
  988
  989 2014-05-13  Gustaf Neumann  <neumann@wu-wien.ac.at>
  990
  991         - fix change of semantics when default multiplicity (1..1) is combined
  992           with lower bound preserving incremental (results in 1..n instead of
  993           0..n previously)
  994
  995 2014-05-12  Gustaf Neumann  <neumann@wu-wien.ac.at>
  996
  997         - make sure that nsfDtrace.h has a newer timestamp than nsfDtrace.d
  998         - preserve lower bound of multiplicity when incremental is
  999           added
  1000         - extend regression test
  1001         - added more test cases for multiplicity and incremental
  1002
  1003         nx.tcl:
  1004         - Define method "value" as a slot forwarder to allow for
  1005           calling value-less slot methods like e.g. "get" despite
  1006           of the arity-based forward dispatcher.
  1007         - extend regression test
  1008
  1009 2014-05-12  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1010
  1011         - Adding doc fragment on mixin method
  1012
  1013 2014-05-12  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1014
  1015         - remove over-eager nonnull declaration
  1016         - remove done entries from TODO
  1017
  1018 2014-05-11  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1019
  1020         - add fixes for tcl 8.6
  1021         - finish non-null handling for tcl 8.5
  1022         - continuing with nonnull assertions, various small cleanups
  1023
  1024 2014-05-10  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1025
  1026         - complete nonnull assertion cleanup to 80% of nsf.c
  1027         - complete nonnull assertion cleanup to 33% of nsf.c
  1028         - improve source code documentation
  1029         - simplify SuperclassAdd()
  1030         - improve code documentation
  1031         - complete nonnull assertion cleanup to 50% of nsf.c
  1032         - simplify FilterInvalidateObjOrders() and
  1033           FilterRemoveDependentFilterCmds()
  1034         - complete nonnull assertion cleanup to 33% of nsf.c
  1035
  1036 2014-05-09  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1037
  1038         - Add argument to last discussion item
  1039         - Add another incremental TODO
  1040         - Adding discussion items
  1041
  1042 2014-05-09  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1043
  1044         - finishing checking of first 25% of of nonnull assertions in nsf.c
  1045         - added still more nonnull assertions
  1046
  1047 2014-05-09  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1048
  1049         - Drafted a variable doc fragment, and revised the property's one to make
  1050           the (subtle) difference clear
  1051
  1052 2014-05-09  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1053
  1054         - added shortcut for MixinSearchProc when mixinOrder is NULL
  1055         - work on nonnull
  1056
  1057 2014-05-08  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1058
  1059         - let the c-code generator produce as well nonnull assertions
  1060         - commenting item
  1061         - made nsf::is using the "-strict" option when tcl's "string is" is
  1062           called.
  1063
  1064 2014-05-08  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1065
  1066         - Adding incremental doc to property doc fragment
  1067
  1068 2014-05-08  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1069
  1070         - complete nonnull+assert adding in .c-files other than nsf.c
  1071
  1072 2014-05-08  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1073
  1074         - Adding todo on multiplicities
  1075
  1076 2014-05-08  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1077
  1078         - add asserts to nsfError.c
  1079         - fixed all over-eager nonnull cases for optimizing with gcc and clang
  1080           (works up to -O3 except gcc 4.9.0)
  1081
  1082 2014-05-07  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1083
  1084         - added nonnull for args of type Tcl_Command and ClientData
  1085         - add asserts for nonnull
  1086
  1087 2014-05-07  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1088
  1089         - Starting documenting info ensemble
  1090
  1091 2014-05-06  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1092
  1093         - provide nonnull statements for all functions in nsf.c
  1094         - some more code cleanup
  1095         - complete asserts due to nonnull
  1096
  1097 2014-05-05  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1098
  1099         - update more copyright notices
  1100         - update copyright notices
  1101         - update copyright notice
  1102
  1103         nsf.c:
  1104         - simplify few inner code pieces based on assertions
  1105         - add several more assertions based on nonnull specifications.
  1106         - use nx rather than xotcl2 terminology in nsf::method::forward
  1107
  1108 2014-05-04  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1109
  1110         - renamed "-methodprefix" to "-prefix" in nx, since the prefix can be
  1111           applied as well applied to a cmd.
  1112
  1113 2014-05-04  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1114
  1115         - Adding doc fragment about require method
  1116
  1117 2014-05-03  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1118
  1119         - Adding a todo
  1120         - nsf.c, NsfForwardMethod(): Make sure that a 2nd argument
  1121           is available for prepending the methodprefix. Earlier,
  1122           NSF crashed in case of a missing 2nd arg.
  1123         - Added some basic tests on -methodprefix.
  1124
  1125 2014-05-03  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1126
  1127         - use nonnull variable attributes for prototypes (nsf.h, nsfInt.h,
  1128           nsf.c)
  1129
  1130         nsf.c:
  1131         - de-spaghetti precedence computations for multiple
  1132           inheritance and improve documentation
  1133         - get rid of // comments
  1134         - stubsPtr can't be NULL there
  1135
  1136 2014-05-02  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1137
  1138         - remove false alarm
  1139         - deactivated "-onerror", since its semantics are expressible via
  1140           try/catch, and there are no regression tests for xotcl and nx, and we
  1141           could not find any script that uses this
  1142
  1143 2014-05-01  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1144
  1145         - Adjusting forward doc, adding TODO
  1146         - forward.test: Adding some tests
  1147
  1148 2014-05-01  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1149
  1150         - use in forwarders "-frame object" instead of "-objframe" in nx for
  1151           consistency with other calls (e.g. dispatch). Other values for
  1152           "-frame" are not allowed. (btw, XOTcl has "-objscope")
  1153         - move "checkalways for forwarders and aliases" to RFEs and comment it
  1154
  1155         forwarders:
  1156         - use for output of forward ... -verbose NsfLog(...NSF_LOG_NOTICE...)
  1157           instead of fprintf() to make it redirect-able
  1158         - RFE "provide %method" as keyword like %proc" was already
  1159           implemented. Dropping %proc would break XOTcl2
  1160           compatibility.
  1161         - adding a test case
  1162
  1163 2014-04-30  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1164
  1165         - Continue working on forward doc, adding some tests
  1166         - Adding some todos
  1167         - Working on Object.man, in particular forward
  1168         - library/nx/nx.tcl: Pulling out method contracts (pre- and
  1169           postconditions) from NX for the time being. Corresponding tests have
  1170           been commented out or, if applicable, turned into XOTcl2-specific tests.
  1171
  1172 2014-04-30  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1173
  1174         - finalize autoconf quoting
  1175
  1176 2014-04-29  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1177
  1178         - fix configure.ac quoting
  1179         - stick closer to TEA conventions (keep tclconfig-sh in
  1180           tclconfig directory)
  1181         - remove obsolete version of install-sh, copy manifested
  1182           version to mongodb library
  1183         - fix more configure quoting
  1184
  1185 2014-04-18  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1186
  1187         - Adding doc fragment on 'method'
  1188
  1189 2014-04-14  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1190
  1191         - doc/Object.man: Adding documentation on alias (doc/alias.man.inc) and
  1192           delete (doc/delete.man.inc)
  1193
  1194 2014-04-14  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1195
  1196         small introspection reform:
  1197         - Introspection for commands and arguments did not work for
  1198           cmds defined in sub-packages (such as mongodb). We keep
  1199           now this information in hash tables and maintain a slim
  1200           interface for this.
  1201         - fix generation of pkgIndex.tcl for mongodb
  1202
  1203 2014-04-08  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1204
  1205         - Some more refactoring
  1206         - Refactor the include file slightly, so that Object/Class-specific
  1207           parameters etc. of a shared method documentation can be provided in the
  1208           respective Object.man/Class.man files
  1209         - Continue working in man pages, introducing a first shared section using
  1210           [include] and [vset]
  1211
  1212 2014-04-06  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1213
  1214         - tested with MongoDB v2.4.10 and J mongodb-c-driver 0.94.1
  1215         - moving .m4 files to subdirectory as recommended
  1216         - update generated configure files
  1217         - replace obsolete autoconf macros
  1218         - replace obsolete autoconf macros
  1219         - update to must recent build files (tcl.m4 and install-sh) from tcl
  1220           source repository
  1221
  1222 2014-04-05  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1223
  1224         build-process:
  1225         - replace make.tcl by the much simpler mkIndex.tcl:
  1226           * Does not use pkg_mkIndex
  1227           * Does not load binary files (problem for cross compiling)
  1228           * Requires package provide with constant in one line.
  1229
  1230 2014-04-03  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1231
  1232         - reduce variable scope
  1233         - remove redundant NULL tests
  1234         - improve safety mof macro ObjStr()
  1235
  1236 2014-03-31  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1237
  1238         - improve code documentation
  1239         - add some more tests to the regression test suite
  1240
  1241 2014-03-29  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1242
  1243         - generic/nsf.c: Avoiding excessive allocation/deallocation of
  1244           temporary hash tables when invalidating per-class objparam caches in
  1245           NsfParameterInvalidateClassCacheCmd().
  1246
  1247 2014-03-29  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1248
  1249         - extend regression test
  1250
  1251 2014-03-29  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1252
  1253         - generic/nsf.c: Use GetAllClassMixinsOf() instead of
  1254           TransitiveSubClasses() when invalidating per-class caches. Added two
  1255           tests.
  1256
  1257 2014-03-28  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1258
  1259         nsf.c:
  1260         - remove obsolete code
  1261         - invalidate parameter caches of subclasses on
  1262           NsfParameterInvalidateClassCacheCmd unless during
  1263           shutdown. Otherwise some classes might not become aware
  1264           of properties added later to superclasses.
  1265         - extended regression test
  1266
  1267 2014-03-25  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1268
  1269         - Adding to Object.man: cget, configure, move, copy, ...
  1270
  1271 2014-03-23  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1272
  1273         nx-mongo:
  1274         - added command "::mongo::status /mongoConn/"
  1275         - extended regression test
  1276
  1277 2014-03-22  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1278
  1279         nsf.c:
  1280         - fix case, where NsfDStringPrintf() failed (when print
  1281           llength including \0 was 1 byte longer than print buffer)
  1282         - make sure, that the list kept for the cached parameter is just built
  1283           from unshared objects; otherwise Tcl append will abort
  1284
  1285         nx.tcl:
  1286         - new package "nx::volatile"
  1287         - don't define configure parameter "-volatile" per default;
  1288           use "package req nx::volatile" instead
  1289         - don't define per method "volatile" per default;
  1290           use "::nsf::method::require ::nx::Object volatile" instead
  1291         - get rid of -volatile in nx.tcl and serializer
  1292         - update/extend regression test
  1293
  1294         nsf.c:
  1295         - fix case, where NsfDStringPrintf() failed (when print llength
  1296           including \0 was 1 byte longer than print buffer)
  1297         - added mongo::cursor::aggregate
  1298
  1299 2014-03-21  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1300
  1301         - added mongo::collection::stats
  1302         - extended regression test
  1303
  1304 2014-03-19  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1305
  1306         nx-mongo:
  1307         - fixed surprising compiler message "alignment of array
  1308           elements is greater than element size" when using e.g.
  1309           "bson_iter_t i[1]"
  1310         - some c-code cleanup
  1311         - tested with mongodb-c-driver 0.92.3
  1312
  1313 2014-03-17  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1314
  1315         - Started working on an authoritative man page for nx::Object, still
  1316           cleaning up and still tweaking the doctools markup
  1317
  1318 2014-03-15  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1319
  1320         - mongodb's c-driver changed version number from 0.93.0 to 0.92.1;
  1321           followed the change in README
  1322
  1323 2014-03-14  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1324
  1325         - tested with mongodb-c-driver 0.93.0
  1326
  1327 2014-03-12  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1328
  1329         - since mongoc_gridfs_get_files is supported since today by the
  1330           mongo-c-driver, we do not need it private implementation any more.
  1331           all dependencies on private header files are removed by now.
  1332
  1333 2014-03-09  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1334
  1335         - adjust to newest version of mongo-c-driver
  1336         - remove one dependency for private header file
  1337
  1338 2014-03-07  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1339
  1340         - move close of the pseudo comment for syntax highlighter out of quoted
  1341           block
  1342
  1343 2014-03-04  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1344
  1345         xotcl2:
  1346         - prevent strange error messages, when "abstract" is called with quotes
  1347           in the argument list.
  1348
  1349 2014-03-02  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1350
  1351         - represent BSON_TYPE_REGEX as pairs (regexp + options) in
  1352           the Tcl representation to preserve regular expression
  1353           options
  1354         - update to newest version of mongo-c-driver and libbson from Github
  1355
  1356         nx-mongo:
  1357         - optional support for mongodb connection pools (compile
  1358           time macro USE_CLIENT_POOL controls this, per default,
  1359           this is on)
  1360         - allow to pass "-metadata" to gridfile::create to ease
  1361           metadata attachment to grid-files
  1362         - some convenience improvements in nx-mongo.tcl (ability to
  1363           ignore attributes in "bson encode", ability to unset
  1364           attributes in gridfs, ...)
  1365         - bump version numbers of nsfmongo to 0.3 and nx-monogo to 0.5
  1366
  1367 2014-02-26  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1368
  1369         nsf.c:
  1370         - let [current methodpath] return full path (similar to
  1371           -path option in "info methods"
  1372         - handle collateral damage in regression test due to changed result of
  1373           "current methodpath"
  1374         - add traits.test to the regression tests
  1375
  1376         nx::traits:
  1377         - handle ensemble methods correctly (use full method path
  1378           for resolution)
  1379         - add new regression tests for traits
  1380
  1381         nsf.c:
  1382         - fix small memory leak in multiple inheritance code.
  1383         - all regression tests rerun cleanly with --enable-memcount=yes
  1384
  1385 2014-02-25  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1386
  1387         - raise an error, when an ensemble methods redefined a plain method
  1388         - add incr/decr refcount for callInfoObj in unknown handling
  1389         - deactivated suspicious assert() in NsfMethodNamePath()
  1390
  1391         nsf.c:
  1392         - change name of enumeratorConverterEntry to
  1393           Nsf_EnumeratorConverterEntry, move it with NSF_ARG_*
  1394           flags to tcl.h to make it available in derived modules
  1395           using the converter
  1396         - Added editor hints for a more uniform appearance
  1397
  1398         - change configure flags from --with-mongodb to --with-mongoc=... and
  1399           --with-bson
  1400
  1401         nx-monogo:
  1402         - Updated the mongo-c-driver and libbson to the actual tip
  1403           version from Github (this is a significant change, since
  1404           10gen essentially changed the officially supported
  1405           c-driver of MongoDB)
  1406         - mongo-c-driver was more or less new-implementation, since
  1407           structure and names changed in the mongo-c-driver
  1408           substantially, several functions were added, several
  1409           were dropped. The new interface supports now e.g. mongo
  1410           URIs, and should be faster (by using collection objects
  1411           instead of connection handles)
  1412         - Although the low-level nsf interface changed
  1413           significantly, the high level (nx level) interface
  1414           remained unaffected.
  1415         - Configure has now --with-mongoc=... and --with-bson
  1416           instead of --with-mongodb
  1417         - New commands: mongo::collection::open /mongoConn/
  1418           /dbName/ /collectionName/ mongo::collection::close
  1419           /collection/ mongo::gridfs::store_string /content/ /name/
  1420           /contentType/
  1421         - Make use of the new collection handle mongo::count
  1422           /mongoConn/ /ns/ ... -> mongo::collection::count
  1423           /collection/ ... mongo::index /mongoConn/ /ns/ ... ->
  1424           mongo::collection::index /collection/ ... mongo::insert
  1425           /mongoConn/ /ns/ ... -> mongo::collection::insert
  1426           /collection/ ... mongo::query /mongoConn/ /ns/ ... ->
  1427           mongo::collection::query /collection/ ... mongo::remove
  1428           /mongoConn/ /ns/ ... -> mongo::collection::delete
  1429           /collection/ ... mongo::update /mongoConn/ /ns/ ... ->
  1430           mongo::collection::update /collection/ ...
  1431           mongo::cursor::find /mongoConn/ /ns/ ... ->
  1432           mongo::cursor::find /collection/ ...
  1433         - nsf::mongo::connect receives now a mongoc_uri
  1434           https://github.com/mongodb/mongo-c-driver/blob/master/doc/mongoc_uri.txt
  1435         - The gridfs interface allows now to store multiple
  1436           revisions of a file
  1437         - The gridfs interface allows now upload files from a string
  1438         - The gridfs interface allows to refer to files by other
  1439           attributes than just the filename (e.g. the mongo id).
  1440         - Modified/new grid-file functions mongo::gridfile::create
  1441           ?-source file|string? /gridfs/ /value/ /name/
  1442           /contentType/ mongo::gridfile::delete /gridfs/ /query/
  1443           mongo::gridfile::open /gridfs/ /query/
  1444         - Updated README
  1445         - Updated regression test
  1446         - Added editor hints for a more uniform appearance
  1447
  1448 2014-02-20  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1449
  1450         - nx.tcl: Throw error exceptions using "return -code error", to exclude
  1451           the unevaluated error cmd statement from the trace message
  1452         - At two or three locations, we used to compute the method path using
  1453           different helpers (CallStackMethodPath, NsfMethodNamePath) etc. I
  1454           tried to unify this by revising NsfMethodNamePath to accomodate the
  1455           different uses.
  1456         - Besides, for required-argument checks, I included the method path
  1457          (for ensemble invocations) into the error messages.
  1458
  1459 2014-02-17  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1460
  1461         - improve performance of mongo->tcl conversion by using predefined
  1462           global strings
  1463
  1464         nx-mongo:
  1465         - updated documentation (switch back to mongo-c-driver, but
  1466           comment usage of tagged version v0.8.1)
  1467         - added support for rep types (allow for mappings between
  1468           certain instance variables such as arrays or dicts to
  1469           customizable representations in MongoDB)
  1470         - added nx-serialize to test cases (simple state
  1471           persistance for nx objects)
  1472         - added nx-rep to test cases (rep types for "array" and "dict")
  1473         - provide datarootdir to get rid of warning during configure
  1474
  1475 2014-02-14  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1476
  1477         - fix bug in interaction between up-level method from tcl procs
  1478
  1479         -nsf.c:
  1480         - fix bug in interaction between uplevel method and
  1481           interceptor transparency
  1482         - extend regression test
  1483
  1484 2014-02-07  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1485
  1486         - in case of multiple inheritance, make sure that all supporting
  1487           classes haver already a precedence order defined
  1488
  1489 2014-02-04  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1490
  1491         - implement simple persistent handle management based on per-thread
  1492           objects
  1493         - reduce verbosity for FreeUnsetTraceVariable
  1494         - return TCL_OK, even when FreeUnsetTraceVariable() fails (warning
  1495           stays)
  1496         - improve worrying in comments
  1497         - fix stub provisioning for Tcl 8.6.*
  1498         - change macro name from XOTCL to NSF
  1499
  1500 2014-01-26  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1501
  1502         nx:
  1503         - allow copy of objects with required arguments
  1504         - use ::nsf::object::alloc in "copy" method
  1505         - don't depend on method "trace", use directdispatch instead
  1506         - remove method "-noinit" (nsf::object::alloc makes it
  1507           obsolete)
  1508         - extend regression test
  1509         - restore traces after object-serialize
  1510
  1511         nsf.c:
  1512         - when ::nsf::object::alloc is passed an empty name (2nd argument),
  1513           behave like "new" method
  1514
  1515 2014-01-25  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1516
  1517         - don't rely on the existence of a "trace" method
  1518
  1519         nsf.c:
  1520         - new command ::nsf::object::alloc /class/ /obj/ ?/script/? alloc an
  1521           object and execute script in the context. Can be used to regenerate
  1522           an object in a old state.
  1523           serializer:
  1524         - fixed loading of objects with required data in the blueprint
  1525           (many thanks for david hopfmueller for reporting this)
  1526         - make use of nsf::object::alloc (1 command instead of 1 create + 2
  1527           evals)
  1528         - these changes improved loading time of blueprint by about 25%
  1529           for OpenACS+xowiki
  1530
  1531 2014-01-21  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1532
  1533         - make test for retrieving parsed parameters more safe
  1534
  1535 2014-01-08  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1536
  1537         - update hint at end of build for NaviServer
  1538         - strip trailing spaces
  1539         - silence cppcheck
  1540
  1541 2014-01-07  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1542
  1543         mongodb:
  1544         - add flag "-puts" to method "show" of nx::mongo::Class to
  1545           turnoff output to stdout
  1546         - handle empty find operations for "find first"
  1547         - added method pretty_variables to output available
  1548           variables of a class in a similar style as in the
  1549           definition
  1550         - added low-level method "close" to nx::mongo
  1551
  1552 2014-01-01  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1553
  1554         - Tcl's "package present" raises an error if the package is not present
  1555
  1556 2013-12-26  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1557
  1558         - add more assertions
  1559         - ensure computation of requires orders for recursive merges
  1560         - make test more robust
  1561         - strip trailing spaces
  1562         - get rid of potentially uninitialized variables
  1563         - make compilation more clean
  1564         - add assertion for validity checking of precedence lists
  1565         - improve error message
  1566         - remove trailing space
  1567
  1568 2013-12-23  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1569
  1570         - Fixing a mini-typo in nsf.c: unlinkely -> unlikely
  1571
  1572 2013-12-23  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1573
  1574         - made linearization monotonic (for multiple inheritance)
  1575           via single-inheritance linearization merging while
  1576           preserving overall linearization rules
  1577         - added flag NSF_LINEARIZER_TRACE
  1578         - extended regression test
  1579         - upgrade to mongo-c-driver to 0.8.1
  1580         - added new flag "-ttl" to mongo::index
  1581         - there seems to be now a different mongo-c-driver to be the
  1582           preferred one, the old one is renamed to
  1583           mongo-c-driver-legacy
  1584         - link against nsf-stublib
  1585         - bump version number to 0.2
  1586         - don't try to load nx when building pkgindex for a binary package (.so
  1587           or dylib)
  1588
  1589         generic/nsfPointer.c:
  1590         - add reference counter to avoid double-inits and double-frees in case
  1591           the table of converters is used from multiple interpreters
  1592
  1593 2013-12-22  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1594
  1595         - change base stub table from XOTcl to NSF.
  1596         - improve wording of error messages.
  1597         - add parameter parser and converter to stub tables
  1598         - make converter usable from c-based packages compiled with subs
  1599           activated
  1600
  1601 2013-11-12  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1602
  1603         xotcl2:
  1604         - fixed "... info defaults ..." and "... info instdefaults
  1605           ..." emulation in XOTcl 2
  1606         - fixed error message
  1607         - extended regression test
  1608         - bumped revision of nsf/xotcl/nx to 2.0b6
  1609
  1610 2013-10-22  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1611
  1612         - nsf: added switch "-checkalways" to nsf::method::create
  1613         - nx: added switch "checkalways" to "method" and "object
  1614           method"
  1615         - extended regression test
  1616
  1617 2013-10-19  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1618
  1619         - minor cleanup:
  1620           * reduce variable scope
  1621           * remove uncalled static function
  1622
  1623         - added flag -checkalways to nsf::proc and nsf::asm::proc (for the
  1624           latter just a placeholder for now). If the flag is used, it will cause
  1625           argument testing independently from the "configure checkarguments"
  1626           setting. To force argument checking always is useful e.g. for checking
  1627           external values (e.g. in a web server)
  1628
  1629 2013-09-15  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1630
  1631         - fix object method serializeExportedMethod: targetName might have been
  1632           uninitialized
  1633
  1634 2013-08-27  ssoberni  <stefan.sobernig@wu-wien.ac.at>
  1635
  1636         - Explored assertion support from an NX perspective, by reviewing the
  1637           current implementation against Eiffel's RAC; along the way, I made
  1638           ::nsf::current more robust when being used in assertions
  1639
  1640 2013-08-08  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1641
  1642         - don't call postcondition, when the command/invariant have returned
  1643           already an error
  1644
  1645         nsf.c
  1646         - fixed a bug where turning on assertions could swallow
  1647           result-codes
  1648         - extended regression test
  1649         - fix potential crash when preconditions are empty
  1650         - fix typo
  1651
  1652 2013-08-03  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1653
  1654         - added sample script doc/example-scripts/tk-geo.tcl
  1655         - minor cleanup of configure script
  1656         - bump version number of mongo support to 0.2
  1657
  1658 2013-08-01  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1659
  1660         mongodb:
  1661         - integrated configuration of mongodb into toplevel
  1662           configfile option:
  1663           --with-mongodb=MONGO_INCLUDE_DIR,MONGO_LIB_DIR
  1664         - added regression test files for mongodb support (low level
  1665           (tcl-only) and high level (nx based oo support))
  1666         - integrated mongodb-testfiles with "make test"
  1667         - reduced verbosity of nx-mongo.tcl (added verbosity variable)
  1668
  1669 2013-07-31  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1670
  1671         - added example scripts rosetta-sudoku.{tcl,html} and tk-ludo.{tcl,html}
  1672
  1673         mongodb:
  1674         - don't call NsfLog() in Nsfmongo_Exit, since interp-data might be
  1675           already cleaned up
  1676         - improve robustness
  1677         - added flag for verbosity
  1678
  1679 2013-07-30  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1680
  1681         mongodb:
  1682         - updated to most recent version of c-driver (0.7.1)
  1683         - adapted to nx 2.0b5 (use everywhere cget interface)
  1684         - tested with mongodb 2.4.5
  1685
  1686         - updated locomotive example to use nx::callback
  1687
  1688 2013-07-16  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1689
  1690         - updated TODO
  1691
  1692 2013-07-15  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1693
  1694         - prepare for providing nx as a tcl module (.tm file). this is just a
  1695           preparation, since for testing, one cannot set up a path that prefers
  1696           a local copy over a global installed one (the global tcl-site is
  1697           preferred over the one specified in e.g. TCL8_5_TM_PATH)
  1698
  1699 2013-07-08  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1700
  1701         - explore the usage of dict instead of anonymous array
  1702
  1703         nsf.c:
  1704         - dont't use the default of a invocation parameter in
  1705           "configure" when the object is already initialized. The
  1706           default is in general only used when the parameter is not
  1707           specified. We do not want e.g. superclass to be reset to
  1708           ::nx::Object, when configure is called on a class without
  1709           arguments.
  1710         - extended regression test
  1711
  1712 2013-07-02  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1713
  1714         - remove debug statement
  1715
  1716 2013-06-24  Gustaf Neumann  <neumann@wu-wien.ac.at>
  1717
  1718         - keep this single pkgIndex.tcl
  1719         - keep packages versions from 2.0 and 1.0 disjoint
  1720