nsf.c

Clone Tools
  • last updated 1 hour ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- generic/nsfStack.c: Revised my former patch for traversing callstacks under ensemle dispatches. We fixed the traversal-ending gateway expression; and added transparency for INACTIVE frames when assembling the method path. Added further tests, remain to be completed ...

  1. … 2 more files in changeset.
Merge branch '2.0.0-develop' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/xotcl into 2.0.0-develop

  1. … 1 more file in changeset.
- preliminary fix for volatile called through redsidual args - new regression test file volatile.test

  1. … 4 more files in changeset.
- Reduced verbosity in nsf.c, reactivated a test case

  1. … 1 more file in changeset.
- nsfStack.c / CallStackMethodPath(): Providing a fix for reporting method paths correctly when dispatching to ensembles from alias parameters. Prior to that fix, the intermediate (and inactive) CMETHOD frame wrapping configure() calls caused [current methodpath]s to report empty string elements. Added some test cases. - nsf.c / ObjectDispatch(), DispatchUnknownMethod(): When testing objects as alias parameter targets, I found cases when the default (C-level) unknown handler was invoked upon. The result was an unknown message which reported the delegator object as "unknown" method! This was due to injecting the delegator object into the argument vector at position 0, subsequently used by the C-level unknown handler. First, I tried to make the C-level unknown handler aware of the ensemble call context (by funneling through the CSC and frame flags) but this turned out to be complicated to achieve this simple task. As an alternative, I suggest the following patch: The first argument in unknown calls is treated as a list, and dependening on the call context (ensemble vs. non-ensemble) contains all the necessary call data. For ensemble methods, it is the delegator object, the entire method path (as returned by [current methodpath]), and the actual unknown selector. The default C-level handler, treating the call info as list, resorts to reporting the last element of the list which is always the unknown selector. Custom (ensemble-level, application-level) unknown handler can wrap and further process the information as necessary. To demonstrate the usefulness, I rewrote EnsembleObject->unknown() accordingly. I checked for Tcl_Obj leaks. - Added some tests on objects as targets of alias object parameter. To be continued.

  1. … 6 more files in changeset.
- nsf.c: * report only fully initialized slot objects via "info slots" to avoid chicken-egg problem during method "objectparameter" * added flag -array to ::nsf::var::exists to check, whether the variable is an array (to avoid "o eval {array exists ...}" in the serializer. * provided flags to VarExists instead of multiple args * don't add new pointer entries in Nsf_PointerTypeLookup()

  1. … 9 more files in changeset.
Merge branch '2.0.0-develop' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/xotcl into 2.0.0-develop

- nsf.c: * new file nsfPointer.c * generic new value checker ConvertToPointer to handle c-level conversions (which can be registed from nsf extensions) * extern defined interface for the pointer converter: Nsf_PointerTypeLookup(), Nsf_PointerTypeRegister(), Nsf_PointerAdd(), Nsf_PointerDelete(), Nsf_PointerInit(), Nsf_PointerExit(). - library mongodb * changed mongoAPI to pointer converter interface

  1. … 12 more files in changeset.
- generic/nsf.c: Shuffled around the word order and adding some quoting in the error message for enforcing multivalued, non-empty list multiplicities; to differentiate between parameter name and value literals etc.

  1. … 2 more files in changeset.
- nsf.c: no good reason to disallow user defined types for for alias, forward or initcmd

  1. … 2 more files in changeset.
- generic/nsf.c: Re-introduce trimming for "names" of unknown parameter options.

- generic/nsf.c: Aligned error messages for parameter options; Re-arranged control flow in ParamOptionParse() slightly, do allow for [string is] types being used as options of disposition types. Refactored code slightly (e.g., removed unneeded, intermediary Tcl_Objs). - tests/disposition.test: Extended test suite, in particular, for covering multiplicity types as parameter options of disposition types. - tests/parameters.test: Adjusting for rephrased error messages.

  1. … 2 more files in changeset.
- renamed gentclAPI.decls to nsfAPI.decls - renamed tclAPI.h to nsfAPI.h - added nsf.m4 to git for the time being

  1. … 7 more files in changeset.
- genAPI.decls and nsf.c: bring cmds in same order - nsf.c: align naming conventions

  1. … 3 more files in changeset.
- nsf.c: * Don't output non-consuming procs (which are always called) via parametersyntax (shows, what a user can input) * additional command ::nsf::object::initialized to check whether an object is already initialized * new function DispatchInitMethod() similar to DispatchDefaultMethod() * let residualargs call init directly instead of doing it the inidrect way * provided ability to call init with object parameters at arbitrary times * switch from Tcl_ObjCmdProc style interface (ClientData first) to a C stype interface for DispatchDefaultMethod(), DispatchUnknownMethod() * bring cmd definitions for nsf::object in right order - extended regression test

  1. … 9 more files in changeset.
-blank changes

- nsf.c: * added refcounting to parameter definitions (needed, when aliased object parameter redefined the actual objectparameters) * removed hardcoded call to remaining args * switched implentation of xotcl2 to use object parameter with parameter option "args" * removed residualargs from object system definition * extended regression test

  1. … 5 more files in changeset.
- nsf.c: * improved source code documentation * added parameter option "args" in order to get eventually rid of hard-wired residual args. * improved a few error messages * fixed object parameters consisting only of plain parameters (previously, no parameters were returned in this case, e.g. for method parameters; but object parameter code depends on it) - extended and updated regression tests

  1. … 7 more files in changeset.
-nsf.c: * switched parameter logic from default for nrargs from 0 to 1 * simplified logic to detect additional arguments in argument parser * improved error message for missing required argument

  1. … 4 more files in changeset.
- reduce redundancy by introducing macro NSF_ARG_METHOD_INVOCATION

  1. … 2 more files in changeset.
- changed required stubs version

  1. … 1 more file in changeset.
- added handling for provided arguments to positional object parameters with disposition alias and forward - provided better error messages for unknown parameter options - provided error messages for multiple disposition parameters

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

  1. … 1 more file in changeset.
- improve bignum conversion handling further - found memleak in tcl

  1. … 2 more files in changeset.
- nsf.c: Initialising the tommath stubs by using the Tcl_TomMath_InitStubs macro so that we can use the stubbed tommath C interface

- fixing part of the memleak introduced for bignum handling above (for some unknown reasons, we see crashes from mp_clear) - extend regression test

  1. … 2 more files in changeset.
- added value checker type int32 (similar to "string is integer") and changed value checker "integer" to accept all integers

  1. … 5 more files in changeset.
- removed warning about strict-aliasing rules

  1. … 3 more files in changeset.
- added tests for integer, wideinteger and bignums

  1. … 2 more files in changeset.
- fixed memory leak in "... info mixin classes -heritage"

  1. … 1 more file in changeset.