nsf

Clone Tools
  • last updated 13 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- serializer: * pertain perobjectdispatch and keepcallerself in serializer * extend regression test

nsf.c: - generalize stack monitor by handling growing and shrinking stacks - refactor into funciton CheckCStack()

- serializer: * make [::Serializer deepSerialize -ignoreVarsRE "" $o] behave like [::Serializer deepSerialize $o], since learn@wu depends on that, and a value for ignoreVarsRE of empty looks more like an omitted value than a regular expression, that should match everything. * extended regression test

- extended regression test

- added compile macro NSF_STACKCHECK to provide stack monitoring/debugging (especially useful for multi threaded programs, where stack is more limited)

- make ::nsf::log more robust for aolserver/naviserver, since ::ns_log is not always around when an output is needed

- don't hide call to make.tcl

- protect serial generation for parameters via mutex

- fix compilation when compiled without threads (many thanks for r.zaumseil for noting this).

- tcl86.test: better implementation of method "each", cleanup and extension of enumerator tests

- extended regression tests for yield - implemented "next" for ruby-like enumerators (each needs still more work)

- pass property name to slot "initialize" method to conform with the interface to "assign", "get" ... (all these receive the property name as well) - allow slot "initialize" method to be protected (handled similarly to "init")

nsf.c: - added object parameter option "slotinitialize" - renamed object parameter option "invokesetter" -> "slotassign" - call slot.assign instead of setter of object - removed restriction on nosetter/invokesetter: nosetter can be used in connection with slotassign - added regression test for slot.initialize

- Fixed a bad interaction between Tcl's apply (pushing lambda frames) and the variable resolvers. The variable resolver was not able to resolve variables, while the command resolver was still working correctly. - Extended regression test

Improve wording in instructions

Improve comments

documented dependencies between configure flags and feature activation cpp macros

- improve error message to indicate, that nsf refuses to overwrite (redefine) some cmds

- don't allow method to overwrite child object - extended regression test - documented new feature as incompatibility with XOTcl 1

- don't allow object creation to overwrite non-object cmds (e.g. procs)

- improve debug line

- library/lib/nxdoc-xowiki.tcl: Finished and polished the xowiki backend for nxdoc. Some tests regarding relative paths and the treeview generation are pending ... - library/lib/nxdoc-xowiki.tcl: Use the built-in base64 facility if running under Tcl 8.6 - Due to re-introducing nested-object-as-method semantics lately, nxdoc started stumbling over name conflicts between nested entity hierarchies (i.e., the entity object representing "/cls/ class info class" ...) and equally-named introspection calls on such entities (e.g., a "info class" call). I made these calls more robust my using -system dispatches; which is fine as long as we do not have sth. like "/obj/ info eval". Generally speaking, the risk of such naming conflicts discredits the use of object nesting in nxdoc; should eventually be revised. Or, as work-around: Using a filter on Entity instances to protect/redirect critical calls.

    • -35
    • +354
    /library/lib/nxdoc-xowiki.tcl
- tests/serialize.test: Added some basic regression tests, in particular to challenge the filter options provided by Serializer->deepSerialize() and Serializer->all(). - Included a test for commit 595e6a2. - Along the line, two minor issues where fixed: 1) Set Serializer->ignore() to public, otherwise the various external message sends to this method would fail; 2) Object-serialize() did not distinguish between serialising a per-object or per-class container properly; as a consequence, per-object containers were not restored at all. Add a test covering this.

    • -0
    • +167
    /tests/serialize.test
- library/serialize/serializer.tcl: Due to the split between serializer and object system serializer, the ignore settings (passed as object variables, i.e., ignoreVarRE) got lost. This is fixed now ...

- treating incompatible forwarding to slot vs. slot option noaccessor - extended regression test

- use Tcl's EXTERN macro instead of "extern"

update release procedure

- mv next-tutorial (source, images) into own subdirectory doc/next-tutorial/

    • binary
    /doc/next-tutorial/languages.png
    • -0
    • +4001
    /doc/next-tutorial/next-tutorial.html
    • -0
    • +2309
    /doc/next-tutorial/next-tutorial.txt
    • -0
    • +638
    /doc/next-tutorial/object-class-appclass.graffle
    • binary
    /doc/next-tutorial/object-class-appclass.png
    • -0
    • +2498
    /doc/next-tutorial/object-parameter.graffle
    • binary
    /doc/next-tutorial/object-parameter.png
    • -0
    • +420
    /doc/next-tutorial/object-stack.graffle
    • binary
    /doc/next-tutorial/object-stack.png
    • -0
    • +719
    /doc/next-tutorial/per-class-mixin.graffle
    • binary
    /doc/next-tutorial/per-class-mixin.png
    • -0
    • +722
    /doc/next-tutorial/per-object-mixin.graffle
  1. … 27 more files in changeset.
- Bump version number of head to 2.0b4

improve wording