[racket-dev] emscripten?

From: Tony Garnock-Jones (tonyg at ccs.neu.edu)
Date: Wed May 9 17:16:54 EDT 2012

On 05/09/2012 05:09 PM, John Clements wrote:
> In particular, I would expect the JIT to be totally broken, and that
> there would be a lot of painful parts related to linking to standard
> libraries, but the resulting program could actually do client-side
> compilation in a web browser, right?

Yep. My initial experiments in this direction suggested that getting it 
to compile and run with emscripten was Difficult. I didn't put very much 
effort into it though. I don't remember exactly where I got stuck, but 
the attached is a build script I was using to try to iterate closer and 
closer to an appropriately-configured and -compiled Racket.

Regards,
   Tony
-------------- next part --------------
#!/bin/sh
# First, mkdir .../racket/src/build, then from there, run this script.
EMSCRIPTEN_PATH=~/src/emscripten-racket/emscripten/tools
EMMAKEN_JUST_CONFIGURE=1 \
    RANLIB=$EMSCRIPTEN_PATH/emmaken.py \
    AR=$EMSCRIPTEN_PATH/emmaken.py \
    CXX=$EMSCRIPTEN_PATH/emmakenxx.py \
    CC=$EMSCRIPTEN_PATH/emmaken.py \
    ../configure \
    --host=i686-pc-linux-gnu \
    --target=i686-pc-linux-gnu \
    --enable-racket="`which racket`" \
    --disable-gracket \
    --disable-plot \
    --disable-jit \
    --disable-foreign \
    --disable-pthread \
    --disable-futures \
    --disable-places
sed -i bak -e 's:/\* #undef MZ_CAS_AVAILABLE \*/:#define MZ_CAS_AVAILABLE 1:' racket/mzconfig.h
echo '#define NO_TCP_SUPPORT 1' >> racket/mzconfig.h
echo '#define SCHEME_PLATFORM_LIBRARY_SUBPATH "js-emscripten-0.0"' > racket/src/schsys.h
touch racket/starter

Posted on the dev mailing list.