xotcl.c

Clone Tools
  • last updated 17 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- xotcl2: implemented "<cl> info -per-object subcmd" (moved "-per-object" in front of info, since it specifies, what kind of info is requested). As a consequence, XOTclObjInfoMethodMethod() works returns always object specific infos and XOTclClassInfoMethodMethod() class specific infos, no "-per-object" switch for the subcmd required. - cleanup in other subcomds than "info method" and "info methods" required

  1. … 8 more files in changeset.
- xotcl2: added "obj info method parameter name"

  1. … 2 more files in changeset.
- 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.
- fixed var resolver/memory leak problem reported by Victor Mayevski (only needed when xotcl is compiled under tcl 8.4 and loaded into tcl 8.5)

- fixed var resolver/memory leak problem reported by Victor Mayevski - bumped version number to 1.6.5

  1. … 9 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.
- finished implementtion of "info method -methodtype alias"

  1. … 1 more file in changeset.
- renamed methodType "compiled" to "system" (for system/builtin methods); - saving and maintaining alias command in associative Tcl array ::xotcl::alias - returning aliases to procs and methods via "info methods -defined -methodType alias" (other aliases are still missing, but should be straigth forward with data in associative array)

  1. … 8 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.
- extended genrclAPI to allow enumeration type for nonpos args - changed api of "info methods": added nonpos arg "methodType" possible values: "all", "scripted", "compiled", "alias", "forwarder", "object", "setter" - added compatible scripted "info methods" interface for xotcl1 - "info methods -methodtype alias" not tested and not working

  1. … 6 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.
- managing status of import refs in aliased cmds

- 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.
- added automatic deletion of aliased commands - deletion of aliased procs works, deletion of aliases to procs not yet

- some renaming DoDispatch() -> ObjectDispatch() InvokeMethod() -> MethodDispatch() invokeProcMethod() -> ProcMethodDispatch() invokeCmdMethod() -> CmdMethodDispatch()

- white space cleanup

  1. … 1 more file in changeset.
- make volatile work with object frames - fix typo in error message

  1. … 2 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.
- 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.
- fix mixin deletion in next. Previouly, redundant computations of filters circumvented the problem. The bug was in the code at least since 2004.

- new parameter type method (similar to initcmd, but calls a same-named method)

  1. … 2 more files in changeset.
- simplified resolver for compiled variables - small improvement for "next"

- fix object access in dotVarResolver for frames of type FRAME_IS_XOTCL_OBJECT

- temporary commit to swich to machine with valgrind

- 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.
- avoid potential crashes, when next is not called from withing a methods context

- don't assume, "objectparameter" returns as last argument "args" - allow argument type "initcmd" to contain dotCmds and dotVars

- remove "." treatment from residual args handler

- minor polishing