nsf

Clone Tools
  • last updated 14 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- added interface definitions for generated tcl commands to xotcl.c

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

    • -24
    • +171
    /tests/varresolutiontest.xotcl
- 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

- reduce verbosity

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

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

- added ::xotcl::exists as cmd

- minor refactoring

- made some more xotcl2 methods protected (no big need to call these from different objects): unknown, uplevel, upvar

- 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

- added method "eval" on ::xotcl2::Object - used "o eval {....}" as generic method to apply commands/methods to other objects

- 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

- handle HAVE_UINTPTR_T like HAVE_INTPTR_T - use ::xotcl::setinstvar instead of ::xotcl::setinstvar in serializer

- use INT2PTR and PTR2INT macros in generated stubs

- 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

- changed level of headings

- added headings for parameter sections

- first skeleton of migration guide

    • -0
    • +199
    /doc/migration1-2.html
- 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

- add minor comment

- reactivated XOTclErrInProc()

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

- 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

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

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

- 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

- space changes

- made naming more consisent - alway initialize parse context properly

- updated tutorial further

    • binary
    /doc/object-class-appclass.png
    • binary
    /doc/object-class.png
- updated first part of tutorial to xotcl2 syntax - fixed examples in tutorial - added soccerClub2.xotcl

    • -0
    • +209
    /apps/scripts/soccerClub2.xotcl
    • -0
    • +5067
    /doc/tutorial2.html