Web Authoring System Haskell (WASH) WASH is a family of embedded domain specific languages (EDSL) for programming Web applications. Each language is embedded in the functional language WASH is a family of embedded domain specific languages (EDSL) for programming Web applications. Each language is embedded in the functional language Haskell , which means that it is implemented as a combinator library.

wash2hs, a preprocessor for including literal XHTML fragments in the style of Haskell Server Pages (HSP)

See here for an explanation of the syntax.

See here for an explanation of the syntax. WASH/CGI for server-side web scripting

WASH/HTML for dynamic generation of HTML and XHTML

WASH/Mail for email processing

WSP, a server supporting Wash Server Pages

WASH/DB, a transactional interface to SQL databases

DBconnect, a simple interface to PostgreSQL (deprecated)

one program can implement entire sessions;

the specification of an input field and the collection of the input from this widget are tied together so that mismatches are not possible; the external name of an input field does not matter;

input fields are first-class entities; they may be typed and grouped to compound input fields (compositionality); each group may be bound to a callback action;

first-class images as active input fields where each pixel of the image can result in a different action;

no explicit URLs need to be constructed in the script, except references to external pages;

compiled scripts are "relocatable"; they can be moved in the directory hierarchy or to another server without change (provided that it can execute at all on the other machine);

support for persistency through transactional variables. See the WASH.CGI.Transaction module.

Resources

Installation (WASH AND GO)

Download the current release WashNGo (version 2.12 of 20070725)

Create a new directory, say, build and untar the file into it.

and untar the file into it. Follow the instructions in file INSTALL .

. Check the online documentation.

If you want graphics (module CGIGraphics ) and you have the same setup as my machine (not that unlikely), all you have to do is create two directories /tmp/REGISTRY and /tmp/Images . If the graphics part still does not work, then consider the following hints.

The graphics part requires GHC 4.08.2 (tested on SUSE Linux 6.4). It is known not to work with GHC 4.04.1, due to a problem resulting in a virtual timer expired error message.

error message. The graphics part requires pbmplus to run, which is most likely installed on your machine. Edit the line pbmPath = "/usr/X11R6/bin/" in file CGIGraphics.hs to point to the place where pbmplus is installed on your machine.

An extended version of Simon Marlow's webserver (hws) that runs WASH modules as servlets. WASH modules are compiled transparently and dynamically loaded into the running server. Each servlet runs in one of three modes: LogOnly (using a log to reconstruct the current state like WASH's CGI implementation), StateIDOnly (running a thread for each session and continuing in the same thread with each form submission), LogAndState (use a thread for efficiency and keep the log for robustness).

Prerequisites

WASH (from version 2.6)

hs-plugins (from version 0.9.10)

Installing

Download the current pre-release WSP (version 0.1.6 of 20060413)

Create a new directory, say, build and untar the file into it.

and untar the file into it. Type make .

. Edit myconfig.conf .

. Start the server using hws-dynamic -f ./myconfig.conf .

. Configure the server through the web configuration interface at http://localhost:8080/console .

. Example scripts for uploading into the server may be found in the subdirectory scripts . main module CGICounter , main symbol mainCGI main module HelloWorld , main symbol mainCGI

.

Reservation

Installing

Download the current pre-release WASH/DB (version 0.2 of 20060608) TRANS/DB (version 0.3.2 of 20060830) transactional database access for Haskell, required by WASH/DB

First for TRANS/DB and then for WASH/DB: Create a new directory, say, build and untar the file into it. Type make to build the library and the example programs. Type make install to install both (you may have to edit the Makefile for the location of your CGI directory).

It's not integrated with WSP, yet. But it might work, anyway. Please let me know.

NUM_INSTS

10000

src/prelude.h