view CHANGELOG @ 996:6c5f79209db6

New release
author Adam Chlipala <>
date Fri, 09 Oct 2009 09:16:32 -0400
parents 7932d577cf78
children 588b31fe6cc9
line wrap: on
line source

- Bug fixes
- Improvement to choice of line number to cite in record unification error
- New extra demos: orm1 and versioned1


- 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


- Bug fixes
- Optimization improvements
- Expanded grid demo in demo/more: optional columns, sorting, filtering,
  paging, selecting rows, aggregate row


- Bug fixes
- Optimization improvements
- New set of extra demos in demo/more


- 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)


- 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)


- 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


- Reimplement constructor class resolution to be more general and Prolog-like
- SQL table constraints
- URLs
- Client-side error handling callbacks
- 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


- Asynchronous message-passing and the associated server-side client
- Reimplement parts of the client-side runtime system to avoid space leaks
- spawn and sleep
- Expand the constructor class instance rule format


- 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


- Optimization: Fusing page writes with calls to recursive functions
- Optimization of bottleneck compiler phases
- Reference manual
- SQL arithmetic operators


- Fix bug that sometimes led to omission of initial "<html>" 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


- Nested function definitions
- Primitive "time" type
- Nullable SQL columns (via "option")
- Cookies
- Compiler: Specialization of functions to known arguments (especially of
  function type)


- Add GCCARGS configure option


- On missing inputs, print an error message, but don't exit the web server.
- Remove need for "() <-" notation.


- Change 'sed' call to work on OSX.
- Avoid including or linking libpq files on apps that don't use SQL.