From hin-tak.leung at cimr.cam.ac.uk  Fri Jan 12 19:26:11 2007
From: hin-tak.leung at cimr.cam.ac.uk (Hin-Tak Leung)
Date: Fri, 12 Jan 2007 18:26:11 +0000
Subject: [Rd] wine and build difference between R.2.4.0 and R 2.4.1
 windows binaries?
In-Reply-To: <45A7CE6F.2050103@stats.uwo.ca>
References: <45A53E92.6070104@cimr.cam.ac.uk> <45A545B1.6070508@stats.uwo.ca>
	<45A6250C.3020802@cimr.cam.ac.uk> <45A629E0.8090100@stats.uwo.ca>
	<45A79EB8.8010606@cimr.cam.ac.uk>
	<Pine.LNX.4.64.0701121446340.11132@gannet.stats.ox.ac.uk>
	<45A7BF93.1090109@cimr.cam.ac.uk> <45A7CE6F.2050103@stats.uwo.ca>
Message-ID: <45A7D2C3.1050204@cimr.cam.ac.uk>

Duncan Murdoch wrote:
> On 1/12/2007 12:04 PM, Hin-Tak Leung wrote:
>> Prof Brian Ripley wrote:
>>> On Fri, 12 Jan 2007, Hin-Tak Leung wrote:
>>>
>>>> I'd like to know one thing though - was there any specific reason for
>>>> the mingw upgrade after 2.4.0, or was it just a routine
>>>> latest-is-greatest upgrade?
>>>
>>> There are specific requirements: from the CHANGES file
>>>
>>> 2.4.0:
>>>
>>> mingw-runtime >= 3.10 is required to build R (a bug fix in the handling
>>> of MBCS code is required).  This is enforced by a check in building
>>> Rpwd.exe.
>>
>> Argh... MBCS. I tried running wine with debug on,
>> ( WINEDEBUG=+relay wine Rgui.exe 2>&1 ) and it shows that just before 
>> 2.4.1/2.5dev crashes, R tried to called strlen() and strchr() on
>> "Error: invalid multibyte string" in ntdll.
>>
>> Call ntdll.strlen(6c9a0a80 "Error: invalid multibyte string\n") 
>> ret=6c9150bd
>> Call ntdll.strchr(00e192e0 "Error: invalid multibyte 
>> string\n",0000000a) ret=6c704ec0
> 
> That may be the error people were getting when running 2.4.0 in a 
> Simplified Chinese locale, because one of the translation files had the 
> wrong encoding.  See this message in CHANGES:
> 
> The Simplified Chinese menu messages were in the wrong format, causing
> RGui to crash on startup. (PR#9277)


2.4.0 works and 2.4.1/2.5dev crashes, all on the same machine with
the same version of wine in en_GB.UTF-8 locale.

export |grep 'LANG'
declare -x LANG="en_GB.UTF-8"

I found all 3 versions of Rgui.exe hangs (and not crashes) if I run
wine under LANG=C .

I think it would be most interesting to try building the older 2.4.0
with newer mingw - that would distinguish whether it is code change
in R or change in mingw. (I'll give this a try in the next few days).

Hin-Tak


> 
> Duncan Murdoch
> 
>>
>> It might be bogus, but the same trace is not found in
>> WINEDEBUG=+relay wine Rgui.exe 2>&1
>> with R 2.4.0 .
>>
>> Can I have a svn revision number for the MBCS change please? It
>> should probably be the first thing I look at, as soon as I get
>> my cross-compile tools up to date... thanks a lot.
>>
>> Hin-Tak
>>
>>>
>>> 2.5.0-to-be:
>>>
>>> mingw-runtime >= 3.11 is needed to build R.
>>>
>>> [There are multiple reasons, but one is that isblank is missing in 
>>> earlier versions.]
>>>
>>> I am almost certain that I have build R 2.4.1 with mingw-runtime 3.10.
>>>
>



[Rd] wine and build difference between R.2.4.0 and R 2.4.1 windows binaries?
Hin-Tak Leung