annotate CHANGELOG @ 1739:c414850f206f

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