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.