nsf

Clone Tools
  • last updated 6 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- handle cyclical superclassclass dependencies during object system finalize - extend regression test

Adding a test case and a preliminary fix for the parameter option interactions

nsf.c: - ignore in internall calls to "dealloc" protection settings - handle cyclical class dependencies during object system finalize - extend regression test

- library/nx/nx.tcl: Following the code review, implemented a first scheme for handling traces in setCheckedInstVar. This gives us consistent behavior for defaults and traces (valuechangedcmd) across classes and objects. - tests/parameters.test: Adjusted the relevant tests - Pending: setCheckedInstVar currently uses ::nsf::is to validate the value (e.g., default value) to be set. However, it might get passed parameter options which do not fit the NSF_DISALLOWED_ARG_VALUECHECKED filter.

- define method "proc" of ::xotcl::Attribute in terms of ::xotcl::Object proc

Merge branch 'master' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/nsf

- make sure to have gcc branch hints in generated code

- honor default type in "info slot names"

- Addressed a number of issues in the NX slot infrastructure (which revealed themselves when running Mark's BusinessActivities implementation in XOTcl2 mode): - generic/nsf.c: Initcmd blocks (as set for registering per-class slot traces) were subjected to argument checks causing unexpected behavior (e.g., attempts of unboxing initcmds as Tcl lists or of checking initcmds against value types). This was fixed by exempting NSF_ARG_INITCMD params from argument checking in ArgumentCheck() explicitly. - library/nx/nx.tcl: For per-class parameters, the use of valuechangedcmd effectively overruled the default value specified (simply because the generated initcmd holding the trace statements took the place of the default value). While for defaultcmd and for valuecmd the parallel use of default is forbidden, the valuechangedcmd semantics allow for specifying a default, in principle. This was fixed by providing a default-setting statement in the initcmd. - tests/parameters.test: Added tests to cover the above (and beyond). - library/xotcl/library/xotcl2.tcl: Extended the backwards compatibility of the hybrid XOTcl2/NX slots infrastructure to the XOTcl 1 interface: This includes support for inline -proc statements and instvar. This compat level corresponds to the slot interface as documented (by examples) in the XOTcl language ref and the manual. - library/xotcl/tests/slottest.xotcl: Added tests for the above compat enhancements.

    • -9
    • +24
    /library/xotcl/tests/slottest.xotcl
The BA examples are operative

- allow instance property inheritance for traits

Most issues resolved, however, the ordering of default vs. traces is pending

    • -9
    • +24
    /library/xotcl/tests/slottest.xotcl
Don't recommend to use "configure" method for chaning class/superclass

- Replaced errorneous check using the object-specific rather than the class-specific options in the query mode of ::nsf::relation with class-filter. This prevented [::nsf::relation /cls/ class-filter] from returning any filter info. As a consequence, the incremental interface of the filter slot failed (e.g., [/cls/ filter add aFilterProc] effectively reset the class-filter cmd list instead of adding to it). Thx are due to Markus Moldaschl for reporting the issue. - Aligning class-filter and object-filter behaviour on errors during filter additions to the state-preserving behaviour of object-mixin and class-mixin. - Adding basic tests on object-filter/class-filter (::nsf::relation, filter slot interface) and specific ones to cover the above issues.

Adding basic tests on object-filter/class-filter; and specific ones to cover the class-filter issue

Aligning class-filter and object-filter behaviour on errors during filter additions to the state-preserving behavior of object-mixin and class-mixin

First examples, supporting text, and Makefile integration

    • -0
    • +276
    /doc/example-scripts/linearisation.tcl
Replaced errorneous variable check which prevented [::nsf::relation /obj/ class-filter] from returning any filter info

- added a SlotContainerCmdResolver() to avoid interaction of slot names with names of callable tcl commands. Without the SlotContainerCmdResolver() the call to "list" in a property named "list" leads to a call to the container object ::Test2::slot::list instead to the intended ::list. The implementation is not perfect, since it ignores the namespace path inside the slot container. - added regression test.

adding gcc helper files to ignore list

cosmetical documentation changes

    • -14
    • +4
    /doc/example-scripts/ruby-mixins.html
nsfShadow.c - bump MethodEpoch when a tcl ::rename command happens on a nsf method (which might be cached in a Tcl_Obj) This fixes a crash reported by Arthur Schreiber nsf.c: - make NsfInstanceMethodEpochIncr() and NsfObjectMethodEpochIncr() accessible from all files using nsfInt.h - remove experimental code (backslash escaping for "," in parameter option parse

- remove dependency of generated stub file from nsfInt.h

- fix compilation when dtrace is activated (missing parthesis, many thanks to Victor Guerra for noticing)

- document private properties in tutorial and migration guide - improve wording in documenting - extend regression test

    • -51
    • +128
    /doc/next-tutorial/next-tutorial.html
    • -8
    • +59
    /doc/next-tutorial/next-tutorial.txt
- configure, configure.in: Under win, the CLEANFILES missed a pattern for object files - nsfInt.h: Based on the BUILD_nsf convention, the internal header introduced a TCL_STORAGE_CLASS macro placing the dllimport attribute (under Win/MinGW builts). As a consequence, shared and stub builts ended up with function declarations annotated with dllimport (which for these cases is either unnecessary or even breaks builts because the dllexport counterpart is missing, obviously). As nsf.h includes a sane DLLIMPORT/DLLEXPORT handling (copied over from tcl.h), I simply removed the special macro handling from nsfInt.h. - NsfProcStub(): Use the EXTERN macro rather than extern directly

- added documentation for "/obj/ info name" to migration guide and .nxd file - adding more comments to examples in migration guide

- added design study ruby-mixins.tcl to example-docs and regression test

    • -0
    • +1133
    /doc/example-scripts/ruby-mixins.html
    • -0
    • +214
    /doc/example-scripts/ruby-mixins.tcl
- minor polishing

- change "#!/bin/env" into "#!/usr/bin/env"

    • -9
    • +11
    /doc/next-tutorial/next-tutorial.html