nsf.c

Clone Tools
  • last updated 16 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- Adding some tests on the interactions between our var resolvers and link-creating commands: [variable], [upvar], [global], ... - Amended the in-code documentation for InterpColonVarResolver(), InterpCompiledColonVarResolver() and CompiledColonVarFetch(). - Found another AVOID_RESOLVERS victim: [namespace which -variable /varName/]

  1. … 1 more file in changeset.
- removed bug-alert from nx.tcl (wrong false-positives for compiled locals in slots) - added a few small optimization. nsf appears to run on the shootout benchmark the same speed like a year ago (which much less functionality)

  1. … 5 more files in changeset.
- implemented exported command ::nsf::self as fast conveniance replacement for "::nsf::current object".

  1. … 8 more files in changeset.
- don't relay on gcc extensions

- make sure, standard pre-processors can process this file

- Providing a fix (and some analysis documentation) for the prefixed-(":")-variable resolution, making the entire mechanism more robust under situations of var resolvers for compiled and non-compiled script execution interacting. - Added a first sample test (which documents the motivating issue observed for AOLserver vs. NaviServer) - Further testing and documenting are pending

  1. … 1 more file in changeset.
- make sure not to return CompiledLocal vars from InterpColonVarResolver() when TCL_NAMESPACE_ONLY is requested. - delegate always from InterpColonVarResolver() to other resolvers, when TCL_NAMESPACE_ONLY is requested.

  1. … 2 more files in changeset.
- follow current Tcl vonvention for patchlevel var: - changed name of ::nsf::patchlevel to ::nsf::patchLevel - changed content ::nsf::patchLevel from eg .0 to full number including release details

- fixed bug in ::variable with colon-prefixed name

(shadowCommands does not help, see above)

- removed traces of Nsf_VariableObjCmd()

- extended regression test

  1. … 7 more files in changeset.
- made handling of unstacked entries optional by defining macro CHECK_ACTIVATION_COUNTS) - added macro NSF_DEVELOPMENT for toplevel handling if NDEBUG and CHECK_ACTIVATION_COUNTS - cleanup of method-modifiers.tcl - updated next migration guide

  1. … 6 more files in changeset.
- added handling of unstacked csc entries (removed all DEBUG warnings).

  1. … 10 more files in changeset.
- copied decls for objectMethod and classMethod as comments to nsf.c, fixed order - documented a few functions

  1. … 3 more files in changeset.
- use "nsf::configure debug" for value 1: compain about protected value >1: provide load messages for nx and xotcl - unset unneeded variables in ::nx namespace

  1. … 3 more files in changeset.
- fix requiredness of several info methods - added "nsf::configure debug ?level?"

  1. … 5 more files in changeset.
- renamed some arguments of tcl interface to increase consistency - make requiredness explicit for nsf::cmds - introduce ::nsf::parametersyntax to provide syntax for potentially missing definitions - provided ::nsf::parametersyntax for 3 ::nsf commands and 7 nx methods (from relationslots)

  1. … 6 more files in changeset.
- replaced "-objscope" and "-nonleaf" by "-frame object|method|default" for nsf::alias and nsf::default - added functionality for "-frame method" to nsf::dispatch - made the order of argument in ::nsf::alias and method "alias" the same (always first the method, then "-frame ...") - extened regression test

  1. … 15 more files in changeset.
- added functionality to show enumerated values in "info parametersyntax"

  1. … 5 more files in changeset.
- removed CheckAllInstances()

- fixed aliasing warning for gcc 4.4.4

  1. … 2 more files in changeset.
- iteration over TODO file - removed obsolete entries from generic/nsf.decls und generic/nsfInt.decls - removed NSF_CMD_NOT_FOUND

  1. … 6 more files in changeset.
- make pickier compiler happy

- Implemented built-in-converter for "baseclass" and "metaclass". Change in performance for this call. >8 times faster before: parameters/parametercheck.007: 19.49 mms, ::nsf::is baseclass C after: parameters/parametercheck.007: 2.32 mms, ::nsf::is baseclass C - remove scripted definition of "baseclass" and "metaclass"

  1. … 3 more files in changeset.
- call scripted converters without checking protection - removed defaultMethodCallProtection from tests/parameters.tcl

  1. … 3 more files in changeset.
- changed option -expand in "info methods" and "info lookup methods" into "-path" to associate with the method path - changed method property name from "protected" to "call-protected" - changed nx::defaultMethodProtection to nx::defaultMethodCallProtection - nx::defaultAttributeProtection is used for scripted methods, forwarders and aliases - added nx::defaultAttributeProtection, used for setter and attributes

  1. … 17 more files in changeset.
- changed option -expand in "info methods" and "info lookup methods" into "-path" to associate with the method path

  1. … 6 more files in changeset.
- cleanup of __resolve_method_path - change TclShowStack into NsfShowStack() to avoid possible interference with the Tcl* namespace - made the following function static to avoid pollution of the global link namespace: CompiledColonVarFree(), GetRegObject(), ParamGetType()

  1. … 4 more files in changeset.
- Methodpaths can be used now in the definition of "method", "alias" and "forward." We do not support it for "setter" and "attribute", since these require a parameter spec, which does not have clear semantics for a method path. - scripted definition of nx::Object.forward and nx::Class.forward

  1. … 3 more files in changeset.
- added syntax "?arg ...?" in parametsyntax output for "args" - removed "info forward" from nx::Object and nx::Class (can be replaced by "info methods" and "info method")

  1. … 6 more files in changeset.
- allow %method in forwarder. - defined unknown methods as call-protected - make __default_method_protection protected

  1. … 4 more files in changeset.
- push stack frame before calling the defaultcmd of an ensemble object to make implementation more simple. - simplified EnsembleObject.defaultcmd and EnsembleObject.unknown significantly, scripted support methods are removed. - extended regression test

  1. … 3 more files in changeset.
- nsf::current: new option "methodpath", returns the full name of an ensemble method starting from the ensemble root. - documented functions in nfsStack.c - removed obsolete CallStackGetFrame(), replaced by CallStackGetTopFrame()

  1. … 5 more files in changeset.