nsf

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

- clean up comments

- renamed "::xotcl::is ... mixin ..." to "::xotcl::is ... hasmixin ..." (affects parametertypes as well)

- move methodParameter checkers for "mixin", "baseclass" and "metaclass" to predefined. - deactivated checkMethods in gentclAPI.decls and in xotcl.c

- provide error message for cases, where parameter options are not allowed (or ignored)

- fix counter initialization in ::xotcl::importvar - register alternate "new" method in "contains" for xotcl2 and (if available) for xotcl1 objects

- streamline quoting in regression test

- handle multivalued + values converted viaCmd converter the new output list is only built when needed via ArgumentCheckHelper()

- added argument for converter to return the converted tcl_obj, which should be passed on (currently only used for viaCmd); this way, we could remove the kludge of querying the converter after the conversion for special handling.

- treat currently unknown converters in valuecheckcmd as error - fix the regression test from the last changes

- 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

- added error message when substdefault is specified without a default value - extend regression test

- predefined.xotcl: move toParameterSyntax and objectparameter to a position, where basic slot definitions are provided - fixed default value setting in bootstrap code - provide more precise error message in converter, when object type are used - extend regression test

- get rid of convertToObjectOfType(), make convertToClass() and converterToObject() more general, accepting type constraints

- support for all string constraints provided by "string is ... $value" in object and method parameters ("alum", "alpha", ..., "xdigit"). Technically, these types are tclobjs (using converter convertToTclobj) having pParm->converterArg set to the constraints. - extended regression test

- moved slot optimizer from ::xotcl::ObjectParameterSlot::Optimizer to ::xotcl::Attribute::Optimizer

- refactor Slot class hierarchie - new methods in ObjectParameterSlot "toParameterSyntax" and "createFromParameterSyntax" - some more cleanup - removed legacy syntax for "-parmeters"

- 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

- define everything concerning basic slot setup in a single "namespace eval ::xotcl {...}" - undefine ::xotcl::createBootstrapAttributeSlots after this block - fix default DefaultSuperClass() with isMeta==1 in cases, where we are already at the root meta class - use "-parameter" in xotcl1 instead of createBootstrapAttributeSlots

- name parameterType -> parameterSlot - use for now same parameterSlot for xotcl1 + 2 - disallow unknown types (otherwise interpreted as user-types) in valuecheck

- 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")

- remove unneeded push and pop operations in ListChildren() and ObjectHasChildren()

- name XOTclObjects always "object" instead of "obj" to avoid potential confusion with Tcl_Objs

- 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

- pass arg from objectparameter as first argument to objparms (similiar to client data)

- 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

- new cmd "::xotcl::valuecheck <valueConstraints> <value>" where "valueConstraints" is whatever is allowed in e.g. parameters (including user defined types) - new Tcl_ObjType "xotclParam"

- checking multivalued types in "-parameters" by using argument checker - some cleanup - extend regression test

- added "multivalued" to parameter options - made error message produced by XOTclObjErrType look like Tcl's error messages - extended regression test - test utility: changed "?" to return error msg in case of error

- don't run multiple queries in "??" - fixed last changes to regression test as usual