nsf

Clone Tools
  • last updated 21 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
nx.tcl, xotcl2.tcl: - use value=* as names for interally called and forwarder-called accessor methods - disallow "assign" for nx::variableSlots

    • -4
    • +4
    /doc/example-scripts/traits-composite.tcl
    • -2
    • +2
    /doc/example-scripts/traits-simple.tcl
    • -16
    • +21
    /library/xotcl/library/xotcl2.tcl
nsf.c: - rename default slot methods add/get to value=add/value=get - provide an error message, when refering to a non-existing slot object

nx.tcl: - use set/get/add as slot methods for get/configure/incremental operations - demangle slots for nx/xotcl2 further

xotcl2:

- use assign/get/add as slot methods for get/configure/incremental

operations

- use object system configuration for -slot.get and -slot.set

- allow configuration of internally called "slot.get" and "slot.assign" methods via objectsystem::create

- enforce usage of "get" for all slots in nx - TODO: check, what in detail "parameter" in xtocl2 inherit from nx::variableslot (e.g. needsForwarder?)

- enforce using "set" for filter/object-filter in slot operations (same as for mixins)

nx.tcl: - remove setter methods from BootstrapVariableSlots - reducing interface of BootstrapVariableSlots by setting methods protected

- put test cases for all kind of mix setter / getter together in one test case

- reduce verbosity

nx.tcl: - add "set" as a method name for relation slots - implemented relation slot "mixin" and "object-mixin" via "slotassign" to disallow "/obj/ mixin /value/" and "/obj/ object mixin /value/" to use instead "/obj/ mixin set /value/" and "/obj/ object mixin set /value/" while keeping "configure" and "cget" working. This has the advantage that "/obj/ mixin set" does not try to replace the mixin chain by "set" - adapted regression test - TODO: check, if we need the explicit "slotassign"? isn't the presence of the slotObj sufficient? maybe "-forwardToSlot" in relationSlots? - TODO: demangle "slotassign" in "ObjectParameterSlot protected method getParameterOptions" and check interactions - TODO: to the same as -mixin and -object-mixin to -filter and -object-filter - TODO: clean up relation slot mixin variants - TODO: do we really like the fact that we have to write now "B mixin set M2" instead of "B mixin M2"? - TODO: should we disallow "B mixin" and enforce instead of "B mixin get" ? - TODO: we could as well allow "B mixin clear" instead of "B mixin set {}" - TODO: allow "set" for variable slots as well. Do we need "assign"?

nsf.c: - allow parameter option "method=" for slotassign as well. rationale: this allows to use the parameter "forwardername" to specify a different forwarder target method (e.g. in case of object-mixins). The method is used both in "configure" and "cget". - allow methodname to consist of max tow words in relation slots (e.g. "-methodname {mixin set}"}

- extend bagel example slightly

- finalize dropping of setter methods for nx

    • -6
    • +6
    /doc/example-scripts/traits-composite.tcl
    • -4
    • +4
    /doc/example-scripts/traits-simple.tcl
- show info line for every test case

- add flag "-onerror" to nsf::forward::method to handle errors during dispatch of a forwarder (not all error messags of forwarder are already transformed) - added log-level Info which prints always, e.g. for "-verbose" flag of forwarder - drop setter-rule from properties (use always forwarder) - drop "/obj/ /prop/" and "/obj/ /prop/ /value/" in favor of "/obj/ /prop/ get" and "/obj/ /prop/ assign /value/" to achieve better orthogonality with e.g. incremental properties

- replace empty-named arrays by dicts

- fix change of semantics when default multiplicity (1..1) is combinded with lower bound preserving incemental (results in 1..n instead of 0..n previously)

- make sure that nsfDtrace.h has a newer timestamp than nsfDtrace.d

- preserve lower bound of multiplicity when incemental is added - extend regression test

- added more test cases for multiplicity and incremental

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

nx.tcl: - Define method "value" as a slot forwarder to allow for calling value-less slot methods like e.g. "get" dispite of the arity-based forward dispatcher. - extend regression test

Adding missing include

Adding doc fragment on mixin method

- remove over-eager nonnull declaration

- remove done entries from TODO

- add fixes for tcl 8.6

- finish non-null handling for tcl 8.5

- continuing with nonnull assertions, various small cleanups

- complete nonnull assertion cleanup to 80% of nsf.c