nsf

Clone Tools
  • last updated 18 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- 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

- library/mongodb: * added new index options "-sparse" and "-background"

- library/mongodb: * updated to current interface in git HEAD * added flag timeout to mongo::connect

- first draft of separation of attribute -> variable + accessor

- make sure to always initialize variables

- reamed ObjectParameterSlot attribute from nosetter => accessor (positive formulation)

- tests/parameters.test: Tracked down the relevant Tcl issue (fossil check-in 769801ace1) resulting in the bignum double-rounding problem, observed earlier. The work-around is setting the tcl precision level to 17. I made it applying conditionally, depending on the Tcl patch level as the work-around is not needed anymore fore 8.5.10+. - generic/nsf.c: Correct usage of TclDumpMemoryInfo() for changes in 8.5.10, introduced by fossil check-in 4a9ba46064. Memdebug builts (--enable-symbols=mem) therefore require a recent Tcl version (8.5.10+).

- reduce verbosity - redoce scope of variables

- adding spaces after comma in argument lists

- fix typos in string "unknown" (unknwon, unkown)

- provide backward compatibility for unknwon method (when method contains spaces). - some minor cleanup - extended regression test

- TODO: Added an entry concerning callstack introspection (as discussed today) - generic/nsf.c: Some minor renaming in NsfOConfigureMethod(); made sure that intermediate frames resulting from forward-parameter dispatches are equally marked INACTIVE. - tests/disposition.test: Added tests covering uplevel/upvar support under parameter/disposition dispatches (i.e., uplevel and upvar calls from within parameter-dispatched methods); the tests also cover XOTcl's residualargs dispatches.

- generic/nsf.c / CallConfigureMethod() + CmdMethodDispatch(): Rephrased the accompanying docstrings slightly, to align the documentation to the underlying implementation details.

- generic/nsf.c / NsfOConfigureMethod(): Configure adds frames to its callstack context, however, so far the callstack modifications have not honoured the fact that configure() can be called from uplevel'ed call sites. The callstack context resulting from a prior uplevel was erased by the call frame introductions. As a consequence, parameter-dispatched methods found themselves in a wrong variable frame context. The suggested patch adds uplevel awareness in the most generic way I could think of. The entire test suite runs against the patched NsfOConfigureMethod(). However, I might be missing unwanted consequences for untested cases ... we need to think of further test scenarios ...