nsf.c

Clone Tools
  • last updated 15 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- improve error message

nsf.c, gentclAPI.tcl: - new argument types "virtualobjectargs" and "virtualclassargs" for context-specific argument resolutions: when a context object is provided, arguments of type "virtualobjectargs" are determined based on the slots applicable for the object (like "... lookup ..."), arguments of type "virtualclassargs" are resolved against a class. These types are used as follows: /obj/ configure /virtualobjectargs/ /cls/ create /name/ /virtualclassargs/ /cls/ recreate /name/ /virtualclassargs/ /cls/ new ?-childof /obj/? /virtualclassargs/ This new feature allows us to provide better error messages and to make much of the "... info ... configure parameter ..." infrastructure much less important. - For "virtualclassargs" we need the functionality to obtain from the C-Code based on a class the configure parameters applicable to objects of this class. - add argument "-context ..." to "cmd::info" to pass the context object (so far the only place where the context-object is used) - object system configuration parameters changes: new: -class.configureparameter new: -object.configureparameter removed: -class.objectparameter

  1. … 16 more files in changeset.
nsf.c - renamed parameter::get -> parameter::info - renamed method::get -> cmd::info

  1. … 10 more files in changeset.
gentclAPI.tcl: - handle duplicated domains by folding these to a single definition

nsf.c:

- added command nsf::method::get.

Rationale: provide a central place to obtain information

about all kind of method handles, which might be

- scripted and c-based methods

- nsf::procs

- plain tcl procs

- cmds (with and without paramter definitions)

- make results of ListMethod() robust against missing

information (e.g. plain tcl cmds, missing object registrations,

etc.)

- factor out common code for ListMethod call sites

for per-object methods, instance methods and procs/cmds

to ListMethodResolve()

- return errors from failing converter registrations

- extend regression test (new test set nsf-method.test)

  1. … 7 more files in changeset.
- minor cleanup

  1. … 5 more files in changeset.
- make error-checks as unlikely to succeed

- return class of desired object in nsf::parameter::get when provided

  1. … 1 more file in changeset.
nsf.c: - extend nsf::parameter::get to obtained more detailed information for obejcts/classes/metaclasses/baseclasses and specified types - extend regression test

  1. … 2 more files in changeset.
nsf.c - force again literal "-guard" in a "mixinreg" type to avoid potential confusions - Base nsfRelationSet for mixins on cmds rather than TclObjs to avoid confusions and duplication of guard detection logic - Add interp to NsfMixinregGet() and NsfFilterregGet() to be able to return error messages - return more error message from mixinreg converter - provide at least minimal support for "funny class names" (i.e. containing spaces) - FinalObjectDeletion: don't enforce namespace = 1 for cases with wierd namespace deletion order - extended regression test

  1. … 5 more files in changeset.
- added methods "info lookup filters ?-guards? ?/pattern/?" and "info lookup methods *-guards? ?/pattern/?" - extended regression test

  1. … 7 more files in changeset.
- improve handling of space in object names

  1. … 1 more file in changeset.
- name parameter option "slotset" instead of "slotassign"

  1. … 10 more files in changeset.
- renamed nsf::relation to nsf::relation::set and added nsf::relation::get in accordance with nsf::var::get

  1. … 17 more files in changeset.
nsf.c: - added nsf::var::get and "::nx::var get" to provide selector based interface for variable reading (used in slotmethod get of nx::VariableSlot)

- cleanup of nx.tcl and TODO

  1. … 8 more files in changeset.
nsf.c: - finish implementation of NsfForwardPrintError() - use NsfForwardPrintError() in ForwardArg() for all error messages

  1. … 1 more file in changeset.
- added likely/unlikely to result == TCL_OK etc.

nsf.c: - fix one more subtle case of an error being swallowed: for xotcl, the constructor returns the list of residual arguments. In case there was an error, it was possible that the returned residual arguments overwrote the error message in the interp result

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

  1. … 1 more file in changeset.
- allow configuration of internally called "slot.get" and "slot.assign" methods via objectsystem::create

  1. … 1 more file in changeset.
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}"}

- 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

  1. … 16 more files in changeset.
- remove over-eager nonnull declaration

  1. … 1 more file in changeset.
- add fixes for tcl 8.6

  1. … 1 more file in changeset.
- finish non-null handling for tcl 8.5

- continuing with nonnull assertions, various small cleanups

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

- complete nonnull assertion cleanup to 33% of nsf.c - improve source code documentation

- simplify SuperclassAdd() - improve code documentation - complete nonnull assertion cleanup to 50% of nsf.c

  1. … 1 more file in changeset.
- simplify FilterInvalidateObjOrders() and FilterRemoveDependentFilterCmds() - complete nonnull assertion cleanup to 33% of nsf.c

  1. … 1 more file in changeset.
- finishing checking of first 25% of of nonnall assertions in nsf.c