predefined.h

Clone Tools
  • last updated 5 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- new method named "setter" * <Object> setter <varName> * <|Class> setter ?-per-object? <varName>

- new info method named "method"

* <Object|Class> info method ?-per-object? definition|name|type <methodName>"

* "info method definition" returns full cmds

(e.g. for scripted methods parameters, body, pre- and postconditions)

* fixed proper list handling in AssertionList()

* added tests for "info method" (infomethodtest.xotcl)

- changed method "alias" in xotcl2:

* removed the long list of arguments

".... -cmd -source-object -source-method -source-per-object:switch"

* determine method cmdname via "... info method name <methodName>"

and pass it to alias

- method "parametercmd" and "instparametercmd" are gone (for xotcl2)

we have now

"<Object> setter <name>"

"<Class> setter ?-per-object? <name>"

- added emulation for old "parametercmd" and "instparametercmd" in xotcl1

- method "instforward" is gone (for xotcl2),

we have now

"<Object> forward <name> ... "

"<Class> forward ?-per-object? <name> ... "

- added emulation for old "forward" and "instforward" in xotcl1

- "info body" gone, added emulation in xotcl1

- "info instbody" gone, added emulation in xotcl1

- "info commands" gone, added emulation in xotcl1

- "info instcommands" gone, added emulation in xotcl1

- "info parametercmd" gone, added emulation in xotcl1

- "info instparametercmd" gone, added emulation in xotcl1

  1. … 15 more files in changeset.
- applying changes from Stefan Sobernig for object specific slots - extended regression test - fix for the problem reported by Mykhaylo Sorochan in the xotcl mailing list (::xotcl::Attribute not visible) - extended regression tests

  1. … 2 more files in changeset.
- new info command for Object and Class: "info alias -per-object -definition name" (similar to "info forward"/"info instforward") should probably be moved into a more general "info method -per-object -definition name" - extended regression test

  1. … 6 more files in changeset.
- added aliastest provided by stefan - handle [self class] in aliased methods properly - use xotcl2 per default in xotclsh

  1. … 7 more files in changeset.
- removed to unneeded ::xotcl::dispatch from predefined.xotcl

  1. … 1 more file in changeset.
- moved xotcl-1.* definition into an own library file - renamed library/lib/changeXOTclVersion.xotcl to library/lib/changeXOTclVersion to ease pkgIndex generation - new function "xotcl::use xotcl1" or "xotcl::use xotcl2" to ease switching between xotcl 1 and 2 - changed library/lib/test to xotcl2 - added for all regression test "xotcl::use xotcl1" instead of "namespace import ::xotcl::*"

  1. … 27 more files in changeset.
- added options -defined and -per-object to "info methods" (can be used to query, what methods are defined on the class/object). - removed c-definition of ".info procs" and ".info instprocs" (can be replaced by a ".info methods -defined ?-per-object? -nocmd") - defined an alias method for ::xotcl2::Object - simplified predefined.xotcl further, using more new features

  1. … 5 more files in changeset.
- added non-positional argument "-object" to ::xotcl::instvar - removed all dependencies to the method "instvar" in predefined - defined "abstract" for xotcl2 similar to classical xotcl1 - simplified exit handlers - use of proc-aliases in predefined - simplefied predefined a little

  1. … 5 more files in changeset.
- further rearrangement of predefned.xotcl (removed further dependencies from ::xotcl::Object/Class and formed a common definition block)

  1. … 1 more file in changeset.
- solved contains aliasing problem by defining a separate "conains" for ::xotcl::Object - make the serializer less object system dependent - make slottest regression test work with xotcl2 objects

  1. … 4 more files in changeset.
- don't pass arguments to residualargs except when "args" are specified - added "-foo:method,noarg" to allow to call a method without arguments - added definition to allow "-volatile" for obejct/class creation - added definition to allow "-noinit" for obejct/class creation

  1. … 3 more files in changeset.
- change slots to xotcl2 Objects and Classes

  1. … 3 more files in changeset.
- eliminated set methods in predefined

  1. … 1 more file in changeset.
- implemented refcounting for variables allocated by the compiled var resolver - changed most of predefined to xotcl2 style * replaced all "my instvar" by access via dotName resolver * replaced most "my" (only "eval my ...." stayed)

  1. … 2 more files in changeset.
- provide explicit unknown handler - fix cases, where unknown hander was unknown

  1. … 3 more files in changeset.
- extend predefined for a minimal xotcl2 implementation - simplified slot initialization - new function: isRootNamespace() - simplified callingNameSpace() - merge destroyObjectSystems of multiple object systems into a common block for interleaved objects (e.g. using ::xotcl::Objects under ::xotcl2::Object)

  1. … 2 more files in changeset.
- implement first version of resudialargs parser, accepting methods starting with a "."

  1. … 4 more files in changeset.
- more work on 8.6b1: xotcl 2.0 boots now - fixed a few regression tests for 8.6 TclIsProc((Command*)cmd) not equiv to (Tcl_Command_objProc(cmd) == TclObjInterpProc) - not all regression tests run yet - make sure to run " make clean;configure;make genstubs" to compile under 8.5

  1. … 10 more files in changeset.
- first steps towards 8.6

  1. … 5 more files in changeset.
- fixed var resolver problem - reactivated "set" method via "::set" - removed private realization via XOTclOSetMethod

  1. … 4 more files in changeset.
- changed interface of ::xotcl::methodproperty to be used as well for introspection

- added ::xotcl::methodproperty ... static

We have now

* call-protection via methodproperty "protected"

* overwrite-protection via methodproperty "static"

Static methods can be deleted, but not overwritten (accidentially)

- added flag "-protected" to "method" for call-protected methods

- added checks for overwrite-protection to tcl implemented methods.

aliases, forwarder, and parametercmds

- removed "classscopedinstproc" (use "method -inner-namespace" instead)

- removed C-implemented unknown handler for ::xotcl::Class

and replaced by a Tcl-implemented one (should move into

compatibility library)

- removed XOTclAddPMethod() (use XOTclAddObjectMethod instead)

- removed XOTclAddIMethod() (use XOTclAddInstanceMethod instead)

- generalized MakeObjectMethod() and MakeClassMethod() into MakeProc()

- removed compile-flag NAMESPACEINSTPROCS and AUTOVARS

- removed defines for isClassString, isDoubleDashString, isAllocString,

isDeallocString, isDestroyString

  1. … 10 more files in changeset.
- implementing "method" instead of "proc" and "instproc" on the C level

  1. … 6 more files in changeset.
- removed c-level support for the following methods and provide emulation on the script level isobject, isclass, ismetaclass, ismixin istype

  1. … 5 more files in changeset.
- removed deprecated :xotcl::setrelation - fixed potential crash in bootup code, when destroy method was defined for ::xotcl::Slot

  1. … 2 more files in changeset.
- first implementation of application specific checkers - changed XOTclDispatchCmd to parameter interface (testing and adjustment outstanding) - reactivated XOTclOSetMethod, since one test in regression test caused troubles for still unknown reasons

  1. … 8 more files in changeset.
- drop XOTclOSetvaluesMethod(), use alias for "set" instead of it - implement parameter option "optional" for positional parameters - extend regression test

  1. … 7 more files in changeset.
- new function: ParamDefsList(), - extended ListParams() to work with and without parameter definitions

- deleted following functions:

AppendOrdinaryArgsFromNonposArgs(),

GetProcDefault(),

ListArgsFromOrdinaryArgs(),

ListDefaultFromOrdinaryArgs(),

ListProcArgs()

ListProcDefault(),

SetProcDefault(),

XOTclClassInfoInstargsMethod(),

XOTclClassInfoInstdefaultMethod(),

XOTclClassInfoInstnonposargsMethod(),

XOTclObjInfoArgsMethod(),

XOTclObjInfoDefaultMethod(),

XOTclObjInfoNonposargsMethod(),

checkRequiredValue(),

evalValueIfNeeded(),

setDefaultValue()

- provided backward compatibility on tcl level (currently in predefined, should be moved into library)

  1. … 5 more files in changeset.
- passing obj to ArgumentParse() to get the object-context and to be able to produce nicer error messages - pass pushFrame to ProcessMethodArguments() to signal, whether stack frame was already pushed or not - deactivated check for {$} in objectparameter (for activating substdefault) - fixed class converter, which was to liberal - extended objparametertest for substdefault and some types

  1. … 5 more files in changeset.
- new functionparseContextExtendObjv() to eliminate hard coded limits on argument lengths - reduced PARSE_CONTEXT_PREALLOC 20 - new function XOTclPrintObjv() for debugging (output of objv vector)

  1. … 3 more files in changeset.
- new option initcmd for nonposarg parser (necessary for regression test) - error handling for failed relation settings - fixed crash when canonicalNonpositionalArgs returned result != 0 - regession test runs again

  1. … 4 more files in changeset.