xotclInt.h

Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- 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

  1. … 9 more files in changeset.
- handle HAVE_UINTPTR_T like HAVE_INTPTR_T - use ::xotcl::setinstvar instead of ::xotcl::setinstvar in serializer

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

  1. … 6 more files in changeset.
- get rid of rst->deallocCalled (not needed due to reference counting on xotcl objects) - reduce verbosity

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

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

  1. … 9 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.
- don't pass arguments to residualargs except when "args" are specified - added "-foo:method,noarg" to allow to call a method without arguments - added definition to allow "-volatile" for obejct/class creation - added definition to allow "-noinit" for obejct/class creation

  1. … 3 more files in changeset.
- new parameter type method (similar to initcmd, but calls a same-named method)

  1. … 2 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.
- change configure to run genstubs automatically - change scoping of variables on c-stack for not running in a optimizer problem

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

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

  1. … 10 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.
- reuse tcl_obj passed from alloc in Primitive*Create() commands.

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

  1. … 8 more files in changeset.
- drop XOTclOSetvaluesMethod(), use alias for "set" instead of it - implement parameter option "optional" for positional parameters - extend regression test

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

  1. … 2 more files in changeset.
- passing disallowed options to ParamParse() to disallow e.g. parameter option "relation" for method parameter

  1. … 2 more files in changeset.
- improve variable name

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

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

  1. … 4 more files in changeset.
- 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()

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

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

  1. … 6 more files in changeset.
- renamed "configureargs" to "objinterface"

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

  1. … 4 more files in changeset.