nsf

Clone Tools
  • last updated 19 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Property reform part 1:

- disallow protection modifiers for "properties" and

add new flag "-accessor" to "property" and "variable"

This changes definitions like

Class create C {

:property {a a1}

:public property {b b1}

:protected property {c c1}

:private property {d d1}

}

to

Class create C {

:property {a a1}

:property -accessor public {b b1}

:property -accessor protected {c c1}

:property -accessor private {d d1}

}

since "properties" are always public accessible

over the "configure" and "cget" interface, but the

accessors methods might not be public. The value of

the accessor might be also "none" (specifying explicitely

that no accessor is wanted) or "", which means: use the default.

Same holds for "variable"

- disallow parameter option "incremental" and change it to a flag

of the property or variable. The motivation for this is due to

the fact, that "incremental" is a property of the accessor, and

not of the value.

old:

Class create C {

:property foo:int,incremental

:variable bar:int,incremental

}

new:

Class create C {

:property -incremental foo:int

:variable -incremental bar:int

}

- disallow "public class property" and friends since these are not needed

- removed parameter property "noaccessor"

- removed "nx::configure defaultPropertyCallProtection" and

method hook "__default_property_call_protection"

- introduced "nx::configure defaultAccessor" and

method hook "__default_accessor"

- for the time being, "defaultAccessor" is "public" for NX and XOTcl,

will be changed to "none" in NX

- extended regression test (new file properties.test)

nsf.c: - fixed parmeter syntax for required nonpos args - deactivate deletion of methods via nsf::object::delete during shutdown to avoid missing slot forwarders called from destructors

nx.tcl: - remove debugging output

- renamed testlog file, remove it on "make clean"

nsf.c: - made argument of cget required

nx.tcl:

- added Tk-style methods "configure" and "cget"

- added additional regression test set for cget and configure

nsf.c: - implememted cget as a configure-like method, dropped ensemble method variant

nx.tcl:

- simplified "/obj|cls/ delete method" due to resolving capabilities in

nsf::delete::method

- fixed regression test to run all test again correctly

xotcl2.tcl: - made destructor of Connection more robust such it does not depend on accessor methods.

    • -2
    • +2
    /library/xotcl/library/comm/Access.xotcl
    • -1
    • +1
    /library/xotcl/library/comm/Httpd.xotcl
    • -2
    • +2
    /library/xotcl/library/comm/pkgIndex.tcl
nsf.c: - extended nsf::method::delete to handle ensemble names

nx.tcl:

- added tk/incr-tcl style cget methods on class/object levels.

- improve copy handling with other child-types of the slot container working

- make sure to ignore non-slot-type objects in slot introspection

- worked on regression test until "methods.test". others are missing,

but maybe reconsideration

    • -3
    • +6
    /library/mongodb/example-nsf-mongo.tcl
- updated 34 copyright notices

  1. … 19 more files in changeset.
nx.tcl: - rename the following internally called methods (not for XOTcl). alloc -> __alloc dealloc -> __dealloc objectparameter -> __objectparameter recrate -> __recreate - from these methods, only __objectparameter is defined per default, the others are defined on demand

changes to allow efficient tk/incr tcl compatible configure/cget - refactored code to allow to parameterize handling of required flag for parameters - don't flag an error when configure is called on an initialized object (logic: if the object is initialized, configure must have been called before, and the required action must have been already taken).

- rename nx::Object.configure to nx::Object.__configure to free method name "configure" for an e.g. tk-like configure

- finalize transition from old code

- fix frame scoping for myvar/myproc

- allow to change title of a scripted document

Merge branch 'master' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/nsf

- make doc beautifer more robust for invalid lists

- use explicit return in tutorial example scripts

Interim commit

Reintroduce forValueCheck

- improve documentation

    • -17
    • +24
    /doc/example-scripts/ruby-mixins.html
    • -15
    • +23
    /doc/example-scripts/ruby-mixins.tcl
- use "nsf::relation $cl superclass" instead of "$cl configure -superclass"

- minor documentation updates

    • -53
    • +47
    /doc/example-scripts/ruby-mixins.html
nx::test: - added summary at the end of "make test" via log file - updated .gitignore

nx.tcl: - set multiplicty for mixins and filters by default from 1..n to 0..n to avoid error messages, when e.g. empty mixin lists are configured. Setting emtpy mixin-lists is strictly speaking not necessary, but this eases the code in cases the lists are sometimes empty.

- handle cyclical superclassclass dependencies during object system finalize - extend regression test

Adding a test case and a preliminary fix for the parameter option interactions

nsf.c: - ignore in internall calls to "dealloc" protection settings - handle cyclical class dependencies during object system finalize - extend regression test

- library/nx/nx.tcl: Following the code review, implemented a first scheme for handling traces in setCheckedInstVar. This gives us consistent behavior for defaults and traces (valuechangedcmd) across classes and objects. - tests/parameters.test: Adjusted the relevant tests - Pending: setCheckedInstVar currently uses ::nsf::is to validate the value (e.g., default value) to be set. However, it might get passed parameter options which do not fit the NSF_DISALLOWED_ARG_VALUECHECKED filter.