[R-SIG-Mac] Problems with packages that require Gtk2

Simon Urbanek simon.urbanek at r-project.org
Wed Sep 24 15:53:36 CEST 2008


On Sep 24, 2008, at 7:12 , John Maindonald wrote:

> I've had a brief exchange of emails, to which Simon is privy, with  
> Michael Lawrence.
>
> "From what I've heard, people who compile the entire toolchain, i.e.  
> do not use Simon's GTK+, cairo, etc binaries, do not have a problem  
> with cairoDevice on the Mac. ... In the past, the seg faults were  
> occuring in the font handling code, whenever rotated text was drawn.  
> Of course, this is probably just a sign of memory corruption  
> elsewhere, but my guess is that's related to the Pango/Cairo  
> interaction."
>
> Has anyone had success going this route (compiling the entire  
> toolchain)?  If one does go this route, how should it be done?   
> Install MacPorts and follow the instructions on the MacPorts web  
> page?  I found detailed instructions on a web page that is designed  
> to make it possible to reproduce a problem with fonts:
> http://trac.macports.org/ticket/15626
>

I have script that can build RGtk2 quite nicely in a separate  
framework. I plan to make this the default binary for R 2.8, but for  
compatibility's sake we cannot switch for 2.7. I can make the binary  
and/or the script available for those interested. (It started as way  
to test the bleeding edge of the native Gtk for OS X, but tests on  
ggobi show that it's not quite there yet - but that's another story).

Cheers,
Simon

PS: I don't quite agree with Michael's analysis since cairoDevices  
blows up even before any drawing is done, it has nothing to do with  
rotated text:

#0  _cairo_surface_show_page (surface=0x0) at ../../../cairo-1.4.14/ 
src/cairo-surface.c:1541
#1  0x0116c66a in cairo_show_page (cr=0xe02800) at ../../../ 
cairo-1.4.14/src/cairo.c:2139
#2  0x011694bf in initDevice (dd=0x668c20) at cairoDevice.c:114
#3  0x0116960f in Cairo_NewPage (gc=0xbfffeb1c, dd=0x61f860) at  
cairoDevice.c:660
#4  0x0038e16a in Rf_GNewPlot (recording=TRUE) at ../../../../R-2.7- 
branch/src/main/graphics.c:1809

(gdb) p cd
$2 = (CairoDesc *) 0x61cc70
(gdb) p *cd
$3 = {
   window = 0x32ac020,
   drawing = 0x17fb050,
   pixmap = 0x32af080,
   cr = 0xe02800,
   surface = 0x0,
   filename = 0x0,
   width = 525,
   height = 525,
   event = 0x0,
   locator = 0x0
}


> On 23/09/2008, at 11:32 PM, Simon Urbanek wrote:
>
>>
>> On Sep 23, 2008, at 0:20 , John Maindonald wrote:
>>
>>> Has anyone been able to get packages that rely on Gtk2 to run  
>>> under Leopard?
>>>
>>
>> Yes, I see no problem with Gtk2.
>>
>>
>>> I have experimented with the playwith package, as depending on a  
>>> small number of packages additional to Gtk2.   I can pretty  
>>> consistently generate a bus error by attaching playwith, then  
>>> printing a lattice object.  Note that I have not run any functions  
>>> from the playwith package.
>>>
>>> The same may happen if I attach all the packages on which playwith  
>>> depends (but not playwith itself), but the bus error does not  
>>> appear with the same consistency.
>>>
>>
>> The problem appears to be in Michael's carioDevice, it crashes  
>> because its cairo context is NULL. I suspect it may not have a good  
>> error handling. I'm not sure what causes the problem, you may try  
>> to contact Michael. Neither the built-in R cairo device nor the  
>> Cairo package have any problems, so I don't think it's a problem on  
>> the cairo side...
>>
>> Cheers,
>> Simon
>>
>>
>>> Here is a transcript on a session:
>>>
>>> [Previously saved workspace restored]
>>>
>>> > options(STERM='iESS', editor='emacsclient')
>>> > library(lattice)
>>> > library(playwith)
>>> Loading required package: latticeExtra
>>> Loading required package: RColorBrewer
>>> Loading required package: grid
>>> Loading required package: gWidgets
>>> Loading required package: gWidgetsRGtk2
>>> Loading required package: RGtk2
>>> Loading required package: cairoDevice
>>> > sessionInfo()
>>> R version 2.7.2 (2008-08-25)
>>> i386-apple-darwin8.11.1
>>>
>>> locale:
>>> C
>>>
>>> attached base packages:
>>> [1] grid      stats     graphics  grDevices utils     datasets   
>>> methods
>>> [8] base
>>>
>>> other attached packages:
>>> [1] playwith_0.9-11      cairoDevice_2.8      gWidgetsRGtk2_0.0-36
>>> [4] RGtk2_2.12.5-3       gWidgets_0.0-28      latticeExtra_0.5-1
>>> [7] RColorBrewer_1.0-2   lattice_0.17-13
>>>
>>> loaded via a namespace (and not attached):
>>> [1] gridBase_0.4-3 tools_2.7.2
>>> Warning message:
>>> 'DESCRIPTION' file has 'Encoding' field and re-encoding is not  
>>> possible
>>> > gph <- xyplot(weight ~ height, data=women)
>>> > print(gph)
>>>
>>> *** caught bus error ***
>>> address 0xa8, cause 'non-existent physical address'
>>>
>>> Traceback:
>>> 1: .Call(L_newpage)
>>> 2: grid.newpage()
>>> 3: printFunction(x, ...)
>>> 4: print.trellis(gph)
>>> 5: print(gph)
>>>
>>> Possible actions:
>>> 1: abort (with core dump, if enabled)
>>> 2: normal R exit
>>> 3: exit R without saving workspace
>>> 4: exit R saving workspace
>>> Selection: 1
>>> aborting ...
>>>
>>> Process R bus error at Tue Sep 23 14:01:23 2008
>>>
>>> John Maindonald             email: john.maindonald at anu.edu.au
>>> phone : +61 2 (6125)3473    fax  : +61 2(6125)5549
>>> Centre for Mathematics & Its Applications, Room 1194,
>>> John Dedman Mathematical Sciences Building (Building 27)
>>> Australian National University, Canberra ACT 0200.
>>>
>>> _______________________________________________
>>> 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
>
>



More information about the R-SIG-Mac mailing list