tclAPI.h

Clone Tools
  • last updated 5 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- renamed "info method pre" to "info method precondition" - renamed "info method post" to "info method postcondition"

  1. … 3 more files in changeset.
- 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.
- 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.
- xotcl2: extended list of options for alias method - xotcl2: defined 2 different "alias" methods for Object and Class

  1. … 3 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.
- 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.
- 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.
- 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.
- 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.
- allow to distinguish for enumeration values between missing value and given first value (numerically 0) - generated stub for selfCmd

  1. … 4 more files in changeset.
- change "setvalues" to "residualargs"

  1. … 4 more files in changeset.
- DotCmdResolver() with XOTclDotCmd() only lookups within XOTCL_METHOD_FRAMES to minimize interactions supports efficient method-lookup via notation {.method in method bodies} - extended regression tests

  1. … 4 more files in changeset.
- fix typo in naming (class_filter => class-filter)

  1. … 1 more file 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.