On May 23, 2013, at 23:07 , Jony Hudson wrote:

> Hi,
> 
> I'm making some progress with this, but have hit a sticking point and am 
> looking for a hint. Most of the compilation seems to be going ok, after some 
> liberal use of f2c, but I'm getting compile errors in src/main/connections.c :
> 
> connections.c:926:43: error: use of undeclared identifier 'SSIZE_MAX'
>    if ((double) size * (double) nitems > SSIZE_MAX)
>                                          ^
> connections.c:937:43: error: use of undeclared identifier 'SSIZE_MAX'
>    if ((double) size * (double) nitems > SSIZE_MAX)
>                                          ^
> connections.c:3354:21: warning: implicit conversion from 'long long' to
>      'R_xlen_t' (aka 'int') changes value from 4503599627370496 to 0
>      [-Wconstant-conversion]
>    nnn = (n < 0) ? R_XLEN_T_MAX : n;
>        ~           ^~~~~~~~~~~~
> ../../src/include/Rinternals.h:65:23: note: expanded from macro 'R_XLEN_T_MAX'
> # define R_XLEN_T_MAX 4503599627370496
>                      ^~~~~~~~~~~~~~~~
> connections.c:3662:11: error: duplicate case value '4'
>            case sizeof(long):
>                 ^
> connections.c:3660:11: note: previous case defined here
>            case sizeof(int):
>                 ^
> connections.c:3680:11: error: duplicate case value '4'
>            case sizeof(long):
>                 ^
> connections.c:3678:11: note: previous case defined here
>            case sizeof(int):
>                 ^
> connections.c:3912:11: error: duplicate case value '4'
>            case sizeof(long):
>                 ^
> connections.c:3910:11: note: previous case defined here
>            case sizeof(int):
>                 ^
> connections.c:3956:11: error: duplicate case value '4'
>            case sizeof(long):
>                 ^
> connections.c:3952:11: note: previous case defined here
>            case sizeof(int):
> 
> Recall that I'm compiling with emscripten, which uses clang to generate LLVM 
> bitcode, which is then converted to javascript. I'm currently using the 
> existing autotools build scripts, which emscripten tries to twist in to doing 
> something sensible. It's quite possible that it's ending up 
> mis-"./configure"d though.
> 
> I appreciate this is fairly off-topic, but if anyone has any pointers where 
> to start looking, they would be greatly appreciated :-)
> 

Looks like SSIZE_MAX is usually <*/limits.h>:

pd$ grep -r SSIZE_MAX /usr/include/
/usr/include/i386/limits.h:#define      SSIZE_MAX       LONG_MAX        /* max 
value for a ssize_t */
/usr/include/limits.h:#define   _POSIX_SSIZE_MAX        32767
/usr/include/ppc/limits.h:#define       SSIZE_MAX       LONG_MAX        /* max 
value for a ssize_t */

If R_xlen_t is int, you need to adjust R_XLEN_T_MAX to INT_MAX or so.

The case warnings look like they are bound to happen on systems where int and 
long have the same size, and should presumably be harmless.

 


> Thanks,
> 
> 
> Jony
> 
> --
> Centre for Cold Matter, The Blackett Laboratory,
> Imperial College London, London SW7 2BW
> T: +44 (0)207 5947741
> http://www.imperial.ac.uk/people/jony.hudson
> http://www.imperial.ac.uk/ccm/research/edm
> http://www.monkeycruncher.org
> http://j-star.org/
> --
> 
> On 2 May 2013, at 17:12, Jony Hudson <jony.hud...@imperial.ac.uk> wrote:
> 
>> Hi,
>> 
>> I'm trying to cross-compile R to javascript so that it can run in a 
>> web-browser. Take as long as you need to stop laughing. So, as I was saying 
>> - I want to try and get a build of R running in the browser. [If you're not 
>> familiar with it already, you might enjoy looking at emscripten.org. It's a 
>> remarkably capable tool for translating LLVM bitcode to javascript. Check 
>> out some of the demos!]
>> 
>> I'm trying to start out with the most minimal build of R possible. I can 
>> turn off various options in the configure script, but I'm wondering about 
>> the bundled R packages (base, stats etc). I'm guessing that the native code 
>> portions of these packages are dynamically loaded at runtime, which will 
>> probably need patching. To start off, I'd like to not build these packages 
>> if possible.
>> 
>> So, is there a way to configure which packages in the library get built or 
>> is it just a case of editing the makefile? And is there a minimal set of 
>> them that would still allow R to run (not be useful - that can come later - 
>> just run)?
>> 
>> Thanks in advance for any help anyone can provide :-)
>> 
>> 
>> Jony
>> 
>> --
>> Centre for Cold Matter, The Blackett Laboratory,
>> Imperial College London, London SW7 2BW
>> T: +44 (0)207 5947741
>> http://www.imperial.ac.uk/people/jony.hudson
>> http://www.imperial.ac.uk/ccm/research/edm
>> http://www.monkeycruncher.org
>> http://j-star.org/
>> --
>> 
>> ______________________________________________
>> R-devel@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
> 
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd....@cbs.dk  Priv: pda...@gmail.com

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to