predefined.xotcl

Clone Tools
  • last updated 4 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- Allow to speficy last arg of objectparameter to replace scripted init block. The redefinition of objectparameter allows us to specify whether no/some/classical/altered/additional arguments should be allowed during object creation

  1. … 1 more file in changeset.
- provide prefix for internally called methods to distinguish between methods called on objects or classes

  1. … 5 more files in changeset.
- eliminated XOTE___UNKNOWN - renamed __unknown to requireobject

  1. … 5 more files in changeset.
- first part of allowing arbitrary named internally called methods.

  1. … 5 more files in changeset.
- fixing "-parameter" with empty content - more variable naming cleanup - fix line breaking in serializer for "exportedObjects"

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

  1. … 2 more files in changeset.
- fix syntax in predefined - let serializer call "init" of attributes, even if it is protected

  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.
- use "::xotcl::current" instead of "xotcl::self" in predefined

  1. … 1 more file in changeset.
- defined "xotcl::current" as synonym for "::xotcl::self" - new options for ::xotcl::current current object == current current method == current proc current callingmethod == current callingproc - "self proc" and friends are for backward compatibility for xotcl1, "current method" and friends are for xotcl2 - namespace exported "::xotcl::current"

  1. … 4 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.
- added option "-nonleaf" for method alias - added introspection (for "info method definition") for "alias ... -nonleaf ..."

  1. … 3 more files in changeset.
- XOTclCallStackFindLastInvocation(): return last scripted invocation - use xotcl1 in webserver test to make rull regression test working - make xotcl::use silent

  1. … 6 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. … 10 more files in changeset.
- replaced in predefined occurances of ::xotcl::is by ::xotcl::objectproperty

  1. … 1 more file in changeset.
- defined "info is" as alias of "::xotcl::objectproperty"

  1. … 2 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. … 8 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. … 4 more files in changeset.
- removed the following classes and methods ::xotcl::Attribute->check_single_value ::xotcl::Attribute->check_multiple_values ::xotcl::Attribute->mk_type_checker class ::xotcl::Attribute::Nocheck

  1. … 3 more files in changeset.
- added a version of the "attribute" method to predefined

  1. … 1 more file in changeset.
- new methods for MetaSlot to factor out common code: + slotName (to ease name-construction, care about slot container) + createFromParameterSyntax: essentially move from ::xotcl::Attribute to the meta class - test environment: make sure to avoid confusions between the "namespace" method and command

  1. … 3 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.
- removed duplciate error message in "hasmixin" converter - fixed refcounting in converting user-types in case of errors - extended regression test

  1. … 3 more files in changeset.
- Allowed parameter specification for setters. One can define now a setter with constraints like e.g. ::xotcl::setter o a:integer to define a setter named "a" for object "o" which has to be integer. - Extended regression test - Followed nameing conventions for several structures

  1. … 5 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.
- clean up comments

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

  1. … 6 more files in changeset.
- move methodParameter checkers for "mixin", "baseclass" and "metaclass" to predefined. - deactivated checkMethods in gentclAPI.decls and in xotcl.c

  1. … 6 more files in changeset.