nx

Clone Tools
  • last updated 19 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- fixed scoping issue, when "-volatile" was used for object creation - added regression test for interaction between filters and function resolver (and volatile) - reactivated new volatile test in destroy.test - undone temporary fixes for volatile in serializer and nx.tcl

  1. … 5 more files in changeset.
- changed CallStackGetActiveProcFrame() to return also CMETHD frames This allows to execute :volatile in a initcmd and to delete the object at its end. As a consequence, code like [CopyHandler new -volatile] copy [::nsf::self] $newName has to be changed to CopyHandler new { :copy [:uplevel ::nsf::self] [uplevel set newName] :destroy } - renamed CallStackUseActiveFrames() to CallStackUseActiveFrame() and ctx->framesSaved to ctx->frameSaved to reflect implementation

  1. … 5 more files in changeset.
- allowed public|protected for method deletion such as "Object public method foo {} {}" - removed defaultMethodCallProtection in alias test

  1. … 2 more files in changeset.
- removed bug-alert from nx.tcl (wrong false-positives for compiled locals in slots)

- implemented exported command ::nsf::self as fast conveniance replacement for "::nsf::current object".

  1. … 8 more files in changeset.
- Corrected the link generation for autocomplete/search entries in case of @use chaining and made them location-independent - Removed an superfluous div-closing tag in class.html.tmpl - Refactored the backend code for the auto-completion search box, separating the concerns of rendering the JS array of hashes and serialising entities into a dict representation. The latter allows to discriminate entity-specific rendering behaviour (together with the mixin layer facility). - Added the entity type (its pretty name) to the search results presented to the doc user. - Removed the unwanted "::"s from @project and @package names.

  1. … 5 more files in changeset.
- Switch to print_name() for rendering entity names for the search box - Fixed the @parameter generation in method.html.tmpl - @glossary: Support for referencing glossary entries with certain formatting annotations: @gls (minor letters only), @Gls (title), @glspl (plural), @Glspl (title plural), ... Added explicit acronym rendering (long and short forms): @acrfirst, @acr; fixing an id-generation issue for @glossary entities - Completed the first round of amending nx.nxd with @glossary entries and references. - I got rid of curly braces ("{", "}") as marker symbols ("{{...}}", "{{{ ... }}}") for formatting fragments of comment blocks. They proofed sufficiently hairy due to their heavily loaded meaning for the Tcl parser (the unclosed brace issue in Tcl comment blocks, the list-like processing in our comment block parser, ...). Instead, I introduced <<...>> for link-like elements (anchors, glossary references) and MediaWiki-like '''...''' blockmarkers for code listings. Thanks to Victor Guerra for reviewing and discussing this concrete-syntactic design decision. - Increased the robustness of line-by-line parsing for comment blocks. Within the comment block parser, we operate on comment lines as Tcl lists (lindex, lassign, ...). While convenient from a processing perspective, this risks limiting the degrees of freedom when writing comments (e.g., using tabs and spaces to indent inline, grouping words to form lists of lists, ...). By leveraging "args" argument processing through [apply] for line preprocessing, we balance the two requirements. - Verified that @use works between objects and methods. - Some cleanup in the mixin layer code - Resolve interp-alias chains to entity class objects explicitly - Adjusting the Container/Containable mechanism to apply only to part classes relevant to particular container entities. - Fixing support for package rendering as top-level entities (e.g., in the leftbar menu) - Providing the project object to all entities subject to template processing. - Declaring some forwarders public explicitly (to reflect recent changes in the reach of default call protection)

  1. … 6 more files in changeset.
- use "nsf::configure debug" for value 1: compain about protected value >1: provide load messages for nx and xotcl - unset unneeded variables in ::nx namespace

  1. … 3 more files in changeset.
- fix requiredness of several info methods - added "nsf::configure debug ?level?"

  1. … 5 more files in changeset.
- renamed some arguments of tcl interface to increase consistency - make requiredness explicit for nsf::cmds - introduce ::nsf::parametersyntax to provide syntax for potentially missing definitions - provided ::nsf::parametersyntax for 3 ::nsf commands and 7 nx methods (from relationslots)

  1. … 6 more files in changeset.
- replaced "-objscope" and "-nonleaf" by "-frame object|method|default" for nsf::alias and nsf::default - added functionality for "-frame method" to nsf::dispatch - made the order of argument in ::nsf::alias and method "alias" the same (always first the method, then "-frame ...") - extened regression test

  1. … 15 more files in changeset.
- added support for aolserver (essentially Makefile + aol-xotcl.tcl) - removed unneded content from serializer output

  1. … 4 more files in changeset.
- Implemented built-in-converter for "baseclass" and "metaclass". Change in performance for this call. >8 times faster before: parameters/parametercheck.007: 19.49 mms, ::nsf::is baseclass C after: parameters/parametercheck.007: 2.32 mms, ::nsf::is baseclass C - remove scripted definition of "baseclass" and "metaclass"

  1. … 3 more files in changeset.
- changed option -expand in "info methods" and "info lookup methods" into "-path" to associate with the method path - changed method property name from "protected" to "call-protected" - changed nx::defaultMethodProtection to nx::defaultMethodCallProtection - nx::defaultAttributeProtection is used for scripted methods, forwarders and aliases - added nx::defaultAttributeProtection, used for setter and attributes

  1. … 17 more files in changeset.
- changed option -expand in "info methods" and "info lookup methods" into "-path" to associate with the method path

  1. … 6 more files in changeset.
- cleanup of __resolve_method_path - change TclShowStack into NsfShowStack() to avoid possible interference with the Tcl* namespace - made the following function static to avoid pollution of the global link namespace: CompiledColonVarFree(), GetRegObject(), ParamGetType()

  1. … 4 more files in changeset.
- Methodpaths can be used now in the definition of "method", "alias" and "forward." We do not support it for "setter" and "attribute", since these require a parameter spec, which does not have clear semantics for a method path. - scripted definition of nx::Object.forward and nx::Class.forward

  1. … 3 more files in changeset.
- Major refactoring based on a minimal Mixin Layer facility to modularise optional features (such as templating, documentation verification etc.) in layers of mixins to be applied to the entire entity hierarchy. - Rewrote the html templating machinery in terms of a mixin layer: NxDocRenderer - Used the new modularisation granularity to add @glossary-specific link rendering (following ideas from http://www.alistapart.com/articles/hattrick/) - Completed glossary support and added acronym handling - Added back references and ref counting for @glossary entries (to be displayed with the glossary lists) - I added the short-cut lists for selected part types of @class entities, namely @class-method and @class-attribute. - Fixed the rendering of methods and attributes for ascending alphabetical order.

  1. … 7 more files in changeset.
- added syntax "?arg ...?" in parametsyntax output for "args" - removed "info forward" from nx::Object and nx::Class (can be replaced by "info methods" and "info method")

  1. … 6 more files in changeset.
- allow %method in forwarder. - defined unknown methods as call-protected - make __default_method_protection protected

  1. … 4 more files in changeset.
- push stack frame before calling the defaultcmd of an ensemble object to make implementation more simple. - simplified EnsembleObject.defaultcmd and EnsembleObject.unknown significantly, scripted support methods are removed. - extended regression test

  1. … 3 more files in changeset.
- nsf::current: new option "methodpath", returns the full name of an ensemble method starting from the ensemble root. - documented functions in nfsStack.c - removed obsolete CallStackGetFrame(), replaced by CallStackGetTopFrame()

  1. … 5 more files in changeset.
- provide full set of ensemble methods from EnsembleObject.unknown (i.e. from all classes along the precedence order. It was necessary to pass calling object as first argument)

  1. … 3 more files in changeset.
- "info lookup methods": order of non-pos parameters alphabetically - added option "-expand" to "info lookup methods ". It collects ensemble methods along the precedence path - added support for ensemble methods in "info lookup method" - extended regression test

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