nsf

Clone Tools
  • last updated 16 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- simplified test exist code (on errors in regression test)

- generic/nsf.c: [current calledclass] used to return a literal "NULL" for cases of no active callstacked class. I fixed this, with [current calledclass] now reporting an empty string in these cases. - library/lib/test.tcl: Adjusted the explanations along the exit/return fix - tests/introspection.test: Added some basic testing of [current calledclass]

    • -0
    • +49
    /tests/introspection.test
- make sure that a failing regression test stops make; otherwise, errors can be easily missed

- library/lib/test.tcl: Stop using [exit] to interrupt test suite runs upon failure conditions. This led to unwanted garbage due to the non-returning character of [exit]. We now resort to a [return] variant which gently shuts down the NSF machinery before stopping. - TODO: marked dispo + exit/initcmd issues as done ...

fix typo

* added flag "-keepvars" to nsf::finalize for handling cases in interp.test * reactivated tests and simplified in interp.test

* re-established assertion checking for deleted cmds in cmd lists

- nsf.c: * change mem-count statistics from per-interp to per-thread * generalized GetObjectFromCmdTable() to ReverseLookupCmdFromCmdTable() * changed GetObjectScreenedByCmdName() to GetHiddenObjectFromCmd() * modularized interp.test to locate potential problems faster * partly simplified interp.test syntactically * deacivated a few tests in interp.test for the time being (runs commands after finalize)

- generic/nsf.c: After several takes, adding support for basic handling of hidden and re-exposed objects in the sense of [interp hidden|hide|expose]. I wanted to make sure that NSF does not crash upon basic hiding/exposing operations (see tests/interp.test) and guarantees that hidden/re-exposed objects are properly handled when cleaning up object systems, i.e., the destructors are called and physical deletion is performed. [interp hidden|hide|expose] is challenging for NSF (as well as TclOO) because they way it is implementing effectively modifyies command names *without* providing any calling back to trace these changes (as for renames). As a consequence, object and command names start to diverge once an object has been hidden or re-exposed. As the changes affect the cleanup machinery in ObjectSystemsCleanup() & friends, I verified for leaks by running valgrind; no leaks were found running destroy.test and interp.test. - tests/interp.test: A test suite that covers basic scenarios of hiding and exposing objects. - Makefile.in: Registering interp.test with make env

    • -0
    • +465
    /tests/interp.test
- nsf.c: * fixed name path in unknown called from ensemble methods (erroneous colon could show up) * added -system flag to: - ordinary dispatch (e.g. "o1 -system info vars") - nsf::object::dispatch with plain methodName - nsf::my (mutual exclusive with -local)

- added flag "-system" to ObjectDispatch

- nsf.c: * added preliminary/minimal "private" support * private can be called via "my -local", direct dispatches are forbidden, ignored in mixins and next; * extended regression test

- documenting current behavior * test method-handle + next + dispatch (unwanted) * test "my -local" vs my + method handle * test "my -local" vs dispatch + method handle

- nsf.c: * fixed "nsf::my -local ..." (never worked in nsf) * added regression test

- nx.tcl: * made "/cls/ class ..." using ensemble methods and therefore extensible. * This introduces some definition order dependencies in nx.tcl and some redundancy ("class filter" and "class mixin"), but maybe this can be eliminated.

- nsf.c: * fixed next path computation in cases where command handles are used to refer to methods in the current mixin order. * extended regression test

* added ./apps/utils/source-doc-beautifier.tcl * fixed the file-handle output/formatting in rosetta-serialization.tcl; using proc "!"

    • -0
    • +85
    /apps/utils/source-doc-beautifier.tcl
- added example rosetta-unknown-method.tcl

- the added examples

    • -0
    • +43
    /doc/example-scripts/rosetta-abstract-type.tcl
- added example rosetta-abstract-type.tcl

- tests/tcloo.test: Added a prototype implementation of TclOO's export|unexport feature, as a mere test suite. - Makefile.in: Registered tests/tcloo.test

    • -0
    • +270
    /tests/tcloo.test
- new folder example-scripts * Added 8 of the rosetta examples and one classical OTcl example * all examples are tested via regression test * all examples are pretty-printed via asciidoc

    • -0
    • +1091
    /doc/example-scripts/bagel.html
    • -0
    • +185
    /doc/example-scripts/bagel.tcl
    • -0
    • +791
    /doc/example-scripts/rosetta-classes.html
    • -0
    • +26
    /doc/example-scripts/rosetta-classes.tcl
    • -0
    • +834
    /doc/example-scripts/rosetta-constraint-genericity.html
    • -0
    • +808
    /doc/example-scripts/rosetta-delegates.html
    • -0
    • +50
    /doc/example-scripts/rosetta-delegates.tcl
    • -0
    • +840
    /doc/example-scripts/rosetta-polymorphism.html
  1. … 5 more files in changeset.
- nx.tcl: * added parameter option incremental for "property" and "variable" * removed the nonpos argument "-incremental" from "property" and "variable" * adapted regression test for these cases

- nx.tcl: * added "/obj/ info slot definition" * added "/obj/ info slot name" * added "/obj/ info properties" (alias to "/obj/ info slot definition") * extended regression test

- merged one more change

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:

library/lib/doc-tools.tcl

- nx.tcl * renamed "info parameter name" to "info parameter names" (since it returns a list of names) * renamed "info parameter name" to "info parameter names" (since it returns a list of names) * renamed "info slots" to "info slot objects" * additional method "info slot definition" * additional method "info slot name" * additional method "info properties" (alias to "info slot definition") * removed "info parameter slot" * use term "noaccessor" and "noconfig" to deactivate accessors or object-parameters in property definitions * don't show slots with noconfig in "info parameter names" * don't show slots with noconfig in "info parameter definition" * renamed slot property "configparam" to "config" * renamed "::nsf::methods::class::info::slots" to "::nsf::methods::class::info::slotobjects" * additional public method ObjectParameterSlot.getPropertyDefinition * updated and extended regression test

- nx.tcl * renamed "attribute" to "property" * renamed "defaultAttributeCallProtection" to "defaultPropertyCallProtection" * renamed "nx::Attribute" to ""nx::VariableSlot" * renamed "BootStrapAttributeSlot" to "BootStrapVariableSlot" * renamed "createBootstrapAttributeSlots" to "createBootstrapVariableSlots" * removed method attributes * implemented old attributes definition in xotcl2 as method "parameter"

    • -107
    • +108
    /library/lib/doc-tools.tcl
    • -11
    • +11
    /library/mongodb/example-nx-bi.tcl
    • -12
    • +12
    /library/mongodb/example-nx-reference-many.tcl
    • -13
    • +13
    /library/mongodb/example-nx-reference-one.tcl
  1. … 18 more files in changeset.
- minor cleanup

- library/lib/doc-tools.tcl: Ported over the nxdoc core to reflect recent changes (i.e., modified attribute() signature and honouring that ::nsf::method::setter|forward are expected to return the method handle)