nsf

Clone Tools
  • last updated 8 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- configure.in: removed --with-tclinclude option, since it appears to be included in tcl.m4 (since a while). Many thanks to Victor Guerra for noticing it.

- disallow object parameter of type "switch" to avoid possible confusion between (a) providing a value for the o.p., (b) calling it as a setter, and (c) calling it as a getter. For providing a value, no arg is used for switch. For calling a setter, it is necessary to provide a value even for a switch. - disallow type "switch" in setter definiton (use boolean instead) - disallow type "switch" for positional arguments (use boolean instead) - extended regression test

- improve documentation

- Make sure that DispatchDestroyMethod() calls as well protected destructors - New function NSCheckNamespace() as replacement for NSCheckForParent() - pass parentNsPtr around instead of recomputing it in NSCheckForParent() - removed unneeded argument from NSGetFreshNamespace() - switched to dstring operations in NameInNamespaceObj() (seems slightly faster) - factored out NSRequireParentObject() - by the measures above, we obtained some speed improvements - moved some more debug output to be controlled by the debuglevel - extended regression test with testcases for creation of parent objects via method "__unknown"

- provide error message, when provided setter name starts with a colon

- New function NsfNamespaceInit() to initialize pre-existing namespaces in PrimitiveOInit() and in RequireObjNamespace()

Squashed commit of the following:

commit 370f47d26099dd8cda4125de67048461edb797a9

Author: ssoberni <stefan.sobernig@wu-wien.ac.at>

Date: Thu Nov 4 10:56:11 2010 +0100

Due to recent changes in InterpColonVarResolver() to handle the

slow-path execution the byte-compiled [variable], an unwanted

interaction between ::nsf::setter, *certain* per-object namespaces,

and the ColonCmd()-based invocation of setter methods became

visible. In short: Given a pre-existing Tcl namespace and the

colon-prefixed call specification to a setter method,

InterpColonVarResolver() handles the var resolution request issued by

the setter method (or SetInstVar(), more precisely). In a

colon-prefixed call, the Tcl_Obj carrying the setter method name and

used to lookup the object variable contains the ":". At the same time,

the per-object namespace causes the TCL_NAMESPACE_ONLY flag to be set

which causes InterpColonVarResolver() to pass on the request. In this

setting, we end up with colon-prefixed object variables! See

tests/parameter.test for an explanatory test case. For the time being,

I fixed this by preserving and using the original, colon-free Tcl_Obj

indicating the variable name in the client data structure of the

settercmd.

- show "unwind unstacked entry" message appear only when debug level>0 - removed fixed TODO entries

- fix a bug, where "o configure" (without arguments) resetted initialied values to the defaults.

- added "nosetter" automatically, when attribute "<name>:method" is used

- improving error messages from argument parser - test "namespace current" and "self" in "contains" and "slots" regression test

    • -0
    • +14
    /library/xotcl/tests/slottest.xotcl
- fix escaped duplicate line

- activated SKIP_LAMBDA in nsfCallstack. As a consequence, we disallow resolving self/my ... from tcl-proc frames (use uplevel if necessary, avoid "namespace eval")

- fix wrong "self" inside contains

- added new contains definition based on "apply" instead of "namespace eval". Main intention is to replace SKIP_LEVELS by SKIP_LAMBDA - added functionality to use ":attribute contains:method,nosetter" - added regression test for contains and attributes of type method

    • -0
    • +52
    /tests/contains.test
- added an experimental code for setting parent namespace path as default for child-objects. At the time when an object namespace is created, the namespace path of the parent object is copied to the child as default value.

- gentclApi.tcl: added optimizer rule for single argument of type tclobj - improved speed of CompiledLocalsLookup slightly

- impoved NsColonVarResolver, made some assumptions explicit

- fixed scoping issue, when "-volatile" was used for object creation - added regression test for interaction between filters and function resolver (and volatile) - reactivated new volatile test in destroy.test - undone temporary fixes for volatile in serializer and nx.tcl

- temporary fix in serializer

Merge branch '2.0.0-develop' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/xotcl into 2.0.0-develop

- fixed langauge hooks for emacs

- updated TODO

- added deavtivated test for volatile via flag (unsetteled issue)

- output object frame to ease interpretation of [info frame]

- new function MethodNameString() to obtain name without colon prefix from tcl_obj - fix bad interaction between filters and cmd name resolvers - output object frame to ease interpretation of [info frame]

Adding the -force flag to [namespace import ::xotcl::*] to guard against "can't import command ... already existings" error exception (observed under OpenACS package upgrading)

- changed CallStackGetActiveProcFrame() to return also CMETHD frames This allows to execute :volatile in a initcmd and to delete the object at its end. As a consequence, code like [CopyHandler new -volatile] copy [::nsf::self] $newName has to be changed to CopyHandler new { :copy [:uplevel ::nsf::self] [uplevel set newName] :destroy } - renamed CallStackUseActiveFrames() to CallStackUseActiveFrame() and ctx->framesSaved to ctx->frameSaved to reflect implementation

- removed debugging from CscFinish when compiled without DEVELOPMENT

- remved debugging from NsfCleanupObject when compiled without DEVELOPMENT