nx

Clone Tools
  • last updated 19 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- nsf.c: use name "varTablePtr" instead of "varTable" when referring to the table - new option "slotcontainer" for "methodproperty" to flag slotcontainer to make them easier to process in the serializer . don't report slot container in "info methods -expand" - new function "::nx::isSlotContainer" to centralize checking for slotcontainers (used by serilaizer) - support export of method ensembles in serializer

  1. … 9 more files in changeset.
- new option "-expand" for "obj|class info methods" to return compound names (i.e. it lists the full ensemble names) Example: ::nx::Object info methods -expand "*filter*" returns filter {info filter guard} {info filter methods} {info lookup filter} - allow ensemble names in nsf::methodproperty - fix compound name lookups when aliases link to shared ensemble objects - make objectName() NULL-safe - fix option "-source application" when applied directly on base-classes - extend regression test

  1. … 6 more files in changeset.
- slots: * change name "initcmd" of "experimental slot features" to "defaultcmd" to avoid naming conflict the the initcmd executed at the initilization of a slot object (effects XOTcl as well) * make defaultcmd/valuecmd/valuechangedcmd working for nx (absence of trace method) * provide error message, when default/defaultcmd/valuecmd are used non-exclusively * make sure to init per-object slots after copy operations * make nx::Attribute.destroy more definsive * extend test cases

  1. … 4 more files in changeset.
- Minor revision of template files (to unify the naming of markup labels) - Removed occurrences of old [:let] - Use href() helper method to generate fragments of per-document ("local") anchor names - Introduced more pretty_name and pretty_plurals for part attributes - Make filename generation aware of the property of being a part or partof entity! - Revised the documentation of [::nsf::current] slightly - Adding setter ([:!let]) and getter ([:!get]) to the templating language, both being aware of @use chains. - Refactored the resolution behaviour for part levels, relative to a given entity, into a helper StructuredEntity->owned_parts(). Based on this helper, the navigation structures can be rendered on common grounds (e.g., drop-down search box, menus in th eleft bar) - Adding the attributes "pretty_name" and "pretty_plural" to part attribute slots (used for rendering section names in the nav menu etc.). - Adding a helper method href() to render the href attribute values of entity anchors (links, menu items, ...) - Unified the rendering of the selection data used by the drop-down box for the various entity_types, again, using the owned_parts() helper - Refactored the generation of navigation menu in the left bar into a proper template: leftbar.html.tmpl - Reflect recent naming changes (e.g., predefined.tcl -> nsf.tcl) - Adding support for documentation inheritance; first, fixed @command support for it - Refactored the upward resolution of partof entities into a central and shared facility (Entity->get_upward_path()) - Adjusting for changes in introspection interface (info.callable() -> info.lookup()) - Adding a first aliasing (@use) mechanism. Remains to be tested properly, though it works sufficiently for the known use cases. - Adding some safety checks to Tag->find() - Refactoring context->parse@tag to use the Tag->find() helper (now shared between tag creation and link resolution) - Tag path normalisation (expanding shortcuts, balanced list check, ...) went into Tag->normalise(). - Changed the [:link ...] mechansism ({{@someTag ...}}) to operate on the new tag notation. Added support for sub-method and sub-command link rendering (looks sufficient for the moment). - Changed the existing *.nxd companions to match these notational modifications.

  1. … 10 more files in changeset.
- added public|protected to output of "info method definition" (needed to make serializer more sane, neccessary on the longer range)

  1. … 6 more files in changeset.
- fix for the bug reported by Neil Hampton - added regression test

  1. … 1 more file in changeset.
- renamed/removed remaining ::nsf::commands with capitalized names: parametersFromSlots ==> parametersFromSlots unsetUnknownArgs ==> __unset_unknown_args infoError removed - renamed predefined.tcl into nsf.tcl - remaining cmds in nsf (except __*) containing "_": ::nsf::provide_method, ::nsf::require_method

  1. … 12 more files in changeset.
- removed capitalization from exit handler interface - reduced interface of exithandler to ::nsf::exithandler set|get|unset ?arg?

  1. … 10 more files in changeset.
- renamed ::nsf::cmd::ObjectInfo into ::nsf::methods::object::info - renamed ::nsf::cmd::ClassInfo into ::nsf::methods::class::info

  1. … 9 more files in changeset.
- changed internal method name requireNamespace to "require_namespace"

  1. … 4 more files in changeset.
- removed third level from libary/pkgIndex.tcl (not needed)

  1. … 2 more files in changeset.
- Big internal changes for handling nre-enabled procs in more situations. Handles now all nx regression tests, but fails in testx.xotcl (just nre-enabled)

  1. … 10 more files in changeset.
- regenerated index files

  1. … 9 more files in changeset.
- removed unneeded line

- made methods (for now just scripted methods) by default protected. - provide methode __default_method_protection to obtain the default method protection when neither protected or public is used. - per default methods are now protected - provide ::nx::configure defaultMethodProtection true|false as conveniant interface - update regression test and serializer to handle default protection

  1. … 16 more files in changeset.
- new nsf::next cmd. receives 0 or 1 argument, which might be a list of arguments. This avoids ambiguity of ::xotcl::next with "--noArgs". - renamed namespace_copycmds and namespace_copyvars to nscopycmds and nscopyvars (we don't use "_" in nsf::*-names as delimiters elsewhere) - renamed __qualify to qualify (it is a non-exported cmd)

  1. … 6 more files in changeset.
- remove useless line

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

  1. … 12 more files in changeset.
- removed overhead on ::nsf::dispatch when called with absolute paths - absolute paths have to start with ":".

  1. … 2 more files in changeset.
- changed "cls object method ..." and friends into "cls class-object method ..."

  1. … 18 more files in changeset.
- changed "info available" into "info lookup" (and accordingly c definitions, migration guide)

  1. … 14 more files in changeset.
- 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

  1. … 2 more files in changeset.
- splitted "info callable" into an ensemble (submethods have quite different signatures) - added "info callable slots" with functionality of "info slotobjects" - removed "info slotobjects"

  1. … 6 more files in changeset.
- 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

  1. … 7 more files in changeset.
- 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.

  1. … 7 more files in changeset.
- 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.

  1. … 7 more files in changeset.
- checked "my" vs. "nsf::dispatch" in nx.tcl and xotcl2.tcl

  1. … 1 more file in changeset.
- renamed slot attribute "noforwarder" to "nosetter" - method parameter can now use option "nosetter" to allow object parameterization witout providing a setter method (example: "Class create C -parameter {x:integer,nosetter}") - extended regression test to include "nosetter"

  1. … 2 more files in changeset.
- make method EnsembleObject.methodPath more independet of Ensemble objects

- added handling of parameter options "allowemtpy" and "convert" in createFromParameterSyntax

  1. … 1 more file in changeset.