stefan sobernig <> in nsf

* 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.

* 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.

Fix call example

Leave some to-dos

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

    • -0
    • +130
Merge branch 'master' of ssh://

* 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.

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

    • -1
    • +10
* 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".

    • -0
    • +102
* 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.

Merge branch 'master' of ssh://

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

Fix another 86/85 glitch

Make test suite working under 8.5, again.

    • -0
    • +173
* 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 behaviour.

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

* 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

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.

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

* 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