[R-SIG-Mac] R 2.11/Mac OSX: "Aqua" tcltk and selected compiler

René J.V. Bertin rjvbertin at gmail.com
Sat Oct 16 11:28:49 CEST 2010


I've held off very long to replace my Powerbook G4 (until it died
about a month ago, actually, 6 years old), and as such I've gotten
into the habit of building R mysel, tweaking it to use the "optimal"
compiler options and the best compiler available to me.

Two questions inspired by that experience:

1) why build the binary distribution such that the compilers
registered in etc/Makeconf are the "system default compiler" wrappers?
Wouldn't it be better to hardcode gcc-4.2 (presuming that's the one
used), to be more robust against users (or Apple!) who redefine the
default compiler version?

2) In R 2.8 (the last version I built), I'd managed to have the tcltk
package available both for X11 and for Aqua, without particular
problems. A simple recompile of the tcltk package pointing to the Tcl
and Tk frameworks instead of the X11 distributions was enough (plus a
very small patch of the code, IIRC). A bit of extra code in the R
launcher script symlinked tcltk.so to the Aqua version if $DISPLAY was
undefined or empty, and to the X11 version otherwise. Needless to say
that having an Aqua Tk interface when running the R GUI has advantages
if not only
I tried the same thing yesterday, after installing the Cocoa version
of Tk (tk-8.5.9-decarbon), without success. tcltk.so builds and loads,
but the GUI version hangs afterwards, in the CLI version I get

##> library(tcltk)
Loading Tcl/Tk interface ... 2010-10-14 20:19:38.303 R[85712:607]
-[NSApplication _setup:]: unrecognized selector sent to instance
2010-10-14 20:19:38.306 R[85712:607] An uncaught exception was raised
2010-10-14 20:19:38.307 R[85712:607] -[NSApplication _setup:]:
unrecognized selector sent to instance 0x100584490
2010-10-14 20:19:38.307 R[85712:607] *** Terminating app due to
uncaught exception 'NSInvalidArgumentException', reason:
'-[NSApplication _setup:]: unrecognized selector sent to instance
*** Call stack at first throw:
	0   CoreFoundation                      0x00007fff83f47cc4
__exceptionPreprocess + 180
	1   libobjc.A.dylib                     0x00007fff8055a0f3
objc_exception_throw + 45
	2   CoreFoundation                      0x00007fff83fa1140
+[NSObject(NSObject) doesNotRecognizeSelector:] + 0
	3   CoreFoundation                      0x00007fff83f19cdf
___forwarding___ + 751
	4   CoreFoundation                      0x00007fff83f15e28
_CF_forwarding_prep_0 + 232
	5   Tk                                  0x00000001167b5e74 TkpInit + 404
terminate called after throwing an instance of 'NSException'

The hang in the GUI occurs as soon as I type an opening brace ((),
suggesting something equivalent to the libreadline rl_event_hook is
not pointing in the right direction.
Before I start chasing ghosts - is there any reason why it would be
impossible to use the Aqua/Cocoa version of Tcl/Tk?

René Bertin

More information about the R-SIG-Mac mailing list