slottest.xotcl

Clone Tools
  • last updated 13 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- make version management simpler and freeze XOTcl 1.* versions In order to avoid bad interactions between XOTcl 1.0 and XOTcl 2.0 the version dependency in 1.0 where changed to "package require -exact ... 1.0" where possible, and the provides where upgraded to 1.0 in most cases

  1. … 70 more files in changeset.
- fix for the bug reported by Neil Hampton - added regression test

  1. … 2 more files in changeset.
- moved slottest to library/xotcl - added new Makefile target test-xotcl - finished test migration for now

  1. … 3 more files in changeset.
- changed "Serializer.xotcl" to "serializer.tcl" (package name from xotcl::serializer to nx::serializer) - added stub for xotcl::serializer for backward compatibility - changed serializer to new namespaces - renamed xotcl.tcl to xotcl2.tcl - added proc finalize to xotcl2.tcl

  1. … 12 more files in changeset.
- changed "require next" to "... nx" - changed "require next::test" to "... nx::test" - changed "require next::doc" to "... nx::doc"

  1. … 33 more files in changeset.
- renamed tests/method-modifiers.xotcl to tests/method-modifiers.tcl - changed "require xotcl::test" to "... next::test"

  1. … 22 more files in changeset.
- changed prefix from "::next::" to "::nx"

  1. … 21 more files in changeset.
- namespace changes: mostly due to marketing reasons, the naming of the top-level namespace changed from "xotcl2" to "next". reasons: xotcl is hard to pronounce for beginners, sounds like "exotic" (but who wants to program in an exotic language) has a certain stigma of strange namings (e.g. "instproc"), is seen as a precursor of tcloo, the top-level namespace ::xotcl2:: is not very nice either, the separation of framework and language is not clear.

We have now:

::next (the new object system, former ::xotcl2)

::next::core (framework, primitives)

::xotcl (former xotcl1)

- "::xotcl::use" no longer needed, use Tcl standard mechanisms instead

(e.g. "package req next"; "package req XOTcl", "namespace import ::next*")

  1. … 48 more files in changeset.
- xotcl 1.6.6: make sure to load always xotcl 1 versions when needed - xotcl 1.6.6: make compilation clean when compiled with assertions on

  1. … 19 more files in changeset.
- renaming of instance variable specific primitiva for more constistency with ::xotcl::importvar:

::xotcl::exists -> ::xotcl::existsvar

::xotcl::setinstvar -> ::xotcl::setvar

  1. … 10 more files in changeset.
- fixed returned method name when setter was used on objects - reduce verbosity

  1. … 2 more files in changeset.
- added parameter "incremental" to ::xotcl::Attribute: when set, one can use "object paramname add|delete $value" etc. - use setters with parameter constraints in slot optimizer - as a consequence, setting attributes via slot names is about twice as fast as before, when parameter constraints are used. - extended regression test

  1. … 3 more files in changeset.
- made error messages for failed conversions more consistent (note that tcl does not provide the parameter name in the error message, but user-defined converters do)

  1. … 13 more files in changeset.
- fix counter initialization in ::xotcl::importvar - register alternate "new" method in "contains" for xotcl2 and (if available) for xotcl1 objects

  1. … 3 more files in changeset.
- handle multivalued + values converted viaCmd converter the new output list is only built when needed via ArgumentCheckHelper()

  1. … 2 more files in changeset.
- added parameter option slot= to pass slotobj to a certain parameter - use slot option to keep relation between parameter and slot - object parameter dispatch type checker on slot objects - allow transformation via user-defined converter (can be use to standardize parameter values) experimental implementation, refcounting has to be looked in detail, maybe we need a different interface for the converters

  1. … 5 more files in changeset.
- moved slot optimizer from ::xotcl::ObjectParameterSlot::Optimizer to ::xotcl::Attribute::Optimizer

  1. … 2 more files in changeset.
- refactor Slot class hierarchie - new methods in ObjectParameterSlot "toParameterSyntax" and "createFromParameterSyntax" - some more cleanup - removed legacy syntax for "-parmeters"

  1. … 7 more files in changeset.
- cleanup of legacy stuff in slot management. * merged InfoSlot and InterceptorSlot into RelationSlot * get rid of legacy "mixin set ...." command - renamed "parameterSlot" into "methodParameterSlot" to avoid potential confusions

  1. … 6 more files in changeset.
- support for parameter spec of form "type=XXX" to denote that the parameter must be an object of the specified type (class; directly or indirectly) - new built-in converter: convertToObjectOfType() - keep parameterObj (source for conversion to XOTclParam) for making introspection less work. However, this is only used for XOTclParams generated via ParamParse(). - extending regression test

  1. … 6 more files in changeset.
- parameterFromSlot returns now pair object-param & method-param - define dissallowed parameter options for object parameter, method parameter and valuecheck command - make canonical table of parameter options (currently in tests/parameter.xotcl) - extend regression test

  1. … 5 more files in changeset.
- checking multivalued types in "-parameters" by using argument checker - some cleanup - extend regression test

  1. … 5 more files in changeset.
- modernize test a little: all local definitions of proc "?" are gone. - added interface to test: "Test parameter count SOMEVALUE" to specify conveniently e.g. the number of tests the be executed - add XOTCL_CM_NO_UNKNOWN to dispatch of defaultmethod

  1. … 13 more files in changeset.
- changed in xotcl-core "method" into "object-method" and "class-method", provided scripted definition for method in xotcl2 - removed "setter" from methods in xotcl1 - defined xotcl1 methods in terms of "proc" and "instproc"

  1. … 9 more files in changeset.
- forward: new option for handling flags syntax "%-SOMEFLAG ?insert?%" The option checks the actual arguments, if they start with "-", it compares it with the provided name. If it matches, the flag is consumed and added at the provided position in the output list. If the flag does not match, but "insert" is given with the value of 1, then the flag is output as well. Note that the last feature is added for omitting double inserts.

- due to the new forward option, the following important

cases work now:

- adding/deleting/... per-object mixins for classes via

slot methods

C mixin -per-object add M

- adding per-object mixins for classes in short form

C mixin -per-object M

- added "what" argument to deprecated command to let the

user be more exact, what is actually deprecated

  1. … 6 more files in changeset.
- moving definitions to the right place - added "-per-object" to XOTclRelationCmd - skipping "mixin" and "filter" in ::xotcl::parametersFromSlots for xotcl1 objects - added parameter "forward-per-object" to slots in order to flag whether "per-object" should be passed via the forwarder - new function MethodTypeMatches() for filtering on methodtypes - provide faster lookup when pattern for info methods does not contain meta characters

  1. … 6 more files in changeset.
- applying changes from Stefan Sobernig for object specific slots - extended regression test - fix for the problem reported by Mykhaylo Sorochan in the xotcl mailing list (::xotcl::Attribute not visible) - extended regression tests

  1. … 2 more files in changeset.
- moved xotcl-1.* definition into an own library file - renamed library/lib/changeXOTclVersion.xotcl to library/lib/changeXOTclVersion to ease pkgIndex generation - new function "xotcl::use xotcl1" or "xotcl::use xotcl2" to ease switching between xotcl 1 and 2 - changed library/lib/test to xotcl2 - added for all regression test "xotcl::use xotcl1" instead of "namespace import ::xotcl::*"

  1. … 27 more files in changeset.
- solved contains aliasing problem by defining a separate "conains" for ::xotcl::Object - make the serializer less object system dependent - make slottest regression test work with xotcl2 objects

  1. … 4 more files in changeset.
- new option initcmd for nonposarg parser (necessary for regression test) - error handling for failed relation settings - fixed crash when canonicalNonpositionalArgs returned result != 0 - regession test runs again

  1. … 4 more files in changeset.