Unfortunally, the Google App Engine [http://code.google.com/appengine/] only seems to support Java and Python.
I wonder if [Jacl] helps us?
[NEM] 2010-01-08: Yes, [Jacl] (or the [TJC compiler]) can be used to deploy Tcl applications to Google's app engine
(technically, at least -- you'd have to check Google's terms of service). An example servlet that should work follows.
This simple servlet evaluates any arbitrary code that you pass in the ?script= parameter (e.g., script=puts+%22Hello,%20World!%22).
Obviously, don't deploy this to a production server!
======
package jacltest;
import java.io.IOException;
import java.io.PrintStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import tcl.lang.*;
/**
* A simple demo of using Jacl to evaluate code for Google's AppEngine.
* @author nem
*/
public class JaclServlet extends HttpServlet {
/**
* Processes requests for the HTTP GET
method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintStream out = new PrintStream(response.getOutputStream());
Interp interp = new Interp();
StdChannel.setOut(out);
StdChannel.setErr(out);
try {
out.println("");
out.println("
"); String[] cmds = request.getParameterValues("script"); for (String cmd : cmds) { try { interp.eval(cmd); out.println(interp.getResult().toString()); } catch (TclException ex) { out.println("ERROR: " + ex.getMessage()); } } out.println(""); out.println(""); out.println(""); } catch (Exception ex) { out.println("EXN: " + ex); } finally { out.close(); interp.dispose(); } } /** * Returns a short description of the servlet. * @return a String containing servlet description */ @Override public String getServletInfo() { return "Jacl interpreter"; } } ====== <