Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 Web Authoring System Haskell (WASH)
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 Haskell, which means that it is
implemented as a combinator library.
Currently, WASH has the following components
wash2hs, a preprocessor for including
literal XHTML fragments in the style of Haskell Server Pages
(HSP)
See here
for an explanation of the syntax.
WASH/CGI is an EDSL for server-side Web scripting with Sessions,
Compositional Forms, and Graphics. It features
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.
WARNING: the graphics part has not been updated for a long time
and is likely to have problems
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.
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).
WASHDB provides an API for accessing a relational database using
a transactional interface (inspired by Software Transactional
Memory). It relies on HDBC to provide database connectivity. It
is currently tested only with HDBC's PostgreSQL binding. See the
Reservation programs in the main directory for example
uses.
WASH/HTML is an EDSL for generating dynamic HTML
documents. WASH/HTML combines flexibility and safety in a unique
way. On the one hand, the potential for generation and
parameterization of documents is virtually unlimited due to the
underlying functional programming language Haskell, which provides
programming and abstraction facilities. On the other hand, the
library guarantees well-formed and valid HTML,
even with higher-order templates.
DBconnect is a collection of modules for using PostgreSql
from Haskell programs. It is bundled with WashNGo.
Installation of DBCONNECT requires a number of
prerequisites.
If all this is properly installed, then the configure script
of WashNGo will find everything automatically.
Peter Thiemann
Last modified: Wed Aug 30 17:57:11 CEST 2006