xotcl.c

Clone Tools
  • last updated 17 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- forward: new option for handling flags syntax "%-SOMEFLAG ?insert?%" The option checks the actual arguments, if they start with "-", it compares it with the provided name. If it matches, the flag is consumed and added at the provided position in the output list. If the flag does not match, but "insert" is given with the value of 1, then the flag is output as well. Note that the last feature is added for omitting double inserts.

- due to the new forward option, the following important

cases work now:

- adding/deleting/... per-object mixins for classes via

slot methods

C mixin -per-object add M

- adding per-object mixins for classes in short form

C mixin -per-object M

- added "what" argument to deprecated command to let the

user be more exact, what is actually deprecated

  1. … 6 more files in changeset.
- new XOTclClassInfoMixinMethod (will replace XOTclClassInfoInstmixinMethod) - adding some tracing for handling "mixin" in relation cmd and info methos for now - removed registry of instmixin and instfilter for xotcl2

  1. … 5 more files in changeset.
- moving definitions to the right place - added "-per-object" to XOTclRelationCmd - skipping "mixin" and "filter" in ::xotcl::parametersFromSlots for xotcl1 objects - added parameter "forward-per-object" to slots in order to flag whether "per-object" should be passed via the forwarder - new function MethodTypeMatches() for filtering on methodtypes - provide faster lookup when pattern for info methods does not contain meta characters

  1. … 6 more files in changeset.
- removed "-per-object" from "<class> info alias"

  1. … 3 more files in changeset.
- 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.