Home     |     .Net Programming    |     cSharp Home    |     Sql Server Home    |     Javascript / Client Side Development     |     Ajax Programming

Ruby on Rails Development     |     Perl Programming     |     C Programming Language     |     C++ Programming     |     IT Jobs

Python Programming Language     |     Laptop Suggestions?    |     TCL Scripting     |     Fortran Programming     |     Scheme Programming Language

Cervo Technologies
The Right Source to Outsource

MS Dynamics CRM 3.0

Scheme Programming Language

SISCweb v0.5 - Stateful Scheme framework for J2EE

I'm pleased to announce the release of SISCweb v0.5, available at:


This release adds a space-safe implementation of Web Cells,
consolidates the interface from Scheme to JSP/Servlets, and provides
some incremental features and fixes.


- An implementation of web cells, as as described in the paper
  "Interaction-Safe State for the Web". New examples now help compare
  web cells, SRFI-39 parameters, state-passing-style and session
  attributes with respect to scope, backtracking and cloning.

  [*] http://www.cs.brown.edu/~sk/Publications/Papers/Published/mk-int-safe...

- Much improved interface from SISCweb to JSPs and other standard
  J2EE components:
        - Bindings can now be explicitely single-valued or
          multi-valued, as in:

              `((a . 1) (b 2 3)).

        - The send-forward/* functions pass bindings to the dispatcher
          as request attributes for easy access via the JSTL and the
          like. Multi-valued bindings are passed as collection

        - Vice-versa, attributes in a request forwarded to a Scheme
          program are now included in the bindings structure returned
          by get-bindings.

        - The SISCHttpServletRequest.getBinding*() methods are
          deprecated, and will disappear in the next release.

- Added publish/regexp to publish procedures using regular
  expressions. Sub-expressions can be optionally mapped to procedure

- The SISC libraries (sisc.jar, etc.) can now be shared across servlet

- Miscellanea:
    * better compliance of plain HTML output via send-html/*;
    * added siscweb/text module for generating plain text;
    * added sql/mssql module from LShift's Icing [*];
    * logging rotation;
    * further internal refactoring and compatibility fixes.


After a context restart, continuation tables persisted within sessions
were not being purged of expired continuations. This was partially
fixed in v0.4 by limiting the number of continuations per user, but is
now completely resolved.


Objectives for the next SISCweb releases are:

- Faster SXML generation, precompiled if possible.

- Further work on including features from the  Icing framework.

- Performance improvements, possibly including clustering.


Special thanks for this release go to Dan Muresan for his
contributions, and Ben Simon for bug reports.

[**] Icing: http://www.lshift.net/icing
The complete Icing db layer is included in a "dormant" state. It is
mainly intended as a baseline for further hacking.


SISCweb is a framework aimed to facilitate writing stateful Scheme web
applications in J2EE environments.


SISCweb sports an interactive, REPL-based web application development
style. Developers can write applications interactively, without ever
restarting the context, and, insofar as it is desirable, without ever
losing application state. (In fact, save for the Java portion, SISCweb
itself is developed interactively in its own REPL.)

Through the use of continuations, SISCweb does away with the
page-centric execution model typical of web applications [*].  Every
time a response is sent to the browser, the program execution flow is
suspended, to be then resumed from that exact point when the browser
submits a request.

[*] More information can be found in this paper: Christian
Queinnec. "Inverting back the inversion of control or, continuations
versus page-centric programming". Technical Report 7, LIP6. May
2001. (http://www-spi.lip6.fr/~queinnec/Papers/www.ps.gz)


SISCweb requires a J2EE 1.3 application server and a JDK 1.4 or
later. More detailed information is contained in the documentation.


SISCweb is based on SISC (sisc.sf.net), a Scheme interpreter for the
JVM, and is heavily influenced by other Lisp web frameworks:

  - the PLT web server collection
  - SUnet (http://www.scsh.net/resources/sunet.html)
  - AllegroServe (http://allegroserve.sourceforge.net/)

A couple of initial design decisions were also lifted from Matthias
Radestock's servlet code in the contrib section of the SISC CVS tree.

Also special thanks to Anton van Straaten, Dominique Boucher, Ben
Simon, Dan Muresan and Felix Klock for bug reports, suggestions,
and/or work in support of SISCweb.


Comments, ideas, and bug reports are welcome at:


Thank you!

(C) 2005-2007 Alessandro Colomba <acolo@users.sourceforge.net>

Add to del.icio.us | Digg this | Stumble it | Powered by Megasolutions Inc