======== Next ======== - Changed URL escaping convention, to avoid confusing proxies. The new convention is like the normal one, but with '.' instead of '%'. ======== 20100506 ======== - New experimental checker for information flow and access control policies (See demo at http://www.impredicative.com/ur/scdv/) ======== 20100401 ======== - Subquery expressions and FROM items - Low-level support for SELECT with no FROM clause - Fixes for DBMS-portability of relational operators ======== 20100325 ======== - -verbose flag - COUNT(col) SQL aggregate function - 'benignEffectful' and 'safeGet' .urp commands - Remove Basis.getRequestHeader, since it can be used to circumvent cookie security - Rename Top.foldR*X to map*X - Bug fixes and optimization improvements ======== 20100213 ======== - Improvements to 'configure'; should now fail if any uncommon but required package is missing - Other fixes to configuration, build system, and C code portability - sigfile .urp directive & -sigfile command-line option - .urp files with no directives no longer need to begin with blank lines. - Other bug fixes ======== 20100130 ======== - Conversion to an Automake-based build system, for greater portability in building shared libraries - -path and -root command-line flags - Exported page handling functions (i.e., those page-generating functions appearing in the main module's signature) may now take any number of arguments, including 0. ======== 20100112 ======== - Basis.serialized type family, for storing more types in the database - Basis.textBlob, for building blobs from strings - Basis.debug function, for server-side debug printing - Bug fixes & optimization improvements ======== 20091230 ======== - Automatic insertion of implicit arguments in more positions - Reifying expressions as URLs and redirecting to them explicitly - More syntactic sugar for SQL - Typing of SQL queries no longer exposes which tables were used in joins but had none of their fields projected - Tasks - Dynamic linking of the runtime system - Optimization improvements - Bug fixes ======== 20091203 ======== - Extended cookie interface (breaks backward compatibility for 'setCookie') - Bug fixes - Extended UTF-8 characters in HTML ======== 20091124 ======== - Improved Internet Explorer compatibility ======== 20091108 ======== - Bug fixes - Optimization improvements - Removed a restriction that prevented some RPCs and calls to sleep or recv from compiling ======== 20091012 ======== - Small bug fixes affecting MySQL and SQLite ======== 20091009 ======== - Bug fixes - Improvement to choice of line number to cite in record unification error messages - SELECT DISTINCT - New extra demos: orm1 and versioned1 ======== 20090926 ======== - Reimplemented client-side code generation to use an interpreter, rather than compilation to JavaScript; this avoids common browser flaws: lack of optimization of tail calls and occasional bugs in closure handling. - Bug fixes ======== 20090919 ======== - Bug fixes - Optimization improvements - Expanded grid demo in demo/more: optional columns, sorting, filtering, paging, selecting rows, aggregate row ======== 20090912 ======== - Bug fixes - Optimization improvements - New set of extra demos in demo/more ======== 20090825 ======== - Many bug fixes - Remote procedure calls must be marked with the new 'rpc' function. - Some tweaks to enable usage on OSX (suggested by Paul Snively) ======== 20090718 ======== - New application protocols: CGI and FastCGI - New database backends: MySQL and SQLite - More JavaScript events added to tags in standard library - New manual section on using the foreign function interface (FFI) ======== 20090623 ======== - Many bug fixes - Mutually-recursive datatypes - SML-style pattern-matching syntax for "fun", "fn", and local "val" - Backwards-incompatible change to syntax of formal constructor parameters to value-level functions, to support the previous change - Path map support inspired by SML/NJ CM and MLton ML Basis - Start of some new standard library modules - Some improvements to JavaScript runtime, including better error handling ======== 20090505 ======== - Reimplement constructor class resolution to be more general and Prolog-like - SQL table constraints - URLs - Client-side error handling callbacks - CSS - Signing cookie values cryptographically to thwart cross site request forgery - Blobs and HTTP file upload - SQL outer joins - SQL views - Subforms - C and JavaScript FFI - Path rewriting ======== 20090405 ======== - Asynchronous message-passing and the associated server-side client bookkeeping - Reimplement parts of the client-side runtime system to avoid space leaks - spawn and sleep - Expand the constructor class instance rule format ======== 20090312 ======== - Replace type-level "fold" with "map" - Replace expression-level "fold" with folders, defined in Top and supported by some special compiler inference - Replace guarded constructors with guarded types, introduced only by guarded expression abstraction, and with a new explicit application form - Kind polymorphism - Generalize type classes to constructor classes - Initial compilation of client-side code to JavaScript - Initial support for mixed client- and server-side programming (i.e., "AJAX") - src/coq: Coq formalization of a core Ur-like calculus ======== 20081209 ======== - Optimization: Fusing page writes with calls to recursive functions - Optimization of bottleneck compiler phases - Reference manual - SQL arithmetic operators ======== 20081120 ======== - Fix bug that sometimes led to omission of initial "" in pages - Take advantage of nested functions in some demos - "profile" option that may appear in .urp files, to enable gprof profiling - "-guided-demo" option that works like "-demo" but uses less screen space for prose ======== 20081118 ======== - Nested function definitions - Primitive "time" type - Nullable SQL columns (via "option") - Cookies - Compiler: Specialization of functions to known arguments (especially of function type) ======== 20081028 ======== - Add GCCARGS configure option ======== 20081027 ======== - On missing inputs, print an error message, but don't exit the web server. - Remove need for "() <-" notation. ======== 20081026 ======== - Change 'sed' call to work on OSX. - Avoid including or linking libpq files on apps that don't use SQL.