annotate CHANGELOG @ 1697:cb0f05bdc183

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