nsf

Clone Tools
  • last updated 14 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- NSDeleteChildren: delete objects before classes - NSDeleteChildren: delete here aliases as well - fix potential crash when "next" is called from a non-proc frame.

- fixed bug in xotcl 2.0 "info forward" - extended regression test

Accomplishments: - Completed a first version of the sandboxed (partial) evaluation of Tcl source artifacts (packages, script files, C extensions) based on a dedicated child/slave interp environment: see ::nx::doc::Sandbox; the test suite and the test documentation builts run on it. - Based on this infrastructure, we can now generate a snapshot of a program's structure to be documented (and contrast it to the explicitly documented structure). - Added simplistic css sprites for visualising the doc entity status (extra, missing, mismatch, complete); see also library/lib/doc-assets/status.svg and library/lib/doc-assets/status.png - The entity status is printed optionally along with the print name of an entity - Added switch-like parts to represent properties of doc entities: @deprecated, @stashed, @c-implemented, @syshook. The implementation and use of ::nx::doc::SwitchAttribute should be reviewed after having figured out how to proceed using "switching" objparams. - I provide a multi-property dispatcher as doc-syntactic sugar and for mere convenience: @property

Various:

- Corrected some div-boxing mess in the templates

- Added a filtered helper to process entity collections

- Made the mixin layer infrastructure more symmetric (a revoke operation).

- Added tracers for ::nsf::method and ::nsf::alias (remains to be completed)

- Renamed ::nx::doc to ::nx::processor and turned it into another

mixin layer to trace the doc entity creation in e.g. readin()

- Companion (*.nxd) files: Revised the handling of companion

files. Temporarily moved generic/nsf.nxd in the top-level

directory. We need to find a permanent place as its location is

currently derived from the location of the shared extension. A

candidate is doc/ but this is not linked to the shared extension

location at all.

- processor.readin() now returns a collection of entities created

during its execution.

- Improved robustedness and orthogonality: destroy hooks; the

tag-dispatcher can now handle empty comment lines; when placing NSF

object tracer, we now use the freshly added introspection of an

object system's method aliases.

    • -7
    • +5
    /library/lib/doc-assets/class.html.tmpl
    • -1
    • +1
    /library/lib/doc-assets/entity.html.tmpl
    • -3
    • +4
    /library/lib/doc-assets/method.html.tmpl
    • -3
    • +5
    /library/lib/doc-assets/package.html.tmpl
    • binary
    /library/lib/doc-assets/status.png
    • -0
    • +405
    /library/lib/doc-assets/status.svg
    • -331
    • +1007
    /library/lib/doc-tools.tcl
- Converted migration guide to asciidoc - Overhaul of serveral sections in asciidoc - Developed styles for nx for migration guide (.css and source-highlight)

    • -1484
    • +3695
    /doc/next-migration.html
    • binary
    /doc/next-migration.txt
- Don't allow to call objects as methods (for the time being) via absolute names

- fix typo

- follow Tcl nameing convention (uppercase functions)

- make handling of redefinitions in system methods more robust

- improve robustness of varresolver for unconfigured objects

Merge branch '2.0.0-develop' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/xotcl into 2.0.0-develop

Conflicts:

TODO

- Fixed switching between INACTIVE_MIXIN frames to ACTIVE_MIXIN frames - Extended regression test

- don't leave error message when __default_superclass (or __default_metaclass) is not set

- rebuild pkgIndex.tcl more eagerly - added error handler to pkg_mkIndex when called via "make libraries-pkgindex" * just show warning and errors when rebuilding pkgIndex files * stop make in case of errors in pkg_mkIndex

- added mode-hint for Emacs

    • -0
    • +1
    /library/xotcl/library/lib/makeDoc.xotcl
- remove CVS tag

- added regression test for forwarder and returns

- nx: added "-returns" to forwarder

- remove verbosity

- minor updates of the migration guide

- typo in TODO

- changed returns syntax from '->' to '-returns'

- xotcl2: fixed and completed results of "info instforward" and "info forward"

Please enter the commit message for your changes. Lines starting

- serializer: fixed handling of nsf::configure options

- nx.tcl: removed debugging output - nx.tcl: added syntactic sugar to "method" and "alias" for return value checking. One can write now: Class create C { :public method foo {a:int b:int} -> int { return [expr {$a + $b}] } } - extended regression test

- xotcl2.tcl: added empty namespace eval to make package indexer happy

- small cleanup

- Conditionally disabling redefine protection (based on the presence of a global var ::nsf::bootstrap) failed due to the result flag not being set to TCL_OK in this case. - Adding a (redundant) [package provide nsf /version/] to the ifneeded script in nsf's pkgIndex.tcl. Background: [load] is only executed once (leaving aside [unload]) for a given interp. Hence, the initialization function and its Tcl_PkgProvide() call are only performed once. A subsequent [package forget] and [package req] barfs because the package version information is removed internally upon [package forget]:

"attempt to provide package nsf 2.0.0 failed: no version of package

nsf provided"

The Tcl docu provides hints on this requirement (for C

extensions); see man for [package provide]:

"[package provide] is typically invoked once as part of an ifneeded

script, and again by the package itself when it is finally loaded."

Note that most C-extension packages (sqlite, tdom) do not meet this

requirement.

- provide a more explicit way to handle resourcing after a "package forget" in the info methods (similar to Stefan's suggestion).

- keep DEVELOPMENT macro

- changed relation handling by evaluating the relationcmd in the parent context to keep evaluation order. - extend introspection "nsf::configure objectsystem": the command returns now all system methods in the syntax of nsf::createobjectsystem - "nsf::createobjectsystem" creates now a warning when an existing objectsystem is redefined and ignores the new definition attempt. This was done with the purpose to allow "package forget nx; package require nx" - Allow overwriting of redefine protected method during bootstrap to ease "package forget nx; package require nx" - forward had just "-objscope", no general "-frame method|object". Since forwarder have client data, they always push a method frame. So, the situation is different to nsd::alias and ::nsf::dispatch. Therefore, the flag "-objscope" was renamed to "-objectframe" to provide better consistency with "-frame object" - fixed bug, where error handling of invalid options in ForwardProcessOptions() could lead to a crash - return forwardoption "-earlybinding" via instrospection - extended regression test