annotate CHANGELOG @ 1507:ca8c8b8cc477

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