Version 1.4.2 contains the following new features:
OPTION CHANGES:
All options will have long variants (e.g. "--latex" for
"-l"). There will be a "--gcc" (equivalently: "-g") for
redirecting options to gcc for service end-compilation. [See the
"Using Libraries" Webboard thread]. Also, some of the option
letters will be slightly permuted.
TUPLE PLUG/RECEIVE SHORTHANDS:
As suggested by Bruce Perens. [See the "tuple to form to input"
Webboard thread].
Example:
schema Scm { int a,b,c; }
tuple Scm t;
html H =
;
show H <[t] receive[t];
/* Semantically equivalent to:
show H <[a = t.a, b = t.b, c = t.c]
receive[t.a = a, t.b = b, t.c = c]; */
POWERFORMS INTERDEPENDENCIES:
As explained in section 3 (page 11) in the PowerForms paper:
"http://www.brics.dk/bigwig/research/publications/#powerforms"
INPUT VALIDATION DOUBLE-CHECK FOR TAMPERING:
It will be checked (on the server-side) that all "radio",
"checkbox", and "select" field values submitted were actual
possibilities on the form shown (i.e. that they have not been
tampered with).
VALIDATION ERROR-PAGE:
When the server-side validation failed, we used to assume in
version 1.3 that the form had been tampered with. This is because
the JavaScript protects against invalid submissions. Version 1.3
yielded a runtime-error in these cases. However, this is clearly
an unsatisfactory solution for non-JavaScript
clients. Consequently, version 1.4 will instead keep re-showing
the page until it is valid (much like in ColdFusion).
OPTIONAL REPLY PAGE OVERWRITING:
So far, all replies from have been written to the same
file (index.html) in the session's private HTML
directory. However, as we have experienced some cache problems
with in particular Netscape 6, we have made this an option (which
is turned off by default). The feature can be turned on via the
"-o / --overwrite" option. Instead, version 1.4 will
successively number the reply pages starting with 1.html.
FORMAT COMPILATION SPEED-UP:
The format compilation process has been speeded up by a remarkable
factor (both regarding time and space).
INPUT FIELDS ON DEFAULT MANAGEMENT PAGE:
Sessions taking arguments will now have corresponding input fields
on the management page, so that they can be entered there.
TYPE INFO IN PRETTY-PRINT:
The pretty printer will now visualize type information in html
pretty prints. (compile "-h" option).
DYNAMIC REGEXP MATCHING:
The "match" construct has been extended to cope with dynamic
regular expressions. Before the second argument should be either
of type format or html. Now it can also be a "string" in which
case this string is assumed to be some (even dynamically)
generated regexp with which the first (string) argument is checked
to comply. "Match" returns "true" if and only if this string
matches the regexp. Three meta-variables may be ``received'' from
the "match" construction, "start" (index of start matching point),
"stop" (stop index), and "status" (error code if the second
argument didn't parse). The regexps are as in the gnu-c library
"regexp.h" (the error codes also come from here).
EXTERNAL SQL DATABASE SUPPORT:
It will be possible to link to an external SQL database (via. the
ODBC interface). Also a subset of SQL has been hardwired into
and can now be used on "shared" data in the DB server AND
on private (local) data in the session thread.