nsf

Clone Tools
  • last updated 10 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
nx.tcl: - replaced functionality of "/obj/ configure" by "/obj/ info configure" to re-enable semantics of the plain configure method, even when called without arguments. "/obj/ info configure" is actually a convenience method to allow to write o1 info configure instead of o1 info lookup configure syntax

package nx::class-method: - convenience package similar to nx::plain-object-method - allow for usage "C class method ..." in addition to "C object method". - made warnings configurable via nx::configure class-method-warning on|off - completed coverage and test cases

    • -4
    • +58
    /library/nx/plain-object-method.tcl
    • -0
    • +124
    /tests/class-method.test
package nx::plain-object-method: - made warnings configurable via nx::configure plain-object-method-warning on|off - completed coverage and test cases

    • -42
    • +41
    /library/nx/plain-object-method.tcl
nsf.c - fixed potential inifinite loop in pattern matching for precedence lists - cget: make error message closer to tcl conventions - extended regression test

- adapt to object methods

- prevent default value checking, when it is determined by a command

- completed coverage if plain-object-method.tcl - provide warnings via plain-object-method.tcl via "nsf::log warn ..."

    • -9
    • +14
    /library/nx/plain-object-method.tcl
- renamed initblock parameter from __initcmd to __initblock - renamed nsf::configure parameter from "keepinitcmds" to "keepcmds" - saving "keepcmds" in an associative array named "__cmd(/parameternName)" to allow saving of multiple parmeters with less nameclash danger (when application stays away from variables stating with double underscore)

    • -2463
    • +164
    /doc/next-tutorial/slots.graffle
  1. … 3 more files in changeset.
nx.tcl: - removed "info is .." since it might raise more questions than it solves

- changed enumeration values for "-source" in "info lookup methods" "info lookup slots" "info methods" "info slots" of "all|application|baseclasses" to "all|application|system" for consistencey with "nsf::my" and "nsf::dispatch" which uses "-system" as well

Traits: - changed from traits-as-objects to traits-as-classes. This allows for higher orthogonality of traits and class definitons and allows in principle traits for object-specific methods (not fully implemented/tested) - fixed property/variable inheritance in traits.

    • -11
    • +12
    /doc/example-scripts/traits-composite.tcl
    • -9
    • +9
    /doc/example-scripts/traits-simple.tcl
- remove spurious debug line

Cleanup of nsfAPI.decls - remove unneeded enumeration types - use "typeName" to shorten reported names of parameters - use camel case for reported names

- changed ::nsf::parametersyntax(..) to ::nsf::parameter::syntax(..) - xotcl2: adjusted manual parameter syntax entries to new conventions

    • -25
    • +27
    /library/xotcl/library/xotcl2.tcl
- added implementation for slots with traces+types for classes - exception for incorrect defaults are thrown during slot creation - extended nsf::is, added parameter * ?-configure? -- accept configure paramter options * ?-name /name/? -- provide a parameter name for error message - simplified nx.tcl by using new nsf::is - extended regression test

- added partly implementation for slots with traces+types for classes

- fixed cases, where valuechangedcmd (and the other traces) did not work with "configure" method. When slot traces are used, it cleans other traces for the same operations. - extended regression test

Clear the TODOs

- nsf.c: fix crash when "nsf::my" is called with a single argument outside the object context.

- fix assert

- removed some TODOs from tests/parameters.test

- parameter dispositions:

We differentiate now between "initcmd" and "cmd": an "initcmd" is only

evaluated once, but one can provide configure values for this parameter

later. a "cmd" is executed on every evaluation, it is only possible

to pass cmds to it. The trailing argument of the configure parameters

(used e.g. for scripted object/class definitions) is now of type "cmd".

Implementation not yet complete (object cases are not correct).

- streamline documentation

- C-code Generator: added "-typeName" for enumeration types that allows for disambiguation of enumerations with different argument names. Before that, the argument name determined the c-type of the enumeration. Therefore it was not possible to use argName "-type" for two different functions with a different list of enumerators.

- changed "-methodtype" to simply "-type" in

/obj/ info methods ... ?-type all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ...

/obj/ info object methods ... ?-type all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ...

/obj/ info lookup methods ... ?-type all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ...

- minor code cleanup

- streamlined AddSlotObjects()

- cleanup of TODOs

- nsf.c: handle full-qualified name for private slots (AddSlotObjects()) - extended regression test

- updated next-tutorial: * bring definitions of properties and variables up to date * fix "object methods"

    • -0
    • +1281
    /doc/next-tutorial/configure-parameter.graffle
    • binary
    /doc/next-tutorial/configure-parameter.png
    • -121
    • +159
    /doc/next-tutorial/next-tutorial.html
    • -121
    • +161
    /doc/next-tutorial/next-tutorial.txt
    • -1127
    • +71
    /doc/next-tutorial/person-student.graffle
    • binary
    /doc/next-tutorial/person-student.png
- XOTcl2: ensure public accessor when "-parameter ..." is used

- extended parameter extractor: new functionality ::nsf::parameter get default /parameter/ ?/varname/? ::nsf::parameter get type /parameter/ /obj/ info parameter get default /parameter/ ?/varname/? /obj/ info parameter get type /parameter/