nsfAPI.h

Clone Tools
  • last updated 4 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- move assignmetns after assertions in generated code

  1. … 1 more file in changeset.
- revert overeager part of the change

  1. … 1 more file in changeset.
- remove logically dead code as flagged by coverity

  1. … 1 more file in changeset.
NsfMethodPropertyCmd(): Dropped option 'slotobj' as it is obsolete. Also fixes CID 88767. See TODO for further cleanup steps.

  1. … 3 more files in changeset.
Improve profiling support - added profile support for undispatched methods (i.e. implemented via CallDirectly) - new function for controlling profile trace nsf:__profile_trace -enable /bool/ ?-verbose /bool/?

C-code generator:

- allow type boolean for non-positional arguments

  1. … 7 more files in changeset.
- added experimental "nsf::configure trace" feature, which can be enabled when compiled with profile support. trace turns on automatically profile

  1. … 4 more files in changeset.
- use same definition for ObjCmds as in tcl - prefer "const" over "CONST" unless in Tcl interface

  1. … 2 more files in changeset.
- prefer boolean expression in tests over expressions of other types

  1. … 26 more files in changeset.
- fix (probably quite old) memory leak when parameter passing fails to reclaim temporary Tcl_Objs

  1. … 1 more file in changeset.
nsf.c: - dropped unused object::info::is - renamed ::nsf::methods::class::info::filtermethods -> ::nsf::methods::class::info::filters ::nsf::methods::object::info::filtermethods -> ::nsf::methods::object::info::filters ::nsf::methods::class::info::mixinclasses -> ::nsf::methods::class::info::mixins ::nsf::methods::object::info::mixinclasses -> ::nsf::methods::object::info::mixins

  1. … 6 more files in changeset.
nsf.c: - define means to protect "undefined" internally-directly called methods __alloc and __dealloc in nx. This is achieved mostly via a an additional value in a method declaration in ::nsf::objectsystem::create. Example: -class.dealloc {__dealloc ::nsf::methods::class::dealloc 1} - extend regression test

  1. … 9 more files in changeset.
nsf.c: - relax the meaning of noleadingdash to allow negative numbers - rename noleadingdash to e.g. nodashalnum

  1. … 11 more files in changeset.
- improve argument name

  1. … 1 more file in changeset.
- generated file

nsf.c: parameter passing reform - don't pass full argument list for filteing methods calle further methods from C (such as new/create/... ) to allow processing of e.g. "--" in "new" to separate arguments to "new" cleanly from arguments passed to "create". Now we can use e.g. "C new -- -childof 123" in case class C has a property "childof". - extend c-generator to accept option "-objv0" to pass the original "objv[0]" to the called command. Since we had previously "allargs", we have to pass the objv[0] now differently - more thorough checking ISOBJ(someObj) macro for asserts (use "assert(ISOBJ(someObj))" instead of just "assert(someObj)") - extend regression test

  1. … 11 more files in changeset.
nsf.c: - added option "-dependent" to "info subclass" - extended regression test

  1. … 4 more files in changeset.
- rename nsf::parameter:invalidate::classcache -> nsf::parameter::cache::classinvalidate nsf::parameter:invalidate::objectcache -> nsf::parameter::cache::objectinvalidate reasons: (a) remove single colon inside the name, (b) put verb to the end

  1. … 8 more files in changeset.
nsf.c: - added options to filter output from ::nsf::cmd::info parameter options (args, syntax, parameter) - deleted: - "/obj/ info lookup configure parameters ?pattern?" - "/obj/ info lookup configure syntax" - added: - "/obj/ info lookup parameters /methodName/ ?pattern?" - "/obj/ info lookup syntax /methodName/ ?pattern?" This covers as well - "/obj/ info lookup parameters configure|create|new|... ?pattern?" - extend regression test

  1. … 9 more files in changeset.
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.
- added methods "info lookup filters ?-guards? ?/pattern/?" and "info lookup methods *-guards? ?/pattern/?" - extended regression test

  1. … 7 more files in changeset.
nsf.c: - fixed unary argument passing notation for "-nocomplain" of nsf::var and for 42 other options of other commands

nx.tcl:

- added flag -nocomplain to "/obj/ /prop/ unset ?-nocomplain?"

  1. … 4 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.
- 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.
- let the c-code generator produce as well nonnull assertions

  1. … 3 more files in changeset.
- use nx rather than xotcl2 terminology in nsf::method::forward

  1. … 8 more files in changeset.
- deactivated "-onerror", since its semantics are expressible via try/catch, and there are no regression tests for xotcl and nx, and we could not find any script that uses this

  1. … 4 more files in changeset.