2018-07-16  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * README.md: http -> https [skip ci]

2018-07-15  Gustaf Neumann  <neumann@wu-wien.ac.at>


	bump version number to 2.2


	update REAME file


	update copyright information


	improve markdown


	improve markdown


	change READE to markdown syntax


	improve markdown


	improve markdown


	use markdown syntax


	prefer new spelling of macOS


	updating mongodb interface for 2.2:
	- update to mongodb-c-driver 1.11.0
	- reduce number of calls to deprecated driver functions as
	  far as possible
	- improve cleanness of compilation (provde prototypes etc.)
	- bump version number to 2.2


	prefer Tcl defined types over local prototypes

2018-07-13  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsfDebug.c, nsfInt.h (STRING_NEW, MEM_COUNT_ALLOC, MEM_COUNT_FREE):
	  Fix compilation with --enable-memcount=yes.


	  * configure, configure.ac, nx.tcl, pkgIndex.tcl, xotcl2.tcl, pkg.vc:
	  Bump version to 2.2.0.


	Done with work on changelog and announcement. [skip ci]

2018-07-12  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Continued work on changelog and announcement. [skip ci]


	Continued work on changelog and announcement. [skip ci]

2018-07-10  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Fix buggy case when blueprints are used to update interpreters with
	preexisting objects and classes. There, it was possible that objects
	are turned into baseclass objects, when the application classes are
	deleted.

2018-07-06  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Continued work on changelog and announcement. [skip ci]

2018-07-04  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Continued work on changelog and announcement. [skip ci]


	Continued work on changelog and announcement. [skip ci]

2018-07-04  Gustaf Neumann  <neumann@wu-wien.ac.at>


	improve spelling

2018-07-03  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Continued work on changelog and announcement. [skip ci]


	Continued work on changelog and announcement. [skip ci]

2018-07-02  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Continued work on changelog and announcement. [skip ci]


	Continued work on changelog and announcement [skip ci]


	  * Adding changelog and announce file (WIP) for 2.2.0 [skip ci]


	  * makefile.vc (CFLAGS): Also set -DHAVE_UINTPTR_T.


	  * makefile.vc (CFLAGS): Add -DHAVE_INTPTR_T explicitly.

2018-07-02  Gustaf Neumann  <neumann@wu-wien.ac.at>


	MSVC seems to be bad on const expressions


	add starmethod design study


	improve spelling


	fix typo

2018-07-01  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Improve comments, unify comment formatting and whitespace cleanup


	properly initialize resultObj in all cases


	remove dead assignments, initialize variables also on error paths


	make sure to initialize all variables also in error cases


	Reduce number of implicit type conversions Avoid use of macros


	mprove alignment of prototypes and function definitions

2018-06-29  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (ObjectCmdMethodDispatch, FindNextMethod): Balance book-keeping
	in memcounts for Tcl_Objs (technically, an unmatched decrement would
	suffice).


	  * nsf.c (NsfProcDeleteProc): Fix freeing of colonLocalVarCache and
	  balance book-kepping on memcounts for colonLocalVarCache.


	  * nsf.c (ObjectCmdMethodDispatch): Silence static check of GCC 8.1
	  (-Wmaybe-uninitialized). [skip ci]


	  * nsf.c (NsfCurrentCmd): Avoid (possible, but unlikely) null
	  dereferencing, if CSC was missing [CID 294166].


	  * nsf.c (NsfDebugGetDict): Compute the remaining size to snprintf for
	  each iteration [CID 294169]. [skip ci]

2018-06-29  Gustaf Neumann  <neumann@wu-wien.ac.at>


	address CID 294171 and change construct for strpbrk

2018-06-29  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	nsf.c (NsfDebugGetDict): Parametrize length computation; remove
	unneeded nul-termination. [skip ci]

2018-06-29  Gustaf Neumann  <neumann@wu-wien.ac.at>


	minor cleanup


	reduce variable scope and minor cleanup

2018-06-28  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (NsfDebugGetDict): Make use of strncat more robust by setting
	  the destingation length to the remainder of the output buffer.


	  * nsf.c (ForwardArg): Provide a const'ed pointer to strpbrk, as
	  required [CID 294162].


	  * nsf.c (ParamDefsFormat): Fix overrun in memcpy by correcting the
	  destination-length argument [CID 294165].


	  * nsf.c: Fix all "-pedantic -ansi" errors.

2018-06-27  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (ParamDefsStore, NsfProcDeleteProc): Provide for counting a
	reference to the execNsPtr from the NsfProcContext structure. While I
	could not devise a script-level path to pull out the rug (execNsPtr)
	out from under NsfProcContext clients, I can only also not exclude the
	latter (from future C-level paths?). Better act defensively.


	  * nsfInt.h (STRING_NEW): Silence GCC 8.1 warnings on truncation risk
	using strncpy; made me wonder whether STRING_NEW would not be more
	robust against mis-computations of the destination-buffer length by
	using snprintf (mainly because snprintf does not nul-pad the
	destination buffer and always nul-terminates the destination buffer)?

2018-06-26  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * parameters.test: Adding two test cases to cover previously missed
	  code branches leading to leaking NsfMethodNamePath uses.

2018-06-25  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (ArgumentParse): Handle NsfMethodNamePath result correctly.


	  * nsf.c (NsfSetterMethod): Handle NsfMethodNamePath result correctly.


	  * nsf.c (ObjectCmdMethodDispatch): Close another Tcl_Obj leak incurred
	  by not handling the result from NsfMethodNamePath.


	  * nsf.c (FindNextMethod): Plumb another memleak (valgrind). The Tcl_Obj
	  computed by NsfMethodNamePath must be refcount corrected.


	  * nsf.c (AliasGet): Plumbing a memleak found by valgrind. The computed
	Tcl_Obj from AliasIndex must be refcount-managed explicitly,
	otherwise the path via AliasGet leaks it.

2018-06-20  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Fix makefile.vc syntax [skip travis]


	Re-code env variable dimension of build matrix


	Fix appveyor.yml syntax


	Necessary additions to build script and NMAKE/TEA artifacts


	appveyor.yml: Add TOOLCHAIN dimension to incorporate MSVC builds


	per-object-mixins.tcl: Fix an example script that got broken a long,
	long time ago. [skip ci]

2018-06-19  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Fix build.tcl pt. 2 [skip ci]


	Fix build.tcl [skip ci]


	Add nmake mode to build.tcl [skip ci]

2018-06-18  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Add allowed failures to Travis setup [skip appveyor]


	Set allowed failures on Tcl development branches; report failure on
	first failing build [skip travis]


	  * nsf.c (ParamOptionParse), nsfInt.h: Provide for own MAX and MIN
	macros, the ones reused implicitly from Tcl's tommath have vanished
	in 8.7 branches; and are not provided otherwise, at least in MinGW
	settings. Fixes 8.7 builds for MinGW under Win.


	Fix descriptor syntax.


	Finally, got Windows builds (MinGW) working on Appveyor. Cleaning up
	build scripts.


	Trying to set HOME dir explicitly, 2nd try, sigh! [skip travis]


	Trying to set HOME dir explicitly [skip travis]


	Triangulate HOME dir [skip travis]


	Add debugging in build scripts [skip travis]


	Add debugging in build scripts [skip travis]


	Relocate env setup into build_script block [skip travis]


	Fix path setting [skip travis]


	Fix path setting [skip travis]


	Make sure that sh and bash are initialized the same. [skip travis]


	Turn on MORE debugging [skip travis]


	Turn on MORE debugging [skip travis]


	Turn on MORE debugging [skip travis]


	Turn on debugging [skip travis]


	Turn on debugging [skip travis]


	Add skip marker; correct path settings [skip travis]


	Try native MinGW pt. 4


	Try native MinGW pt. 3


	Try native MinGW pt. 2


	Try native MinGW


	Avoid x-compilation


	Another try to fix build paths

2018-06-17  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Install gcc dependency on builders


	Fix mingw toolchain path


	Update appveyor.yml


	Prep build script to support MSYS2/MinGW builds under Windows

2018-06-04  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (ListSuperClasses): Fix refcounting for 8.5 non-threaded only,
	otherwise the patternString becomes unavailable once a preemptive
	decrement has been performed, leading to unexpected info results.


	  * nx-test.tcl (run): Avoid use of [try], to render the test suite
	independent of the presence of 8.6 or tcllib's try. This may be
	reverted, once 8.5 support is dropped.

2018-06-01  Gustaf Neumann  <neumann@wu-wien.ac.at>


	add COMPILE_NSF_STUBS to compile flags under windows


	make stublib initialization more robust and provide meaningful error
	message in case of misconfigurations

2018-05-30  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Turn on some debugging


	Add missing tclkit url


	First attempt at Appveyor integration (mingw64 only)


	Trying to get env variables right


	Make build script more verbose


	Fix env variables in build descriptor


	Provide first attempt at Travis build array and build script

2018-05-29  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Simplify descriptor, for the time being


	Add an initial Travis CI descriptor


	Add a TODO


	Makefile.in: Polishing

2018-05-23  Gustaf Neumann  <neumann@wu-wien.ac.at>


	improve spelling


	use mongoc_iovec_t instead of struct iovec iov to improve
	cross-platform compatibility

2018-05-21  Gustaf Neumann  <neumann@wu-wien.ac.at>


	improve comments

2018-05-17  Gustaf Neumann  <neumann@wu-wien.ac.at>


	improve wording


	improve tcl idioms

2018-04-30  Gustaf Neumann  <neumann@wu-wien.ac.at>


	remove duplicated word

2018-04-25  Gustaf Neumann  <neumann@wu-wien.ac.at>


	fix duplicated words in code documentation


	fix double word in code documentation


	fix double worlds in code documentation

2018-04-15  Gustaf Neumann  <neumann@wu-wien.ac.at>


	add destroy_on_cleanup similar to OpenACS to ease lifetime management
	of volatile objects

2018-04-14  Gustaf Neumann  <neumann@wu-wien.ac.at>


	fixiing cut&paste error

2018-04-12  Gustaf Neumann  <neumann@wu-wien.ac.at>


	white space changes


	- added class names into serialization syntax (__class).
	  This change allows us to make better use of polymorphism
	  with (e.g. embedded) class structures. Previously, it was
	  necessary, that the called had to know the class of the
	  serialized object, now it is as well possible to use as
	  well specializations.
	- fix bug, where default value for properties lead to errors, when no
	  property options where given.


	update version numbers of mongo's c-driver (older versions stopped
	working on macOS High Sierra)


	fix typo

2018-04-05  Gustaf Neumann  <neumann@wu-wien.ac.at>


	fix typos


	fix typo

2018-03-28  Gustaf Neumann  <neumann@wu-wien.ac.at>


	regenerated documentation


	fix typos

2018-03-23  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Remove unneeded ALLOC_ON_STACK

2018-03-11  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (ListMethod): Provide a disassemble implementation based on
	::tcl::unsupported::disassemble. [::nsf::cmf::info disassemble] is
	generally available, the info ?object? method variants only in
	development mode. Implementation covers proc methods and ::nsf::procs.
	Along the way, prettify some code paths in ListMethod.

2018-03-08  Gustaf Neumann  <neumann@wu-wien.ac.at>


	add const declarations, whitespace changes

2018-03-06  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (Nsf_Init): Mark the namespace "::nsf::classes" and its
	children using "NS_SUPPRESS_COMPILATION". In 8.6+, this guards any
	commands in these auxiliary namespaces to be picked up by the bytecode
	compiler (if accessed in an unintended manner).


	  * nsf.c (ByteCompiled): Patch the proc command's namespace
	  unconditionally, for 8.5 and 8.6.

2018-03-03  Gustaf Neumann  <neumann@wu-wien.ac.at>


	avoid potentially dangerous call strcat(); remove unneeded assignment

2018-03-02  Gustaf Neumann  <neumann@wu-wien.ac.at>


	whitespace changes


	break overlong lines


	polish and comment the execNs change for Tcl 8.5


	Quickfix for Tcl 8.5 (needs still more investigation)

2018-02-25  Gustaf Neumann  <neumann@wu-wien.ac.at>


	add const declarations, reduce variable scopes, break longish lines

2018-02-21  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Fix call example


	Leave some to-dos


	  * dtrace/README: Updated instructions to cover SIP
	  deactivation, minor corrections. Added one more D script
	  (nsf_call-time.d).
	  * nsfDTrace.h: Re-generated.


	  * nsf.c (NsfConfigureCmd): Fix NSF_DTRACE=1 builds.


	  * gentclAPI.tcl, nsfAPI.decls (createconverter): Support for "-global
	1" flag that will cause the options array corresponding to an
	  enumeration to become available as a global, properly Nsf_* prefixed
	symbol. Used for NsfConfigureCmd and the corresponding DTrace probe,
	for now.

2018-02-19  Gustaf Neumann  <neumann@wu-wien.ac.at>


	add const and pure declarations

2018-02-19  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * source-doc-beautifier.tcl: Remove in-block range markers within test
	  bodies to prettify the ADOC output.

2018-02-19  Gustaf Neumann  <neumann@wu-wien.ac.at>


	adding const declarations, variable name cleanup


	more code cleanup:
	- reuduce number of returns before end of function
	- ease live for static checker
	- use more "const" declarations

2018-02-18  Gustaf Neumann  <neumann@wu-wien.ac.at>


	add comment and improve linebreak


	- prefer bool over int
	- reduce number of gotos
	- reduce number of returns before end of function
	- reduce variable scopes
	- add "const" declaration
	- white-space changes

2018-02-17  Gustaf Neumann  <neumann@wu-wien.ac.at>


	align prototypes with function definitions


	whitespace changes


	prefer bool over int, white space changes

2018-02-16  Gustaf Neumann  <neumann@wu-wien.ac.at>


	More code cleanup
	- make nsf compilable with tcl 8.7.2 and TCL_NO_DEPRECATED turned on
	- prefer bool over int
	- reduce nr of returns before end of function
	- line bread overlong function definitions


	update genstub path to recent versions of Tcl releases

2018-02-14  Gustaf Neumann  <neumann@wu-wien.ac.at>


	prefer boolean over int


	Reduce number of return statements beofre end of function


	cleanup: fix regression, prefer boolean over int, reduce number of
	returns before end of function


	ease life of colon cmd cachier


	Don't pass colon-prefixed method names from setter cmd to SetInstVar()
	to avoid potential shimmering.

2018-02-11  Gustaf Neumann  <neumann@wu-wien.ac.at>


	- add Tcl_Obj caching to cget argument
	- redued usage of goto statements
	- reduced size of largish function


	introduce macro ObjTypeStr for commonly used idiom


	prefer boolean over int


	coloncmd reform (part 4): perform validation for per-object cases,
	provide more detailed statistics (when compiled with COLON_CMD_STATS)

2018-02-10  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Reduce memory consumption for cache by caching just cmds in
	non-volatile Tcl_Objs. Add optional statistics, when COLON_CMD_STATS is
	defined.


	simplify expression


	remove unneeded variable


	add NsfDList functions similar to Tcl_DString, but operating on void*
	instead of char and use it for ColonCmdCache data


	Simplify handling of "returns" object. no need to require paramdefs,
	when just returnsObj is needed


	coloncmd reform (part 3): keep a per-interp list of colon command cache
	entries to avoid memory leaks in cases the objects are converted

2018-02-09  Gustaf Neumann  <neumann@wu-wien.ac.at>


	coloncmd reform (part 2): generalize code and apply for object specific
	commands as well


	coloncmd reform (part 1): improve dispatch of [:method ...] by up to 30%

2018-02-09  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * msgcat.test: Added a small collection of basic tests covering msgcat
	usage from within NSF/NX objects and classes. Tested successfully
	with mainline Tcl 8.6 and the TIP-490 branch "tip490-msgcat-oo-2".

2018-02-07  Gustaf Neumann  <neumann@wu-wien.ac.at>


	whitespace changes

2018-02-06  Gustaf Neumann  <neumann@wu-wien.ac.at>


	pass execNsPtr to byte-compiler (which might be different to
	procPtr->cmd->nsPtr)

2018-01-30  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (NextSearchAndInvoke): Relax the pre-conditions, objv can
	actually be NULL (see test cases). Besides, the assertion was not
	reflected by a corresponding nonnull constraints on the
	NextSearchAndInvoke prototype.

2018-01-27  Gustaf Neumann  <neumann@wu-wien.ac.at>


	More code cleanup:
	- use Boolean type when appropriate
	- add missing comments


	More code cleanup:
	- use Boolean type when appropriate
	- reduce implicit conversions


	More code cleanup:
	- use Boolean type when appropriate
	- reduce implicit conversions


	More code cleanup:
	- use Boolean type when appropriate


	 More code cleanup:
	- use Boolean type when appropriate


	 More code cleanup:
	 - use Boolean type when appropriate


	More code cleanup:
	- use Boolean type when appropriate


	More code cleanup:
	- move nonnull assertion to separate line
	- use Boolean type when appropriate

2018-01-26  Gustaf Neumann  <neumann@wu-wien.ac.at>


	remove unused arguments


	Use Boolean type on more occasions Fix incorrect comments Fix mixture
	of Tcl result code and 0/1 integers


	Use Boolean type on more occasions


	Boolean type introduction
	- Define Boolean type in a cross compiler / cross platform compatible
	  way (similar to NaviServer)
	- Include type in nsfInt (internal usage) but capable for pushing it to
	  public usage later
	- Use Boolean type for the most obvious cases

2018-01-25  Gustaf Neumann  <neumann@wu-wien.ac.at>


	improve type cleanness for clang 6.0


	Align prototypes with function definitions and minor code cleanup
	- reduce number of return statements before end of function
	- reduce variable scopes


	write separate commands in different lines (esp. for control structures)


	align naming of variables in function prototypes and definitions


	mark unused arguments as UNUSED

2018-01-24  Gustaf Neumann  <neumann@wu-wien.ac.at>


	make argument names more regular improve alignment of prototype names
	with function definitions


	fix typos


	Improve alignment of prototypes with function definitions improve
	regularity of variable names


	prefer meaningful name in function prototypes align names in .decls
	file with prototypes in the .c and .h files

2018-01-22  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Remove unused arguments


	remove unused argument


	Remove unused argument

2018-01-20  Gustaf Neumann  <neumann@wu-wien.ac.at>


	minor cleanup (adjust comments, reduce variable scope)

2018-01-19  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	nx-test.tcl (exit): Fix the return trampoline for [exit] during test
	runs

2018-01-19  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Fix overseen error in regression test

2018-01-19  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Fix another 86/85 glitch


	Make test suite working under 8.5, again.

2018-01-18  Gustaf Neumann  <neumann@wu-wien.ac.at>


	extend regression test


	execution namespace reform:
	- add execution namespace to proc context instead of
	  altering the namespace of the command
	- this fixes strange behavior of "info commands ::o::p",
	  which might have returned "::p"
	- provide compatibility with Tcl 8.7a2
	- extend regression test

2018-01-16  Gustaf Neumann  <neumann@wu-wien.ac.at>


	get the "int" type from the Tcl_Obj directly, which will continue to
	work in Tcl 9.0


	Provide compatibility with TIP #484


	deactivate solution to the tcl87a2 problem for now, since we need a
	different solution with this for recursive aliases


	improve woring in comment


	remove shadowing variable


	reduce implicit conversions


	transitional fix for tcl87a2 problem

2018-01-15  Gustaf Neumann  <neumann@wu-wien.ac.at>


	substdefault code cleanup


	extend regression test, make assumptions explicit

2018-01-14  Gustaf Neumann  <neumann@wu-wien.ac.at>


	- remove stripping of substdefault from properties


	- add handling of extended substdefault options to
	  per-object variables
	- improve default value checking for slot-less variables
	- transfor associated array into a dict
	- extend regression tests

2018-01-13  Gustaf Neumann  <neumann@wu-wien.ac.at>


	delete pre-existing commands explicitly

2018-01-12  Gustaf Neumann  <neumann@wu-wien.ac.at>


	- provide fully qualified names to Tcl_ProcObjCmd() to avoid potential
	  problems in newer Tcl versions

2018-01-05  Gustaf Neumann  <neumann@wu-wien.ac.at>


	- make it possible to use error code for cmd result
	  comparison
	- add some NSF specific error code


	provide error hint for "invalid value constraints" errors


	add error message, when present


	Reduce number of strlen() operations


	whitespace changes


	Fold "substdefault" and "substdefaultoptions" into a single parameter
	option "substdefault"

2018-01-04  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (ParamOptionParse): Fixed typo in error msg.


	  * nsf.c (NSCheckNamespace): Simplify resource management of a DString.


	  * nsf.c (ParamSetFromAny2): Fix inline comment.


	  * nsf.c (ParamOptionParse, ParamDefinitionParse, ParamDefsParse),
	parameters.test: Small "type=" converterArg reform. Provided
	additional parameter in param-parser machinery, to communicate a
	(namespace) qualifier into ParamOptionParse. This way, the unqualified
	  type=* values are now expanded to qualified names (definition scope):
	  method parameters, nsf::is, nsf::parseargs, setter methods. Type=* in
	object parameters are currently expanded at the slot level, could also
	be added. New tests were added, existing ones adjusted to reflect the
	new behavior.

2018-01-03  Gustaf Neumann  <neumann@wu-wien.ac.at>


	- new command "tnsf::definitionnamespace"
	- experiment with command in regression test


	fix typo in comment


	- implement substdefaultoptions (for now, just providing
	  the bitmask)
	- add substdefault.test
	- rename static function ParamParse() to
	  ParamDefinitionParse()
	- break overlong lines

2018-01-02  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Silence gcc8

2018-01-01  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Use snprintf() instead of sprintf() to protect better against potential
	buffer overflows


	Remove old-style CompiledColonLocalsLookup and use colonLocalVarCache
	variant instead.

2017-12-31  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Fix leftover from the time, when we could call accessor methods without
	"get"

2017-12-31  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nx.tcl, nx-mongo.tcl (parseParamSpec): Render target parameter
	non-positional, so that MetaSlot.parseParamSpec() becomes backward
	compatible. Adjusted callsites of parseParamSpec.

2017-12-30  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Add missing argument to parseParameterSpec


	Improve portability (restict length of literal strings <= 4095)
	Address literal limitation in ISO C99, that requires compilers to support
	only strings up to 4095 bytes. As a consequence, we have to split
	the compiled-in literal commands into two parts.


	deactivate two problematic tests for the time being to allow regression
	test to run

2017-12-29  Gustaf Neumann  <neumann@wu-wien.ac.at>


	fix typos, updaty copyright years according to commits


	prefer boolean test, remove commented-out code

2017-12-24  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Fix typos

2017-12-21  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (ParamParse): Fix crash when ParamParse is called with an
	empty-string argument, e.g. nsf::parameter::info type "". Tests
	provided.


	Add another to-do item

2017-12-20  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Add to-do items


	  * nsf.c (NsfParseArgsCmd): Fix another edge case (empty spec and/or
	  empty argv), added more tests. See also TODO.


	  * nsf.c (NsfParseArgsCmd): Fix nsf::parseargs for the case of Tcl-only
	params, otherwise, it crashes due to an uninitialized params
	structure. Added some tests.

2017-12-19  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (ParamDefsParse): Fix small typo "allowedOptinons" ->
	  "allowedOptions"

2017-12-01  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nx.tcl (Class.variable): Clean up a left-over.


	  * nx.tcl (Class.variable()): Re-order the substdefault-handling block
	  to render it more meaningful.


	Add to-do item


	  * nx.tcl (substdefault): Unify and harden substdefault handling. Both,
	per-class and per-object substdefault should now behave similarly in
	absence of a pair of evaluation brackets. Also, an attempt is made to
	capture ill-formed input to subst earlier ([info complete]). An actual
	substdefault reform, however, must tackle the [subst] calls
	(-novariables?) and make the calls more robust (at the script and C
	level; [apply]-like?). Added some tests for documentation.

2017-11-30  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	parameters.test: Simplify test case slightly.


	  * nx.tcl (MetaSlot.parseParameterSpec): Refine handling of the type
	converter to expand unqualified names to the "nearer" namespace
	(i.e., namespace of the slot-owning object) rather than "". Along the
	  way, intercept invalid type=* values earlier (empty string, "::").
	Added some tests.


	  * nsfDebug.c: Remove duplicate array entry.


	  * nsfDebug.c (NsfInitPkgConfig): Provide NSF configuration data via the
	  TIP 59 interface (::nsf::pkgconfig).

2017-11-18  Gustaf Neumann  <neumann@wu-wien.ac.at>


	- silence static checker

2017-11-16  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Improve cleanness of compilation with Tcl 8.5


	Remove unneeded function


	add const declaration

2017-11-15  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Don't allow bytearrays as name of non-pos args
	We try to address the problem, that the argument parser might add
	string reps to Tcl_Objs
	without string reps. This is in particular nasty for pure byte arrays
	in Tcl 8.6, which
	are defined as having no string. We do not want to change purtiy just
	by passing
	such values in arguments,

2017-11-09  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Adjust print format to recent changes

2017-11-08  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	nsf.c, nsfInt.h, nsfObj.c: Make epoch counters unsigned ints, so
	doubling the number of possible epochs.


	  * nsf.c: Unify cmd flags cast (unsigned long -> unsigned int)


	  * nsf.c (ObjectCmdMethodDispatch): Simplify and cleanup condition
	  expressions.


	nsf.c (ObjectCmdMethodDispatch), submethods.test: Enable private
	checking on ensembles, added test cases to capture the intended
	behavior behind -local and/or private for ensemble methods.

2017-10-24  Gustaf Neumann  <neumann@wu-wien.ac.at>


	move GetObj() after tests of non-null asserts

2017-10-20  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Fix collateral damage of protection changes


	Move prototypes to begin of file


	Cleanup: Don't shadow variable names.


	Minor cleanup: remove commented code, add missing nonnull-assert,
	shorten overlong lines

2017-10-19  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (NsfMethodForwardCmd): Provide correct scoping condition when
	requesting a method handle for a submethod forwarder. Added basic
	tests.

2017-10-13  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c, nsfStack.c: Bump copyright years.


	  * nsf.c (ObjectCmdMethodDispatch), protected.test: For
	  ensemble (submethod) dispatches, since ever, call
	  protection had not been enforced at all. This commit
	  enables call protection (protected) for ensembles and
	  adds basic tests.
	  * nsfStack.c (GetSelfObj): To allow one to resolve the self reference
	at arbitrary callstack levels, separate GetSelfObj into GetSelfObj
	(macro) for the topmost self and GetSelfObj2.

2017-10-06  Gustaf Neumann  <neumann@wu-wien.ac.at>


	fix typo

2017-10-02  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (NsfCCreateMethod): During a shutdown, in a filter setting,
	objv is not necessarily populated. Prior to this fix, the following
	crashes on exit for "ObjStr(objv[1])":
	 nx::Class create Klass
	 Klass public object method expand args {
	 return [[self] new {*}$args]
	 }
	 Klass object filters add expand
	 Along the way, rendered the print-out more informative.

2017-09-19  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Add likely/unlikely for NSF_DURING_DELETE checks


	Code cleanup
	- remove calls to deprecated function Tcl_DStringTrunc
	- prefer boolean expressions to avoid signed conversions
	- add default statement to switch to ease life of static checkers

2017-09-06  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Add Valgrind/callgrind support


	Improve performance of ObjectSystemsCheckSystemMethod() by over 20%

2017-09-04  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Optimization for aliases
	Optimized AliasAdd() and AliasGet() by avoiding the usage of
	Tcl_SetVar2Ex() and Tcl_GetVar2Ex(). This change improves the
	performance of AliasAdd() by ~20% and AliasGet() by 10%.
	Strangely, Tcl does not provide an interface to the
	Tcl_Obj-based TclObjUnsetVar2(), which is used internally
	by Tcl_UnsetVar2()), such we could also avoid the latter.


	minor cleanup and optimizations


	Avoid call of strncmp() in common cases

2017-08-31  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Various Performance Improvements:
	- Add cache for compiled locals starting with a colon to
	  avoid repeated linear searches
	- Reduce number of string comparisons in ParamOptionParse()
	- Factor out ProcContextRequire()
	- Extend regression test

2017-08-21  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Minor cleanup


	Remove first argument of MethodDispatch, which is apparently not needed


	Avoid mixed declarations and code


	Added experimental definition of NSF_CONSTANT_COMPILED_LOCAL_LOOKUP

2017-08-20  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (FindNextMethod): Provide revised, streamlined implementation
	of FindSelfNext as FindNextMethod. FindSelfNext is maintained, but
	unused for the time being.

2017-08-20  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Cleanup and Optimization
	- align code with documentation
	- remove dead code
	- minor optimization


	White space changes


	Reduce number of returns before end of function


	Whitespace changes, typos


	more macro definition after GNU definitions


	Remove redundant definition


	Remove dead assignment


	Add more tidy and checking compiler flags

2017-08-20  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (NsfCurrentCmd), nsfStack.c (CallStackNextFrameOfType): Render
	[current isnextcall] aware of ensembles. Extended submethods.test to
	cover [current isnextcall] within ensembles.

2017-08-18  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	nsf.c (FindSelfNext): Render [current nextmethod] aware of ensembles.
	Added basic tests.

2017-08-15  Gustaf Neumann  <neumann@wu-wien.ac.at>


	White-space changes

2017-08-09  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	submethods.test: Clean up ensembles on top-level objects.

2017-08-09  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	nx-test.tcl (nx::test case): As (ensemble) methods are currently not
	covered by the auto-cleanup feature of "nx::test case", I took care of
	not cleaning up the per-class ensemble slots while the alias is still
	available. This led to dangling aliases in cases such as:
	package req nx::test
	nx::Class create ::A
	nx::test case tmp {
	::A public method "oo ps" {} {;}; # creates ::A::slot::__oo plus alias
	pointing to it.
	}
	A create a oo ps; # "target "::A::slot::__oo" of alias oo apparently disappeared"
	Along the way, modernized nx::test case a little (apply).

2017-08-09  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (GetNextArguments): Ensemble method names via the colon
	resolver were not cleansed for the colon, leading to a broken method
	lookup chain. Fix for SF Ticket #1. Added basic tests.

2017-08-07  Gustaf Neumann  <neumann@wu-wien.ac.at>


	fix: remove failing assertion, Tcl handles leading colons in proc names

2017-06-18  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c, forward.test (ForwardArg): Extend to recognize alternative
	  element separators in list string reps (NsfHasTclSpace).


	  * nsf.c, nsf-cmd.test (ObjectFindMethod): Extend to recognize all
	  element separator chars (NsfHasTclSpace).


	  * nsf.c, parameters.test (NsfMethodSetterCmd): Make list detection
	  aware of all list separator chars (NsfHasTclSpace).


	  * nsf.c, parameters.test (NsfOResidualargsMethod): Extend XOTcl's
	list-notation support to recognize all Tcl list separators
	(NsfHasTclSpace).

2017-06-14  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c, nsfInt.h: Start housekeeping work on Tcl command/proc names
	vs. NSF method names to avoid conflicts between ensemle methods and
	e.g. whitespace-containing command names. Added helper macro
	NsfHasTclSpace and some first tests. To be continued.

2017-06-03  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Reduce variable scope

2017-05-31  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (NsfMethodPropertyCmd,NsfForwardPropertyCmd): Remove extra
	  whitespace from error message.

2017-05-29  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * methods.test: Add basic tests on composite names under the default
	  unknown handler.


	  * nsf.c (DispatchUnknownMethod): Sanitize messages emitted by default
	unknown handler. Unless in the context of an ensemble object
	(NSF_KEEP_CALLER_SELF, NSF_PER_OBJECT_DISPATCH), make sure that the
	entire method name, incl. multi-word names, are fully reported.

2017-05-28  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Simplify code


	- Don't assume that CallStackGetTopFrame0() reurns != NULL
	- reduce variable scopes
	- reduce number of returns before function end

2017-04-29  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Make sure, paramPtr is always initialized

2017-04-22  Gustaf Neumann  <neumann@wu-wien.ac.at>


	- Use more straightforward Tcl idiom to access first
	  character of a string
	- Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL)


	Use uniform spelling of "Tcl"


	Whitespace change: strip trailing spaces


	- Use uniform spelling of "Tcl"
	- Fix more spelling errors


	Use uniform spelling of "Tcl"

2017-04-21  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Improve spelling


	- provide means to debug invalid coding in Tcl_Objs

2017-03-03  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Fix wording in TODO


	Leave some TODOs to think about


	  * nx.tcl (VariableSlot): Fix value=delete to actually accept and
	implement "-nocomplain". Added tests (missing so far entirely) and
	updated the man pages accordingly.

2017-03-03  Gustaf Neumann  <neumann@wu-wien.ac.at>


	extend tutorial description

2017-03-02  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nx.tcl, parameters.test (defineIncrementalOperations): Make sure
	value=add and value=delete actually run value checkers and, in case
	of "convert", pick up the conversion result. Added basic test.

2017-03-01  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nsf.c (ArgumentCheck): Set parentheses correctly.


	  * nx.tcl (makeIncrementalOperations, defineIncrementalOperations):
	  Avoid repeated slot= entries in options. Fix a typo.


	  * nsf.c (ArgumentCheck): Avoid double dispatching to value checkers
	(built-in and type=*) for "slotset" parameters. Previously, configure
	and then the value=set (value=add) method triggered one dispatch each.
	Now, the configure pass skips the check and shifts sole responsibility
	on the value=set/ value=add methods. Added basic test cases to
	parameters.test to capture the intended call semantics.

2017-03-01  Gustaf Neumann  <neumann@wu-wien.ac.at>


	add properties tutorial to test set


	Add hands-on tutorial for properties


	- extend test case (since people use this as example)

2017-02-28  Gustaf Neumann  <neumann@wu-wien.ac.at>


	Fix potential bug in forwarder code (it was possible, that a substituted
	%proc was freed too early)

2017-02-20  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	Regenerated migration and tutorial, to account for recently fixed typos
	and fix markup generation


	  * Makefile.in: Unify ASCIIDOC exec configuration.

2017-02-20  Gustaf Neumann  <neumann@wu-wien.ac.at>


	adjust programming style


	Add test for regular expression matching


	Make sure to initialize nsf object fetched from mongo

2017-02-14  Gustaf Neumann  <neumann@wu-wien.ac.at>


	- Use more modern returnstate handling based on options
	- extend regression test

2017-02-14  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * next-migration.txt: Address some typos (thx to Guenter Ernst for
	  reporting).


	  * contains.test: Add two test cases to document the recent fix on error
	  and errorcode propagation in contains.

2017-02-14  Gustaf Neumann  <neumann@wu-wien.ac.at>


	fix bug in method "contains": Propergate errorCode on catch

2017-01-18  Gustaf Neumann  <neumann@wu-wien.ac.at>


	mongodb interface
	- add regular expression queries to conditions in NX

2017-01-18  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * makefile.vc: Change another directory location to respect the
	  INSTALLDIR setting

2017-01-18  Gustaf Neumann  <neumann@wu-wien.ac.at>


	- Copy changed structure


	- Don't't use ConvertToNothing but NULL in the terminating record, since
	  the former is not available for extensions

2017-01-18  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * makefile.vc: Add missing header fils to install target and use
	  STUBDIR to properly locate the generated API headers.

2017-01-14  Gustaf Neumann  <neumann@wu-wien.ac.at>


	- include all enum values in case statements


	- use preprocessor variables more consistently


	- remove old-style function definitions


	- remove implicit conversion to 'unsigned int' from 'int' m


	- ISO C90 forbids mixed declarations and code


	- don't shadow local variable


	Reduce memory consumption via better aligning (esp on 64bit machines)

2017-01-13  Gustaf Neumann  <neumann@wu-wien.ac.at>


	- don't shadow variables


	modify STRING_NEW such that
	- it is able to produce "const char *"
	- such that it uses ckalloc


	- provide clean compile for compilations with
	  "-Wwrite-strings"
	- add const declarations


	- removed unneeded arguments
	- mark unused arguments as UNUSED

2017-01-13  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * nx-pp.tcl (State): Add "substdefault" to two property specs to fix
	  markup generation for various token types (variables etc.).

2017-01-11  Stefan Sobernig  <stefan.sobernig@wu.ac.at>


	  * source-doc-beautifier.tcl: Allow to omit the built-in title line, to
	allow for custom doc and title preambles in example scripts
	("-notile" flag).

2017-01-06  Gustaf Neumann  <neumann@wu-wien.ac.at>


	- added a new configure option --enable-development=test (in addition
	to --enable-development or --disable-development) for activating more
	expensive runtime tests. --enable-development alone activates just
	assertion checking
