nsf

Clone Tools
  • last updated 6 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- nsf.c: added explicit names for refcounting for "paramDefsObj"

- nsf.c: * refined refcounting debugging * fixed various refcounting bugs, especially in error cases. * added explicit INCR_REF_COUNTs on Tcl_Objs with 0-refCount to ease debugging

- reduce debugging in the commited version

- nsf.c: * improved INCR_REF_COUNT/DECR_REF_COUNT for easier tracking of potential refcount errors * added macros DECR_REF_COUNT2() and INCR_REF_COUNT2() for easing the association of refcounts to locations in the code by providing names for refcounts. * fixed a refcount bug for valueObjs in non-NRE-enabled versions in the argument vector of scripted methods (found via INCR_REF_COUNT2/DECR_REF_COUNT2)

- fix a few typos

- nsf.c: * fixing compliation with NSF_MEM_COUNT * New function DeleteProcsAndVars() to trigger deletion of ParamDefs (fixes a small mmemory leak); * improved comments

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

Conflicts:

TODO

- nsf.c: * added flag "-array" to nsf::var::set such we have now "::nsf::var::set ?-array? object varName ?value?" With "-array", nsf::var::set behaves like "array get" or "array set" (on instance variables) * use "::nsf::var::set -array" in serializer symmetrically to scalar case * extended regression test

Updated TODO

- generic/nsfStack.c / CallStackPopAll(): When cleaning up the unstacked CSC entries, the borderline case of just 1 CSC entry led to a dangling pointer (and so a crash). This was caused by the unhandled side effect of CscListRemove() (or, rather, NsfClassListUnlink()) which updates the interp's cscList pointer in the 1-list-entry scenario. By using a copy of this pointer in the cleanup loop, this scoped pointer became dangling. To reproduce the issue (prior to this commit), run for example:

Object create o { exit -1 }

I extended the CscListRemove() interface for a conditional out

parameter, to be used for tracking changes to the interp's cscList

pointer.

- generic/nsf.c: Modified the occurrences of CscListRemove() to

reflect its extended interface.

- generic/nsfStack.c: Extended the documentation snippets of the

CscList* operations accordingly.

- generic/nsf.c: Fixed some typos ...

- generic/nsf.c / NextSearchAndInvoke(): Prior to this commit, next calls from within submethod leaves resulted in the interp's unknown flag to be set. While for dispatches without filter indirection this remains hidden and unnoticed, registered filters triggered an unwanted unknown dispatch in such scenarios. Consequently, such leaf next's in submethods behaved differently from the method equivalents. The patch identifies such leaf-next dispatches by watching out for a characteristic callstack structure. - tests/submethods.test: Add a characteristic test for the above patch. - tests/disposition.test: Some cleanup ...

- Further testing on [current calledmethod|class] and submethods; added to-dos

- nx.tcl: * added support for "variable" on the class-level * added flag "noconfig" to object parameter options * parameters with "noconfig" are omitted in "info parameter syntax" and "info parameter list" * used switches for all configurable boolean options for "variable" and "attribute" * regularized the interface of "variable" and "attribute" * extended regression test

- nsf.c: improve performance (branch prediction) by using likely/unlikely macros for gcc

- nx.tcl: added switch "incremental" to "variable" and "attribute" - added regression test

- library/mongodb: * updated to current interface in git HEAD

- make sure to place declarations only at the begin of a block - minor code cleanup

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

- added tests for object specific "variable" and "attribute + application defined value checker

- generic/nsf.c: Fixed [current callingmethod] for submethods (i.e., reporting submethods as calling methods, including their methodpath). Added tests covering the fix (see tests/submethods.test). - generic/nsfStack.c (CallStackMethodPath): Re-arranged the traversal slightly, to escape non-ensemble frames (eval CFRAMEs) as parts of the method path. Added test (see tests/submethods.test). - library/nx/nx.tcl: Corrected the impl of Ensemble->defaultmethod() (e.g., used self instead of current) - tests/disposition.test: Fixed test cases turned out to be false positives. Before the fixes, [current methodpath] gave non-empty results for simple object aliases.

- provide error message, when method variable is a noop (e.g. no value provided and no accessor is wanted)

- added support for "class variable" - added tests for "variable" + multiplicity and "class variable"

- nx::Attribute: changed method 'checkInstVar' to 'setCheckedInstVar' - set only fresh variables via per-object method "variable" and "attribute" - added flag -concomplain to per-object method "variable" and "attribute" - extended regression test

- add reference value in tests, update TODO

- nx: factor out method createFromParameterSpec - method variable: * check default value * added shortcut, when no slot object is needed * extended regression test

- generalized "nsf::object::initialized" to nsf::object::property objectName initialized|class|rootmetaclass|rootclass|slotcontainer

- regularized more nsf::* names: renamed "nsf::createobjectsystem" => "nsf::objectsystem::create" renamed "nsf::unknown" => "nsf::object::unknown" renamed "nsf::dispatch" => "nsf::object::dispatch"

    • -11
    • +11
    /library/xotcl/library/xotcl2.tcl
  1. … 3 more files in changeset.
- better error message

- fix typo