https://github.com/kripken/emscripten/wiki%|%emscripten%|% compiles "regular" C/C++ projects to JavaScript via LLVM. This is how marvels such as http://jamesfriend.com.au/pce-js/%|%PCE.js%|% (A Mac Plus/IBM PC emulator in the browser) can exist. This evening, I've made a few attempts at compiling a number of Tcl versions (from 8.6.1 back to 8.2, didn't get further) using emscripten. The steps for compiling are in theory https://github.com/kripken/emscripten/wiki/Building-Projects%|%easy and well-documented%|%. However, `emmake make` fails every time in the Network code. It fails once when trying to solve "services" to port number (something that can easily be commented away) but also later on in the platform implementation of the `socket` command. It got too late, so I gave up. Anybody who wants to continue? This should provide an alternative implementation of Tcl in the browser. [EF] [TP] You might want to start smaller. I have compiled and run [Picol] as an experiment back when emscripten was just getting started. I know of other Tclers who have also compiled [Jim]. Jim is a good candidate for emscripten, since it is built as a core plus several modules that can be switched on or off with configure directives. To compile Tcl, you will probably have to start with the ./unix/ directory, gut most of the C files in that directory, leaving the internal interfaces but return TCL_ERROR or similar. [EF] I am aware of those smaller alternatives. Thing is that I was impressed that the whole "generic" went without any real glitches (or almost). unix didn't seem that bad either... But I'll look into Jim again, as it's much closer to the "real thing" than picol is as far as I can remember. [stevel] I've done it to Jim Tcl (see Tcl 2011 paper) but it was slow, although it would be interesting to see how a more recent emscripten would perform. A better approach is Arnulf Wiedemann's [APWTCL] [TP] I was able to compile and run [Jim] with these steps. You should already have emscripten installed and be able to compile a simple hello world or equivalent, and have the emscripten commands available on your PATH. See https://github.com/kripken/emscripten/wiki/Emscripten-SDK%|%Emscripten-SDK%|%. I cloned the jimtcl repository from https://github.com/msteveb/jimtcl%|%Github%|%. ====== cd jimtcl emconfigure ./configure --without-ext="aio load signal" --disable-shared --disable-lineedit emmake make mv jimsh jimsh.bc emcc jimsh.bc -o jimsh.html ====== Now load up the jimsh.html page in your browser (e.g., file:///home/user/jimtcl/jimsh.html). This page has a rudimentary dialog box for standard input. If you have time, you might try interfacing with one of the nicer [repl] webpages, see the https://github.com/kripken/emscripten/wiki#programming-languages%|%Emscripten wiki%|% for examples. [aidanhs] I created http://aidanhs.github.io/emtcl/ a while ago. It shows both Tcl and JimTcl running in the browser. In addition, it comes with an extension to Tcl for manipulating the dom with inline JS - https://github.com/aidanhs/emtcl/blob/master/opt/dom.c <> Development