From simon.urbanek at r-project.org  Mon May  5 20:22:03 2008
From: simon.urbanek at r-project.org (Simon Urbanek)
Date: Mon, 5 May 2008 14:22:03 -0400
Subject: [Rd] [R-SIG-Mac] Starting tcltk without Tk
In-Reply-To: <56155F30-1E17-4440-B380-73EAD0596A3E@r-project.org>
References: <481D979B.9030107@sciviews.org>
	<56155F30-1E17-4440-B380-73EAD0596A3E@r-project.org>
Message-ID: <49DE98AC-4211-4BC8-8F7F-FA44DBAEA7F8@r-project.org>

It turns out that the behavior of starting just Tcl was actually a  
bug. Apparently the intention was to attempt to start Tk regardless of  
the DISPLAY variable, because some TclTk implementation such as Aqua  
Tcl/Tk don't require DISPLAY and thus would not be loaded. Due to a  
bug (HAVE_AQUA was not included in Rconfig.h before R 2.7.0), though,  
this was not the case. I'll leave it to tcltk users/maintainers to  
decide the right way forward. Essentially I see two options:

1) status quo: tcltk always attempts to load Tk and fails on an error
2) allow some (possibly cross-platform) way of specifying that it is  
ok to not load Tk - essentially make failure to load Tk non-fatal.

Right now there is no (semantically correct) way to inhibit the  
loading of Tk (DISPLAY is a sort of abuse and not a solution).

Cheers,
Simon

(CC to R-devel where this started...)

On May 5, 2008, at 9:12 AM, Simon Urbanek wrote:

> Philippe,
>
> I'm not quite sure why you are asking on a Mac list, but the error  
> comes from Tcl/Tk. I'd suggest asking on R-devel, the Tcl/Tk used in  
> the R binary is the same for R 2.6.x and 2.7.0 so it must be a  
> change in tcltk.
>
> Cheers,
> Simon
>
>
> On May 4, 2008, at 7:01 AM, Philippe Grosjean wrote:
>
>> Hello,
>>
>> Up to R 2.6.2, I used to start Tcl *without Tk* (I need only Tcl  
>> for some part of my work, like a socket server written in Tcl only,  
>> for instance) with this code under Mac OS X (particularly on this  
>> system, because I don't want to start X11 just to use Tcl code,  
>> which is required for Tk!):
>>
>> > Sys.unsetenv("DISPLAY")
>> > library(tcltk)
>>
>> I got then the message "no DISPLAY variable so Tk is not  
>> available", but could work with Tcl without problems.
>>
>> Now, with R 2.7.0, I got the following and Tcl failed to load:
>> Loading Tcl/Tk interface ... Error in fun(...) : no display name  
>> and no $DISPLAY environment variable
>> Error : .onLoad failed in 'loadNamespace' for 'tcltk'
>> Error: package/namespace load failed for 'tcltk'
>>
>> I try to locate the message "no display name and no $DISPLAY  
>> environment variable" in the code but I cannot find it. Could  
>> someone help me please?
>>
>> I understand that starting Tcl without Tk from R is not an intended  
>> behaviour, but would it be possible to include an option to do so?
>>
>> > sessionInfo()
>> R version 2.7.0 Patched (2008-04-22 r45460)
>> i386-apple-darwin8.10.1
>>
>> locale:
>> en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>>
>> attached base packages:
>> [1] stats     graphics  grDevices utils     datasets  methods   base
>>
>> Many thanks,
>>
>> Philippe Grosjean
>> -- 
>> ..............................................<?}))><........
>> ) ) ) ) )
>> ( ( ( ( (    Prof. Philippe Grosjean
>> ) ) ) ) )
>> ( ( ( ( (    Numerical Ecology of Aquatic Systems
>> ) ) ) ) )   Mons-Hainaut University, Belgium
>> ( ( ( ( (
>> ..............................................................
>>
>> _______________________________________________
>> R-SIG-Mac mailing list
>> R-SIG-Mac at stat.math.ethz.ch
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>
>>
>
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>
>



[Rd] [R-SIG-Mac] Starting tcltk without Tk
Simon Urbanek