xotcl.c

Clone Tools
  • last updated 15 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- further cleanup using "CONST char *"

  1. … 3 more files in changeset.
- use "CONST char *" in generated interface and below

  1. … 5 more files 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.
- 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. … 5 more files in changeset.
- working towards KEEP_VARS_IN_CMETHOD_FRAME

  1. … 3 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. … 10 more files in changeset.
- removed XOTclCreateClass() and XOTclDeleteClass(); both are identical with XOTclCreateObject() and XOTclDeleteObject()

  1. … 3 more files in changeset.
- removed obsolete ::xotcl::configure option "cacheinterface"

  1. … 3 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.
- further naming cleanup

  1. … 1 more file in changeset.
- cleanup in stack handlers (naming, arguments)

  1. … 1 more file 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. … 5 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.
- 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. … 8 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.
- centralize fetching of tcl-obj-types in xotcl_init

- experimental: allow to show built-in types provided that a) slot= is specified explicitely, and b) the specified slot is not the default slot. This should guarantee that we do not interfere with the predefined converters for the c-level interface. - incremented ref count on results of all-level converter - extended regression test

  1. … 1 more file in changeset.
- ::xotcl::valuecheck: moved "-nocomplain" to first position (similar to e.g. unset)

  1. … 3 more files in changeset.
- fixed result resetting for user defined converters

- implemented "info method definition|parameter|args $name" for settercmds (with parameter constraints) - extended regression test

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

  1. … 2 more files in changeset.
- added a "-nocomplain" option to ::xotcl::valuecheck - changed semantic of ::xotcl::valuecheck: per default, valuecheck raises an error or returns true. If "-nocomplain" is used, valuecheck returns 0 or 1 like implemented befor this change - 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.
- setterCmd(): Do not allow methodNames start with "-" - setterCmd(): Do not allow defaults for setters - extend regression test

  1. … 2 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.