tests

Clone Tools
  • last updated 6 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- Introduced a PartClass meta-class which seconds Part and its subclasses (for a uniform id generation etc.) - Removed the kludge around new_from_attribute(), there is now a canonical new(). - "scope" turned into a property of PartAttributes and, as such, of the association (slot) objects managing parts. this more closely resembles the idea of per-class and per-object interfaces. in turn, parts now contain a navigatable association to their managing part attributes (e.g., to resolve their scope). - Adding some basic exception-catching infrastructure too better differentiate between error conditions (style violation, invalid tags, arbitrary errors emerging from the parsing machinery). Adjusting and extending the test suite. - Simplified/generalised the parser's tag dispatcher; also, there is no a general @doc tag which allows to add documentation lines as tagged parts, rather than a distinct doc block - Removed the tagged_entity mechanisms and per-tag forwards on EntityClass - Documentation blocks may now contain intermediate space lines (by adding a space->text transition to the parsing spec). - Adding basic support to trace script sources from [package req] calls, needs to be polished and refactored

  1. … 1 more file in changeset.
- provide explicit error message stating the "substdefault" is not allowed for setters - don't add "substdefault" a second time, in case it was already used - never add "substdefault" to methodopts - extended regression test

  1. … 5 more files in changeset.
- Renamed EntityFactory to EntityClass - Introduced PartAttribute for managing entity-part associations, they also protect against duplicate entries - Added NextAttribute (though it should fuse with parameter entities in the end) - Completed basic support for embedded (initcmd) and freestanding (script): This multi-stage processing introduces a precedence order between the commenting levels (script < initcmd < method bodies). - Renamed most entity classes using their tag equivalent (@object, ...) - Introduced offset feature for the comment line scanner (offsets are used to select embedded comment blocks, e.g., in initcmds or method bodies) - Parsing of arbitrary scripts is now realised in a child interp - Introduced qualified entity names (e.g., @attribute Bar#a1) and per-object scope (through a scope prefix in tags, e.g., @object-method) - Did some cleanup and extended the test suite

  1. … 1 more file in changeset.
Finished and tested the rewrite of the scanning&parsing front-end for the doc processor. Remains to be integrated with the intermediate @ notation (basics are already working)

  1. … 1 more file in changeset.
Upgrading to the ::nx::* namespace renaming

  1. … 2 more files in changeset.
tests/doc.xotcl

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

  1. … 9 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. … 34 more files in changeset.
- ::xotcl:.configure: added option "keepinitcmd" to flag, whether or not initcmds should be kept as instance variables

  1. … 6 more files in changeset.
- Handle cases, where objects/classes are created with the name of preexiting namespaces. Cases, where pre-exisitng namespaces contained classes/objects lead to problems, since xotcl did not see the object/classes of the pre-exiting namespace as children of the new object/class.

  1. … 2 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. … 8 more files in changeset.
- handling of minimal object systems. For example, the following three command create an object system around ::object and ::class ...

::xotcl::createobjectsystem ::object ::class

::xotcl::alias ::class + ::xotcl::cmd::Class::create

::xotcl::alias ::object - ::xotcl::cmd::Object::destroy

... where no internal message dispatch are used (e.g. no

constructor "init", and where just two methods ("+" and "-")

are used to create and destroy objects

- extended regression test

  1. … 4 more files in changeset.
- updating tcl.m4 in version 1.6.6 to the actual verison (TEA 3.7)

  1. … 5 more files in changeset.
- make sure a childobject ::slot exists after calling "-parameter"

  1. … 2 more files in changeset.
- fixed wrong name for per-object filter in RelationSlot - fixed condition in filter-incovation to top-level frames - added frametype to information returned by "info frame"

  1. … 4 more files in changeset.
- remove dependency from xotcl1 in handling of forwarders in method "copy" - further cleanup using "CONST char *", improving on naming conventions

  1. … 5 more files in changeset.
- minor cleanup (varresolution test and comment)

  1. … 1 more file in changeset.
- enable compilation with assertion turned on (via NDEBUG) - fix potentially uninitialized flags for ArgumentCheck() - some further cleanup, tested with 32 bit under Mac OS X 10.6

  1. … 4 more files in changeset.
- keep variables defined from an CMETHOD frame local to this frame (e.g. initcmd, -nonleaf option, ...); previously variables without xotcl resolver prefix were defined globally - fix regression test according to previous item - generalize nonXotclObjectProcFrame() and rename it to activeProcFrame()^

  1. … 3 more files in changeset.
- working towards KEEP_VARS_IN_CMETHOD_FRAME

  1. … 2 more files in changeset.
- requireNameSpace: * fix potental crash in requireNameSpace in objscoped methods by swapping all vartable references in objscopes on stack to the vartable in the namespace, when it is created - extending regression test

  1. … 3 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. … 9 more files in changeset.
- added option "-nonleaf" for method alias - added introspection (for "info method definition") for "alias ... -nonleaf ..."

  1. … 3 more files in changeset.
- initcmd: use for initcmds CMETHOD frames instead of OBJECT stack frames - initcmd: skip parent-stack frame's objscope for initcmd - changed hash-based lookup of children into a cmd-based lookup - extended regression test

  1. … 2 more files in changeset.
- fixed namespace handling on stack for objects with namespaces (before, it was possible that a variable was created in an object's namespace without -objscope) - as a consequence, ListChildren() had to be adjused, since it depended on the previous namespace handling on the stack - fixed object sesolving in NsDotVarResolver() (before, it was possible that NsDotVarResolver could create variables in the wrong namespace) - simplified NsDotVarResolver() - more cleanup in name resolver * USE_DOT is gone * XOTclDotDotCmd() removed * improved performance of InterpCompiledDotVarResolver() * made LookupVarFromTable() obsolete and removed it * renamed DotVarResolver() and friends to ColonVarResolver() etc. - extended regression test

  1. … 8 more files in changeset.
- renamed ::xotcl::valuecheck -> ::xotcl::parametercheck

  1. … 3 more files in changeset.
- renamed old "xotcl::is" -> "xotcl::objectproperty" - renamed old "xotcl::is2" -> "xotcl::is" - we have now is tests for objects in ::xotcl::objectproperty ::xotcl::objectproperty $obj object ::xotcl::objectproperty $obj class ::xotcl::objectproperty $obj baseclass ::xotcl::objectproperty $obj metaclass ::xotcl::objectproperty $obj type XXXX ::xotcl::objectproperty $obj hasmixin XXXX

- "::xotcl::is" is the higher level command,

supporting string contstraints "e.g. upper", user defined type checkers

and as well object properties (every parameter type supported for object

and method paameter). Examples:

::xotcl::is $obj object ?-type $type? ?-hasmixin $mixin?

::xotcl::is $cl class ?-type $type? ?-hasmixin $mixin?

::xotcl::is obj metaclass

::xotcl::is $num integer

::xotcl::is $string upper

- implemented 2nd level reference counting for paramObjType

  1. … 6 more files in changeset.
- Unified on c-level "info class-mixin-of" and "info object-mixin-of" to "info mixinof ?-scope all|object|class? ?-closure? ?pattern? The former "info class-mixin-of" is now "info mixinof -scope class" - adapted xotcl1 layer for this change - extended experimental ::xotcl::is2 to handle flags -type and -hasmixin ::xotcl::is2 <obj> object ?-type <type>? ?-hasmixin <class>?

  1. … 7 more files in changeset.
- experimental checking function ::xotcl::is2 implemented, which generalizes between ::xotcl::is and ::xotcl::valuecheck (it is a valuecheck -nocomplain with an ::xotcl::is syntax and switched arguments)

  1. … 5 more files in changeset.
- support for method modifier "object", "protected" and "public" for method "attribute". One can use now e.g.

Class create C {

:attribute a

:public attribute b

:protected attribute c

:object attribute A

:public object attribute B

:protected object attribute C

}

"protected" and "public" refers to the registered accessor functions

  1. … 3 more files in changeset.