xotcl.c

Clone Tools
  • last updated 5 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- minor refactoring to reflect changes in "info methods"

- changed "info methods" (without defined, as defined in xotcl1) into "info callable" - changed "info methods -defined" into "info methods" - replaced "procsearch <name>" by "info callable -which <name>" - added emulation for procsearch for xotcl1

  1. … 10 more files in changeset.
- removed "obj|class info alias"; obsoleted by "info method definition"

  1. … 4 more files in changeset.
- renamed "info method pre" to "info method precondition" - renamed "info method post" to "info method postcondition"

  1. … 3 more files in changeset.
- reduce verbosity

  1. … 2 more files in changeset.
- keep last setting of per-object and per-class mixins, when list of new mixins contains invalid ones (prev. versions: registered mixins were reset)

- info "pre" is gone, now subcommand "<obj> info method pre <name>", added emulation in xotcl1 - info "inst pre" is gone, now subcommand "<cls> info method pre <name>", added emulation in xotcl1 - info "post" is gone, now subcommand "<obj> info method post <name>", added emulation in xotcl1 - info "instpost" is gone, now subcommand "<cls> info method post <name>", added emulation in xotcl1 - "info instinvar" gone, added emulation in xotcl1

  1. … 4 more files in changeset.
* info params removed * info instparams removed * added subcommand to "info method args <somename>": similar to "info method parameter ...", but returns only names of parameters instead of full parameter definitions

  1. … 4 more files in changeset.
- method "instfilterguard" is gone (for xotcl2) we have now "<Object> filterguard <name> ... " "<Class> filterguard ?-per-object? <class> " - added emulation for old "filterguard" and "instfilterguard" in xotcl1

  1. … 3 more files in changeset.
- "info instforward" gone, added emulation in xotcl1

  1. … 3 more files in changeset.
- "info instfilterguard" gone, added emulation in xotcl1

  1. … 3 more files in changeset.
- "info instfilter" gone, added emulation in xotcl1

  1. … 3 more files in changeset.
- "info instmixinguard" gone, added emulation in xotcl1

  1. … 3 more files in changeset.
- "info instmixin" gone, added emulation in xotcl1

  1. … 4 more files in changeset.
- handling forward case with nonpos-arg and zero positional arguments (many thanks to Stefan) - treating "-per-object" in infoslot get method (many thanks to Stefan) - removing obsolete function from xotcl.c

  1. … 2 more files in changeset.
- method "instmixinguard" is gone (for xotcl2) we have now "<Object> mixinguard <name> ... " "<Class> mixinguard ?-per-object? <class> " - added emulation for old "mixinguard" and "instmixinguard" in xotcl1

- xotcl1: defined "parametercmd" and "instparametercmd" in terms of

alias instead of forward

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