predefined.xotcl

Clone Tools
  • last updated 2 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- name parameterType -> parameterSlot - use for now same parameterSlot for xotcl1 + 2 - disallow unknown types (otherwise interpreted as user-types) in valuecheck

  1. … 4 more files in changeset.
- allow syntax "object,type=::SomeClass" and "class,type=::SomeMetaClass" (currently identical, we should as well check for class/meta-class in case of "class,type=SomeClass")

  1. … 3 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.
- don't run multiple queries in "??" - fixed last changes to regression test as usual

  1. … 2 more files in changeset.
- new function ::xotcl::parameterFromSlot (used in argument checker as well) - use ::xotcl::forward in Slot constructor (instead of dispatch) - checking methods on slots for single- and multivalues slots (can be optimized) - extended regression test

  1. … 2 more files in changeset.
- added instance variable arg for interfacing with parameter interface. "arg" acts like a clientdata for type converter - added multiple parameter options handling to method "parameter" to obtain similar functionality from object parameters as from method parameters - added conveniance method "??" to test to indicated test that should fail with an error - added severy type converters to achieve same object type checking as in ::xotcl::is (these are currently in the regression test, should move finally into predefined.xotcl) - extended regression test

  1. … 3 more files in changeset.
- experimental change of resolver name prefix char from dot to single colon

  1. … 16 more files in changeset.
- extended migration guide - defined eval in predefined via "-nonleaf", used at various places - added "info mixinof ?-scope all|object|class? ?pattern?", dropped "object-mixin-of" and "class-mixin-on" from registerd method - extended regression test - xotcl1: make "-volatile" invoked via unknown behave correctly

  1. … 5 more files in changeset.
- use uplevel in slot add/delete to evalute in calling namespace (for not fully qualified object names) - determine namespace in test method "?" to allow its execution in an "namespace eval" - added regression tests

  1. … 6 more files in changeset.
- added option "objectsystems" to ::xotcl::configure to obtain the currently defined object systems - added option "baseclass" to ::xotcl::is to check, whether a class is a baseclass of an object system (root class or root meta-class of object system) - changed result of "... info methods -methodtype scripted" to return only truely scripted methods (no aliases) - some more cleanup in regression tests - first version of serializer for xotcl1 + xotcl2

  1. … 9 more files in changeset.
- added option "arg=.." to parameter options; this argument can be passed to converter; used currently for "type=relation" to flag, that the relation type is different from the parameter name - extended "objectparameter" to handle such cases - removed relationtypes "mixin", "filter", "instfilter" and "instmixin" since not needed due to converterArg

  1. … 6 more files in changeset.
- added experimental flag for alias "-noleaf" to force a stack frame to be written (e.g. necessary for "next"). makes only sense for aliases to c-implemented cmds

- fix inconsistent behaviour of dotVarResolver

"o eval {set .x 1}" was setting var ".x" instead of "x"

The problem was due to a interaction between

the namespace varResolver() and the DotVarResolver()

- fix for DotCmdResolver during compilation of a proc by Tcl.

- extended regression text

- found 2 potential bugs (not fixed yet)

  1. … 9 more files in changeset.
- moved "-per-object" consequently immediately after obj in the following commands : ::xotcl::alias, ::xotcl::methodproperty, ::xotcl::setter to achiev conformance with ::xotcl::forward and ::xotcl::method

  1. … 7 more files in changeset.
- reduce verbosity

  1. … 2 more files in changeset.
- added ::xotcl::forward as cmd instead of method now, all method-defining-methods (alias, method, forward, setter) are defined as cmds (this should make life of serializer easier)

  1. … 6 more files in changeset.
- added ::xotcl::method as cmd instead of methods object-method and class-method

  1. … 5 more files in changeset.
- added ::xotcl::exists as cmd

  1. … 4 more files in changeset.
- made some more xotcl2 methods protected (no big need to call these from different objects): unknown, uplevel, upvar

  1. … 1 more file in changeset.
- changed assertions: old (xotcl1) interface: 3 methods + 3 info methods * <object> check Options * <object> info check * <object> invar Conditions * <object> info invar * <class> instinvar Conditions * <class> info instinvar

new (xotcl2) interface: 1 cmd (similar to ::xotcl::relation)

::xotcl::assertion check|object-invar|class-invar ?arg?

- added emulation for xotcl1

- deleted namespecific C macros:

isInfoString, isInstinvarString, isInvarString, isInstprocString, isProcString

  1. … 9 more files in changeset.
- added method "eval" on ::xotcl2::Object - used "o eval {....}" as generic method to apply commands/methods to other objects

  1. … 2 more files in changeset.
- change and rename cmd instvar ::xotcl::instvar -object someObject newVar into ::xotcl::importvar someObject newVar Rationale of change: only needed in xotcl2 for importing variables from different objects

  1. … 5 more files in changeset.
- added existence test for slot extractor (needed for 8.5.8) - added refcounting CallStackDoDestroy() to ensure existance of object until end of function - make sure to call PrimitiveDestroy() before DeleteCommandFromToken(), otherwise e.g. unset traces on this object cannot be executed - regression test works again

  1. … 7 more files in changeset.
- removed -per-object from ::xotcl::relation - removed -per-object from methods "mixinguard" and "filterguard" - removed -per-object from methods "alias" and "method" - added "... object filterguard ..." and "... object mixinguard ..." - implemented "info method definition" with "object" modifier - extended regression test

  1. … 9 more files in changeset.
- added "<Class> object filter" and "<Class> object mixin" - use explicit "(object|class)-(mixin|filter)" relations in ::xotcl::relation - removed "-per-object" from all user-level relation commands (::xotcl::relation has still "-per-object"), but it is not needed anymore - register slots "object-mixin" and "object-filter" for conveniance to allow object-filter and object-mixins via configuration via object parameter

  1. … 4 more files in changeset.
- turned "setter" method into a command "::xotcl::setter" with the same interface like "::xotcl::alias" - removed flag -per-object from XOTclCForwardMethod - require "object" to be followed directly by either method defining command or info, etc. (use "public object method" instead of "object public method")

  1. … 10 more files in changeset.
- renamed method property "static" to "redefine-protected"

  1. … 7 more files in changeset.
- removed "-protected" and "-public" from method defining methods ("alias", "method")

  1. … 8 more files in changeset.
- Definition of method modifiers "public", "protected" and "object" - all method-creating methods ("method", "alias", "forward", "setter") return now the fully qualified method names - extending 50 regression tests fpr method modifiers - Make "unknown" for ::xotcl2::Class" to raise an error instead of warning. Otherwise, protected class-level methods would create objects with the name of protected methods. Other option: make calls to protected methods raise an error, instead of calling "unknown"

  1. … 8 more files in changeset.