lib

Clone Tools
  • last updated 8 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
build-process: - replace make.tcl by the much simpler mkIndex.tcl: * Does not use pkg_mkIndex * Does not load binary files (problem for cross compiling) * Requires package provide with constant in one line.

  1. … 11 more files in changeset.
- remove obsolete code

nsf.c: - fix case, where NsfDStringPrintf() failed (when print llength including \0 was 1 byte longer than print buffer) - make sure, that the list kept for the cached parameter is just built from unshared objects; otherwise Tcl append will abort

nx.tcl:

- new package "nx::volatile"

- don't define configure parameter "-volatile" per default;

use "package req nx::volatile" instead

- don't define per method "volatile" per default;

use "::nsf::method::require ::nx::Object volatile" instead

- get rid of -volatile in nx.tcl and serializer

- update/extend regression test

  1. … 13 more files in changeset.
nx::traits: - handle ensemble methods correctly (use full method path for resolution) - add new regression tests for traits

  1. … 1 more file in changeset.
nsf.c: - change name of enumeratorConverterEntry to Nsf_EnumeratorConverterEntry, move it with NSF_ARG_* flags to tcl.h to make it available in derived modules using the converter - Added editor hints for a more uniform appearance

  1. … 44 more files in changeset.
- don't try to load nx when building pkgindex for a binary package (.so or dylib)

- added flag for verbosity

- prepare for providing nx as a tcl module (.tm file). this is just a preparation, since for testing, one cannot set up a path that prefers a local copy over a global installed one (the global tcl-site is preferred over the one specified in e.g. TCL8_5_TM_PATH)

  1. … 3 more files in changeset.
- keep packages versions from 2.0 and 1.0 disjoint

  1. … 28 more files in changeset.
- use tcl8.5 commands instead of 8.4 idioms

  1. … 5 more files in changeset.
nx::test: - use the standard configure interface for configuring instead of own version - changed from nx::Test to nx::test (user never has to know that nx::Test is a class).

- further release work

  1. … 35 more files in changeset.
Left a to-do in the nxdoc backend

Completed update of nxdoc for NX

  1. … 1 more file in changeset.
Adjusted nxdoc for the recent changes to NSF/NX

  1. … 1 more file in changeset.
nx::test: - deactivate calling overhead calculation, since this is not reliable (sometimes larger than the call).

  1. … 1 more file in changeset.
- nx::test: show msg at start of test file

- traits: added ability to trun on verbosity for traits by using nx::configure trait-verbosity on|off

  1. … 1 more file in changeset.
- renamed initblock parameter from __initcmd to __initblock - renamed nsf::configure parameter from "keepinitcmds" to "keepcmds" - saving "keepcmds" in an associative array named "__cmd(/parameternName)" to allow saving of multiple parmeters with less nameclash danger (when application stays away from variables stating with double underscore)

  1. … 17 more files in changeset.
nx.tcl: - removed "info is .." since it might raise more questions than it solves

  1. … 8 more files in changeset.
Traits: - changed from traits-as-objects to traits-as-classes. This allows for higher orthogonality of traits and class definitons and allows in principle traits for object-specific methods (not fully implemented/tested) - fixed property/variable inheritance in traits.

  1. … 4 more files in changeset.
- C-code Generator: added "-typeName" for enumeration types that allows for disambiguation of enumerations with different argument names. Before that, the argument name determined the c-type of the enumeration. Therefore it was not possible to use argName "-type" for two different functions with a different list of enumerators.

- changed "-methodtype" to simply "-type" in

/obj/ info methods ... ?-type all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ...

/obj/ info object methods ... ?-type all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ...

/obj/ info lookup methods ... ?-type all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ...

  1. … 14 more files in changeset.
- nx-pp.tcl: fixed changed accessor handling, added cget to highlight words

Method and configure parameter reform, Part 3: - added

/cls/ info lookup variables -> list of handles

/obj/ info lookup object variables -> list of handles

/obj/ info variable definition|name|parameter /handle/

- nx.tcl: added forward compatible scripted implementation of "lmap"

- nsf.c: handle names for private slots in pattern provided to AddSlotObjects(),

used e.g. in "info lookup slots /pattern/"

  1. … 7 more files in changeset.
Method and configure parameter reform, Part 2: In order to streamline the interface further, we tried to follow the idea to use "... info /plural word/" to obtain a set of handles, and then a separate call to obtain the details. Therefore, we replaced

/cls/ info slot objects

/cls/ info slot definitions

/cls/ info slot names

/obj/ info object slot objects

/obj/ info object slot definitions

/obj/ info object slot names

/obj/ info lookup slots

by

/cls/ info slots ?-type /type/? ?-closure? ?-source all|application|baseclasses? ?/pattern/?

/obj/ info object slots ?-type /type/? ?/pattern/?

/obj/ info slot definition /obj/

/obj/ info lookup slots ?-type /type/? ?-source all|application|baseclasses? ?/pattern/?

  1. … 9 more files in changeset.
- parametersyntax: make placeholders explicit

  1. … 4 more files in changeset.
- update to new namings

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. … 41 more files in changeset.
quote filename in content disposition

- protect trf against leading dashes