lib

Clone Tools
  • last updated 5 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- made the "next scripting laguage" a own, loadable tcl package (currently named nx, name is subject of change) - predefined.tcl is now pretty minimal.

  1. … 29 more files in changeset.
- changed more self/current

  1. … 1 more file in changeset.
- added interp alias "nx::self" to "nx::core::current method" - changed "current proc" into "current method" in scripts and tests

  1. … 10 more files in changeset.
- xotcl.c: * new function GetObjectFromNsName() to obtail object or class from a fully qualified namespace name used in method handles (such as e.g. ::nx::core::classes::X) * new function MethodHandleObj() to return a tcl_obj containing the methodhandle * removed obsolete method getFullProcQualifier() * info methods obtain now object and/or class from fully qualified method names (method handles) if possible * return message handles in "current next", "current filterreg" and "... info filter ... -order", which can be used in "info method .... " for obtaining more details. * change all occurrances of "self" in next regression tests to current. - xotcl2.tcl * implemented "self" as a proc to provide extensibility and full backward compatibilty; this opens opportunity to replace now e.g. "self proc" by "current method", etc. * provide full compatibility for "self next", "self filterreg" and "... info filter ... -order", returning old-style multiword method handles (such as e.g. "::C instproc foo") - changed "next" to current in documentation framework and templates

  1. … 17 more files in changeset.
- created own directory structure xotcl under library containing doc, tests, apps, lib etc. and moved obvious content here. - adjusted regression test and old documentation system to work with new structure

  1. … 391 more files in changeset.
- added redefine-protected to the object template - added methodtype to object template - some documentation updates - some indentation/spacing improvements on xotcl.c - let ".... info method .... METHOD" return values, when METHOD contains namespace prefix. This can be used to obtain the parmeter definitions from nx::core - get forward definition from the original command

  1. … 4 more files in changeset.
- added @properties and has_property to the documentation classes. Current primary purpose: define, which methods are internally-called - added interanlly-called to the method object template

  1. … 3 more files in changeset.
- renamed mk_predefined.xotcl -> mk_predefined.tcl - renamed predefined.xotcl -> predefined.tcl - additional subcommand "info method parametersyntax <methodname>" returns parameters in a syntax similar to the tcl man pages - added ability to pass syntax for forwarded methods via set ::nx::core::signature(::nx::Object-method-forward) (experimental) - fixed documentation system to work with actual version - added undocumented methods for quality control in documentation - added checks for documented, but unavailable methods in documentation - added comparison of documented parameters vs. actual parameters in documentation

    • -0
    • +1817
    ./doc-tools.tcl
  1. … 13 more files in changeset.
- changed "Serializer.xotcl" to "serializer.tcl" (package name from xotcl::serializer to nx::serializer) - added stub for xotcl::serializer for backward compatibility - changed serializer to new namespaces - renamed xotcl.tcl to xotcl2.tcl - added proc finalize to xotcl2.tcl

  1. … 10 more files in changeset.
- changed stubs from xotcl to nx - first part of openacs updates

  1. … 4 more files in changeset.
- changed stubs from xotcl to nx

  1. … 22 more files in changeset.
- changed "require next" to "... nx" - changed "require next::test" to "... nx::test" - changed "require next::doc" to "... nx::doc"

  1. … 29 more files in changeset.
- renamed tests/method-modifiers.xotcl to tests/method-modifiers.tcl - changed "require xotcl::test" to "... next::test"

  1. … 21 more files in changeset.
- rename xotcl1.xotcl to xotcl.tcl - some cleanup (version variables, etc.) in xotcl.tcl

  1. … 1 more file in changeset.
- get rid of ":::xotcl::use" - renamed tests based on next from .xotcl to .tcl - extended regression tests - use namespace ::nx::test instead of ::xotcl::test - use namespace ::nx::serializer instead of ::xotcl::serializer

  1. … 20 more files in changeset.
- Implemented "Class info parameter" in Tcl, aliases for xotcl. Now both definition of parameters and setting of __parameter are in Tcl.

  1. … 6 more files in changeset.
- removed "[o exists varname]" from next scripting language

  1. … 6 more files in changeset.
- I created a first draft of the nx language manual, based on the new next::doc facilities. It is still incomplete, but demonstrates the use of next::doc for authoring code documentation.

To re-create the language reference (which is not yet integrated into

the build environment), run:

./nextsh tests/doc.xotcl

You will then find an output directory "NextLanguageCore" in your

/tmp/ directory.

- The next::doc comments which are sourced for generating the manual

can be found in generic/gentclAPI.decls and

generic/predefined.xotcl. I tried to add most comments to the

former, as the complexity of the predefined script does not comfort

documentation comments (and vice versa).

- Applied many fixes to the templates (based on the needs of the

language reference)

  1. … 5 more files in changeset.
Adding the interim logo

- Added a placeholder logo image, to replace the YUI one for the time being - Provided for giving some version information at either the project or package level

  1. … 1 more file in changeset.
- Fixed search box and autocompletion support (for packages and objects) - I allow for selecting/deselecting structural features set "private" ("deprecated" remains to be done) - I added the generation of links between documentation entities based on {{...}} markers. Any marker (code as well as links) can now be used in both description and parts sections.

- Fixed search box and autocompletion support (for packages and objects) - I allow for selecting/deselecting structural features set "private" ("deprecated" remains to be done) - I added the generation of links between documentation entities based on {{...}} markers. Any marker (code as well as links) can now be used in both description and parts sections.

- Adding basic support for subcommands (a @subcommand part type; formerly @variant) - Introducing comment reuse and cross-linkage along the class hierarchy upwards ("subclass of ...", showing inherited attributes and methods; using a @superclass attribute) - Amending the documentation of @param and @return with "type" information (checkoptions, constraints, defaults) - Showing both per-class and per-object methods - I now allow for inline- and out-of-line (block) code snippets in the description sections, based on wiki-like {{{...}}} marker annotation (same as in scaladoc2). - Adding support for newline representations in description sections (for a more convenient formatting). - Some bugfixes (e.g., @object-method did not work outside of an initcmd) - Started refactoring the entity tracing procedure (moving from [namespace import] resolution to mixin-based creation tracing)

  1. … 1 more file in changeset.
- Adding basic support for subcommands (a @subcommand part type; formerly @variant) - Introducing comment reuse and cross-linkage along the class hierarchy upwards ("subclass of ...", showing inherited attributes and methods; using a @superclass attribute) - Amending the documentation of @param and @return with "type" information (checkoptions, constraints, defaults) - Showing both per-class and per-object methods - I now allow for inline- and out-of-line (block) code snippets in the description sections, based on wiki-like {{{...}}} marker annotation (same as in scaladoc2). - Adding support for newline representations in description sections (for a more convenient formatting). - Some bugfixes (e.g., @object-method did not work outside of an initcmd) - Started refactoring the entity tracing procedure (moving from [namespace import] resolution to mixin-based creation tracing)

  1. … 1 more file in changeset.
- Added a first set of documentation templates, based on the the TemplateData engine and the YUI doc styles available from http://yuilibrary.com/downloads/ (see library/lib/doc-assets/*.tmpl.html) - Added a @project entity class, which will become the root concept in a documentation hierarchy. For now, it only serves for some auxiliary purposes when processing the doc templates. - Continued documenting the next::doc package for testing purposes.

    • -0
    • +162
    ./doc-assets/ac-js
    • -0
    • +242
    ./doc-assets/api.css
    • binary
    ./doc-assets/bg_hd.gif
    • -0
    • +44
    ./doc-assets/command.html.tmpl
    • -0
    • +116
    ./doc-assets/entity.html.tmpl
    • -0
    • +111
    ./doc-assets/object.html.tmpl
    • -0
    • +56
    ./doc-assets/package.html.tmpl
    • -0
    • +7
    ./doc-assets/reset-fonts-grids-min.css
    • -0
    • +7
    ./doc-assets/source.html.tmpl
    • binary
    ./doc-assets/yui.png
  1. … 1 more file in changeset.
- I made sure that the existing HtmlRenderer infrastructure remains functional - Added a simplistic templating machinery (see TemplateData), based on cascading [subst] calls in per-object evals (assuming the nonleaf mode) and a basic templating instruction set (i.e., "let", "for", as well as "?" representing if-elseif-else blocks and "include" for composing template fragments). This will help me to transpose the YUI doc templates more easily (and split them up into template fragments). Also, it will allow future documentation writers to provide custom templates or modifications of existing ones. This was somehow inspired by Kristoffer Lawson "templating engine" in his Spindle web framework, which is solely based on Tcl namespaces, however.

  1. … 1 more file in changeset.
- Removed @attribute parts and realise them as @param parts which are parts of @object parts - Renamed PartAttribute->get_part() to require_part() - The line scanner now stores all comment lines as list by using [split] at an early stage to improve the robustness when line strings are fed to list-specific commands.

  1. … 1 more file in changeset.
- Introduced a PartClass meta-class which seconds Part and its subclasses (for a uniform id generation etc.) - Removed the kludge around new_from_attribute(), there is now a canonical new(). - "scope" turned into a property of PartAttributes and, as such, of the association (slot) objects managing parts. this more closely resembles the idea of per-class and per-object interfaces. in turn, parts now contain a navigatable association to their managing part attributes (e.g., to resolve their scope). - Adding some basic exception-catching infrastructure too better differentiate between error conditions (style violation, invalid tags, arbitrary errors emerging from the parsing machinery). Adjusting and extending the test suite. - Simplified/generalised the parser's tag dispatcher; also, there is no a general @doc tag which allows to add documentation lines as tagged parts, rather than a distinct doc block - Removed the tagged_entity mechanisms and per-tag forwards on EntityClass - Documentation blocks may now contain intermediate space lines (by adding a space->text transition to the parsing spec). - Adding basic support to trace script sources from [package req] calls, needs to be polished and refactored

  1. … 1 more file in changeset.
- Renamed EntityFactory to EntityClass - Introduced PartAttribute for managing entity-part associations, they also protect against duplicate entries - Added NextAttribute (though it should fuse with parameter entities in the end) - Completed basic support for embedded (initcmd) and freestanding (script): This multi-stage processing introduces a precedence order between the commenting levels (script < initcmd < method bodies). - Renamed most entity classes using their tag equivalent (@object, ...) - Introduced offset feature for the comment line scanner (offsets are used to select embedded comment blocks, e.g., in initcmds or method bodies) - Parsing of arbitrary scripts is now realised in a child interp - Introduced qualified entity names (e.g., @attribute Bar#a1) and per-object scope (through a scope prefix in tags, e.g., @object-method) - Did some cleanup and extended the test suite

  1. … 1 more file in changeset.
Finished and tested the rewrite of the scanning&parsing front-end for the doc processor. Remains to be integrated with the intermediate @ notation (basics are already working)

  1. … 1 more file in changeset.