xotcl.c

Diff Revision Date Message Lines Author Branch
ebd253f4… 09 Feb

* provide compatibility with 8.6b1

+1 Gustaf A. Neumann master
187492dd… 24 Oct 09

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

+6 Gustaf A. Neumann master
2b530358… 19 Jun 09

- follow Tcl's naming conventions more closely

Gustaf Neumann master
2068ba72… 14 Jun 09

- fixed potential access to deleted command list item in FilterSearchAgain() - fixed potential access deleted xotcl object by switching order in a condition - some minor cleanup

+9 Gustaf A. Neumann master
9e433e28… 19 Mar 09

- finishing release 1.6.3

+4 Gustaf A. Neumann master
62664768… 04 Mar 09

- re-enable small optimization

-1 Gustaf Neumann master
97013ba6… 04 Mar 09

- factor out common code

-21 Gustaf Neumann master
e5207752… 04 Mar 09

- provide compatibility with Tcl 8.4

+6 Gustaf Neumann master
ac30599d… 04 Mar 09

- simplify semantics of MixinSeekCurrent and FilterSeekCurrent, improve speed - remove necessity to have tclCompile.h - improve documentation

+35 -85 Gustaf A. Neumann master
d54dbfc7… 02 Mar 09

some small performance improvements (use CreateHashEntry instead of FindHashEntry, remove unneded argument, improve order of long and expressions)

+46 -35 Gustaf A. Neumann master
84396a78… 02 Mar 09

- some code cleanup - new methods, when compiled with tcl 8.5; + MakeProcError (producing error messages from xotcl methods) + PushProcCallFrame (compile method to byte-code) The new support allows to call code at the begin of a proc without using the old approach based on :xotcl::initProcNS

+167 -114 Gustaf A. Neumann master
5ab730eb… 19 Feb 09

- fixed reference counting - removed temporary hacks - added CONST to several functions - added relative namespace handling

+14 -20 Gustaf A. Neumann master
4cc0fdfb… 18 Feb 09

- added Stefan's work for namespace resolvers - fixed a memory leak for "obj exists" due to the changes - found another memory leak, when e.g. "::info" is added as an alias and "info exists" is tested against non-existing vars

+98 -26 Gustaf A. Neumann master
94c42bd6… 19 Jan 09

- Correct deletion of user-metaclasses - commenting existing and potential usage of namespace resolvers

+23 -1 Gustaf A. Neumann master
802641dc… 01 Dec 08

- Correct deletion of user-metaclasses: Deletion of user-metaclasses could lead to undestroyable objects, since the instances of the user-metaclasses were reclassed to ::xotcl::Object instead of ::xotcl::Class. - extend regression test for such situations

+16 Gustaf A. Neumann master
da111296… 02 Nov 08

- removed unneeded function

-21 Gustaf A. Neumann master
bd830707… 02 Nov 08

- new command ::xotcl::finalize to delete all xotcl objects and classes. Calls as well exit handler - some cleanup

+69 -62 Gustaf A. Neumann master
0037211c… 17 Oct 08

- handle nonposargs in method "copy" properly - extend regression test for copy - added "<class> mixinof -closure ?pattern?" - extended regression test for mixinof - updated documentation

+126 -20 Gustaf Neumann master
b776c687… 11 Sep 08

- upgrading object to class and downgrading class to object not allowed via "class" method - upgrading and downgrading can be performed via create (but using destroy/create instead of recreate) - fixed bug, where an "o info precedence" could core, after a class C was destroyed, where class C was used as a superclass of a mixin of o. - minor refactoring

+45 -18 Gustaf A. Neumann master
7c7a2787… 10 Sep 08

first part of fix when a class is "casted" (via method "class") into an object

+34 -6 Gustaf A. Neumann master
bffe84bd… 23 Jun 08

Merge branch 'master' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/xotcl Conflicts: ChangeLog generic/xotcl.c

-7 Gustaf A. Neumann master
34f178fa… 23 Jun 08

* additional argument for "info precedence": "-intrinsic" Syntax: <objName> info precedence ?-intrinsic? ?pattern? If "-intrinsic" is specified, only the classes of the superclass type hierarchy are returnd. Otherwise, the precedence contains mixin classes as well. * Remove pattern argument from "info class" * Check results for guards to be boolean instead of integer (now, guards are allowed to return e.g. "true") * Bump version number to 1.6.1

+10 -20 Gustaf A. Neumann master
9908c876… 04 Jun 08

* check in guards for boolean values, not for integer values, such that a guard {true} means success

+2 -9 Gustaf Neumann master
99bd33b9… 30 May 08

* updating language reference * Fix contents for %proc in forwarders in cases, where the forwarder was called via next and the argument list for next was provided. Previously, "next" was used for %proc.

+13 -1 Gustaf A. Neumann master
d627242b… 28 May 08

* make "info (inst)?forward -definition name" more robust (provide an error message, if <name> is nog given * New info subcommands "info parametercmd" and "info instparametercmd" * export *parametercmds in Serializer, use "-noinit" on slots as well

+32 Gustaf Neumann master
aeac917d… 26 May 08

- fixed bug in info instdefault, when argument is an empty string.

+4 Gustaf Neumann master
6ed4ee1f… 26 Feb 08

- xotcl.c: fix for double ;; (causes chokes MSVC6 in the next line)

Gustaf A. Neumann master
2b87beee… 25 Feb 08

- Fix for "x configure -set";

Gustaf A. Neumann master
f4b1378f… 22 Feb 08

updating dates in copyright

Gustaf Neumann master
8b823718… 22 Feb 08

- clear XOTCL_MIXIN_ORDER_VALID flag unconditionally in MixinInvalidateObjOrders() for mixins

+3 -8 Gustaf A. Neumann master
5fe13ad7… 21 Feb 08

* replaced Tcl_ObjSetVar2() with Tcl_SetVar2Ex() in nonposargs, since Tcl 8.5 seemed to optimize local variables away, if these not referenced directly from from Tcl,

+2 Gustaf A. Neumann master
570b5b8e… 08 Feb 08

- new info option for "info instmixin" supporting -guards and -closure support - extended test cases for "info instmixin"

+100 Martin Matuska master
90f13fe0… 06 Feb 08

* Continued with info orthogonality change <object> info mixin ?pattern? <class> info instmixin ?pattern? ?pattern? behaves exactly like in the change of two days ago. Preceding colons in the name of the queried class are not required. Still to do "-closure" in <class> info instmixin -closure ?pattern? * In all mentioned calls, where pattern refers to an object/class and it contains wild-cards, a preceding :: is added automatically to the search pattern, if it is missing. Since all object names start with ::, an omitted leading :: in a search pattern is an obvious mistake * Made the behavior "pattern" in the following calls identical concerning wild cards and object lookups <object> mixin delete pattern <class> instmixin delete pattern <class> superclass delete pattern * extended regresson test

+58 Gustaf A. Neumann master
b50baa47… 05 Feb 08

- fix getAllClassMixinsOf to handle combinations of transitive per class mixins and inheriting per-class mixin via the class hierarchy, removed getAllSubClasses - extend test cases

+27 -23 Gustaf A. Neumann master
f37d836d… 04 Feb 08

* Potential incompatibility: provide a uniform interface to the following info subcommands <class> info superclass ?-closure? ?pattern? <class> info subclass ?-closure? ?pattern? <class> info instances ?-closure? ?pattern? <class> info instmixinof ?-closure? ?pattern? <class> info mixinof ?pattern? In cases, where the option "-closure" is defined, the values are computed transitively. In cases, where a pattern is specified, and the pattern contains meta-characters, a list of results is returned matching the pattern (like "string match"). When no matching value is found, an empty list is returned. In cases, where a pattern is specified, and the pattern contains no meta-characters, a single value is returned korrespinding to the specified value. The pattern is used to lookup an object or class, such it is not necessary to provide fully qualified names). if there is no match, empty is returned. Previously, "info superclass" and "info subclass" returned a boolean value and performed always a transitive search. Returning "" is more consistent and more in line with Tcl. By using the option "-closure" one can perform the lookup in the transitive or in the intransitive sets. Still to do: children parent classchildren classparent

+158 -83 Gustaf A. Neumann master
1dd45310… 04 Feb 08

- fix getAllSubClasses - fix "info mixinof -closure", when pattern was provided - streamline code (AppendMatchingElement) - new info option "-closure" for "info instances" (equiv. to "allinstances", but 5 times faster) - new info option "-closure" for "info superclass" (equiv. to "info heritage")

+104 -74 Gustaf A. Neumann master
ef3421c7… 02 Feb 08

- fixed softcrecreate for subclasses of recreated classes - fixed softcrecreate when recreate defines different superclasses - extended test cases for mixinoftest

+17 -6 Gustaf A. Neumann master
6b268aad… 01 Feb 08

- Add closure option to mixinofinfo - Enhance getAllClassMixinofs

+49 -2 Gustaf Neumann master
4486d6fc… 23 Jan 08

- saveing object->id in cl->opt->id (probably a temporary solution) - new function: MixinResetOrderForAllInstances (transitive version of MixinResetOrderForInstances() - use MixinResetOrderForAllInstances for resetting instances - extended regression test

+17 -1 Gustaf Neumann master
018ced50… 01 Jan 08

- fixed evaluation context in guard expressions ([self callingproc] returned "" in cases, where the callingproc was possible to determine)

+7 Gustaf A. Neumann master
cedbcd6a… 28 Dec 07

name change to reduce confusion: * mixinofs -> isObjectMixinOf * instmixinofs -> isClassMixinOf * getAllInstMixinofs -> getAllClassMixinsOf * RemoveFromMixinofs -> removeFromObjectMixinsOf * RemoveFromInstmixinsofs -> removeFromClassMixinsOf

Gustaf A. Neumann master
8f884e24… 28 Dec 07

- fixed crash for deleted classes in new code - changed name from MixinResetInstanceOrder() to MixinResetOrderForInstances() - imporving documentation - made code more local - activate assertion during development

+7 -8 Gustaf A. Neumann master
de273021… 28 Dec 07

- new function from Martin MixinResetInstanceOrder() - better cleanup when classes are deleted

+46 -13 Gustaf A. Neumann master
5f9da805… 28 Dec 07

Adding Martin's patches for instmixinof

+46 -13 Gustaf A. Neumann master
c1fb58f5… 13 Dec 07

fix alias command for aliasing to tcl procs

+7 Gustaf Neumann master
e4ec5e24… 01 Nov 07

- change panic() to Tcl_Panic() - panic, when cmdlist contains deleted command

+11 Gustaf Neumann master
c4c11181… 31 Oct 07

- set clopt->assertions to NULL on class cleanup

+1 RebuM master
c2009f0e… 31 Oct 07

- do not remove class from mixinof and instmixinof lists on recreate - fix deletion of clopt on Class recreate - fix street address in file header

+13 -4 RebuM master
b263e349… 30 Oct 07

syntactical cleanup

Gustaf Neumann master
54346e99… 30 Oct 07

follow tcl coding convention to make merge easier

+2 Gustaf Neumann master
9be808f7… 30 Oct 07

* change Tcl_ObjSetVar2() to Tcl_SetVar2Ex() to address problem in setting variables from C. The set variable was not seen in an eval. * extended regression test

Gustaf Neumann master
519b7130… 29 Oct 07

Don't though error when the last argument of "obj info class <...>" or "cl info superclass <....>" is a non-existing class, but return false instead. This leaves room for pattern matching.

+5 -2 Gustaf Neumann master
ba364529… 29 Oct 07

return mixins before procs in procsearch added regression test for this case

+5 -6 Gustaf Neumann master
cb4fe6a2… 29 Oct 07

minor cleanup and variable renaming

-1 Gustaf Neumann master
c1c92aa3… 29 Oct 07

some code refactoring making new code more robust

+172 -167 Gustaf Neumann master
ad43de10… 28 Oct 07

Adding mixinof and instmixinof - new class info options: mixinof instmixinof - on class destroy entry is now removed from mixin and instmixin lists

+203 -3 Martin Matuska master
c72f9f63… 12 Oct 07

restructured directory to remove superfluous directory xotcl

+12430 Gustaf Neumann master
e7e4c556… 30 Oct 07

syntactical cleanup

Gustaf Neumann 2.0.0
4dd2595d… 30 Oct 07

synchronized with head version xotcl-2007-10-30

+391 -45 Gustaf Neumann 2.0.0
46f02e48… 12 Oct 07

importing experimental xotcl version

+3362 -1907 Gustaf Neumann 2.0.0
f3d0bcae… 18:17

- eliminated XOTE___UNKNOWN - renamed __unknown to requireobject

+12 -2 Gustaf A. Neumann 2.0.0-develop
64fac8df… 17:52

- eliminated XOTE_UNKNOWN

Gustaf A. Neumann 2.0.0-develop
c8c40374… 17:49

- eliminated XOTE_RESIDUALARGS

+9 Gustaf A. Neumann 2.0.0-develop
1acec493… 12:00

- renamed MethodObj() to XOTclMethodObj() (it is an exported symbol) - eliminated XOTE_MOVE

Gustaf A. Neumann 2.0.0-develop
bc2fe454… 00:46

- replaced hard-coded method calls for XOTE_DEFAULTMETHOD, XOTE_INIT, XOTE_OBJECTPARAMETER with MethodObj()

+40 -6 Gustaf Neumann 2.0.0-develop
363468ca… 12 Mar

- created new functions: ObjectSystemFree(), ObjectSystemAdd(), ObjectSystemsCheckSystemMethod(), ObjectSystemsCleanup(), GetObjectSystem(), CallDirectly() for better separation of systems. We keep track which essential system methods are defined and which which methods are potentially overloaded.

+281 -136 Gustaf A. Neumann 2.0.0-develop
8ce6c630… 11 Mar

- move refcount fixing logic for exit from higher stackframes to new function: finalObjectDeletion()

+19 -13 Gustaf A. Neumann 2.0.0-develop
25b538dc… 11 Mar

- first part of allowing arbitrary named internally called methods.

+56 Gustaf A. Neumann 2.0.0-develop
f51bd5a2… 11 Mar

- fix last issue, with freeing objects, when exit happens from higher stack frames

+22 -18 Gustaf A. Neumann 2.0.0-develop
8eb2c3e6… 10 Mar

- block call-stack deletes during XOTCL_EXITHANDLER_ON_SOFT_DESTROY; however, this seems to create a small leak during exit (revant for threads); so currently, debug still turned on

+4 -2 Gustaf A. Neumann 2.0.0-develop
feb8531a… 09 Mar

- replace all CanInvokeDirectly() by InvokeMethodObj()

+13 -22 Gustaf A. Neumann 2.0.0-develop
11d5a8a7… 09 Mar

- remove some more obsolete RCS Ids - call Tcl_Objs "Obj", not "Object"

Gustaf A. Neumann 2.0.0-develop
6ef9f640… 09 Mar

- remove filter deactivation to a later point in time (should finally be before freeAllXOTclObjectsAndClasses())

+12 Gustaf A. Neumann 2.0.0-develop
a15fb82a… 09 Mar

- deactivate filters in finialize - new method InvokeMethodObj() to replace finally CanInvokeDirectly()

+41 -5 Gustaf A. Neumann 2.0.0-develop
6e8ab92e… 08 Mar

- call all truely essential methods directly if possible (Object.destroy, Class.alloc, Class.dealloc, Class.create) The basics of XOTcl can work now also in cases, when these are not defined as methods.

+31 -27 Gustaf A. Neumann 2.0.0-develop
ecc4bec3… 08 Mar

- reduce verbosity

Gustaf A. Neumann 2.0.0-develop
61ef5aee… 08 Mar

- make XOTcl_FrameDecls transparent (use variable declarations in place instead of the macro) - fix variable shadowing bug in error handling (could cause crashes when initcmd lead to errors)

+2 -1 Gustaf A. Neumann 2.0.0-develop
6873ee1a… 08 Mar

- define RecreateObject() for internal call via diect invocation - doCleanup is just called by recreate; merge it into XOTclCRecreateMethod. Is method cleanup necessary? is recreate not sufficient?

+39 -35 Gustaf A. Neumann 2.0.0-develop
548ea60d… 07 Mar

- call c-implemented methods directly for XOTE_RECREATE as well (otherwise, create is faster than recreate)

+5 Gustaf Neumann 2.0.0-develop
704c3ae6… 05 Mar

- call c-implemented methods directly, when this is safe (implemented for XOTE_ALLOC, XOTE_CLEANUP, XOTE_CONFIGURE, XOTE_CREATE, XOTE_DEALLOC); this improves create/destroy speed by up to 15% - allocate namespaces for objects less eager - make nameing more consistent (change newObj into newObject when variable is an xotcl object)

+183 -115 Gustaf A. Neumann 2.0.0-develop
7b269f76… 04 Mar

- fixing "-parameter" with empty content - more variable naming cleanup - fix line breaking in serializer for "exportedObjects"

+2 Gustaf A. Neumann 2.0.0-develop
b9eae4f9… 02 Mar

- fixed wrong name for per-object filter in RelationSlot - fixed condition in filter-incovation to top-level frames - added frametype to information returned by "info frame"

+8 -1 Gustaf A. Neumann 2.0.0-develop
091d3c94… 01 Mar

- remove dependency from xotcl1 in handling of forwarders in method "copy" - further cleanup using "CONST char *", improving on naming conventions

-9 Gustaf A. Neumann 2.0.0-develop
2da271ea… 01 Mar

- further cleanup using "CONST char *"

+2 -4 Gustaf A. Neumann 2.0.0-develop
66c24900… 01 Mar

- use "CONST char *" in generated interface and below

+2 Gustaf A. Neumann 2.0.0-develop
1f1067f1… 28 Feb

- defined "xotcl::current" as synonym for "::xotcl::self" - new options for ::xotcl::current current object == current current method == current proc current callingmethod == current callingproc - "self proc" and friends are for backward compatibility for xotcl1, "current method" and friends are for xotcl2 - namespace exported "::xotcl::current"

+5 -4 Gustaf A. Neumann 2.0.0-develop
02aed4ca… 28 Feb

- minor cleanup (varresolution test and comment)

Gustaf A. Neumann 2.0.0-develop
4bed7e95… 28 Feb

- enable compilation with assertion turned on (via NDEBUG) - fix potentially uninitialized flags for ArgumentCheck() - some further cleanup, tested with 32 bit under Mac OS X 10.6

+6 -5 Gustaf A. Neumann 2.0.0-develop
f3a84ed9… 26 Feb

- keep variables defined from an CMETHOD frame local to this frame (e.g. initcmd, -nonleaf option, ...); previously variables without xotcl resolver prefix were defined globally - fix regression test according to previous item - generalize nonXotclObjectProcFrame() and rename it to activeProcFrame()^

+3 Gustaf Neumann 2.0.0-develop
e991034e… 25 Feb

- working towards KEEP_VARS_IN_CMETHOD_FRAME

+9 -3 Gustaf A. Neumann 2.0.0-develop
66262bd1… 24 Feb

- requireNameSpace: * fix potental crash in requireNameSpace in objscoped methods by swapping all vartable references in objscopes on stack to the vartable in the namespace, when it is created - extending regression test

+7 -1 Gustaf A. Neumann 2.0.0-develop
2c0baf4a… 23 Feb

- renaming of instance variable specific primitiva for more constistency with ::xotcl::importvar: ::xotcl::exists -> ::xotcl::existsvar ::xotcl::setinstvar -> ::xotcl::setvar

Gustaf A. Neumann 2.0.0-develop
e476fd38… 23 Feb

- removed XOTclCreateClass() and XOTclDeleteClass(); both are identical with XOTclCreateObject() and XOTclDeleteObject()

-18 Gustaf A. Neumann 2.0.0-develop
bc1c78f1… 23 Feb

- removed obsolete ::xotcl::configure option "cacheinterface"

-12 Gustaf A. Neumann 2.0.0-develop
7f114dad… 23 Feb

- added option "-nonleaf" for method alias - added introspection (for "info method definition") for "alias ... -nonleaf ..."

+3 Gustaf A. Neumann 2.0.0-develop
bfbe6929… 23 Feb

- further naming cleanup

+1 -5 Gustaf A. Neumann 2.0.0-develop
b3b70d9e… 23 Feb

- cleanup in stack handlers (naming, arguments)

Gustaf A. Neumann 2.0.0-develop
b3b84471… 23 Feb

- initcmd: use for initcmds CMETHOD frames instead of OBJECT stack frames - initcmd: skip parent-stack frame's objscope for initcmd - changed hash-based lookup of children into a cmd-based lookup - extended regression test

+28 -16 Gustaf A. Neumann 2.0.0-develop
2880a345… 22 Feb

- fixed namespace handling on stack for objects with namespaces (before, it was possible that a variable was created in an object's namespace without -objscope) - as a consequence, ListChildren() had to be adjused, since it depended on the previous namespace handling on the stack - fixed object sesolving in NsDotVarResolver() (before, it was possible that NsDotVarResolver could create variables in the wrong namespace) - simplified NsDotVarResolver() - more cleanup in name resolver * USE_DOT is gone * XOTclDotDotCmd() removed * improved performance of InterpCompiledDotVarResolver() * made LookupVarFromTable() obsolete and removed it * renamed DotVarResolver() and friends to ColonVarResolver() etc. - extended regression test

+43 -129 Gustaf A. Neumann 2.0.0-develop
08e94eff… 21 Feb

- renamed ::xotcl::valuecheck -> ::xotcl::parametercheck

-2 Gustaf A. Neumann 2.0.0-develop
bc6eb608… 21 Feb

- renamed old "xotcl::is" -> "xotcl::objectproperty" - renamed old "xotcl::is2" -> "xotcl::is" - we have now is tests for objects in ::xotcl::objectproperty ::xotcl::objectproperty $obj object ::xotcl::objectproperty $obj class ::xotcl::objectproperty $obj baseclass ::xotcl::objectproperty $obj metaclass ::xotcl::objectproperty $obj type XXXX ::xotcl::objectproperty $obj hasmixin XXXX - "::xotcl::is" is the higher level command, supporting string contstraints "e.g. upper", user defined type checkers and as well object properties (every parameter type supported for object and method paameter). Examples: ::xotcl::is $obj object ?-type $type? ?-hasmixin $mixin? ::xotcl::is $cl class ?-type $type? ?-hasmixin $mixin? ::xotcl::is obj metaclass ::xotcl::is $num integer ::xotcl::is $string upper - implemented 2nd level reference counting for paramObjType

+117 -72 Gustaf A. Neumann 2.0.0-develop
29267f0c… 20 Feb

- Unified on c-level "info class-mixin-of" and "info object-mixin-of" to "info mixinof ?-scope all|object|class? ?-closure? ?pattern? The former "info class-mixin-of" is now "info mixinof -scope class" - adapted xotcl1 layer for this change - extended experimental ::xotcl::is2 to handle flags -type and -hasmixin ::xotcl::is2 <obj> object ?-type <type>? ?-hasmixin <class>?

+37 -17 Gustaf A. Neumann 2.0.0-develop
b1f41652… 19 Feb

- experimental checking function ::xotcl::is2 implemented, which generalizes between ::xotcl::is and ::xotcl::valuecheck (it is a valuecheck -nocomplain with an ::xotcl::is syntax and switched arguments)

+45 Gustaf A. Neumann 2.0.0-develop
b3fff4e3… 18 Feb

- centralize fetching of tcl-obj-types in xotcl_init

+11 -40 Gustaf A. Neumann 2.0.0-develop
2cd9b650… 14 Feb

- experimental: allow to show built-in types provided that a) slot= is specified explicitely, and b) the specified slot is not the default slot. This should guarantee that we do not interfere with the predefined converters for the c-level interface. - incremented ref count on results of all-level converter - extended regression test

+34 Gustaf A. Neumann 2.0.0-develop
536cacc0… 12 Feb

- ::xotcl::valuecheck: moved "-nocomplain" to first position (similar to e.g. unset)

Gustaf A. Neumann 2.0.0-develop
7f903442… 12 Feb

- fixed result resetting for user defined converters

+3 -1 Gustaf A. Neumann 2.0.0-develop
b187bc23… 11 Feb

- implemented "info method definition|parameter|args $name" for settercmds (with parameter constraints) - extended regression test

+20 Gustaf A. Neumann 2.0.0-develop
62913a6c… 11 Feb

- fixed returned method name when setter was used on objects - reduce verbosity

Gustaf A. Neumann 2.0.0-develop
496ffe8f… 11 Feb

- added a "-nocomplain" option to ::xotcl::valuecheck - changed semantic of ::xotcl::valuecheck: per default, valuecheck raises an error or returns true. If "-nocomplain" is used, valuecheck returns 0 or 1 like implemented befor this change - extended regression test

+12 -2 Gustaf A. Neumann 2.0.0-develop
782f6b06… 11 Feb

- removed duplciate error message in "hasmixin" converter - fixed refcounting in converting user-types in case of errors - extended regression test

+1 Gustaf A. Neumann 2.0.0-develop
c0b363ca… 11 Feb

- setterCmd(): Do not allow methodNames start with "-" - setterCmd(): Do not allow defaults for setters - extend regression test

+16 Gustaf A. Neumann 2.0.0-develop
cd12f5a5… 10 Feb

- Allowed parameter specification for setters. One can define now a setter with constraints like e.g. ::xotcl::setter o a:integer to define a setter named "a" for object "o" which has to be integer. - Extended regression test - Followed nameing conventions for several structures

+67 -1 Gustaf A. Neumann 2.0.0-develop
930db9f3… 09 Feb

- fixed compilation for tcl 8.6b1

-3 Gustaf A. Neumann 2.0.0-develop
e5cee71c… 09 Feb

- fixed valuecheck in connection with modifying converters - extended regression test

+5 Gustaf A. Neumann 2.0.0-develop
c942f4e1… 08 Feb

- made error messages for failed conversions more consistent (note that tcl does not provide the parameter name in the error message, but user-defined converters do)

+11 Gustaf A. Neumann 2.0.0-develop
464811a4… 08 Feb

- renamed "::xotcl::is ... mixin ..." to "::xotcl::is ... hasmixin ..." (affects parametertypes as well)

Gustaf A. Neumann 2.0.0-develop
901ceb8f… 08 Feb

- move methodParameter checkers for "mixin", "baseclass" and "metaclass" to predefined. - deactivated checkMethods in gentclAPI.decls and in xotcl.c

+1 Gustaf A. Neumann 2.0.0-develop
0e4d8c60… 08 Feb

- provide error message for cases, where parameter options are not allowed (or ignored)

+13 Gustaf A. Neumann 2.0.0-develop
147831f1… 08 Feb

- fix counter initialization in ::xotcl::importvar - register alternate "new" method in "contains" for xotcl2 and (if available) for xotcl1 objects

+5 Gustaf A. Neumann 2.0.0-develop
16664bdf… 07 Feb

- handle multivalued + values converted viaCmd converter the new output list is only built when needed via ArgumentCheckHelper()

+75 -5 Gustaf A. Neumann 2.0.0-develop
b8af431b… 05 Feb

- added argument for converter to return the converted tcl_obj, which should be passed on (currently only used for viaCmd); this way, we could remove the kludge of querying the converter after the conversion for special handling.

+41 -14 Gustaf Neumann 2.0.0-develop
4e4a884e… 05 Feb

- treat currently unknown converters in valuecheckcmd as error - fix the regression test from the last changes

+7 Gustaf Neumann 2.0.0-develop
cfee3259… 05 Feb

- added parameter option slot= to pass slotobj to a certain parameter - use slot option to keep relation between parameter and slot - object parameter dispatch type checker on slot objects - allow transformation via user-defined converter (can be use to standardize parameter values) experimental implementation, refcounting has to be looked in detail, maybe we need a different interface for the converters

+46 -18 Gustaf Neumann 2.0.0-develop
98543800… 04 Feb

- added error message when substdefault is specified without a default value - extend regression test

+4 Gustaf Neumann 2.0.0-develop
3ecb613f… 03 Feb

- predefined.xotcl: move toParameterSyntax and objectparameter to a position, where basic slot definitions are provided - fixed default value setting in bootstrap code - provide more precise error message in converter, when object type are used - extend regression test

+5 Gustaf Neumann 2.0.0-develop
7afa0b7f… 03 Feb

- get rid of convertToObjectOfType(), make convertToClass() and converterToObject() more general, accepting type constraints

+14 -18 Gustaf Neumann 2.0.0-develop
5a0750dc… 02 Feb

- support for all string constraints provided by "string is ... $value" in object and method parameters ("alum", "alpha", ..., "xdigit"). Technically, these types are tclobjs (using converter convertToTclobj) having pParm->converterArg set to the constraints. - extended regression test

+54 -2 Gustaf Neumann 2.0.0-develop
48d5751e… 29 Jan

- refactor Slot class hierarchie - new methods in ObjectParameterSlot "toParameterSyntax" and "createFromParameterSyntax" - some more cleanup - removed legacy syntax for "-parmeters"

+2 Gustaf A. Neumann 2.0.0-develop
05f4b42f… 28 Jan

- cleanup of legacy stuff in slot management. * merged InfoSlot and InterceptorSlot into RelationSlot * get rid of legacy "mixin set ...." command - renamed "parameterSlot" into "methodParameterSlot" to avoid potential confusions

Gustaf A. Neumann 2.0.0-develop
1e72a93d… 28 Jan

- define everything concerning basic slot setup in a single "namespace eval ::xotcl {...}" - undefine ::xotcl::createBootstrapAttributeSlots after this block - fix default DefaultSuperClass() with isMeta==1 in cases, where we are already at the root meta class - use "-parameter" in xotcl1 instead of createBootstrapAttributeSlots

+11 Gustaf A. Neumann 2.0.0-develop
d3aa8e06… 27 Jan

- name parameterType -> parameterSlot - use for now same parameterSlot for xotcl1 + 2 - disallow unknown types (otherwise interpreted as user-types) in valuecheck

+4 -2 Gustaf Neumann 2.0.0-develop
89fec6cc… 26 Jan

- allow syntax "object,type=::SomeClass" and "class,type=::SomeMetaClass" (currently identical, we should as well check for class/meta-class in case of "class,type=SomeClass")

+3 Gustaf A. Neumann 2.0.0-develop
127bec56… 25 Jan

- remove unneeded push and pop operations in ListChildren() and ObjectHasChildren()

+1 -5 Gustaf A. Neumann 2.0.0-develop
0c63bc09… 25 Jan

- name XOTclObjects always "object" instead of "obj" to avoid potential confusion with Tcl_Objs

-21 Gustaf A. Neumann 2.0.0-develop
ed15b5be… 25 Jan

- support for parameter spec of form "type=XXX" to denote that the parameter must be an object of the specified type (class; directly or indirectly) - new built-in converter: convertToObjectOfType() - keep parameterObj (source for conversion to XOTclParam) for making introspection less work. However, this is only used for XOTclParams generated via ParamParse(). - extending regression test

+69 -24 Gustaf A. Neumann 2.0.0-develop
9e28ec16… 24 Jan

- pass arg from objectparameter as first argument to objparms (similiar to client data)

+11 Gustaf A. Neumann 2.0.0-develop
5524b83e… 24 Jan

- parameterFromSlot returns now pair object-param & method-param - define dissallowed parameter options for object parameter, method parameter and valuecheck command - make canonical table of parameter options (currently in tests/parameter.xotcl) - extend regression test

+2 Gustaf A. Neumann 2.0.0-develop
4a478eb5… 24 Jan

- new cmd "::xotcl::valuecheck <valueConstraints> <value>" where "valueConstraints" is whatever is allowed in e.g. parameters (including user defined types) - new Tcl_ObjType "xotclParam"

+80 Gustaf A. Neumann 2.0.0-develop
4ce2a065… 23 Jan

- checking multivalued types in "-parameters" by using argument checker - some cleanup - extend regression test

Gustaf A. Neumann 2.0.0-develop
c6066a15… 23 Jan

- added "multivalued" to parameter options - made error message produced by XOTclObjErrType look like Tcl's error messages - extended regression test - test utility: changed "?" to return error msg in case of error

+32 Gustaf A. Neumann 2.0.0-develop
fe195497… 19 Jan

- making methodDefinitions NULL terminated - passing optional arg to user-defined argument converter - refuse to redefine type converters for a single parameter - adding regression test for parameters

+39 -15 Gustaf A. Neumann 2.0.0-develop
210eab6d… 15 Jan

- experimental change of resolver name prefix char from dot to single colon

+22 Gustaf A. Neumann 2.0.0-develop
99b9e9e9… 11 Jan

- keep orignial objc/objc in call stack context such that next/self args works with canonical args (allow e.g. different order of nonpos args in a next) - make naming in xotcl.c more consistent - ensure to return empty, when "info callable -which" fails - extend regression test

+15 -2 Gustaf A. Neumann 2.0.0-develop
f6775105… 09 Jan

- NsDotVarResolver: don't create variables on CMETHOD frames when their names do not start with a "." - general overhaul of XOTcl_PushFrame()XOTcl_PopFrame(): new functions: * XOTcl_PushFrameCsc()/XOTcl_PopFrameCsc(): for CMETHOD fames * XOTcl_PushFrameObj()/XOTcl_PopFrameObj(): for OBJECT frames (objscope) - preallocate obj->vartable in XOTcl_PushFrameObj() to avoid situations where to non-existing vartable is created on demand at different places (e.g. on stack and in var resolver) - caller of convertToRelationtype(): make sure that last argument keeping the result is large enough to held pointer (in case of sizeof(void) != sizeof(int)

+52 -23 Gustaf A. Neumann 2.0.0-develop
f279bf06… 08 Jan

- use uplevel in slot add/delete to evalute in calling namespace (for not fully qualified object names) - determine namespace in test method "?" to allow its execution in an "namespace eval" - added regression tests

-3 Gustaf A. Neumann 2.0.0-develop
b86763d6… 08 Jan

- make sure to have an xotcl frame pushed, when byte-code-compiler is invoked. This is necessary for providing the context for dotCmd resolvers

+21 -15 Gustaf A. Neumann 2.0.0-develop
12f68a7a… 08 Jan

- improved naming of resolvers: use InterpDot*Resolver and NsDot*Resolver for interp wide and namespace specific resolvers - added possibility to escape the call of commands starting with a dot from method bodies by prefixing with a second dot.

+54 -3 Gustaf A. Neumann 2.0.0-develop
04e90dc0… 08 Jan

- make allocation sizes for dynamically allocated parameterContexts consistent between alloc and realloc - added sanity check in getAllClassMixinsOf() It seems as it would be possible with __defaultSupeclass to define a class which has itself als a subclass. Just a quick fix, we have investigate more on this.

+10 -1 Gustaf A. Neumann 2.0.0-develop
e5b7b926… 06 Jan

- added option "objectsystems" to ::xotcl::configure to obtain the currently defined object systems - added option "baseclass" to ::xotcl::is to check, whether a class is a baseclass of an object system (root class or root meta-class of object system) - changed result of "... info methods -methodtype scripted" to return only truely scripted methods (no aliases) - some more cleanup in regression tests - first version of serializer for xotcl1 + xotcl2

+30 Gustaf A. Neumann 2.0.0-develop
73eb4ecc… 05 Jan

- modernize test a little: all local definitions of proc "?" are gone. - added interface to test: "Test parameter count SOMEVALUE" to specify conveniently e.g. the number of tests the be executed - add XOTCL_CM_NO_UNKNOWN to dispatch of defaultmethod

Gustaf A. Neumann 2.0.0-develop
ff41e1a0… 05 Jan

- added option "-application" to "info callable" to omit methods from base classes - extended regression test - changed naming of methodtype "system" to "builtin" - added "info methods" to migration guide

+19 Gustaf A. Neumann 2.0.0-develop
1c11937f… 05 Jan

- xotcl.c: removed all names starting with "inst" (exception: instvar)

+3 -8 Gustaf A. Neumann 2.0.0-develop
6b3921be… 05 Jan

- added option "arg=.." to parameter options; this argument can be passed to converter; used currently for "type=relation" to flag, that the relation type is different from the parameter name - extended "objectparameter" to handle such cases - removed relationtypes "mixin", "filter", "instfilter" and "instmixin" since not needed due to converterArg

+4 -22 Gustaf A. Neumann 2.0.0-develop
28acb2d7… 05 Jan

- removed all unreferenced entries from XOTE_* - regrouped XOTE_* for easier comprehension - used XOTE_* on more occations - used XOTclCallCommand() for calling Tcl "format" and "interp"

-12 Gustaf A. Neumann 2.0.0-develop
b385d44d… 05 Jan

- removed XOTclInstVar from the C-level API. todo: add all xotcl*cmds to C api, including importvar

-29 Gustaf A. Neumann 2.0.0-develop
1ddb61a4… 05 Jan

- changed resultss of "filtersearch" and "self next" to new naming Caveat: for xotcl1, there is no mapping for the names to the old style in "self next" and "self filterreg" - backwards compatible mapping of filterseach in xotcl1

+2 -13 Gustaf A. Neumann 2.0.0-develop
0307cf5d… 04 Jan

- removed dependency on proc/instproc in copy/move. code is now independet of class system

+10 -17 Gustaf A. Neumann 2.0.0-develop
da698cea… 04 Jan

- allow invovation of fully qualified method names (determined via ... info method name ...)

+16 Gustaf A. Neumann 2.0.0-develop
687ce97e… 04 Jan

- moved cmd flags into xotclInt.h - added missing prototype

+1 Gustaf A. Neumann 2.0.0-develop
9b7f41ce… 04 Jan

- added interface definitions for generated tcl commands to xotcl.c

+191 -97 Gustaf A. Neumann 2.0.0-develop
e61fc14f… 04 Jan

- added experimental flag for alias "-noleaf" to force a stack frame to be written (e.g. necessary for "next"). makes only sense for aliases to c-implemented cmds - fix inconsistent behaviour of dotVarResolver "o eval {set .x 1}" was setting var ".x" instead of "x" The problem was due to a interaction between the namespace varResolver() and the DotVarResolver() - fix for DotCmdResolver during compilation of a proc by Tcl. - extended regression text - found 2 potential bugs (not fixed yet)

+94 -17 Gustaf A. Neumann 2.0.0-develop
be717fe9… 04 Jan

- moved "-per-object" consequently immediately after obj in the following commands : ::xotcl::alias, ::xotcl::methodproperty, ::xotcl::setter to achiev conformance with ::xotcl::forward and ::xotcl::method

+23 -1 Gustaf A. Neumann 2.0.0-develop
8ec36a44… 03 Jan

- reduce verbosity

-2 Gustaf A. Neumann 2.0.0-develop
68e773f0… 03 Jan

- added ::xotcl::forward as cmd instead of method now, all method-defining-methods (alias, method, forward, setter) are defined as cmds (this should make life of serializer easier)

+55 -47 Gustaf A. Neumann 2.0.0-develop
62a9d39e… 03 Jan

- added ::xotcl::method as cmd instead of methods object-method and class-method

+26 -23 Gustaf A. Neumann 2.0.0-develop
7d9452f6… 03 Jan

- added ::xotcl::exists as cmd

+8 Gustaf A. Neumann 2.0.0-develop
6db1260f… 03 Jan

- minor refactoring

+27 -32 Gustaf A. Neumann 2.0.0-develop
7050a52a… 03 Jan

- changed assertions: old (xotcl1) interface: 3 methods + 3 info methods * <object> check Options * <object> info check * <object> invar Conditions * <object> info invar * <class> instinvar Conditions * <class> info instinvar new (xotcl2) interface: 1 cmd (similar to ::xotcl::relation) ::xotcl::assertion check|object-invar|class-invar ?arg? - added emulation for xotcl1 - deleted namespecific C macros: isInfoString, isInstinvarString, isInvarString, isInstprocString, isProcString

+118 -100 Gustaf A. Neumann 2.0.0-develop
25de23e9… 02 Jan

- change and rename cmd instvar ::xotcl::instvar -object someObject newVar into ::xotcl::importvar someObject newVar Rationale of change: only needed in xotcl2 for importing variables from different objects

-3 Gustaf A. Neumann 2.0.0-develop
f4cb2e4e… 02 Jan

- update to TEA 3.7 (from TEAD 3.5) - use of INT2PTR to avoid warnings about different sizes on 64bit architectures - defined HAVE_INTPTR_T as a macro to make definition of INT2PTR working

Gustaf A. Neumann 2.0.0-develop
b62dcaa1… 01 Jan

- renamed "ClassName info instmixinof ?-closure? ?pattern?" into "ClassName info class-mixin-of ?-closure? ?pattern?" - renamed "ClassName info mixinof ?-closure? ?pattern?" into "ClassName info object-mixin-of ?-closure? ?pattern?" - added emulation "ClassName info instmixinof|mixinof" for xotcl1

Gustaf A. Neumann 2.0.0-develop
458415a6… 01 Jan

- add minor comment

+2 -1 Gustaf A. Neumann 2.0.0-develop
f2b4c92e… 01 Jan

- reactivated XOTclErrInProc()

-2 Gustaf A. Neumann 2.0.0-develop
5b0ee985… 01 Jan

- get rid of rst->deallocCalled (not needed due to reference counting on xotcl objects) - reduce verbosity

+2 -10 Gustaf A. Neumann 2.0.0-develop
f9807b1c… 01 Jan

- added existence test for slot extractor (needed for 8.5.8) - added refcounting CallStackDoDestroy() to ensure existance of object until end of function - make sure to call PrimitiveDestroy() before DeleteCommandFromToken(), otherwise e.g. unset traces on this object cannot be executed - regression test works again

+16 -8 Gustaf A. Neumann 2.0.0-develop
e2bce71b… 31 Dec 09

- added refounting in ObjectDispatch() to make sure, obj survives until the end of the function

+9 -1 Gustaf A. Neumann 2.0.0-develop
77531e55… 31 Dec 09

- comment manual call to DoDealloc() in case the method has failed

+3 Gustaf A. Neumann 2.0.0-develop
f3cbadd6… 31 Dec 09

- handle change in tcl 8.5.8: http://tcl.cvs.sourceforge.net/viewvc/tcl/tcl/generic/tclObj.c?sortby=date&r1=1.139.2.1&r2=1.139.2.2&pathrev=core-8-5-branch in xotcl: * when e.g. the parent namespace is deleted with a "namespace delete", the change above causes, the no xotcl methods could be resolved (and called) anymore. * therefore, e.g. a "C dealloc c1" did not work, since dealloc passes c1 via tcl_obj, and the tcl_obj is as well converted to an xotcl object via Tcl_GetCommandFromObj(), which fails as well. - to bypass this problem, xotcl has now a C-function DoDealloc(), which is called, when this situation is detected. - some more cases, where xotcl could reference already freed memory were fixed (thanks to enable-symbols=mem) - as collateral damage, parts of the regression test don't work currently

+74 -5 Gustaf A. Neumann 2.0.0-develop
4e57b61f… 30 Dec 09

- space changes

+1 Gustaf A. Neumann 2.0.0-develop
d0c9d9b1… 30 Dec 09

- made naming more consisent - alway initialize parse context properly

+6 Gustaf A. Neumann 2.0.0-develop
7c5c045a… 29 Dec 09

- new subcommand "... info method body ..." to avoid to relay on syntax of "info method definition" in xotcl1 compatibility

+4 Gustaf A. Neumann 2.0.0-develop
d70c8492… 29 Dec 09

- removed -per-object from ::xotcl::relation - removed -per-object from methods "mixinguard" and "filterguard" - removed -per-object from methods "alias" and "method" - added "... object filterguard ..." and "... object mixinguard ..." - implemented "info method definition" with "object" modifier - extended regression test

+6 -39 Gustaf A. Neumann 2.0.0-develop
9abb79a3… 28 Dec 09

- call __UNKNOWN with XOTCL_CM_NO_PROTECT (don't complain when it is protected)

+4 -10 Gustaf A. Neumann 2.0.0-develop
2454ab78… 28 Dec 09

- added "<Class> object filter" and "<Class> object mixin" - use explicit "(object|class)-(mixin|filter)" relations in ::xotcl::relation - removed "-per-object" from all user-level relation commands (::xotcl::relation has still "-per-object"), but it is not needed anymore - register slots "object-mixin" and "object-filter" for conveniance to allow object-filter and object-mixins via configuration via object parameter

+7 Gustaf A. Neumann 2.0.0-develop
d56d2a8e… 28 Dec 09

- turned "setter" method into a command "::xotcl::setter" with the same interface like "::xotcl::alias" - removed flag -per-object from XOTclCForwardMethod - require "object" to be followed directly by either method defining command or info, etc. (use "public object method" instead of "object public method")

+21 -63 Gustaf A. Neumann 2.0.0-develop
2f283277… 26 Dec 09

- renamed method property "static" to "redefine-protected"

Gustaf A. Neumann 2.0.0-develop
142687ef… 26 Dec 09

- removed "-protected" and "-public" from method defining methods ("alias", "method")

+2 -11 Gustaf A. Neumann 2.0.0-develop
962c96dc… 26 Dec 09

- Definition of method modifiers "public", "protected" and "object" - all method-creating methods ("method", "alias", "forward", "setter") return now the fully qualified method names - extending 50 regression tests fpr method modifiers - Make "unknown" for ::xotcl2::Class" to raise an error instead of warning. Otherwise, protected class-level methods would create objects with the name of protected methods. Other option: make calls to protected methods raise an error, instead of calling "unknown"

+64 -25 Gustaf A. Neumann 2.0.0-develop
a59ed987… 23 Dec 09

- return fully qualified name from method defining commands (part 1, "method")

+23 -12 Gustaf A. Neumann 2.0.0-develop
bf9bae94… 22 Dec 09

- changed in xotcl-core "method" into "object-method" and "class-method", provided scripted definition for method in xotcl2 - removed "setter" from methods in xotcl1 - defined xotcl1 methods in terms of "proc" and "instproc"

+2 -6 Gustaf A. Neumann 2.0.0-develop
04747ba7… 21 Dec 09

- Methods defined via "method" are now per default "protected" - new switch "-public" for "method" to define public methods - new flag for "info callable": -callprotection", values "all|protected|public" - new flag for "info methods": -callprotection", values "all|protected|public" - converted part of regression test

+38 -9 Gustaf A. Neumann 2.0.0-develop
503b512a… 21 Dec 09

- minor refactoring to reflect changes in "info methods"

+12 -12 Gustaf A. Neumann 2.0.0-develop
1f0231a5… 19 Dec 09

- 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

+22 -18 Gustaf A. Neumann 2.0.0-develop
d5785e8f… 18 Dec 09

- removed "obj|class info alias"; obsoleted by "info method definition"

+12 -35 Gustaf A. Neumann 2.0.0-develop
90358010… 18 Dec 09

- renamed "info method pre" to "info method precondition" - renamed "info method post" to "info method postcondition"

Gustaf A. Neumann 2.0.0-develop
6a93cc19… 18 Dec 09

- reduce verbosity

-4 Gustaf A. Neumann 2.0.0-develop
ae9d35c6… 18 Dec 09

- keep last setting of per-object and per-class mixins, when list of new mixins contains invalid ones (prev. versions: registered mixins were reset)

+55 -39 Gustaf A. Neumann 2.0.0-develop
1a2ed9fd… 17 Dec 09

- 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

+26 -32 Gustaf A. Neumann 2.0.0-develop
c09536ec… 17 Dec 09

* 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

+6 -13 Gustaf A. Neumann 2.0.0-develop
d34c425b… 17 Dec 09

- 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

+5 Gustaf A. Neumann 2.0.0-develop
42c96835… 17 Dec 09

- "info instforward" gone, added emulation in xotcl1

Gustaf A. Neumann 2.0.0-develop
ca676cbf… 17 Dec 09

- "info instfilterguard" gone, added emulation in xotcl1

Gustaf A. Neumann 2.0.0-develop
6b0cef2d… 17 Dec 09

- "info instfilter" gone, added emulation in xotcl1

Gustaf A. Neumann 2.0.0-develop
5008260d… 17 Dec 09

- "info instmixinguard" gone, added emulation in xotcl1

Gustaf A. Neumann 2.0.0-develop
ae1f8003… 17 Dec 09

- "info instmixin" gone, added emulation in xotcl1

-5 Gustaf A. Neumann 2.0.0-develop
f0260303… 17 Dec 09

- 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

+2 -25 Gustaf A. Neumann 2.0.0-develop
033a6b83… 16 Dec 09

- 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

+30 Gustaf A. Neumann 2.0.0-develop
477c12e1… 15 Dec 09

- 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

+114 -17 Gustaf A. Neumann 2.0.0-develop
b708f296… 01 Dec 09

- 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

+12 Gustaf A. Neumann 2.0.0-develop
8f793473… 30 Nov 09

- 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

+91 -33 Gustaf A. Neumann 2.0.0-develop
8c7e00e2… 11 Nov 09

- removed "-per-object" from "<class> info alias"

-2 Gustaf A. Neumann 2.0.0-develop
9ebd1309… 11 Nov 09

- 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

+26 -14 Gustaf A. Neumann 2.0.0-develop
aef0c854… 10 Nov 09

- xotcl2: added "obj info method parameter name"

+9 Gustaf A. Neumann 2.0.0-develop
666f7ad2… 09 Nov 09

- 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

+277 -130 Gustaf A. Neumann 2.0.0-develop
594443fc… 24 Oct 09

- 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)

+6 Gustaf A. Neumann 2.0.0-develop
db7c710a… 20 Oct 09

- 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

+36 Gustaf A. Neumann 2.0.0-develop
15a32e38… 20 Oct 09

- finished implementtion of "info method -methodtype alias"

+18 -13 Gustaf A. Neumann 2.0.0-develop
f6be3f63… 19 Oct 09

- 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)

+111 -7 Gustaf A. Neumann 2.0.0-develop
9f7fa883… 17 Oct 09

- added aliastest provided by stefan - handle [self class] in aliased methods properly - use xotcl2 per default in xotclsh

+2 Gustaf A. Neumann 2.0.0-develop
e767edf5… 12 Oct 09

- 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

+75 -25 Gustaf Neumann 2.0.0-develop
25416326… 10 Oct 09

- 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

+15 -10 Gustaf A. Neumann 2.0.0-develop
d07f5f58… 10 Oct 09

- managing status of import refs in aliased cmds

+53 -3 Gustaf A. Neumann 2.0.0-develop
663efcd5… 09 Oct 09

- 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

Gustaf A. Neumann 2.0.0-develop
3bc1c47a… 09 Oct 09

- added automatic deletion of aliased commands - deletion of aliased procs works, deletion of aliases to procs not yet

+92 -21 Gustaf A. Neumann 2.0.0-develop
c9d7c292… 08 Oct 09

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

Gustaf A. Neumann 2.0.0-develop
4d8ba3b5… 08 Oct 09

- white space cleanup

Gustaf A. Neumann 2.0.0-develop
3820f18d… 08 Oct 09

- make volatile work with object frames - fix typo in error message

-1 Gustaf A. Neumann 2.0.0-develop
afa1cb80… 08 Oct 09

- 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

+6 Gustaf A. Neumann 2.0.0-develop
555e7f84… 07 Oct 09

- 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)

+32 -2 Gustaf A. Neumann 2.0.0-develop
79475c4a… 07 Oct 09

- fix mixin deletion in next. Previouly, redundant computations of filters circumvented the problem. The bug was in the code at least since 2004.

+4 -8 Gustaf A. Neumann 2.0.0-develop
dc104a4f… 06 Oct 09

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

+20 Gustaf A. Neumann 2.0.0-develop
9da46f4a… 06 Oct 09

- simplified resolver for compiled variables - small improvement for "next"

+28 -24 Gustaf A. Neumann 2.0.0-develop
69c77903… 05 Oct 09

- fix object access in dotVarResolver for frames of type FRAME_IS_XOTCL_OBJECT

+5 -25 Gustaf A. Neumann 2.0.0-develop
af700ead… 05 Oct 09

- temporary commit to swich to machine with valgrind

+25 Gustaf Neumann 2.0.0-develop
675e2858… 05 Oct 09

- provide explicit unknown handler - fix cases, where unknown hander was unknown

+4 Gustaf Neumann 2.0.0-develop
904066a2… 05 Oct 09

- 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)

+62 -13 Gustaf Neumann 2.0.0-develop
11668f66… 02 Oct 09

- avoid potential crashes, when next is not called from withing a methods context

Gustaf Neumann 2.0.0-develop
10291a90… 01 Oct 09

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

+3 Gustaf Neumann 2.0.0-develop
55b4fe53… 01 Oct 09

- remove "." treatment from residual args handler

Gustaf Neumann 2.0.0-develop
af7d1fea… 01 Oct 09

- minor polishing

-4 Gustaf Neumann 2.0.0-develop
f316e4ef… 01 Oct 09

- allow to distinguish for enumeration values between missing value and given first value (numerically 0) - generated stub for selfCmd

+145 -196 Gustaf Neumann 2.0.0-develop
eb2bd44e… 30 Sep 09

- kip in forwarded "." in method name

+5 Gustaf Neumann 2.0.0-develop
c0b16984… 30 Sep 09

- avoid overshooting the point in the argument vector for looking at nonpos args

+6 -1 Gustaf Neumann 2.0.0-develop
368155fc… 30 Sep 09

- supporting "per-object" for alias - extending regression test

+5 Gustaf Neumann 2.0.0-develop
95e70e81… 27 Sep 09

- reduce verbosity

Gustaf A. Neumann 2.0.0-develop
dfcec445… 27 Sep 09

- implement first version of resudialargs parser, accepting methods starting with a "."

+50 Gustaf A. Neumann 2.0.0-develop
558ed9bf… 27 Sep 09

- change "setvalues" to "residualargs"

-11 Gustaf A. Neumann 2.0.0-develop
50795c66… 25 Sep 09

- 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

+25 -7 Gustaf A. Neumann 2.0.0-develop
7a163ed3… 24 Sep 09

- added several CONST flags - added experimental cmd resolver

+29 Gustaf A. Neumann 2.0.0-develop
815c11d7… 24 Sep 09

- factor out VarHashTableCreate() and CompiledLocalsLookup() - new debug flag VAR_RESOLVER_TRACE - new varResolver DotVarResolver(): catches variable names starting with a ".", only lookups within XOTCL_METHOD_FRAMES to minimize interactions - don't clobber from guard calls for 8.5 and earlier as well - extended regression tests

+100 -48 Gustaf A. Neumann 2.0.0-develop
5f087239… 23 Sep 09

- made compiledlocal handler more robust - added regression tests for compiled local handler

+32 -2 Gustaf A. Neumann 2.0.0-develop
ccc949c8… 23 Sep 09

Merge branch '2.0.0-develop' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/xotcl into 2.0.0-develop

+77 -1 Gustaf A. Neumann 2.0.0-develop
cde16e9d… 23 Sep 09

- change configure to run genstubs automatically - change scoping of variables on c-stack for not running in a optimizer problem

+1 -3 Gustaf A. Neumann 2.0.0-develop
f588c877… 22 Sep 09

- cache var lookup (needs detailed testing)

+8 Gustaf Neumann 2.0.0-develop
a092bf27… 22 Sep 09

- added experimental USE_COMPILED_VAR_RESOLVER Example: Foo instproc bar2 {} { set .x [expr {!${.x}}] }

+69 -1 Gustaf Neumann 2.0.0-develop
d4e66214… 22 Sep 09

- provide propagation of errors from mixin guards (in earlier XOTcl versions, these were silently ignored) - don't clobber from guard calls - added new regression tests for mixin and filter guards called via next and trigger errors - fix result code handling for tcl 8.6 - fix tcl stack allocs/deallocs for tcl 8.6 - new debug flag TCL_STACK_ALLOC_TRACE - improve comments - new function CmdIsProc() to handle different behavior of TclIsProc() in 8.6 - passing regression test with tcl 8.6

+62 -20 Gustaf A. Neumann 2.0.0-develop
044952af… 21 Sep 09

- 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

+20 -9 Gustaf A. Neumann 2.0.0-develop
f71845ba… 19 Sep 09

- first steps towards 8.6

+103 -15 Gustaf A. Neumann 2.0.0-develop
761e656f… 18 Sep 09

- improve debug message

Gustaf A. Neumann 2.0.0-develop
e8f814e8… 18 Sep 09

- fixed var resolver problem - reactivated "set" method via "::set" - removed private realization via XOTclOSetMethod

+2 -8 Gustaf A. Neumann 2.0.0-develop
a4d1fd30… 16 Sep 09

- 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

+100 -144 Gustaf A. Neumann 2.0.0-develop
aef09781… 15 Sep 09

- implementing "method" instead of "proc" and "instproc" on the C level

+54 -80 Gustaf A. Neumann 2.0.0-develop
f9e18344… 14 Sep 09

- removed c-level support for the following methods and provide emulation on the script level isobject, isclass, ismetaclass, ismixin istype

+5 -6 Gustaf A. Neumann 2.0.0-develop
d58e86e7… 14 Sep 09

- generated interfaces for XOTclIsCmd() and XOTclQualifyObjCmd() - simplified PrimitiveODestroy() - eliminated XOTcl_TraceObjCmd()

+53 -86 Gustaf A. Neumann 2.0.0-develop
d7a2ef04… 11 Sep 09

- removed obsolete todo and improvded documentation

-1 Gustaf A. Neumann 2.0.0-develop
d03aa65b… 11 Sep 09

- reuse tcl_obj passed from alloc in Primitive*Create() commands.

+5 -8 Gustaf A. Neumann 2.0.0-develop
16696cd9… 11 Sep 09

- removed deprecated :xotcl::setrelation - fixed potential crash in bootup code, when destroy method was defined for ::xotcl::Slot

+10 -9 Gustaf A. Neumann 2.0.0-develop
b1eea4ce… 11 Sep 09

- generated interface for XOTclNSCopyCmds()

+204 -209 Gustaf A. Neumann 2.0.0-develop
dbfe68f5… 11 Sep 09

- generated interface for XOTclNSCopyVars() - grouped genreated tcl commands together in source code

+353 -350 Gustaf A. Neumann 2.0.0-develop
d3d3eb10… 11 Sep 09

- provided parameter definitions for XOTclInterpObjCmd()

+1 -7 Gustaf A. Neumann 2.0.0-develop
e12f8428… 10 Sep 09

- implemented -objscope for ::xotcl::dispatch - debugged and added tests for XOTclDispatchCmd()

+25 -2 Gustaf A. Neumann 2.0.0-develop
590b606a… 10 Sep 09

- following tcl naming conventions

+5 -7 Gustaf A. Neumann 2.0.0-develop
e50c1708… 10 Sep 09

- cleanup of checker obj - renamed nonposargType() to ParamCheckObj()

+12 -18 Gustaf A. Neumann 2.0.0-develop
2ce14fba… 09 Sep 09

- 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

+78 -35 Gustaf A. Neumann 2.0.0-develop
6c7f2708… 08 Sep 09

- drop XOTclOSetvaluesMethod(), use alias for "set" instead of it - implement parameter option "optional" for positional parameters - extend regression test

+21 -21 Gustaf A. Neumann 2.0.0-develop
cb78a7cd… 08 Sep 09

- handling of aliased objects, when the target objects are destroyed (realized via refcounting on objects) - distinguishing between nested and aliased objects in cmd table during deletion - extended regression test

+39 -4 Gustaf A. Neumann 2.0.0-develop
2fd2bf11… 07 Sep 09

- better error message in case parameter definition could not be obtained

+2 Gustaf A. Neumann 2.0.0-develop
451f2500… 07 Sep 09

- simplified and more regular method lookup interface - "info params" and "info instparams" work now as well with C-implemented methods (e.g. Class info instparams instproc)

+30 -36 Gustaf A. Neumann 2.0.0-develop
a7df38a7… 05 Sep 09

- some code cleanup (some more TODOs removed)

+11 -47 Gustaf A. Neumann 2.0.0-develop
3300590b… 04 Sep 09

- passing disallowed options to ParamParse() to disallow e.g. parameter option "relation" for method parameter

+20 -9 Gustaf A. Neumann 2.0.0-develop
485f041d… 03 Sep 09

- some cleanup of visibility of symbols

+2 Gustaf A. Neumann 2.0.0-develop
f11b03a9… 03 Sep 09

- 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)

+18 -297 Gustaf A. Neumann 2.0.0-develop
bfa35f91… 03 Sep 09

- 2 new info methods: "info params", "info instparams" as replacement for old diversity - ParamDefsFormat() returns now pos and nonpos parameters, reports "initcmd" and "substdefault"

+43 -22 Gustaf A. Neumann 2.0.0-develop
6915324f… 03 Sep 09

- improve variable name

Gustaf A. Neumann 2.0.0-develop
9f1d5974… 03 Sep 09

- shortend some function/type names (e.g. use everywhere "Param" instead of "Parameter") - delayed parseContextRelease() in InvokeProc() until end if proc - process all argumens of proc/instpoc; before, this happend only, when nonpos parameters were used; - use parameter definitions only when they provide a value-add - finish freeing of parameter definitions

+107 -224 Gustaf A. Neumann 2.0.0-develop
f4471765… 02 Sep 09

- 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

+35 -9 Gustaf A. Neumann 2.0.0-develop
300e5933… 01 Sep 09

- renamed parseObjv() -> ArgumentParse() - renamed ifdSize -> nrParameters - argDefinitionsFree() -> ParameterDefinitionsFree() - renamed argDefinitionsNew() -> ParameterDefinitionsNew() - renamed struct XOTclParsedInterfaceDefinition -> XOTclParsedParameterDefinition - renamed ParsedInterfaceDefinitionFree() -> ParsedParameterDefinitionFree() - renamed struct argDefinition -> parameterDefinition - renamed struct XOTclNonposArgs ->XOTclParamDefs - renamed GeneratIfd() -> ParsedParameterDefinitionGet() - renamed parseNonposArgs() -> ParseParameterDefinitions() - renamed parseArgDefinition() -> ParseParamDefintion() - new function ArgumentDefaults() - new functions ArgumentError() - ArgumentParse() handles now defaults as well (could be optimized) - made varargs passing explicit

+93 -95 Gustaf A. Neumann 2.0.0-develop
0f1d08f0… 01 Sep 09

- new functionparseContextExtendObjv() to eliminate hard coded limits on argument lengths - reduced PARSE_CONTEXT_PREALLOC 20 - new function XOTclPrintObjv() for debugging (output of objv vector)

+31 -27 Gustaf A. Neumann 2.0.0-develop
fd885cf0… 31 Aug 09

- keep flags for every objv in the parse context to communicate needed DECR_REF_COUNTS - keep Tcl_Obj "nameObj" in argDefinitions to avoid repetitious creations - move convertToRelation handling from ProcessMethodArguments() to configureMethod - move substDefault handing from configureMethod to other default handling in ProcessMethodArguments()

+61 -37 Gustaf A. Neumann 2.0.0-develop
0440393b… 31 Aug 09

- renamed GetObjectInterface() -> GetObjectParameterDefinition() - renamed canonicalNonpositionalArgs() -> ProcessMethodArguments() - simplified XOTclOConfigureMethod(), 30% speedup, when defaults are used

+22 -97 Gustaf A. Neumann 2.0.0-develop
5556c6d6… 30 Aug 09

- 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

+19 Gustaf A. Neumann 2.0.0-develop
bedcf646… 29 Aug 09

- renamed "objinterface" to "objectparameter" - renamed "invalidateinterfacedefinition" to "invalidateobjectparameter" - fixed regression test "filterAddRemove" and "filterClassChange" to be more robust - deactivated regression test "filterInfo", since this traces the detail of object configuration - object parameters pass now testx regression test, run currently into problems in slottest

Gustaf A. Neumann 2.0.0-develop
46d2807a… 29 Aug 09

- renamed "configureargs" to "objinterface"

Gustaf Neumann 2.0.0-develop
f79e2c86… 29 Aug 09

- new option substdefault for nonposarg parser - changed per-argument options for argument definitions to bitfield named "flags" - removed CONFIGURE_SIGNATURE_GENERATOR - can start now with cacheInterface 1

+59 -324 Gustaf A. Neumann 2.0.0-develop
ffd2368a… 28 Aug 09

- new functions NonposArgsFree(), ParsedInterfaceDefinitionFree() - new class method invalidateinterfacedefinition - renamed convertToInterceptor() to convertToRelation() - added test tests/objifdtest.xotcl (not yet in test suite)

+45 -26 Gustaf A. Neumann 2.0.0-develop
543e283a… 28 Aug 09

- added first verison of configure based on nonpos args (many thanks to Stefan!)

+585 Gustaf A. Neumann 2.0.0-develop
023406d3… 27 Aug 09

- delay deletion of active classes until after last activation ends (similar to handling of active objects)

Gustaf A. Neumann 2.0.0-develop
58c2c309… 26 Aug 09

- fix deletion order for exit() calls with active stack frames

+2 -2 Gustaf A. Neumann 2.0.0-develop
b4343163… 26 Aug 09

- simplify interface of callDestroyMethod() - some cleanup for destroy stuff (inline comments, etc.) - checked all flags setting in connection with deletion - make sure, destroy methods are called on exit

+11 -50 Gustaf A. Neumann 2.0.0-develop
8d4f0d69… 26 Aug 09

-added missing Makefile dependency for xotclAccessInt.h -switched from XOTclObjectType to Tcl cmdName type (removed all type usages, removed RegisterObjTypes()) -removed compile flag KEEP_TCL_CMD_TYPE -renamed XOTclObjConvertObject() to GetObjectFromObj() -renamed GetXOTclClassFromObj() to GetClassFromObj() -simplified name/object conversion to lookup xotcl Objects -handle imported cmds in XOTclGetClientDataFromCmdPtr() -removed object flag XOTCL_NS_DESTROYED -removed member "parameters" from XOTclClass -removed member "parameterClass" from XOTclClassOpt

+50 -309 Gustaf A. Neumann 2.0.0-develop
7cb7c751… 26 Aug 09

- fix a bug in CopyHandler (while copying slot objects) - found and fixed two cases, where xotcl could crash during deletion of active objects - simplified deletion logic of active objects significantly unsing an explicit activation count - removed old deletion logic (state variable callIsDestroy, callstate XOTCL_CSC_CALL_IS_DESTROY, destroyedCmd on stack content) - removed now obsolete functions CallStackMarkDestroyed() and CallStackMarkUndestroyed() - made changes for with and without TCL85STACK

+72 -123 Gustaf A. Neumann 2.0.0-develop
5ec6a6f9… 21 Aug 09

- changed version number from 2.0.0a to 2.0.0 to avoid problems with package require - found crashes in deletion order (when tcl implicitly deletes xotcl objects), introduced temporary compile flag OLD_DELETE

+37 -1 Gustaf A. Neumann 2.0.0-develop
8e5a1351… 21 Aug 09

- generated interface for ::xotcl::deprecated

+1 -13 Gustaf A. Neumann 2.0.0-develop
07939dc9… 20 Aug 09

- generated interface for ::xotcl::XOTclInstvarCmd - define objects with cmdName of tcl obj type "cmd"

+29 -22 Gustaf A. Neumann 2.0.0-develop
ee516ca6… 19 Aug 09

- generated interface for ::xotcl::createobjectsystem and ::xotcl::finalize

+2 -12 Gustaf A. Neumann 2.0.0-develop
4c6a52f9… 19 Aug 09

- added c functions for handling nonposargs in XOTclProcContext: getNonposArgs(), addNonposArgs() - provide convenient means to get Proc *: getObjectProc() getClassProc() - removed old hashtables and managing functions for nonposargs - reduced size of XOTclObject and XOTclClass structures

+54 -144 Gustaf A. Neumann 2.0.0-develop
0e506e4f… 18 Aug 09

- XOTclProcContext and XOTclProcDeleteProc(): hooks for storing method information in command structures - added nonpos args lookup via XOTclProcContext

+35 -12 Gustaf A. Neumann 2.0.0-develop
5d905ad5… 17 Aug 09

- minor cleanup

+9 -8 Gustaf A. Neumann 2.0.0-develop
f8def6df… 17 Aug 09

- split callProcCheck() into invokeProcMethod() and invokeCmdMethod() - renamed DoCallProcCheck() into InvokeMethod()

+117 -86 Gustaf A. Neumann 2.0.0-develop
6ad5c751… 17 Aug 09

- removed XOTclCallStack definition and datastructures, when compiled with TCL85STACK - CallStackPop(): when compiled with TCL85STACK, the function just initializes a given call stack content; allocation based on C-Stack - some function cleanup and minor optimizations

+46 -131 Gustaf A. Neumann 2.0.0-develop
2147bbcd… 14 Aug 09

- added option withRootClass to ComputePrecedenceList(); - exclude rootClass in search for defaults (for the time being) - implemented cmd ::xotcl::instvar

+41 -12 Gustaf A. Neumann 2.0.0-develop
f6fa2416… 13 Aug 09

- get rid of fakeNS - minor simplification in XOTcl_PopFrame()

-5 Gustaf A. Neumann 2.0.0-develop
469a1b68… 13 Aug 09

- Removed currentFramePtr (the pointer from the xotcl stack to the tcl stack) from the call stack content. Now, all access to the call stack content happens via the tcl85stack. - For the time being, the xotcl stack is purely an allocation stack (we still have to evaluate, where we should store the call stack content efficiently: some options: via alloca, on the c-stack, on the tcl stack, on an allocation stack)

+4 Gustaf A. Neumann 2.0.0-develop
ec939a7b… 13 Aug 09

- new method CallStackPopAll() for making ExitHandler() independent from call stack structures

+1 -14 Gustaf A. Neumann 2.0.0-develop
a6f0c9f2… 13 Aug 09

- implemented doCleanup() independent from stack structures - some variable renaming

+2 -7 Gustaf A. Neumann 2.0.0-develop
dc6c7195… 13 Aug 09

- renamed UndestroyObj() to CallStackMarkUndestroyed() and implemented it for tcl85stack

-31 Gustaf A. Neumann 2.0.0-develop
2ed7f30b… 13 Aug 09

- get rid of CallStackIsDestroyed()

-5 Gustaf A. Neumann 2.0.0-develop
457ad303… 13 Aug 09

- move tcl85showStack(), nonXotclObjectProcFrame() and nextFrameOfType() to xotclStack*.c

-52 Gustaf A. Neumann 2.0.0-develop
1e753230… 13 Aug 09

- get rid of GetSelfProc() - implemented XOTclNextMethod() for tcl85stack

+8 -5 Gustaf A. Neumann 2.0.0-develop
8b14212f… 13 Aug 09

- implemented XOTclForwardMethod () for tcl85stack

-13 Gustaf A. Neumann 2.0.0-develop
f35b43e4… 13 Aug 09

- return Tcl frame pointer as last arguments in CallStackGetFrame() and CallStackGetTopFrame() - pass call stack content to GetSelfProc() - some simplifications to avoid multipe stack searches - implemented XOTclSelfSubCommand () for tcl85stack

+28 -42 Gustaf A. Neumann 2.0.0-develop
117b5c8c… 13 Aug 09

- implemented FilterActiveOnObj() for tcl85stack

-21 Gustaf A. Neumann 2.0.0-develop
2198228d… 13 Aug 09

- pass conditionally XOTclCallStackContent to GuardCall() due to different stack lifetime - CallStackPush() returns now callstack content - implemented CallStackFindActiveFilter() for tcl85stack

+15 -19 Gustaf A. Neumann 2.0.0-develop
d8cfbde7… 13 Aug 09

- implemented computeLevelObj() for tcl85stack

+1 -5 Gustaf A. Neumann 2.0.0-develop
ae922ee2… 12 Aug 09

- implemented CallStackUseActiveFrames() for tcl85stack - nonXotclObjectProcFrame returns now only active frames

+8 -69 Gustaf A. Neumann 2.0.0-develop
fa7bc22b… 11 Aug 09

- implemented XOTclCallStackFindActiveFrame() for tcl85stack

-16 Gustaf A. Neumann 2.0.0-develop
26a70d9d… 11 Aug 09

- defined new (3rd) frame type FRAME_IS_XOTCL_CMETHOD for calling c-implemented methods (the same as FRAME_IS_XOTCL_OBJECT, except that it uses csc as clientData instead of only the xotcl object - implemented XOTclCallStackFindLastInvocation() for tcl85stack

+21 -51 Gustaf A. Neumann 2.0.0-develop
13c61486… 11 Aug 09

- pass call stack content explicitly to canonicalNonpositionalArgs to obtain active class or object - fix two more regression test entries with canonical args (info body, order in info locals) - canonical args passes now regression test (also in connection with tcl85stack)

+7 -2 Gustaf A. Neumann 2.0.0-develop
ed830180… 11 Aug 09

- pass call stack content explicityl to XOTclNextMethod, which is used on one occurance outside the tcl callstack scope, such that CallStackGetTopFrame() gets the previous stack entry - implemented CallStackGetTopFrame() for tcl85stack - implemented CallStackGetObjectFrame() for tcl85stack

+6 -15 Gustaf A. Neumann 2.0.0-develop
a19d77bc… 10 Aug 09

- new function CallStackDestroyObject() to factor out xotcl stack access Since tcl-stack-entries have a lightly different life-time (pop is managed by tcl), we have as well slightly different life-times of objects. One test in the test suite is deactivated for now, we will see, if this turs out to become a problem as we proceed.

+2 -15 Gustaf A. Neumann 2.0.0-develop
4e4b2877… 10 Aug 09

- new function CallStackClearCmdReferences() to factor out xotcl stack access

-8 Gustaf A. Neumann 2.0.0-develop
721a118d… 10 Aug 09

- moved stack procs into new files xotclStack.c and xotclStack85.c - based CallStackGetFrame() in addition to GetSelfObj() to new stack structure, when TCL86STACK is defined - fixed error and warning message for failed assertions to avoid access to the xotcl stack

+4 -55 Gustaf A. Neumann 2.0.0-develop
f30ceced… 10 Aug 09

- follow naming conventions for defines TCL85STACK_TRACE - deactivate CANONICAL_ARGS for the time being

Gustaf A. Neumann 2.0.0-develop
21544fe1… 10 Aug 09

- Stefan implementation for args with canonical args - canonicalNonpositionalArgs() receives explicit current xotcl object

+72 -5 Gustaf A. Neumann 2.0.0-develop
55576ee4… 09 Aug 09

- rename variable "ns" (namespace pointer) to "nsPtr" for tcl naming compliance

Gustaf Neumann 2.0.0-develop
69807d99… 09 Aug 09

- simplified callingNameSpace() significantly (works with and without TCL85STACK the same way) - simplified GuardCall (removed argument push) - removed unneeded functions, reduced tracing

+11 -65 Gustaf Neumann 2.0.0-develop
8ddbf5cd… 09 Aug 09

- snapshot 3 - first version passing regression test again

+45 -39 Gustaf A. Neumann 2.0.0-develop
da3eff74… 07 Aug 09

more trace

+8 Gustaf A. Neumann 2.0.0-develop
04a8acdb… 07 Aug 09

- snapshot #2

+111 -15 Gustaf A. Neumann 2.0.0-develop
465589c6… 06 Aug 09

- starting to use tcl85 stack (when complied with TCL85STACK). Goal is to remove the own stack handling, when compiled with Tcl 8.5+ Introduced two frame types, FRAME_IS_XOTCL_METHOD and FRAME_IS_XOTCL_OBJECt - Currently, only self is resolved this way from the Tcl stack. - Currentlsy, just parts (e.g. testo.tcl) of the regression test work

+91 -53 Gustaf A. Neumann 2.0.0-develop
a75263f5… 05 Aug 09

- updating changelog - cleanup and documentation in xotcl.c

+8 -11 Gustaf A. Neumann 2.0.0-develop
8d3eacad… 05 Aug 09

- cleanup of arguments in makeproc (Stefan Sobernig)

+6 -1 Gustaf A. Neumann 2.0.0-develop
6b0cd008… 05 Aug 09

- finishing unset unspefied values in nonpos arg passing under canonical args, when a nonposarg has no default, and the parameter is not required, we have to unset the dummy default value. Since causes some overhead, since unset is done via ::xotcl::unsetUnknownArgs

+9 -1 Gustaf A. Neumann 2.0.0-develop
12049316… 04 Aug 09

commit snapshot

+99 -59 Gustaf A. Neumann 2.0.0-develop
0681f4a2… 03 Aug 09

- releasing dynamically allocated parse contexts - tried to reduce overhead of method invocation when no nonposArgs are used, but failed, sind proc has neither flags not clientData

+36 -3 Gustaf Neumann 2.0.0-develop
44b91688… 29 Jul 09

- make ifdsize explicit (stubcode generator) - new method parseContextInit(), will be used for variable sized interfaces (for nonpos arg parsing)

+19 -13 Gustaf Neumann 2.0.0-develop
57fe47fb… 28 Jul 09

- first implementation of canonical arguments

+144 Gustaf Neumann 2.0.0-develop
de505f41… 24 Jul 09

removed duplicate line

-1 Gustaf Neumann 2.0.0-develop
ecc8a110… 07 Jul 09

- based introspection for procs/instprocs on new argument definition structures - allowing type checkers also for positional arguments (for now only, when nonpos args are given as well; we have to think about using these either for all procs/instprocs, or only, when e.g. type checkers are used; we have to make more benchmarking to get a better foundation) - registered the following type checkers for procs/instprocs: switch, integer, boolean, object, class Example o proc bar {-enable:switch o:object c:class} { return "o=$o c=$c" } - generated interface for ::xotcl::configure; now 97 interfaces are generated; shortcoming for bool/int converter stubs: optional 0-vaues are not recognized, so use tclobj for the time being - extended regression test

+184 -507 Gustaf A. Neumann 2.0.0-develop
fb1840d3… 06 Jul 09

- parse non-pos-args for procs/instprocs into new argument definition structure - using new parseObjv for calling procs and instproc when nonpos-args are used (invocation time went from 9.08ms to 5.95ms) - TODO: complete implementation for regression test, base introspection/copy etc. on new structures

+281 -77 Gustaf A. Neumann 2.0.0-develop
321a21cb… 05 Jul 09

- support for enumeration types in c-code generator - use function pointer for type checker instead of strings - generated interface for ::xotcl::methodproperty

+113 -185 Gustaf A. Neumann 2.0.0-develop
108d81ec… 04 Jul 09

- ::xotcl::my generated

+26 -49 Gustaf A. Neumann 2.0.0-develop
652147d4… 04 Jul 09

- generated interface for ::xotcl::relation

+74 -76 Gustaf A. Neumann 2.0.0-develop
1b27a533… 04 Jul 09

- support for generating interface for ::xotcl commands - generated interface for ::xotcl::alias

+3 -36 Gustaf A. Neumann 2.0.0-develop
0e6f9ba5… 04 Jul 09

- removed compatibility for versions before Tcl 8.4 (was not tested anyhow) This version requires at least Tcl 8.4.

-62 Gustaf A. Neumann 2.0.0-develop
2252fd26… 01 Jul 09

- moved all definitions of method commands to generated code - from 15356 generic/xotcl.c => 13408

-152 Gustaf Neumann 2.0.0-develop
5229e262… 30 Jun 09

- all object methods generated - added reference counting for patternobj - some cleanup and reordering

+517 -841 Gustaf Neumann 2.0.0-develop
20094069… 30 Jun 09

- committing snapshot

+1107 -1295 Gustaf A. Neumann 2.0.0-develop
9f046615… 29 Jun 09

- fixed regression test

+1 -2 Gustaf Neumann 2.0.0-develop
27ac647d… 29 Jun 09

- improved varargs handler, instforward

+7 -6 Gustaf Neumann 2.0.0-develop
c990d141… 29 Jun 09

- !!! removed obsolete features * ability to specify nonpos args and pos args as different arguments * compile flags AUTOVARS, REFCOUNTED, REFCOUNT_TRACE - added -flags with one argument + type - generated all class methods from interface descriptions - transtional version, not all test of regression test work correctly

+443 -350 Gustaf A. Neumann 2.0.0-develop
c7463312… 29 Jun 09

- 3 class methods generated, handling args/allargs

+71 -191 Gustaf A. Neumann 2.0.0-develop
d1b71341… 28 Jun 09

- added check methods

+246 -303 Gustaf A. Neumann 2.0.0-develop
af52afc7… 28 Jun 09

- all "<object> info" commands generated

+5 -216 Gustaf A. Neumann 2.0.0-develop
80dbbc50… 28 Jun 09

- changed "<object> info hasNamespace" to "<object> info hasnamespace" (all commands and info options are lowercase only, no underscore) - 11 "<object> info" commands generated

+42 -138 Gustaf A. Neumann 2.0.0-develop
5003fb80… 28 Jun 09

- objv-stubs for all 23 class info methods

+80 -354 Gustaf A. Neumann 2.0.0-develop
ce552d49… 28 Jun 09

- defined 5 more info methods view generator - simplified objpattern handling

+40 -57 Gustaf Neumann 2.0.0-develop
f209c50e… 28 Jun 09

- added c-stub generate (generates Tcl_ObjCmdProc from method definitions in Tcl)

+72 Gustaf A. Neumann 2.0.0-develop
dc0040a6… 27 Jun 09

- added generator for tclAPI.h - defined 8 info methods based on the new objv parseing infrastructure - replaced occurances of "instdestroy" by "dealloc" in documentation

+32 -72 Gustaf A. Neumann 2.0.0-develop
6cea7163… 27 Jun 09

- committing snapshot - changed method name "instdestroy" into "dealloc" - new file: tclAPI.h

+6 -21 Gustaf Neumann 2.0.0-develop
ad28c74f… 26 Jun 09

- implemented yet another objv parser - used currently only for XOTclClassInfoInstancesMethod()

+235 Gustaf A. Neumann 2.0.0-develop
91e9b1a3… 25 Jun 09

- new command: ::xotcl::createobjectsystem <rootClass> <rootMetaClass> This command creates a basic object system with the specified <rootClass> as most general root class and the specified metaclass as most general meta class. Example: ::xotcl::createobjectsystem ::oo::object ::oo::class In general, it would be possible to remove an objects system at runtime, but there is so far no tcl interface for this. - extended framework to work with multiple root classes - the basic root class of XOTcl is now ::xotcl::Object again (instead of ::oo::object) as before. The old setup can be achieved on the Tcl-layer.

+111 -43 Gustaf A. Neumann 2.0.0-develop
fd82d808… 25 Jun 09

- added metaclass property for root metaclass - metaclass property is set via ::xotcl::relation ... metaclass

+21 Gustaf Neumann 2.0.0-develop
072e1c7c… 23 Jun 09

- new parse() infrastructure for factoring out common parsing patterns of objv[] parsers - new error message handler: XOTclObjErrArgCntObj() - shortend code by about 1000 lines (about 100 due to parse())

+87 -965 Gustaf A. Neumann 2.0.0-develop
43e8ea0d… 23 Jun 09

-implemented XOTclObjInfoParametercmdMethod(), XOTclClassInfoInstparametercmdMethod() -implemented -closure for XOTclClassInfoInstmixinMethod()

+57 -19 Gustaf A. Neumann 2.0.0-develop
98003953… 23 Jun 09

- use objectName() and className() when possible - implemented XOTclClassInfoMixinofMethod() and XOTclClassInfoInstmixinofMethod() - some cleanup in regression tests

+91 Gustaf A. Neumann 2.0.0-develop
6ca97641… 22 Jun 09

- fixed bug in "info precedence -intrinsic"

+41 -25 Gustaf A. Neumann 2.0.0-develop
8cd07ec2… 22 Jun 09

- define default meta-class for ::xotcl::Class - use default meta-class, when a the topmost meta-class of an object system is deleted - fix regression test

+24 -3 Gustaf A. Neumann 2.0.0-develop
4eafc074… 22 Jun 09

- work on collateral damage after merge - fixed many test cases from the regression thest - wrote some changes to ChangeLog as a reminder

+37 -26 Gustaf A. Neumann 2.0.0-develop
2111020b… 22 Jun 09

merge with 1.6.3 (HEAD)

+3166 -2283 Gustaf A. Neumann origin