From vdergachev at rcgardis.com  Fri Jan  5 19:00:16 2007
From: vdergachev at rcgardis.com (Vladimir Dergachev)
Date: Fri, 5 Jan 2007 13:00:16 -0500
Subject: [Rd] help for memory problem with 64-bit machines
In-Reply-To: <459E868A.2080302@biostat.ku.dk>
References: <E1H2rmC-0005nz-00@DMjcadima> <459E81DD.6060707@cimr.cam.ac.uk>
	<459E868A.2080302@biostat.ku.dk>
Message-ID: <200701051300.16117.vdergachev@rcgardis.com>

On Friday 05 January 2007 12:10 pm, Peter Dalgaard wrote:
> Hin-Tak Leung wrote:
> > I got the same error with 64-bit R 2.4.1 on FC6 x86_64, and 32-bit
> > R 2.4.1 on the same machine is okay. There is definitely something wrong
> > with your code.
> >
> > I would suggest fixing all the compier warnings - there are piles of
> > them about uninitialized variables, and about doing comparison
> > between signed and unsigned expressions, etc first. Put -Wall in
> > CFLAGS CXXFLAGS and FFLAGS and you'll see.

Also, the issue I most commonly see is the difference in size for "long" data 
type. On 32 bit sizeof(long)=sizeof(int)=32, but on 64bit sizeof(long)=64 
while sizeof(int)=32. 

This reverses a formerly safe practice of using long for 32 bit (and insuring 
the code compiles correctly on 16 bit machines).

                            best

                                Vladimir Dergachev

> >
> > good luck.
> >
> > Hin-Tak Leung
>
> Good advice. Also, the most common culprit for 64/32 problem is pointers
> stored as integers so watch out for any of those. And notice that you
> can set a breakpoint at randsk1_ and start poking around to see what is
> inside various variables and singlestep to the point of the crash (it's
> a bit painful and confusing in Fortran code, though.)
>
>     -pd
>



[Rd] help for memory problem with 64-bit machines
Vladimir Dergachev