[Rd] How to call directly "dotTcl" C-function of the tcltk-package from the C-code of an external package?

Reijo Sund re|jo@@und @end|ng |rom ue|@||
Fri May 31 23:47:14 CEST 2024


> Apparently this works:
> getNativeSymbolInfo("dotTcl",PACKAGE=getLoadedDLLs()$tcltk)

Thank you Peter! This solved the problem.

> and the tcltk behavior was changed by 
> r84265 | hornik | 2023-04-15 08:44:36 +0200 (Sat, 15 Apr 2023) | 1 line
> Try forcing symbols in ff calls.
> I don't know what that was all about, and I'm also a bit puzzled

> a) that the .External lookup is so slow that you need to bypass it (would have thought that the byte compiler could speed it up)

I want to use Tcl/Tk directly from C-code, so any unnecessary crosswalk through R back to C slows things down in a disturbing way especially when there is need for potentially tens of thousands of calls to Tcl/Tk as fast as possible (e.g. while constructing a vector image from small number of basic elements or while (re)rendering parts of the text-widget). 

> b) that you don't use dotTclObjv and friends to avoid parsing on the Tcl side.

Thanks for the tip - avoiding parsing on the Tcl side would be great! I need to take a look at that possibility. Never done that before as using just dotTcl has been working fast enough for me the past fifteen years.

 



More information about the R-devel mailing list