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