library

Clone Tools
  • last updated 16 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- 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. … 8 more files in changeset.
- mongodb interface: * mongo::gridfile::seek: added a seek command for gridfiles * added example for the low-level interface to shwo how to access gridfs via the plain mongodb interface, how to add some additional metadata (e.g. dublin core meta data) and how to retrieve this via the gridfile interface

    • -18
    • +62
    ./mongodb/example-nsf-gridfs.tcl
  1. … 1 more file in changeset.
- library/nx/nx.tcl: Fixed Attribute->reconfigure() to cover the reconfiguration of a default value in the per-object case ... - tests/parameters.test: Added Victor Mayevski's example as a proper test case. Details need to be discussed ...

  1. … 1 more file in changeset.
- C-code generator: * additional parameter swith "-withObj" to allow passing of internal representation and the according TclObj * * c-implemented methods: report types in "info parameter" for more builtin types. * use "-withObj" in mongodb interface * adapted regression test

  1. … 7 more files in changeset.
- 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. … 10 more files in changeset.
- library/nx/nx-zip.tcl: added a zip file generator as package

  1. … 1 more file in changeset.
- add various "namespace eval {}" to make package indexer happy

- mongdb: * added preliminary gridfs interface * refactored some code * added new types for "gridfs" and "gridfile" * added new example file example-nsf-gridfs.tcl

    • -0
    • +74
    ./mongodb/example-nsf-gridfs.tcl
  1. … 2 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.
- 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. … 4 more files in changeset.
- update mongodb interface to recent changes

  1. … 1 more file 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.
- use filterreg in regressiontest as well

- xotcl2: use filterreg instead of plain arg for registration of filters

-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.
- provided nicer registration and inspection interface for unknown handlers - added documentation for unknown handlers in tutorial - cleanup of __unknown

  1. … 7 more files in changeset.
- library/mongodb: * use type int32 * updated to new nx/nsf interfaces * updated for mongo-c-driver post 0.3 (supporting result MONGO_OK for mongo_cursor_next) * factored out "mongo cond" from "mongo query"

  1. … 1 more file in changeset.
- moved mixin reg type converter to a new file (nsfObj.c) - added NsfFilterregObjType, to provide a converter for filter registration similar to mixin registrations - replaced dummy dupIntRepProc and updateStringProc in nsfObj.c by NULL

  1. … 7 more files in changeset.
- Use mixinregObjType as well in NsfRelationCmd(), so this is the only place, where mixin and guards are processed. - Since the type converter converts Tcl-Objs, we have less context information (e.g. we have no base class, on which we can decide to call e.g. __unknown on on of the objects systems). - because of the point above, i removed ::xotcl::Class->__unknown and ::nx::Class->__unknown in favor of a global proc ::nsf::unknown, for which unknown handlers can be registered - GetClassFromObj() receives as last argument "withUnknown" instead of baseClass to indicate, when unknown should be tried. - new function NsfCallUnkownHandler()

  1. … 7 more files in changeset.
- renamed converter from "mixinspec" to "mixinreg"

  1. … 4 more files in changeset.
- nsf.c: * added a new converter for converting mixins with guards (named mixinspec) * used mixinspec in nx.tcl and xotcl2.tcl * extended nx regression test.

  1. … 5 more files in changeset.
- removed unneeded expr

- nsf.c: generalized disposition handling (forward, alias, initcmd) for object parameter * disposition is now an option for object parameters rather than than an own type. Therefore, one can check the arguments passed to the disposition cases * changed specification of name of method from arg= to method= * this way "type" info in "info parameter syntax" is handled automatically

  1. … 10 more files in changeset.
- nsf.c: fixed bad interaction between mixins and ensembles in tcl8.6

  1. … 2 more files in changeset.
- nsf.c: fixed possible crash in tcl8.6 with nsfprocs, still one inconsistency

  1. … 2 more files in changeset.
- added "link" from 2.4 (parameters) to "info parameters" in migration guide

  1. … 4 more files in changeset.
- nsf.c: added cmd "::nsd::method::registered /handle/" that returns the object on which the method identified by the handle was registered, or empty. - extended regression test

  1. … 5 more files in changeset.
- nx.tcl: added "info parameter slot" to return slotobject(s) - added "info parameter slot" to migration guide - extended regression test

  1. … 3 more files in changeset.
- Allow for defining type specifications for @param entities as an @spec part. - Corrected some inconsistencies in the doc templates for attribute methods - Added object parametersyntax in @class templates (though they appear quite lengthy, keep them at the end of the day?) - Distinguish between the "cls" and "obj" as affices

    • -1
    • +2
    ./lib/doc-assets/@method.html.asciidoc
    • -3
    • +3
    ./lib/doc-assets/hookmethod.html.yuidoc
    • -1
    • +2
    ./lib/doc-assets/submethod.html.asciidoc
    • -3
    • +4
    ./lib/doc-assets/submethod.html.yuidoc