nsf

Clone Tools
  • last updated 8 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- moved NsfConfigEnabled from nsf.h to nsfInt.h (no need to be part of the public interface) - moved NSF_ARGPARSE_* macros to nsf.h (since arg parser is public and uses these flags)

Object-method Reform: - changed interface to object specific commands by requiring an ensemble named "object". The rational behind is essentially to use always the same info command to retrieve object specific methods, no matter whether these are defined on a plain object or an a class object (does not break the "contract" what e.g. "info method" returns).

Now we define methods via:

/cls/ method foo {args} {...body...}

/cls/ object method foo {args} {...body...}

/obj/ object method foo {args} {...body...}

Similarly, aliases, forwards and mixins are defined, e.g.

/cls/ mixin add ...

/cls/ object mixin add ...

/obj/ object mixin add ...

/obj/ require object method ...

The same change propagated as well to the "info" method.

Now we have:

/cls/ info methods ...

/cls/ info object methods ...

/obj/ info object methods ...

Similar, the object parametererization uses

/cls/ create obj -object-mixin M

/cls/ create obj -object-filter f

/metacls/ create cls -mixin M1 -object-mixin M2

/metacls/ create cls -filter f1 -object-filter f2

- as a consequence,

a) "/cls/ class method ...",

"/cls/ class alias ...",

"/cls/ class forward ...",

"/cls/ class filter ...",

"/cls/ class mixin ...",

"/cls/ class info ..."

"/obj/ class method require method ..."

"/obj/ class method require public method ..."

"/obj/ class method require protected method ..."

"/obj/ class method require private method ..."

were dropped

b) "/obj/ method ....",

"/obj/ alias ....",

"/obj/ forward ...."

"/obj/ filter ...."

"/obj/ mixin ...."

"/obj/ info method*"

"/cls/ create obj -mixin M"

"/cls/ create obj -filter f"

"/obj/ method require method ..."

"/obj/ method require public method ..."

"/obj/ method require protected method ..."

"/obj/ method require private method ..."

were dropped

- added package nx::class to allow optionally the "class" notation

"/cls/ class method ..." (and friends, see (a)), and

"/cls/ class info ...

- added package nx::plain-object-method to allow optionally plain method

b) "/obj/ method ...." (and friends, see (b))

- add support to slots to use ensemble methods as setters

    • -11
    • +11
    /doc/example-scripts/traits-composite.tcl
    • -9
    • +9
    /doc/example-scripts/traits-simple.tcl
    • -0
    • +108
    /library/nx/class.tcl
  1. … 29 more files in changeset.
Merge branch 'master' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/nsf

- allow explicit unsetting of -per-object flag in 0-argument -flag=value notation

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

- reduce variable scope

- update documentation

Improved wording in comment on NsfConfigEnabled()

Irgh. Had forgotten about two-level stringification to provide configuration macro expansions as strings in NsfReportVars()

Adding a helper macro NsfConfigEnabled() to test for active/inactive build-time configurations; rewrote NsfReportVars() accordingly. This makes NSF compilable under MSVC (VC11). Thanks are due to Stephan Adelsberger for reporting the issue.

- ByteCompiled(): fix indentation of preprocessor #if statements - ByteCompiled(): ensure result setting in case HAVE_TCL_COMPILE_H is not defined

- improve wording in rosetta example

- improve wording in rosetta example

more cleanup

- reduce variable scopes

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

- remove EXTERN declarations from function definitions

- Update to latest TEA. - Follow new naming convention for auto-tools (using configure.ac)

silence compiler warnings

- replace Tcl_GlobalEval by Tcl_Eval, since Tcl_GlobalEval will be removed in futures versions of Tcl

Checked built and test suite against Tcl 8.6rc2 (core-8-6-0-rc) under MinGW32; removed temporary fix for bug #3401422

quote filename in content disposition

- replace nx::configure option defaultPropertyCallProtection by defaultAccessor

- protect trf against leading dashes

- deactivate tests in library file

- add additional "convertto" when generating zip files from strings

The asciidoc-related configuration artifacts, especially for Tcl/NSF-specific code highlighting, are now contained in the source distribution and integrated with the respective make targets. Besides a running asciidoc installation, there is no further configuration need. Tested with asciidoc 8.6.8

    • -0
    • +2
    /apps/utils/asciidoc.conf
    • -0
    • +5
    /apps/utils/source-highlight-with-pp
Extending test case to cover slotassign issue

Adding a test and a temporary fix for the ::nsf::is issue in setCheckedInstVar

Make sure to NS_EXPORT Ns_ModuleVersion for people using still the old-style aolserver module.