nsf

Clone Tools
  • last updated 19 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- first steps towards next-handling in ensemble methods

- provide cscPtr in debug output

- updated todo list

- remove useless line

- documented behavior of upvar/uplevel with aliases on scripted procs through regression test

- renamed "parameter" into "attributes" in nx - renamed "info parameter" into "info attributes" in nx - updated migration guide - fixed several common typos

- checked equivalence of the following two commands in respect to fully-qualified names ::nsf::dispatch $obj ::nsf::cmd::ObjectInfo2::hastype $class ::nsf::parametercheck object,type=$class $obj extended regression test (paramters.tcl)

- removed overhead on ::nsf::dispatch when called with absolute paths - absolute paths have to start with ":".

- improve comments in nsf.c - follow closer naming of Tcl style guide

- added "info method subcommands ..." to return list of subcommands (of the ensemble) - extended regression test - use always NULL instead of 0 when assigning to a pointer variable

- changed "cls object method ..." and friends into "cls class-object method ..."

    • -12
    • +12
    /library/serialize/serializer.tcl
  1. … 4 more files in changeset.
- fixed handles with subcommands for class methods when called on classes or objects - extended regression test

- fixed handles with subcommands used on objects without namespaces - new functions: GetRegObject()

- polish comments

- second part of ensemble name resolver, distinguish between registration object and definition object - new functions: GetRegObject() - extended regression test

- pass tclobj instead of string to NsfObjInfoMethodMethod and NsfObjInfoMethodsMethod - first part of ensemble name resolver. We can resolve now e.g. [nx::Object info method parameter "info lookup methods"]

- changed "info available" into "info lookup" (and accordingly c definitions, migration guide)

- new function AliasDeleteObjectReference() to delete aliases to objects - removed some obsolete functions

- handle aliases to (sub)ensemble objects during final cleanup to improve sharing of logic. - share definition of "info callable" and "info has" ensemble between object info and class info

- splitted "info callable" into an ensemble (submethods have quite different signatures) - added "info callable slots" with functionality of "info slotobjects" - removed "info slotobjects"

- [::nx::Object info method parameter info] returns now empty instead of error. - extended regression test

- added flag "-type" to NsfObjInfoChildrenMethod - added flag "-type" to NsfObjInfoSlotObjectsMethod - removed dummy argument "pattern" from NsfObjInfoSlotObjectsMethod - removed NsfClassInfoSlotsMethod (implemented via "children ... -type ...") - moved "info slots" from nx::Class to nx::Object (to report e.g. per-object attributes) - extended regression test

- Added support for companion documentation files (based on the file extension *.nxd) - Moved the nsf and nx documentation blocks in generic/predefined.nxd and library/nx/nx.nxd, respectively - Un-exported @param, provide two aliases @attribute and @parameter (in the respective contexts). - Changed the test suite and the two documentations to reflect the naming changes.

    • -0
    • +295
    /generic/predefined.nxd
    • -7
    • +7
    /library/lib/doc-assets/class.html.tmpl
    • -2
    • +2
    /library/lib/doc-assets/method.html.tmpl
    • -0
    • +690
    /library/nx/nx.nxd
- BRO continues: - overworked function prototype definitions in nsf.c - renamed some static definitions on the way to follow Tcl conventions (start with a capital character)

- Added two new templates: method.html.tmpl and submethod.html.tmpl - Generalised the support for sub-commands and sub-methods, including a shortcut notation for tag lines. - Adding the special handling of initcmd blocks of attribute slots: They are processed as @param specifications of their owning (class) object. In a next step, I will limit this special handling to the first comment block only, while subsequent ones are evaluated in the context of the slot object itself. - Fixed an issue with cleaning up the processing-related mixin classes in the CommentBlockParser: As the nested notation of doc entities can conflict with relation slot forwarders (*::info::mixin vs. *::info mixin <add|delete>), I revert to using ::nsf::relation directly. - Fixed the default namespace resolution (still needs some review, once all use cases are figured out!) Changed nx and nsf documentation accordingly. - Add first doc text for Object->info() and its sub-methods (for testing purposes, merely) - Added an initial implementation for parsing level support. By introducing skipping axes into the tag notation (e.g., @..param), we can now differentiate between different scopes of applications for tags. This has a number of advantages: a) processing becomes more efficient (skip-level annotated tags can be identified early), b) we do not have maintain different tag labels for different parsing levels (e.g., @child-object vs. @object), ... - Parsing levels have to be maintained within the documentation processor and provided to the comment block parsers at work. This still has to be accomplished. - Adapted the naming scheme for qualifier tags (for now). Instead of "child" scopes, we coerce the entity names using namespace delimiters (this fits nested objects nicely) - Changed the resolution behaviour for dotted tag labels: Intermediate nodes (i.e., entities) are not allocated anymore, on the fly. Rather, it is a pure id resolution, except from the leaf element which is effectively initialised as a documentation entity. This has major implications: It requires partof entities to exist prior to any part entity. However, the id resolution work can later be reused when introducing the new tag notations into the link block markers in the templating engine (avoiding zombie and widely undescribed doc entities). - Started shifting id generation into part attributes (for the time being). Probably I will do so permanently to avoid the complexity in the various new() factories for doc entity types. - Adjusted the tests accordings and added many more on the navigatable tag notation. - Renamed EntityClass and PartClass into Tag and PartTag. The meta-class names so better reflect their purpose as entity factory classes, based on the tag notation scheme. Added a QualifierTag meta-class which marks tags (@class, @object, @command) which impose extra requirements when not being part of another entity (in particular, default namespace resolution). If not part of another entity, they represent *qualifying* language constructs, i.e. language constructs which help identify other elements (command -> subcommand, object -> nested object or method). - Started harmonising the entity class hierarchy (not ready cooked yet): Entity < StructuredEntity < ContainerEntity < @project < @method < @package < PartEntity < @object (@param) < @class < @command The most important change is that all entities (entity instances) can become parts, however, only a single entity class (@param) is critical about it.

    • -67
    • +1
    /library/lib/doc-assets/class.html.tmpl
    • -3
    • +3
    /library/lib/doc-assets/command.html.tmpl
    • -0
    • +71
    /library/lib/doc-assets/method.html.tmpl
    • -0
    • +37
    /library/lib/doc-assets/submethod.html.tmpl
    • -173
    • +419
    /library/lib/doc-tools.tcl
- BRO continues: - overworked function prototype definitions in nsf.c - renamed some static definitions on the way to follow Tcl conventions (start with a capital character)

- BRO continues: - changed all XOTCL_ into NSF_ - changed all XOTCLINLINE into NSF_INLINE - changed all XOTCLOBJ_TRACE into NSFOBJ_TRACE - changed all XOTcl_ into Nsf_ - changed all XOTcl([A-Z]) into Nsf\1 - changed all xotcl into nsf

- changed changeClass into ChangeClass

- changed XOTclpGetObject into GetObjectFromString

- changed XOTclpGetClass into GetClassFromString

- changed callDestroyMethod into DispatchDestroyMethod

  1. … 20 more files in changeset.
- big renaming orgy (BRO): - changed filenames starting to "xotcl" into filename starting with "nsf" - adoped Makefile insfrastructure accordingly - removed compile flag XOTCL_METADATA and generic/xotclMetaData.c - changed compile flag PROFILE into NSF_PROFILE

    • -0
    • +15202
    /generic/nsf.c
    • -0
    • +79
    /generic/nsfAccessInt.h
    • -0
    • +144
    /generic/nsfCompile.c
    • -0
    • +117
    /generic/nsfError.c
    • -0
    • +788
    /generic/nsfInt.h
    • -0
    • +61
    /generic/nsfObjectData.c
    • -0
    • +144
    /generic/nsfProfile.c
    • -0
    • +231
    /generic/nsfShadow.c
  1. … 34 more files in changeset.
- checked "my" vs. "nsf::dispatch" in nx.tcl and xotcl2.tcl

- changed stub naming from "[Nn][Xx]*" to nsf (for next scripting framework)

    • -0
    • +178
    /generic/nsf.decls
    • -0
    • +445
    /generic/nsfDecls.h
    • -0
    • +117
    /generic/nsfInt.decls
    • -0
    • +57
    /generic/nsfIntDecls.h
    • -0
    • +88
    /generic/nsfStubInit.c
    • -0
    • +102
    /generic/nsfStubLib.c
  1. … 5 more files in changeset.