Makefile.in

Clone Tools
  • last updated 4 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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

  1. … 43 more files in changeset.
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

  1. … 2 more files in changeset.
Property reform part 1:

- disallow protection modifiers for "properties" and

add new flag "-accessor" to "property" and "variable"

This changes definitions like

Class create C {

:property {a a1}

:public property {b b1}

:protected property {c c1}

:private property {d d1}

}

to

Class create C {

:property {a a1}

:property -accessor public {b b1}

:property -accessor protected {c c1}

:property -accessor private {d d1}

}

since "properties" are always public accessible

over the "configure" and "cget" interface, but the

accessors methods might not be public. The value of

the accessor might be also "none" (specifying explicitely

that no accessor is wanted) or "", which means: use the default.

Same holds for "variable"

- disallow parameter option "incremental" and change it to a flag

of the property or variable. The motivation for this is due to

the fact, that "incremental" is a property of the accessor, and

not of the value.

old:

Class create C {

:property foo:int,incremental

:variable bar:int,incremental

}

new:

Class create C {

:property -incremental foo:int

:variable -incremental bar:int

}

- disallow "public class property" and friends since these are not needed

- removed parameter property "noaccessor"

- removed "nx::configure defaultPropertyCallProtection" and

method hook "__default_property_call_protection"

- introduced "nx::configure defaultAccessor" and

method hook "__default_accessor"

- for the time being, "defaultAccessor" is "public" for NX and XOTcl,

will be changed to "none" in NX

- extended regression test (new file properties.test)

  1. … 16 more files in changeset.
- renamed testlog file, remove it on "make clean"

  1. … 2 more files in changeset.
nsf.c: - made argument of cget required

nx.tcl:

- added Tk-style methods "configure" and "cget"

- added additional regression test set for cget and configure

  1. … 7 more files in changeset.
nx::test: - added summary at the end of "make test" via log file - updated .gitignore

  1. … 4 more files in changeset.
First examples, supporting text, and Makefile integration

  1. … 1 more file in changeset.
- added design study ruby-mixins.tcl to example-docs and regression test

  1. … 3 more files in changeset.
- don't hide call to make.tcl

Improve wording in instructions

- 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.

  1. … 2 more files in changeset.
Some initial changes for providing a valgrind target

- restructured directories, added configure options, some more cleanup

  1. … 16 more files in changeset.
- run FilterInvalidateObjOrders() only, when filters are/were defined

  1. … 2 more files in changeset.
- updated "make tar"

  1. … 8 more files in changeset.
- make sure to use "XOTcl 2.0" instead of just XOTcl in "package req" to avoid confusions due to beta state - remove more obsolete and untested files

  1. … 56 more files in changeset.
- add .tcl to nxdocIndex to make it recognized as Tcl file (pkgIndex has as well a .tcl extension)

  1. … 1 more file in changeset.
- remove currently unsupported and untested .xotcl files, also c-extensions of the old binary interface. Some of these package might come back later with tests for nx or xotcl.

  1. … 129 more files in changeset.
- added example file for container classes

  1. … 2 more files in changeset.
- added tk-spread and tk-locomotive to example scripts

  1. … 8 more files in changeset.
- nx-traits: * use "info methods -closure" instead of instantiating a class at trait-insertion time * added trait as package nx::callback

- example scripts: added tk-mini and tk-horse-race

  1. … 11 more files in changeset.
- library/lib/nxdoc-core.tcl: Major refactoring accomplished: Managed to refactor the validation code into a separate module, obtain a better separation between the backend implementations, ... Relocate the validate() method implementations into the Validator mixin layer. Validation (the validate cascade) is now triggered from within the mixin layer ... further improves the separation of concerns in nxdoc ... Also, moved frontend code into two distinct Tcl packages: We now distinguish between the DC ("Documentation Comments") and the XODoc frontends. I also remastered the entire frontend handling and disentangled the various concerns: specifying documentation sources, 1st- and 2nd pass handling, etc. - Support for document multiple Tcl packages per NXDoc project. Multi-package support, plus validation mode for packages, adding missing files to the repo - tests/doc.test: General cleanup, deactivated some tests for the time being (till the DC interface settles) - library/lib/nxdoc-core.tcl: Removed dead comments and dead codex - YUIDoc template suite: Added Monikas recent adaptations/extensions. I still have to check the resource paths for the xowiki backend, which are most probably broken for now. - Adjusted TODO for accomplished tasks.

  1. … 21 more files in changeset.
- add traits package and example scripts

  1. … 5 more files in changeset.
- nsf.c - added experimental parameter option noleadingdash - additionalal regression test file method-parameter.test - provide selective error messages for unknown nonpos args

  1. … 11 more files in changeset.
- change permissions back

- removed escaped reported config variable for cflags, since not portable

  1. … 2 more files in changeset.
build-environment: * make configure.in Makefile.in more in line with the TEA sample app (removing leftovers from prior versions of TEA) * remove GNU-Makefile-isms from Makefile.in

  1. … 5 more files in changeset.
- Makefile.in: Added two new targets: [make yuidoc-dev] and [make xowiki-dev]; both will be generate the documentation including validation data and will make proper use of the nxdocIndex restrictions. - apps/utils/nxdoc: Some minor fixes/additions - library/lib/nxdoc-core.tcl: Completed the nx::doc::mkIndex helper

  1. … 2 more files in changeset.
- Makefile.in: Added file-level deps to the [make yuidoc] and [make xowiki] sub-targets.

- apps/utils/nxdoc: Created a first version of a command-line script around the nxdoc machinery, for Makefile integration. - Makefile.in: Added two experimental nxdoc make-targets: [make yuidoc] and [make xowiki]. In addition, provided for a doc-specific cleanup target: [make cleandoc]. Also changed the way TCLLIBPATH is initialised for makefile runs, to preserve the surrounding environment settings. - tests/doc.test: Deactivated obsolete sections; actual cleanup is pending. - Refactored nxdoc code fragments into sub-packages, namely the html and xowiki rendering components; renamed some file and directory. - Some necessary adjustments to make nxdoc work with the new property/variable nomenclature; spotted some misbehaviour of [namespace import] when running under 8.6b2 (to be investigated; see XOTcl-lanfRef.xotcl)

  1. … 82 more files in changeset.