annotate CHANGELOG @ 1445:6e6f1643c4e9

To generate server-side source JavaScript, try both the old and new strategies; remove an unsound optimization from MonoOpt and make MonoReduce work harder to compensate
author Adam Chlipala <adam@chlipala.net>
date Mon, 28 Mar 2011 10:37:49 -0400
parents 8c017e9e410e
children bd6b03bc6333
rev   line source
adam@1400 1 ========
adam@1414 2 20110123
adam@1400 3 ========
adam@1400 4
adam@1400 5 - Changes to encoding of SQL aggregate functions: nullable types may be
adam@1400 6 aggregated, and non-COUNT aggregates return nullable results.
adam@1400 7 - SQL subqueries may apply aggregate functions to columns bound in enclosing
adam@1400 8 queries.
adam@1400 9 - Switch from libmhash to OpenSSL.
adam@1400 10 - 'cdataChar', for injecting arbitrary character codes into XML
adam@1400 11 - 'crypt', for access to the standard UNIX password encryption routine
adam@1400 12 - 'readUtc', for parsing time strings in the UTC time zone
adam@1400 13 - Built-in 'time' type now stores microseconds (which for now are only used in
adam@1400 14 connection with Postgres timestamps).
adam@1400 15 - Client-side URL blessing and redirection
adam@1400 16 - 'currentUrlHasPost' function
adam@1400 17 - Transactional 'free' functions now passed an argument indicating whether the
adam@1400 18 runtime system expects to retry the transaction.
adam@1400 19 - Change tasks to allow task kind-specific inputs
adam@1400 20 - Add 'clientLeaves' and 'periodic' task kinds
adam@1400 21 - Support for externally-callable pages, via the 'postBody' and 'queryString'
adam@1400 22 types and the 'effectfulUrl' function
adam@1400 23 - 'minHeap' and 'alwaysInline' .urp options
adam@1400 24 - '-prefix' command-line option
adam@1400 25 - Comments in .urp files (lines starting with '#')
adam@1400 26 - Miscellaneous additions to the standard library
adam@1400 27 - Bug fixes and improvements to type inference and optimization
adam@1400 28
adam@1287 29 ========
adam@1315 30 20101102
adam@1287 31 ========
adam@1287 32
adam@1287 33 - Polymorphic variants (see Basis.variant)
adam@1297 34 - New 'onError' directive for .urp files
adam@1287 35 - (* *) and <!-- --> comments in XML
adam@1297 36 - Basis.classes, Basis.confirm, and Basis.tryDml
adam@1309 37 - New notations ::_ and :::_, for constructor parameters of unknown kind
adam@1297 38 - Invocations like 'urweb foo' will compile foo.ur as a single-file project,
adam@1297 39 even if no foo.urp exists
adam@1309 40 - '-limit' command-line flag and 'limit' .urp directive
adam@1297 41 - Bug fixes and optimization improvements
adam@1287 42
adamc@1259 43 ========
adamc@1273 44 20100603
adamc@1259 45 ========
adamc@1259 46
adamc@1259 47 - Changed URL escaping convention, to avoid confusing proxies.
adamc@1259 48 The new convention is like the normal one, but with '.' instead of '%'.
adamc@1261 49 - Changed JavaScript compilation of recursive functions to use thunks.
adamc@1261 50 This change avoids most costs of functions not referenced on particular
adamc@1261 51 pages, reducing loading time dramatically.
adamc@1273 52 - Support HTTP caching of application-specific JavaScript code
adamc@1273 53 - Bug fixes
adamc@1259 54
adamc@1255 55 ========
adamc@1255 56 20100506
adamc@1255 57 ========
adamc@1255 58
adamc@1255 59 - New experimental checker for information flow and access control policies
adamc@1255 60 (See demo at http://www.impredicative.com/ur/scdv/)
adamc@1255 61
adamc@1197 62 ========
adamc@1197 63 20100401
adamc@1197 64 ========
adamc@1197 65
adamc@1197 66 - Subquery expressions and FROM items
adamc@1197 67 - Low-level support for SELECT with no FROM clause
adamc@1197 68 - Fixes for DBMS-portability of relational operators
adamc@1197 69
adamc@1183 70 ========
adamc@1190 71 20100325
adamc@1183 72 ========
adamc@1183 73
adamc@1188 74 - -verbose flag
adamc@1188 75 - COUNT(col) SQL aggregate function
adamc@1188 76 - 'benignEffectful' and 'safeGet' .urp commands
adamc@1188 77 - Remove Basis.getRequestHeader, since it can be used to circumvent cookie
adamc@1188 78 security
adamc@1190 79 - Rename Top.foldR*X to map*X
adamc@1188 80 - Bug fixes and optimization improvements
adamc@1183 81
adamc@1166 82 ========
adamc@1166 83 20100213
adamc@1166 84 ========
adamc@1166 85
adamc@1166 86 - Improvements to 'configure'; should now fail if any uncommon but required
adamc@1166 87 package is missing
adamc@1166 88 - Other fixes to configuration, build system, and C code portability
adamc@1166 89 - sigfile .urp directive & -sigfile command-line option
adamc@1166 90 - .urp files with no directives no longer need to begin with blank lines.
adamc@1166 91 - Other bug fixes
adamc@1166 92
adamc@1137 93 ========
adamc@1137 94 20100130
adamc@1137 95 ========
adamc@1137 96
adamc@1137 97 - Conversion to an Automake-based build system, for greater portability in
adamc@1137 98 building shared libraries
adamc@1137 99 - -path and -root command-line flags
adamc@1137 100 - Exported page handling functions (i.e., those page-generating functions
adamc@1137 101 appearing in the main module's signature) may now take any number of
adamc@1137 102 arguments, including 0.
adamc@1137 103
adamc@1123 104 ========
adamc@1123 105 20100112
adamc@1123 106 ========
adamc@1123 107
adamc@1123 108 - Basis.serialized type family, for storing more types in the database
adamc@1123 109 - Basis.textBlob, for building blobs from strings
adamc@1123 110 - Basis.debug function, for server-side debug printing
adamc@1123 111 - Bug fixes & optimization improvements
adamc@1123 112
adamc@1065 113 ========
adamc@1103 114 20091230
adamc@1065 115 ========
adamc@1065 116
adamc@1093 117 - Automatic insertion of implicit arguments in more positions
adamc@1065 118 - Reifying expressions as URLs and redirecting to them explicitly
adamc@1070 119 - More syntactic sugar for SQL
adamc@1070 120 - Typing of SQL queries no longer exposes which tables were used in joins but
adamc@1070 121 had none of their fields projected
adamc@1075 122 - Tasks
adamc@1095 123 - Dynamic linking of the runtime system
adamc@1077 124 - Optimization improvements
adamc@1103 125 - Bug fixes
adamc@1065 126
adamc@1050 127 ========
adamc@1056 128 20091203
adamc@1050 129 ========
adamc@1050 130
adamc@1050 131 - Extended cookie interface (breaks backward compatibility for 'setCookie')
adamc@1050 132 - Bug fixes
adamc@1056 133 - Extended UTF-8 characters in HTML
adamc@1050 134
adamc@1043 135 ========
adamc@1043 136 20091124
adamc@1043 137 ========
adamc@1043 138
adamc@1043 139 - Improved Internet Explorer compatibility
adamc@1043 140
adamc@1020 141 ========
adamc@1033 142 20091108
adamc@1020 143 ========
adamc@1020 144
adamc@1020 145 - Bug fixes
adamc@1020 146 - Optimization improvements
adamc@1021 147 - Removed a restriction that prevented some RPCs and calls to sleep or recv
adamc@1021 148 from compiling
adamc@1020 149
adamc@999 150 ========
adamc@999 151 20091012
adamc@999 152 ========
adamc@999 153
adamc@999 154 - Small bug fixes affecting MySQL and SQLite
adamc@999 155
adamc@988 156 ========
adamc@997 157 20091009
adamc@988 158 ========
adamc@988 159
adamc@988 160 - Bug fixes
adamc@988 161 - Improvement to choice of line number to cite in record unification error
adamc@988 162 messages
adamc@994 163 - SELECT DISTINCT
adamc@996 164 - New extra demos: orm1 and versioned1
adamc@988 165
adamc@985 166 ========
adamc@985 167 20090926
adamc@985 168 ========
adamc@985 169
adamc@985 170 - Reimplemented client-side code generation to use an interpreter, rather than
adamc@985 171 compilation to JavaScript; this avoids common browser flaws: lack of
adamc@985 172 optimization of tail calls and occasional bugs in closure handling.
adamc@985 173 - Bug fixes
adamc@985 174
adamc@968 175 ========
adamc@968 176 20090919
adamc@968 177 ========
adamc@968 178
adamc@968 179 - Bug fixes
adamc@968 180 - Optimization improvements
adamc@968 181 - Expanded grid demo in demo/more: optional columns, sorting, filtering,
adamc@968 182 paging, selecting rows, aggregate row
adamc@968 183
adamc@929 184 ========
adamc@929 185 20090912
adamc@929 186 ========
adamc@929 187
adamc@929 188 - Bug fixes
adamc@929 189 - Optimization improvements
adamc@929 190 - New set of extra demos in demo/more
adamc@929 191
adamc@914 192 ========
adamc@914 193 20090825
adamc@914 194 ========
adamc@914 195
adamc@914 196 - Many bug fixes
adamc@914 197 - Remote procedure calls must be marked with the new 'rpc' function.
adamc@914 198 - Some tweaks to enable usage on OSX (suggested by Paul Snively)
adamc@914 199
adamc@897 200 ========
adamc@897 201 20090718
adamc@897 202 ========
adamc@897 203
adamc@897 204 - New application protocols: CGI and FastCGI
adamc@897 205 - New database backends: MySQL and SQLite
adamc@897 206 - More JavaScript events added to tags in standard library
adamc@897 207 - New manual section on using the foreign function interface (FFI)
adamc@897 208
adamc@852 209 ========
adamc@852 210 20090623
adamc@852 211 ========
adamc@852 212
adamc@852 213 - Many bug fixes
adamc@852 214 - Mutually-recursive datatypes
adamc@852 215 - SML-style pattern-matching syntax for "fun", "fn", and local "val"
adamc@852 216 - Backwards-incompatible change to syntax of formal constructor parameters to
adamc@852 217 value-level functions, to support the previous change
adamc@852 218 - Path map support inspired by SML/NJ CM and MLton ML Basis
adamc@852 219 - Start of some new standard library modules
adamc@852 220 - Some improvements to JavaScript runtime, including better error handling
adamc@852 221
adamc@716 222 ========
adamc@790 223 20090505
adamc@716 224 ========
adamc@716 225
adamc@716 226 - Reimplement constructor class resolution to be more general and Prolog-like
adamc@716 227 - SQL table constraints
adamc@770 228 - URLs
adamc@736 229 - Client-side error handling callbacks
adamc@736 230 - CSS
adamc@736 231 - Signing cookie values cryptographically to thwart cross site request forgery
adamc@744 232 - Blobs and HTTP file upload
adamc@752 233 - SQL outer joins
adamc@755 234 - SQL views
adamc@756 235 - Subforms
adamc@768 236 - C and JavaScript FFI
adamc@768 237 - Path rewriting
adamc@716 238
adamc@702 239 ========
adamc@702 240 20090405
adamc@702 241 ========
adamc@702 242
adamc@702 243 - Asynchronous message-passing and the associated server-side client
adamc@702 244 bookkeeping
adamc@702 245 - Reimplement parts of the client-side runtime system to avoid space leaks
adamc@702 246 - spawn and sleep
adamc@702 247 - Expand the constructor class instance rule format
adamc@702 248
adamc@663 249 ========
adamc@663 250 20090312
adamc@663 251 ========
adamc@663 252
adamc@663 253 - Replace type-level "fold" with "map"
adamc@663 254 - Replace expression-level "fold" with folders, defined in Top and
adamc@663 255 supported by some special compiler inference
adamc@663 256 - Replace guarded constructors with guarded types, introduced only by
adamc@663 257 guarded expression abstraction, and with a new explicit application form
adamc@663 258 - Kind polymorphism
adamc@663 259 - Generalize type classes to constructor classes
adamc@663 260 - Initial compilation of client-side code to JavaScript
adamc@663 261 - Initial support for mixed client- and server-side programming (i.e., "AJAX")
adamc@665 262 - src/coq: Coq formalization of a core Ur-like calculus
adamc@663 263
adamc@506 264 ========
adamc@561 265 20081209
adamc@506 266 ========
adamc@506 267
adamc@506 268 - Optimization: Fusing page writes with calls to recursive functions
adamc@523 269 - Optimization of bottleneck compiler phases
adamc@561 270 - Reference manual
adamc@561 271 - SQL arithmetic operators
adamc@506 272
adamc@504 273 ========
adamc@504 274 20081120
adamc@504 275 ========
adamc@504 276
adamc@504 277 - Fix bug that sometimes led to omission of initial "<html>" in pages
adamc@504 278 - Take advantage of nested functions in some demos
adamc@504 279 - "profile" option that may appear in .urp files, to enable gprof profiling
adamc@663 280 - "-guided-demo" option that works like "-demo" but uses less screen space for
adamc@663 281 prose
adamc@504 282
adamc@467 283 ========
adamc@497 284 20081118
adamc@467 285 ========
adamc@467 286
adamc@467 287 - Nested function definitions
adamc@467 288 - Primitive "time" type
adamc@467 289 - Nullable SQL columns (via "option")
adamc@467 290 - Cookies
adamc@663 291 - Compiler: Specialization of functions to known arguments (especially of
adamc@663 292 function type)
adamc@467 293
adamc@435 294 ========
adamc@435 295 20081028
adamc@435 296 ========
adamc@435 297
adamc@435 298 - Add GCCARGS configure option
adamc@435 299
adamc@433 300 ========
adamc@433 301 20081027
adamc@433 302 ========
adamc@433 303
adamc@433 304 - On missing inputs, print an error message, but don't exit the web server.
adamc@434 305 - Remove need for "() <-" notation.
adamc@433 306
adamc@433 307 ========
adamc@433 308 20081026
adamc@433 309 ========
adamc@433 310
adamc@433 311 - Change 'sed' call to work on OSX.
adamc@433 312 - Avoid including or linking libpq files on apps that don't use SQL.