Home My Page Projects Code Snippets Project Openings SML/NJ
 Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

# SCM Repository

[smlnj] Annotation of /sml/trunk/NOTES/HISTORY
 [smlnj] / sml / trunk / NOTES / HISTORY

# Annotation of /sml/trunk/NOTES/HISTORY

 1 : blume 2237 This is the HISTORY file for the SML/NJ repository. 2 : dbm 570 3 : An entry should be made for _every_ commit to the repository. 4 : The entries in this file will be used when creating the README 5 : for new versions, so keep that in mind when writing the 6 : description. 7 : 8 : The form of an entry should be: 9 : 10 : mblume 1931 11 : Name: Your Name (web page or e-mail) 12 : blume 2155 Date: yyyy/mm/dd hh:mm:ss 13 : mblume 1931 Tag: cvs-tag-for-this-change 14 : mblume 1480 Description: 15 : 16 : mrainey 2777 ---------------------------------------------------------------------- 17 : larsberg 2933 Name: Lars Bergstrom (larsberg@cs.uchicago.edu) 18 : larsberg 2941 Date: 2008/02/14 19 : Description: 20 : 21 : Added the Windows DDE structure 22 : ---------------------------------------------------------------------- 23 : Name: Lars Bergstrom (larsberg@cs.uchicago.edu) 24 : larsberg 2936 Date: 2008/02/05 25 : Description: 26 : 27 : Added the Windows Config structure 28 : ---------------------------------------------------------------------- 29 : Name: Lars Bergstrom (larsberg@cs.uchicago.edu) 30 : larsberg 2933 Date: 2008/01/31 31 : Description: 32 : 33 : Added outline of the Windows basis library and the basic registry 34 : functionality. 35 : ---------------------------------------------------------------------- 36 : mrainey 2930 Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 37 : Date: 2008/01/23 38 : Description: 39 : 40 : Fixed the amd64 code generator to compile with the current MLRISC. 41 : ---------------------------------------------------------------------- 42 : larsberg 2874 Name: Lars Bergstrom (larsberg@cs.uchicago.edu) 43 : larsberg 2917 Date: 2007/11/26 44 : Description: 45 : 46 : nlffi was updated to work on Windows. It needed to pass in the correct 47 : value for the name of the kernel32 DLL to obtain 'base' bindings. 48 : Additionally updated the README for the most basic nlffi sample with 49 : what you need to do on MacOSX and on Windows to make it work. 50 : ---------------------------------------------------------------------- 51 : Name: Lars Bergstrom (larsberg@cs.uchicago.edu) 52 : larsberg 2908 Date: 2007/11/21 53 : Description: 54 : 55 : Overwrite the SMLNJ_HOME environment variable on installation 56 : Properly change the package code so that subsequent version 57 : installations prompt for uninstall (instead of 'repair/remove') 58 : ---------------------------------------------------------------------- 59 : Name: Lars Bergstrom (larsberg@cs.uchicago.edu) 60 : larsberg 2909 Date: 2007/11/14 61 : larsberg 2874 Description: 62 : 63 : Cleaned up WININSTALL file for new MSI-based setup. 64 : ---------------------------------------------------------------------- 65 : blume 2871 Name: Matthias Blume (http://www.tti-c.org/blume/) 66 : Date: 2007/11/13 14:05:00 CST 67 : Description: 68 : 69 : Version bumped to 110.67. New bootfiles. 70 : 71 : ---------------------------------------------------------------------- 72 : jhr 2842 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 73 : jhr 2853 Date: 2007/11/12 74 : Description: 75 : 76 : Ensure that the size of the allocation space is at least 128K. 77 : ---------------------------------------------------------------------- 78 : Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 79 : jhr 2842 Date: 2007/11/05 80 : Description: 81 : 82 : Fixed type error in ml-lpt library that occurs when compiling 83 : against a basis that was compiled with the USE_64_BIT_POSITIONS 84 : symbol set. 85 : (Thanks to Johannes Joemann) 86 : ---------------------------------------------------------------------- 87 : mrainey 2840 Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 88 : Date: 2007/11/03 89 : Description: 90 : 91 : Fixed the amd64 code generator to compile with the current MLRISC. 92 : ---------------------------------------------------------------------- 93 : larsberg 2835 Name: Lars Bergstrom (web page or e-mail) 94 : Date: 2007/11/02 95 : Description: 96 : 97 : Made sml.bat more resilient to either not having run the installer 98 : and having no SMLNJ_HOME set or having just shuffled the directory 99 : around. 100 : ---------------------------------------------------------------------- 101 : jhr 2821 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 102 : jhr 2831 Date: 2007/11/01 103 : Description: 104 : 105 : A collection of bug fixes for machine.sml in the Reactive library. 106 : (Thanks to Timothy Bourke) 107 : ---------------------------------------------------------------------- 108 : Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 109 : jhr 2821 Date: 2007/10/28 110 : Description: 111 : 112 : Patches for Mac OS X 10.5 (Leopard). 113 : ---------------------------------------------------------------------- 114 : mrainey 2809 Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 115 : mrainey 2813 Date: 2007/10/28 116 : Description: 117 : 118 : mrainey 2815 Fixed some bugs in the AMD64 floating-point spilling code. 119 : mrainey 2813 ---------------------------------------------------------------------- 120 : Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 121 : mrainey 2812 Date: 2007/10/25 122 : Description: 123 : 124 : Added support for the atomic XCHG instruction. 125 : ---------------------------------------------------------------------- 126 : Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 127 : mrainey 2809 Date: 2007/10/22 128 : Description: 129 : 130 : Added AMD64 support for floating-point negation. 131 : ---------------------------------------------------------------------- 132 : larsberg 2807 Name: Lars Bergstrom (web page or e-mail) 133 : Date: 2007/10/22 134 : Description: 135 : 136 : Fixed ^C handling in Windows 137 : Added a Windows installer 138 : Made it possible to build for Windows on a mapped drive from Parallels 139 : ---------------------------------------------------------------------- 140 : mrainey 2777 Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 141 : mrainey 2806 Date: 2007/10/22 142 : Description: 143 : 144 : Added AMD64 support for the atomic fetch and add instruction. 145 : ---------------------------------------------------------------------- 146 : Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 147 : mrainey 2794 Date: 2007/10/18 148 : Description: 149 : 150 : mrainey 2804 The GAS output now favors p2align over align, since the 151 : former is guaranteed to be consistent over multiple architectures 152 : and the latter is not. 153 : ---------------------------------------------------------------------- 154 : Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 155 : Date: 2007/10/18 156 : Description: 157 : 158 : mrainey 2794 Fixed a bug in register spilling. 159 : ---------------------------------------------------------------------- 160 : Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 161 : mrainey 2790 Date: 2007/10/2 162 : Description: 163 : 164 : Added demo support for AMD64 for quick testing and fixed support for 165 : 64-bit label constants. 166 : ---------------------------------------------------------------------- 167 : Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 168 : mrainey 2782 Date: 2007/09/20 169 : Description: 170 : 171 : Added support for the MLRISC COND instruction and the x86-64 CMOVCC 172 : instruction. 173 : ---------------------------------------------------------------------- 174 : Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 175 : mrainey 2777 Date: 2007/09/17 176 : Description: 177 : 178 : Fixed an instruction-selection bug when loading 64-bit labels. 179 : 180 : ---------------------------------------------------------------------- 181 : gkuan 2774 Name: George Kuan (http://www.cs.uchicago.edu/~gkuan) 182 : Date: 2007/09/14 183 : Description: 184 : 185 : Fixed Elaborator and Translate performance bugs 186 : 187 : ---------------------------------------------------------------------- 188 : mrainey 2770 Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 189 : Date: 2007/09/12 190 : Description: 191 : 192 : Fixed xorl memory argument bug. 193 : 194 : mblume 1480 ---------------------------------------------------------------------- 195 : gkuan 2732 Name: George Kuan (http://www.cs.uchicago.edu/~gkuan) 196 : Date: 2007/07/27 197 : Description: 198 : 199 : Added f64sgn (for Real64.signBit) as a primop defined 200 : in MLRiscGen. signBit(~0.0) not handled correctly. 201 : 202 : ---------------------------------------------------------------------- 203 : jhr 2727 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 204 : Date: 2007/06/21 205 : Description: 206 : 207 : Fixed bug in {TextIO,BinIO}.StreamIO.endOfStream that would incorrectly 208 : signal end of stream. 209 : 210 : ---------------------------------------------------------------------- 211 : blume 2676 Name: Matthias Blume (http://www.tti-c.org/blume/) 212 : blume 2720 Date: 2007/06/12 11:22:00 CDT 213 : Description: 214 : 215 : Eliminated config/allsources. The information is now drawn directly 216 : from config/actions. 217 : 218 : ---------------------------------------------------------------------- 219 : Name: Matthias Blume (http://www.tti-c.org/blume/) 220 : blume 2700 Date: 2007/06/07 23:30:00 CDT 221 : Tag: release-110.65 222 : Description: 223 : 224 : Version 110.65. NEW BOOTFILES! 225 : 226 : ---------------------------------------------------------------------- 227 : Name: Matthias Blume (http://www.tti-c.org/blume/) 228 : blume 2692 Date: 2007/06/06 21:45:00 CDT 229 : Description: 230 : 231 : - Aaron: fixed a number of bugs in ml-ulex. 232 : - Matthias: 233 : - added CM control "cm.force-tools"; this is false by default; 234 : when set to true, then tools like ml-yacc, ml-lex, ml-ulex, etc. 235 : will be forced to run regardless of whether or not their targets 236 : are up-to-date 237 : - changed installer code so that config/install.sh will re-build 238 : heap images for all tools even if those heap images already existed 239 : 240 : ---------------------------------------------------------------------- 241 : Name: Matthias Blume (http://www.tti-c.org/blume/) 242 : blume 2688 Date: 2007/06/04 21:21:00 CDT 243 : Description: 244 : 245 : After Aaron Turon's bug fix for ml-ulex (handling the ^ character 246 : in legacy mode), re-ran the lexer generator on all lex input files 247 : and committed the results. 248 : 249 : This should fix the problem with ckit and nlffi that was reported 250 : by Vesa A. Norrman. 251 : 252 : ---------------------------------------------------------------------- 253 : Name: Matthias Blume (http://www.tti-c.org/blume/) 254 : blume 2676 Date: 2007/05/31 11:40:00 CDT 255 : Tag: release-110.64 256 : Description: 257 : 258 : Version 110.64. NEW BOOTFILES! 259 : 260 : ---------------------------------------------------------------------- 261 : dbm 2650 Name: Dave MacQueen (dbm@cs.uchicago.edu) 262 : Date: 2007/05/31 14:55:00 CDT 263 : Revision: 2650 264 : Description: 265 : 266 : 3rd merge of base from primop-branch-3 into the trunk. 267 : Additional bug fixes included: 268 : 269 : * Timer.cpu_timer, etc. type printing corrected (by making 270 : Timer have opaque sig constraint in basis/Implementation/timer.sml) 271 : * Infinite loop in FLINT (tests/typing/tests/25.sml) (fix by 272 : Stefan Monnier) 273 : 274 : ---------------------------------------------------------------------- 275 : blume 2645 Name: Matthias Blume (http://www.tti-c.org/blume/) 276 : Date: 2007/05/31 11:40:00 CDT 277 : Description: 278 : 279 : Fixed some bugs in new Div code in FLINT/trans/translate.sml. 280 : 281 : Also, changed the handling of "no core access": When translate.sml 282 : needs access to a core exception at a time when the core has not 283 : been set up yet (this only happens when compiling system/smlnj/init/*), 284 : then don't bother generating the corresponding tests. 285 : 286 : dbm 2650 The old scheme was to generate a bogus value to be used in place of 287 : the exception. Unfortunately, that confuses the plambda type checker. 288 : Moreover, it does not do any good, because at runtime we don't expect 289 : such an exception to be ever raised. (The code in system/smlnj/init/* 290 : has to be written very carefully with this in mind!) 291 : blume 2645 292 : ---------------------------------------------------------------------- 293 : mrainey 2639 Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 294 : Date: 2007/05/29 295 : Description: 296 : 297 : Added FSQRT instructions for the AMD64 code generator. 298 : 299 : ---------------------------------------------------------------------- 300 : blume 2626 Name: Matthias Blume (http://www.tti-c.org/blume/) 301 : Date: 2007/05/29 19:00:00 CDT 302 : Description: 303 : 304 : FLINT/trans/translate.sml now wraps all DIV/MOD/QUOT/REM operations 305 : with an explicit test for zero division. This should fixes several 306 : regressions and makes it possible for downstream optimization phases 307 : to treat these operations as "pure" when they are applied to unsigned 308 : operands. 309 : 310 : ---------------------------------------------------------------------- 311 : mrainey 2622 Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 312 : Date: 2007/05/29 313 : Description: 314 : 315 : Added the new MLRISC code generator for the AMD64. This version, 316 : in contrast to the previous one, uses SSE registers and instructions 317 : for all floating-point computations. 318 : 319 : ---------------------------------------------------------------------- 320 : jhr 2613 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 321 : jhr 2617 Date: 2007/05/29 322 : jhr 2613 Description: 323 : 324 : jhr 2617 A number of fixes related to the formatting of dates. These include fixes 325 : for bugs #1415 and #1416. We also now correctly handle format characters that 326 : lie outside the specified set. 327 : jhr 2613 328 : ---------------------------------------------------------------------- 329 : blume 2610 Name: Matthias Blume (http://www.tti-c.org/blume/) 330 : Date: 2007/05/23 22:30:00 CDT 331 : Description: 332 : 333 : CMB (and CM) now automatically defines the CM "preprocessor" symbol 334 : NO_PLUGINS during "makeml -rebuild" or when CM operates in "slave" mode. 335 : 336 : (In addition, CMB_REBUILD_MODE is defined for makeml -rebuild, 337 : CM_SLAVE_MODE is defined in attached slaves while running CM.make 338 : or CM.rebuild, and CMB_SLAVE_MODE is defined in attached slaves 339 : while running CMB.make. The point is that the single symbol 340 : NO_PLUGINS is definde in all three cases.) 341 : 342 : I changed the three locations within the sources that get compiled 343 : during CMB.make where ml-yacc or ml-lex input is processed: When 344 : NO_PLUGINS defined, then the use of the mlyacc and mllex tools 345 : is bypassed. 346 : 347 : When bootstrapping new versions of the compiler, there can be 348 : situations where the plugin tools for ml-yacc and ml-lex (or ml-ulex) 349 : are not available or otherwise not operational. In this case one can 350 : manually define the NO_PLUGINS symbol prior to running CMB.make(). To 351 : do so, the following command should be issued at the interactive 352 : prompt: 353 : 354 : #set (CMB.symval "NO_PLUGINS") (SOME 1); 355 : 356 : A CMB.make with NO_PLUGINS defined relies on the existence of the 357 : files that normally would be generated by ml-yacc and ml-lex. 358 : (Copies of these files are in the repository.) 359 : 360 : ---------------------------------------------------------------------- 361 : dbm 2603 Name: David MacQueen (dbm@cs.uchicago.edu) 362 : Date: 2007/5/23 17:23:00 CDT 363 : Revision: 2603 364 : Description: 365 : 366 : 2nd merge of base from primop-branch-3 into the trunk. 367 : Additional bug fixes included: 368 : Date.scan and Date.fromString fixed; 369 : Overloading resolution fixed and some type printing problems corrected. 370 : 371 : ---------------------------------------------------------------------- 372 : blume 2578 Name: Matthias Blume (http://www.tti-c.org/blume/) 373 : blume 2589 Date: 2007/05/23 09:50:00 CDT 374 : Description: 375 : 376 : Changed the installation mechanism for CM tool plugins. These are 377 : just libaries and now get installed like ordinary libaries. 378 : 379 : There are now a number of new installation targets that give some 380 : fine-grain control over what classes and suffixes are known, and what 381 : they will map to. 382 : See config/targets for details. 383 : 384 : The code that caused plugin installation as part of running a 385 : tool's "build" script has been removed. (The build script is for 386 : building, not for installing.) 387 : 388 : ---------------------------------------------------------------------- 389 : Name: Matthias Blume (http://www.tti-c.org/blume/) 390 : blume 2578 Date: 2007/05/22 11:50:00 CDT 391 : Description: 392 : 393 : Added a boolean control named cm.tolerate-tool-failures (env. variable 394 : name: CM_TOLERATE_TOOL_FAILURES). The default is false and makes 395 : CM fail if a shell tool reports a non-success exit status. If 396 : the control is set to true, then CM will press on after tool failures 397 : in the event that the target files exist (even though they are 398 : considered outdated). Turning the control to true can be useful for 399 : bootstrapping. 400 : 401 : ---------------------------------------------------------------------- 402 : adrassi 2570 Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi) 403 : Date: 2007/05/19 404 : Description: 405 : 406 : Merge of ml-lpt revisions for 110.64. 407 : 408 : The name of several ml-lpt-lib modules has changed: 409 : Repair => AntlrRepair 410 : StreamPos => AntlrStreamPos 411 : ErrHandlerFn => AntlrErrHandler 412 : EBNF => AntlrEBNF 413 : 414 : The ml-antlr specification format has changed: declarations such as 415 : %tokens and nonterminal definitions can occur *multiple* times in the 416 : same specification. The semantics are such that each new declaration 417 : extends the previous ones. This does not apply to %start or %name, 418 : of course. 419 : 420 : Importing a grammar via %import now includes *all* declarations in from 421 : the imported grammar, except for %name, %entry, and %start. Tokens 422 : and nonterminals can be dropped using the new %dropping clause of the 423 : %import directive; the separate %drop and %extend have been removed. 424 : 425 : We now allow optional type annotations on nonterminals, using the %nonterms 426 : directive as in ml-yacc. 427 : 428 : The refcell construct is now implemented using SML's regular reference 429 : cells, so the :== and !! notation has been deprecated. 430 : 431 : The ml-antlr tool now does much more checking of specifications, and 432 : its error messages have been greatly improved. Error repair for 433 : generated parsers has been completely rewritten, and is now both 434 : much faster and more accurate. 435 : 436 : ml-ulex is now more lenient with escape codes (non-SML-standard 437 : escape codes are now interpreted literally, so e.g. \| denotes "|"). 438 : Also, character classes may now include a "-" character at the beginning 439 : as is standard in most other regexp tools. 440 : 441 : All of these changes are documented in the user guide, which has 442 : been updated and improved with this merge. 443 : 444 : ---------------------------------------------------------------------- 445 : dbm 2492 Name: David MacQueen (http://www.cs.uchicago.edu/~jhr) 446 : Date: 2007/05/03 447 : Revision: r2492 448 : Description: 449 : 450 : Merge of the primop3 branch (base) into the trunk to create 110.63.1. 451 : Significant changes in FLINT and the front end, mostly having to do 452 : with a reorganized system for handling primops. Various bug fixes 453 : and improvements in printing signatures. 454 : 455 : ---------------------------------------------------------------------- 456 : adrassi 2551 Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi) 457 : Date: 2007/05/02 458 : Description: 459 : 460 : Preliminary commit of large ml-lpt revisions (more to come for 110.64). 461 : The ml-antlr specification format has changed: declarations such as 462 : %tokens and nonterminal definitions can occur *multiple* times in the 463 : same specification. The semantics are such that each new declaration 464 : extends the previous ones. Grammar extension constructs have also 465 : changed. We now allow type annotations on nonterminals. Finally, 466 : the refcell construct is now implemented using SML's regular reference 467 : cells, so the :== and !! notation has been deprecated. All of these 468 : changes will appear in the 110.64 user guide for ml-lpt. 469 : 470 : The ml-antlr tool now does much more checking of specifications, and 471 : its error messages have been greatly improved. There has also been 472 : some work on the error repair process for generated parsers, but this 473 : will be further improved in 110.64. 474 : 475 : ---------------------------------------------------------------------- 476 : dbm 2603 Name: David MacQueen (http://www.cs.uchicago.edu/~jhr) 477 : Date: 2007/05/03 478 : Revision: r2492 479 : Description: 480 : 481 : Merge of the primop3 branch (base) into the trunk to create 110.63.1. 482 : Significant changes in FLINT and the front end, mostly having to do 483 : with a reorganized system for handling primops. Various bug fixes 484 : and improvements in printing signatures. 485 : 486 : ---------------------------------------------------------------------- 487 : Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi) 488 : Date: 2007/05/02 489 : Description: 490 : 491 : Preliminary commit of large ml-lpt revisions (more to come for 110.64). 492 : The ml-antlr specification format has changed: declarations such as 493 : %tokens and nonterminal definitions can occur *multiple* times in the 494 : same specification. The semantics are such that each new declaration 495 : extends the previous ones. Grammar extension constructs have also 496 : changed. We now allow type annotations on nonterminals. Finally, 497 : the refcell construct is now implemented using SML's regular reference 498 : cells, so the :== and !! notation has been deprecated. All of these 499 : changes will appear in the 110.64 user guide for ml-lpt. 500 : 501 : The ml-antlr tool now does much more checking of specifications, and 502 : its error messages have been greatly improved. There has also been 503 : some work on the error repair process for generated parsers, but this 504 : will be further improved in 110.64. 505 : 506 : ---------------------------------------------------------------------- 507 : jhr 2444 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 508 : jhr 2450 Date: 2007/04/24 509 : Description: 510 : 511 : More Basis fixes: The Char.fromString (etc.) functions did not handle 512 : the "\uxxxx" escape sequence. There is still an outstanding bug with 513 : String.fromString the tail is a format escape. I added a comment to 514 : this effect in Basis/Implementation/string.sml. 515 : Thanks to Andreas Rossberg. 516 : 517 : ---------------------------------------------------------------------- 518 : Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 519 : Date: 2007/04/24 520 : Description: 521 : 522 : Added next function to Fifo and Queue modules in the SML/NJ Library. 523 : 524 : ---------------------------------------------------------------------- 525 : Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 526 : jhr 2444 Date: 2007/04/23 527 : Description: 528 : 529 : jhr 2445 More Basis fixes: Time.fmt dropped the leading "~" for negative time 530 : values that had no whole part. 531 : 532 : ---------------------------------------------------------------------- 533 : Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 534 : Date: 2007/04/23 535 : Description: 536 : 537 : jhr 2444 More Basis fixes: the OS.Path module did not include the InvalidArc 538 : exception and did not do sufficient argument checking. 539 : jhr 2450 Thanks to Stephen Weeks and Adam Chilpala. 540 : jhr 2444 541 : ---------------------------------------------------------------------- 542 : mrainey 2406 Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 543 : mrainey 2410 Date: 2007/04/16 544 : Description: 545 : 546 : Fixed an unbound functor bug in the AMD64 CM file. 547 : 548 : ---------------------------------------------------------------------- 549 : Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 550 : mrainey 2406 Date: 2007/04/12 551 : Description: 552 : 553 : Substantially changed the signature and implementation of AMD64 554 : SVID. It now looks similar to the ia32 SVID, yet uses staged 555 : allocation. 556 : 557 : ---------------------------------------------------------------------- 558 : jhr 2387 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 559 : Date: 2007/04/07 560 : Description: 561 : 562 : More Basis fixes: the WORD signature was missing {to,from}Large. 563 : Thanks to Andreas Rossberg. 564 : 565 : ---------------------------------------------------------------------- 566 : blume 2368 Name: Matthias Blume (http://www.tti-c.org/blume/) 567 : Date: 2007/03/22 16:07:00 CDT 568 : Tag: release-110.63 569 : Description: 570 : 571 : Bumped version number to 110.63. 572 : 573 : !!!NEW BOOTFILES!!! 574 : 575 : ---------------------------------------------------------------------- 576 : mrainey 2360 Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 577 : Date: 2007/03/19 578 : Description: 579 : 580 : Fixed bogus operand sizes in AMD64 instruction spilling. 581 : 582 : ---------------------------------------------------------------------- 583 : jhr 2358 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 584 : Date: 2007/03/19 585 : Description: 586 : 587 : Fixed a number of inconsistencies between the Posix.TTY structure 588 : and the Basis specification. Thanks to Adam Chilpala. 589 : 590 : ---------------------------------------------------------------------- 591 : mrainey 2345 Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey) 592 : Date: 2007/02/26 593 : Description: 594 : 595 : Added preliminary support in MLRISC for Staged Allocation, a technique 596 : for specifying calling conventions (see 597 : http://www.eecs.harvard.edu/~nr/pubs/staged-abstract.html). 598 : Initially, we plan to use this code to generate C calls for the AMD64. 599 : 600 : The staged allocation code base resides in MLRISC/staged-allocation, 601 : and specialized calling conventions go in MLRISC/ARCH/staged-allocation. 602 : 603 : ---------------------------------------------------------------------- 604 : jhr 2342 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 605 : Date: 2007/02/20 606 : Description: 607 : 608 : Bug fix: when SaveCState was called with two values to save, a subsequent 609 : GC could cause the RestoreCState to fail because the saved state had been 610 : promoted to tagless pair. 611 : 612 : ---------------------------------------------------------------------- 613 : leunga 2340 Name: Allen Leung (leunga (at) reservoir (dot) com) 614 : Date: 2007/02/20 19:08:00 EST 615 : Description: 616 : 617 : Bug triggered by: 618 : 619 : val a1 = Word8Array.array(a1, 0w0); 620 : val _ = Word8Array.update(a1, 0, 0w128); 621 : 622 : x86MCEmitter crashed when the immediate operand to MOVB was outside 623 : of the range -128 ... 127. I've changed the code so that the range 624 : check is disabled. Only the low order 8 bits of the immediate operand 625 : jhr 2342 are now significant. 626 : leunga 2340 627 : 628 : ---------------------------------------------------------------------- 629 : blume 2304 Name: Matthias Blume (http://www.tti-c.org/blume/) 630 : blume 2336 Date: 2007/02/15 09:20:00 CST 631 : Description: 632 : 633 : Eliminated any mention of lexgen. (Lexgen was an early precursor 634 : to ml-ulex.) 635 : 636 : You should update your admin directory, so the shell scripts for 637 : maintaining your local copy of the repository reflect this change. 638 : 639 : ---------------------------------------------------------------------- 640 : Name: Matthias Blume (http://www.tti-c.org/blume/) 641 : blume 2333 Date: 2007/02/14 15:45:00 CST 642 : Description: 643 : 644 : Fixed bug in CM's parallel make facility that failed to have 645 : the master re-link modules after letting slaves compile them. 646 : 647 : ---------------------------------------------------------------------- 648 : Name: Matthias Blume (http://www.tti-c.org/blume/) 649 : blume 2331 Date: 2007/02/12 15:10:00 CST 650 : Description: 651 : 652 : Fixed typo in ml-build script that prevented library anchors 653 : from being registered. 654 : 655 : ---------------------------------------------------------------------- 656 : Name: Matthias Blume (http://www.tti-c.org/blume/) 657 : blume 2304 Date: 2007/02/02 15:20:00 CST 658 : Tag: release-110.62 659 : Description: 660 : 661 : New working release (110.62). NEW BOOTFILES! 662 : 663 : ---------------------------------------------------------------------- 664 : adrassi 2296 Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi) 665 : Date: 2007/01/31 666 : Description: 667 : 668 : Brought ml-lpt manual up-to-date with the code. Many minor 669 : improvements to the tools, and a few minor bugfixes. Prepared 670 : ml-lpt-lib for integration with new UTF8 structure. Changed 671 : the interface for creating streams in ml-ulex (we now support 672 : stream creation from several kinds of sources). Overall, the 673 : tools are now quite stable, and their interfaces are unlikely to 674 : change in a way that would break compatibility. More work, 675 : however, is needed in the documentation. 676 : 677 : ---------------------------------------------------------------------- 678 : blume 2277 Name: Matthias Blume (http://www.tti-c.org/blume/) 679 : blume 2298 Date: 2007/02/01 10:05:00 CST 680 : Description: 681 : 682 : Implemented library installer. Moved CM plugin code for 683 : ml-burg, ml-lex, and ml-yacc out of CM source tree and into 684 : their respective trees. Implemented CM plugin for ml-ulex 685 : and ml-antlr. Used library installer for ml-burg, ml-ulex, 686 : and ml-antlr. 687 : 688 : For ml-yacc and ml-lex we continue to have permanently "plugged-in" 689 : CM tools. (It turns out to be too messy to do otherwise because 690 : there is too much code that during installation relies on the presence 691 : of these tools -- resulting in a tricky ordering problem.) 692 : 693 : ---------------------------------------------------------------------- 694 : Name: Matthias Blume (http://www.tti-c.org/blume/) 695 : blume 2277 Date: 2007/01/30 11:05:00 CST 696 : Description: 697 : 698 : Added SMLofNJ.shiftArgs which is like a shell's "shift" command. 699 : Modified CM's startup code to use shiftArgs as it processes 700 : command line arguments. This way, the init code in each .sml-file 701 : or library that is mentioned at the top level will see only 702 : those arguments that have not yet been processed at this point. 703 : In other words, the init code can "seize control" and process the 704 : remaining command line. 705 : 706 : ---------------------------------------------------------------------- 707 : jhr 2269 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 708 : jhr 2358 Date: 2007/01/30 709 : Description: 710 : 711 : Added fromList function to the ORD_SET interface and lookup to the 712 : ORD_MAP interface. See the SML/NJ Library CHANGES file for details. 713 : 714 : ---------------------------------------------------------------------- 715 : Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 716 : jhr 2269 Date: 2007/01/28 717 : Description: 718 : 719 : Added the UTF8 structure and signature from the Moby compiler to 720 : the SML/NJ library (and the CML library). These modules will replace 721 : the version in the ml-lpt-lib. 722 : 723 : ---------------------------------------------------------------------- 724 : blume 2237 Name: Matthias Blume (http://www.tti-c.org/blume/) 725 : blume 2267 Date: 2007/01/26 15:10:00 CST 726 : Description: 727 : 728 : Added entries to handle ml-lpt-lib.cm in installer. 729 : 730 : ---------------------------------------------------------------------- 731 : Name: Matthias Blume (http://www.tti-c.org/blume/) 732 : blume 2259 Date: 2006/12/15 11:10:00 CST 733 : blume 2237 Tag: release-110.61 734 : Description: 735 : 736 : New working release (110.61). NEW BOOTFILES! 737 : 738 : blume 2259 This supersedes the pre-brown-paper-bug release (see below). 739 : 740 : blume 2237 ---------------------------------------------------------------------- 741 : blume 2259 Name: Matthias Blume (http://www.tti-c.org/blume/) 742 : Date: 2006/12/15 11:00:00 CST 743 : Description: 744 : 745 : Fixed brown-paper-bag bug with CM's pathname handling, which made 746 : installation fail under Win32. 747 : 748 : ---------------------------------------------------------------------- 749 : Name: Matthias Blume (http://www.tti-c.org/blume/) 750 : Date: 2006/12/14 12:00:00 CST 751 : Description: 752 : 753 : Obsolete! 754 : 755 : [New working release (110.61). NEW BOOTFILES!] 756 : 757 : ---------------------------------------------------------------------- 758 : jhr 2234 Name: John Reppy (http://cs.uchicago.edu/~jhr) 759 : Date: 2006/14/06 09:50:00 CST 760 : Description: 761 : 762 : Fixed the code in runtime/c-libs/posix-tty/{tcgetattr,tcsetattr}.c to 763 : get the c_cc termios data copied correctly. Also moved the allocation 764 : of the string to avoid problems if it caused a GC. 765 : 766 : Thanks to Timothy Bourke for the bug report and fix. 767 : 768 : ---------------------------------------------------------------------- 769 : blume 2232 Name: Matthias Blume (http://www.tti-c.org/blume) 770 : Date: 2006/12/08 09:50:00 CST 771 : Description: 772 : 773 : Added code to CM's "standard shell tool" implementation which 774 : causes it to tolerate (with a warning) the situation where the shell 775 : command fails (e.g., due to the shell command's non-existence) 776 : as long as all target files exist. 777 : 778 : This makes it possible to, e.g., build ml-yacc from sources even if 779 : svn checkout messed up the time stamps on files in such a way that 780 : yacc.grm is younger than yacc.grm.sml or yacc.grm.sig. (Ml-yacc would 781 : be needed to re-process yacc.grm, but obviously it might not yet be 782 : available at that time.) 783 : 784 : ---------------------------------------------------------------------- 785 : jhr 2228 Name: John Reppy (http://cs.uchicago.edu/~jhr) 786 : Date: 2006/12/06 12:06:00 CST 787 : Description: 788 : 789 : Fixed the types of recvVecFrom, recvVecFrom', recvVecFromNB, and 790 : recvVecFromNB' in the SOCKET signature. This error is actually 791 : in the SML Basis specification too. 792 : 793 : ---------------------------------------------------------------------- 794 : mblume 1923 Name: Matthias Blume (http://www.tti-c.org/blume/) 795 : blume 2226 Date: 2006/12/05 22:40:00 CST 796 : Description: 797 : 798 : CM now reports undefined anchors as errors and aborts execution 799 : rather than silently pressing on using bogus values. 800 : 801 : ---------------------------------------------------------------------- 802 : Name: Matthias Blume (http://www.tti-c.org/blume/) 803 : blume 2224 Date: 2006/11/29 10:00:00 CST 804 : Description: 805 : 806 : Use Say.vsay for printing the "[autoloading]" message, so 807 : #set CM.Control.verbose false (or -Ccm.verbose=false) can be used 808 : to suppress them. 809 : 810 : ---------------------------------------------------------------------- 811 : Name: Matthias Blume (http://www.tti-c.org/blume/) 812 : blume 2219 Date: 2006/11/10 11:00:00 CST 813 : Description: 814 : 815 : Fixed bug in CM where "with:" specifications that affect compilation 816 : (as opposed to parsing) were ignored. 817 : 818 : ---------------------------------------------------------------------- 819 : Name: Matthias Blume (http://www.tti-c.org/blume/) 820 : blume 2193 Date: 2006/11/09 14:30:00 CST 821 : Tag: release-110.60 822 : Description: 823 : 824 : New working release (110.60). NEW BOOTFILES! 825 : 826 : This is the first subversion-hosted release. There are also changes 827 : to the directory layout. Here is a table: 828 : 829 : (All pathnames are relative to the SML/NJ "root" directory.) 830 : 831 : config -> config 832 : 833 : src/cm -> base/cm 834 : src/compiler -> base/compiler 835 : src/runtime -> base/runtime 836 : src/system -> base/system 837 : 838 : src/cm/pgraph -> pgraph 839 : 840 : src/READMES -> base/READMES 841 : src/$notefile -> base/NOTES/$notefile 842 : for in BOOT CVSNOTES CYGWININSTALL HISTORY INSTALL 843 : MACOSXINSTALL WININSTALL 844 : 845 : src/smlnj-lib -> smlnj-lib 846 : src/MLRISC -> MLRISC 847 : ckit -> ckit 848 : src/cml -> cml 849 : src/eXene -> eXene 850 : src/heap2asm -> heap2asm 851 : src/lexgen -> lexgen 852 : src/ml-burg -> ml-burg 853 : src/ml-lex -> ml-lex 854 : src/ml-yacc -> ml-yacc 855 : src/ml-nlffi-lib -> nlffi/lib 856 : src/ml-nlffigen -> nlffi/gen 857 : src/smlnj-c -> smlnj-c 858 : src/tools/TraceDebugProf -> trace-debug-profile 859 : 860 : In addition, there is also a new 861 : 862 : ml-lpt 863 : 864 : directory containing two new program generator tools: ml-ulex and 865 : ml-antlr (a lexer generator that handles unicode and an ANTRL-inspired 866 : LL(k) parser generator). These tools are currently "beta-quality" 867 : 868 : The latest versios of the sources can now be obtained anonymously 869 : via subversion. For this, it is useful to first check out 870 : 871 : svn://smlnj-gforge.cs.uchicago.edu/smlnj/admin 872 : 873 : and put the resulting directory on your shell's PATH. This provides 874 : access to three shell scripts: checkout-all.sh, stat-all.sh, 875 : and refresh-all.sh. 876 : 877 : To create a freshly checked-out copy of the sources, do 878 : 879 : checkout-all.sh [dir] 880 : 881 : where dir is the optional SML/NJ root directory (default is "."). 882 : 883 : This creates the above directory layout. Each subdirectory of 884 : the root is under individual subversion control. The stat-all.sh 885 : and refresh-al.sh scripts apply "svn stat" or "svn update" to 886 : each of these subtrees. 887 : 888 : ---------------------------------------------------------------------- 889 : Name: Matthias Blume (http://www.tti-c.org/blume/) 890 : blume 2155 Date: 2006/11/02 12:20:00 CST 891 : Description: 892 : 893 : Reorganized directory layout. 894 : 895 : This is a temporary solution, more reorganization is to come. 896 : 897 : The basic idea is to have a number of toplevel trees, each corresponding 898 : to a well-defined part of the overall system. Each part can be 899 : maintained individually, even in separate source repositories, 900 : although currently we still serve everything out of the main 901 : smlnj-gforge tree. 902 : 903 : Installer and and scripts have been updated to reflect the new 904 : layout. The installer (base/src/system/smlnj/installer) is now 905 : "scriptable" to avoid burning too much knowledge about the 906 : layout into SML source code. The main script used by the installer 907 : is in config/actions. 908 : 909 : The main change is that many of the subdirectories of what used to 910 : be known as "src" have moved to the toplevel. The "src" directory 911 : itself has moved down into a subtree called "base". (We may eventually 912 : get rid of the extra level of indirection represented by "src".) 913 : 914 : The layout is now as follows: 915 : 916 : toplevel tree name | default repository 917 : | (using gf=svn://smlnj-gforge.cs.uchicago.edu/smlnj) 918 : -------------------+---------------------------------------------------- 919 : config | $gf/config/trunk 920 : | 921 : base |$gf/sml/trunk 922 : | 923 : smlnj-lib | $gf/smlnj-lib/trunk 924 : MLRISC |$gf/MLRISC/trunk 925 : | 926 : ml-yacc | $gf/ml-yacc/trunk 927 : ml-lex |$gf/ml-lex/trunk 928 : ml-burg | $gf/ml-burg/trunk 929 : lexgen |$gf/lexgen/trunk 930 : heap2asm | $gf/heap2asm/trunk 931 : | 932 : cml |$gf/cml/trunk 933 : eXene | $gf/eXene/trunk 934 : ckit |$gf/ckit/trunk 935 : nlffi | $gf/nlffi/trunk 936 : | 937 : smlnj-c |$gf/smlnj-c/trunk 938 : 939 : In $gf/admin there are a few useful shell scripts for checking out 940 : and maintaining the entire collection of trees: 941 : 942 : admin/checkout-all.sh [dir] 943 : -- optionally creates dir and checks out all trees from their 944 : default repositories; if dir is missing, checkout into . 945 : admin/refresh-all.sh [dir] 946 : -- looks at all trees (from the above list) in dir (default: .) 947 : and runs "svn update" if the tree exists and is under 948 : subversion control; 949 : non-existing or non-subversion trees are skipped 950 : admin/stat-all.sh [dir] 951 : -- like refresh-all.sh, but runs "svn stat" instead 952 : 953 : ---------------------------------------------------------------------- 954 : Name: Matthias Blume (http://www.tti-c.org/blume/) 955 : Date: 2006/10/05 11:30:00 CDT 956 : mblume 2066 Tag: blume-20061005-merge-amd64 957 : Description: 958 : 959 : Merged code for AMD64 backend (Mike Rainey's work). 960 : Everything is hooked up but untested. 961 : 962 : ---------------------------------------------------------------------- 963 : Name: Matthias Blume (http://www.tti-c.org/blume/) 964 : mblume 1931 Date: 2006/05/17 14:00:00 CST 965 : Tag: Release_110_59 966 : Description: 967 : 968 : blume 2193 New working version (110.59). NEW BOOTFILES! 969 : mblume 1931 970 : I am freezing 110.59. Changes other than the version-number increase: 971 : 972 : eXene: 973 : 974 : * committed changes to eXene from Alley Stoughton: 975 : "fixed bugs in X authorization and resource handling, as well 976 : as in the pile and viewport widgets" 977 : 978 : Runtime: 979 : * fixed linking problem with NetBSD 3.x. 980 : 981 : Lexgen: 982 : * lexgen tool handles non-ascii characters in 7-bit mode the same 983 : way that ml-lex does 984 : 985 : * lexgen propagates exceptions the same way that ml-lex does 986 : 987 : CML: 988 : * Fixed a bug in the SyncVar polling functions (iGetPoll, 989 : mTakePoll, and mGetPoll) that could lead to livelock. 990 : 991 : ---------------------------------------------------------------------- 992 : Name: Matthias Blume (http://www.tti-c.org/blume/) 993 : mblume 1926 Date: 2006/05/12 15:20:00 CST 994 : Tag: blume-20060515-makedepend 995 : Description: 996 : 997 : Implemented ml-makedepend (i.e., CM.sources) in a better (more robust) 998 : way. This should hopefully fix the ml-makedepend problem permanently. 999 : 1000 : ---------------------------------------------------------------------- 1001 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1002 : mblume 1925 Date: 2006/05/12 15:15:00 CST 1003 : Tag: blume-20060512-makedepend 1004 : Description: 1005 : 1006 : Fixed long-standing bug with ml-makedepend where it would output a 1007 : spurious dependency to a non-existing file. (This is a simple fix. 1008 : It might need further looking into.) 1009 : 1010 : ---------------------------------------------------------------------- 1011 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1012 : mblume 1923 Date: 2006/04/20 10:30:00 CDT 1013 : Tag: blume-20060420-heap2exec 1014 : Description: 1015 : 1016 : Committed patches received from Johannes 5 Joemann (joemann@befree.free.de) 1017 : that enable heap2exec under Linux and FreeBSD. 1018 : 1019 : ---------------------------------------------------------------------- 1020 : jhr 1921 Name: John Reppy 1021 : Date: 2006/04/14 1022 : blume 2155 Tag: 1023 : jhr 1921 Description: 1024 : 1025 : MLRISC changes: 1026 : 1) renamed GAS_PSEUDO_OPS to AS_PSEUDO_OPS and put it in its own file. 1027 : 2) added support for NOTB and XORB operators in pseudo-op expressions 1028 : 3) added DarwinPseudoOp functor that supports Darwin's assembler syntax. 1029 : 4) added support for 64-bit integer literals 1030 : 1031 : ---------------------------------------------------------------------- 1032 : jhr 1922 Name: Matthias Blume (http://www.tti-c.org/blume/) 1033 : mblume 1907 Date: yyyy/mm/dd 1034 : Tag: Release_110_58 1035 : Description: 1036 : 1037 : New working version (110.58). NEW BOOTFILES! 1038 : 1039 : ---------------------------------------------------------------------- 1040 : mblume 1896 Name: Matthias Blume (http://www.tti-c.org/blume/) 1041 : mblume 1905 Date: 2006/03/01 22:15:00 CST 1042 : Tag: blume-20060301-lexgen 1043 : Description: 1044 : 1045 : Incorporated several bugfixes to lexgen. Compiler now compiles to 1046 : fixpoint when using lexgen instead of ml-lex. 1047 : 1048 : ---------------------------------------------------------------------- 1049 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1050 : mblume 1902 Date: 2006/02/28 22:45:00 CST 1051 : Tag: blume-20060228-lexgen 1052 : Description: 1053 : 1054 : Removed ml-flex and added lexgen instead, using Aaron Turon's newly 1055 : provided tarball. The generated lexers still have problems. 1056 : 1057 : ---------------------------------------------------------------------- 1058 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1059 : mblume 1898 Date: 2006/02/26 23:30:00 CST 1060 : Tag: blume-20060226-ml-flex 1061 : Description: 1062 : 1063 : Removed ml-flex' dependency on regexp-lib.cm. Turned installation 1064 : of ml-flex on by default. 1065 : 1066 : ---------------------------------------------------------------------- 1067 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1068 : mblume 1896 Date: 2006/02/24 16:30:00 CST 1069 : Tag: blume-20060224-ml-flex 1070 : Description: 1071 : 1072 : Added ml-flex sources. Partially integrated, but should not be 1073 : turned on yet! (Read: leave it commented-out in config/targets!) 1074 : 1075 : ---------------------------------------------------------------------- 1076 : jhr 1893 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 1077 : Date: 2006/02/23 1078 : Tag: jhr-20060223-x86-64 1079 : Description: 1080 : Changes to support building on x86-64 systems (using the 32-bit mode). 1081 : Also cleaned up signal handling on Linux. Support for pre-2.2 Linux 1082 : kernels dropped. 1083 : 1084 : ---------------------------------------------------------------------- 1085 : allenleung 1890 Name: Allen Leung (leunga (at) reservoir (dot) com) 1086 : Date: 2006/02/22 15:07:00 EST 1087 : Tag: leunga-20060222-mdl-gen 1088 : Description: 1089 : 1090 : CM has changed. Updated the script for rebuilding the MLRISC generated 1091 : files. 1092 : 1093 : ---------------------------------------------------------------------- 1094 : mblume 1886 Name: Matthias Blume (http://www.tti-c.org/blume/) 1095 : Date: 2006/02/14 17:30:00 CST 1096 : Tag: blume-20060214-intel-mac 1097 : Description: 1098 : 1099 : Hooked code for Darwin-specific Intel ABI into main compiler. 1100 : (This is a temporary solution which relies on the fact that the 1101 : compiler itself does not use NLFFI. Eventually we need to divorce 1102 : intel mac from generic x86 unix code and make separate sets of binaries.) 1103 : 1104 : ---------------------------------------------------------------------- 1105 : jhr 1882 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 1106 : jhr 1885 Date: 2006/02/13 1107 : Tag: jhr-20060213-intel-mac 1108 : Description: 1109 : Changed MLRISC x86 CCalls for partial support of MacOS X ABI. 1110 : 1111 : ---------------------------------------------------------------------- 1112 : Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 1113 : jhr 1882 Date: 2006/02/06 1114 : Tag: jhr-20060206-intel-mac 1115 : Description: 1116 : Changes to support MacOS X on Intel hardware. The C-calls support in 1117 : MLRISC must also be updated to support the MacOS X ABI. 1118 : 1119 : ---------------------------------------------------------------------- 1120 : mblume 1863 Name: Matthias Blume (http://www.tti-c.org/blume/) 1121 : mblume 1879 Date: 2005/12/16 00:15:00 CST 1122 : Tag: blume-20051216-cm 1123 : Description: 1124 : 1125 : Improved error reporting and handling in CM. 1126 : 1127 : ---------------------------------------------------------------------- 1128 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1129 : mblume 1878 Date: 2005/11/21 14:00:00 CST 1130 : Tag: blume-20051121-html-lib 1131 : Description: 1132 : 1133 : Enabling$/html-lib.cm in config/preloads did not work. This is fixed 1134 : now. (Since the anchor mapping for html-lib.cm is not yet in effect 1135 : blume 2155 at the time when config/preloads is processed, the library has to 1136 : mblume 1878 be referred to by another name. In 110.57 this would be 1137 : $SMLNJ-LIB/HTML/html-lib.cm. I arranged for$smlnj/smlnj-lib/html-lib.cm 1138 : to be valid as well.) 1139 : 1140 : Thanks to Todd Wilson (Fresno) for alerting me to this issue. 1141 : 1142 : ---------------------------------------------------------------------- 1143 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1144 : mblume 1874 Date: 2005/11/19 13:45:00 CST 1145 : Tag: Release_110_57 1146 : Description: 1147 : 1148 : Moved release tag for 110.57. 1149 : 1150 : ---------------------------------------------------------------------- 1151 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1152 : mblume 1873 Date: 2005/11/19 23:35:00 CST 1153 : Tag: blume-20051119-fish 1154 : Description: 1155 : 1156 : Fixed a problem in config/install.sh where it tries to "fish" the 1157 : name of the CM metadata directory from the wrong place (because 1158 : the physical location of basis.cm has changed). Also, corrected the 1159 : path anchor for $/html-lib.cm. (Thanks to M. Fluet for pointing out 1160 : these problems.) 1161 : 1162 : ---------------------------------------------------------------------- 1163 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1164 : mblume 1867 Date: 2005/11/16 14:30:00 CST 1165 : mblume 1874 Tag: blume-orig-110_57 1166 : mblume 1867 Description: 1167 : 1168 : New working version (110.57). NEW BOOTFILES! 1169 : 1170 : mblume 1874 UPDATE: The release tag has been moved to include a fix for a brown-paper- 1171 : bag glitch (see above). 1172 : 1173 : mblume 1867 ---------------------------------------------------------------------- 1174 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1175 : mblume 1866 Date: 2005/11/16 10:25:00 CST 1176 : Tag: blume-22051116-btrace 1177 : Description: 1178 : 1179 : Fixed problem with bogus exception message when using back-trace 1180 : facility. 1181 : 1182 : ---------------------------------------------------------------------- 1183 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1184 : mblume 1865 Date: 2005/11/15 22:35:00 CST 1185 : Tag: blume-22051115-array2copy 1186 : Description: 1187 : 1188 : Added simple implementation of Array2.copy. (Warning: mostly untested.) 1189 : 1190 : ---------------------------------------------------------------------- 1191 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1192 : mblume 1864 Date: 2005/11/15 21:35:00 CST 1193 : Tag: blume-22051115-versiontool 1194 : Description: 1195 : 1196 : Reversed change to src/system/smlnj/internals/versiontool.cm. This 1197 : file gets loaded as a tool -- by the equivalent of CM.make during the 1198 : run of CMB.make. Thus, CMB's path configuration is meaningless for 1199 : it. Instead, it has the status of "user code", so it should use 1200 :$/basis.cm to refer to the Basis library. (At least that's true for 1201 : the purpose of bootstrapping the previous change. In the future it 1202 : might make sense to have versiontool.cm refer to 1203 : $smlnj/basis/basis.cm, i.e., the version of the Basis that the 1204 : compiler itself uses.) 1205 : 1206 : Also patched src/system/testml to have it activate those extra anchor 1207 : bindings in config/extrapathconfig. 1208 : 1209 : ---------------------------------------------------------------------- 1210 : Name: Matthias Blume (http://www.tti-c.org/blume/) 1211 : mblume 1863 Date: 2005/11/15 16:35:00 CST 1212 : Tag: blume-22051115-libraries 1213 : Description: 1214 : 1215 : This change affects the way the following libraries are tied into 1216 : the system: 1217 : 1218 :$/basis.cm 1219 : $/smlnj-lib.cm 1220 :$/pp-lib.cm 1221 : $/controls-lib.cm 1222 :$/html-lib.cm 1223 : $/ml-yacc-lib.cm 1224 : 1225 : These libraries are now internally (as seen from the source code 1226 : of the implementation itself) known by the following names: 1227 : 1228 :$smlnj/basis/basis.cm 1229 : $smlnj/smlnj-lib/smlnj-lib.cm 1230 :$smlnj/smlnj-lib/pp-lib.cm 1231 : $smlnj/smlnj-lib/controls-lib.cm 1232 :$smlnj/smlnj-lib/html-lib.cm 1233 : $smlnj/ml-yacc/ml-yacc-lib.cm 1234 : 1235 : This makes it possible to work with code that requires different 1236 : versions of these libraries, and which refers to these libraries using 1237 : their "default" names (i.e., the first set of names above). In other 1238 : words, one can un-define or re-define those default names without 1239 : compromising the proper functioning of the compiler itself. 1240 : 1241 : A similar procedure had already been performed for several of the 1242 : MLRISC libraries that are linked into the compiler. I did some 1243 : cleanup on this code. 1244 : 1245 : A new file in the config directory (named extrapathconfig) is 1246 : responsible for setting up path anchors that the compiler itself does 1247 : not need, but that are typically required by user code. 1248 : 1249 : ---------------------------------------------------------------------- 1250 : mblume 1862 Name: Matthias Blume 1251 : Date: 2005/11/07 17:05:00 CST 1252 : Tag: blume-20051107-slice 1253 : Description: 1254 : 1255 : Fixed erroneous out-of-bounds test in the "update" function of 1256 : various *ArraySlice modules. (Thanks to Vesa A. Norrman for pointing 1257 : out the problem.) 1258 : 1259 : Pushed some Basis changes through ML-Lex, CML, and eXene. 1260 : 1261 : ---------------------------------------------------------------------- 1262 : jhr 1858 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 1263 : jhr 1861 Date: 2005/11/07 1264 : Description: 1265 : Fixed a Basis incompatibility: The depreciated function Substring.all 1266 : was removed (use Substring.full instead). 1267 : 1268 : ---------------------------------------------------------------------- 1269 : Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 1270 : jhr 1858 Date: 2005/11/05 1271 : Description: 1272 : Tweaked interval set API in SML/NJ library; see the CHANGES file for details. 1273 : 1274 : ---------------------------------------------------------------------- 1275 : mblume 1856 Name: Matthias Blume (http://www.tti-c.org/blume/) 1276 : Date: 2005/11/02 16:25:00 CST 1277 : Tag: blume-20051102-hex 1278 : Description: 1279 : 1280 : * Runtime system bootstrap code now accepts hex digits in BOOTLIST 1281 : in either upper case or lower case format. 1282 : * Pushed changes to names of Pack{Big,Little} structures through 1283 : CML and eXene. 1284 : 1285 : ---------------------------------------------------------------------- 1286 : jhr 1852 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 1287 : jhr 1855 Date: 2005/11/02 1288 : Description: 1289 : Fixed a Basis incompatibility: Pack{Big,Little} structures should 1290 : be called PackWord{Big,Little}. 1291 : 1292 : ---------------------------------------------------------------------- 1293 : Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 1294 : jhr 1852 Date: 2005/10/28 1295 : Description: 1296 : Fixed a minor Basis incompatibility: hex digits should be upper case. 1297 : 1298 : ---------------------------------------------------------------------- 1299 : mblume 1846 Name: Matthias Blume (blume (at) tti - c (dot) org) 1300 : Date: 2005/10/25 16:00:00 CDT 1301 : Tag: Release_110_56 1302 : Description: 1303 : 1304 : New working version (110.56). NEW BOOTFILES! 1305 : 1306 : ---------------------------------------------------------------------- 1307 : jhr 1838 Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 1308 : jhr 1840 Date: 2005/10/25 1309 : Description: 1310 : Added interval sets to utility library (signatures INTERVAL_DOMAIN 1311 : and INTERVAL_SET, and functor IntervalSetFn). 1312 : 1313 : ---------------------------------------------------------------------- 1314 : Name: John Reppy (http://www.cs.uchicago.edu/~jhr) 1315 : jhr 1838 Date: 2005/10/14 1316 : Description: 1317 : Add Zhong Shao's fix for datatype equality functions. 1318 : 1319 : ---------------------------------------------------------------------- 1320 : allenleung 1836 Name: Allen Leung (leunga (at) reservoir (dot) com) 1321 : allenleung 1837 Date: 2005/10/14 12:30:00 EST 1322 : Tag: leunga-20051014-x86-spill 1323 : Description: 1324 : 1325 : Bug fix a bug found by Carl Hauser. 1326 : There was a typo in the reload code for FCMP in x86SpillInstr.sml. 1327 : 1328 : ---------------------------------------------------------------------- 1329 : Name: Allen Leung (leunga (at) reservoir (dot) com) 1330 : allenleung 1836 Date: 2005/10/14 11:15:00 EST 1331 : Tag: leunga-20051014-x86-asm 1332 : Description: 1333 : 1334 : Removed some debugging code in file x86Asm.sml. 1335 : The function emit_operand was printing out debugging output. 1336 : 1337 : ---------------------------------------------------------------------- 1338 : jhr 1813 Name: John Reppy 1339 : jhr 1831 Date: 2005/07/27 1340 : Tag: 1341 : Description: 1342 : 1343 : jhr 1832 Fixed ml-lex to recognize "\r" as representing carriage return. 1344 : 1345 : ---------------------------------------------------------------------- 1346 : Name: John Reppy 1347 : Date: 2005/07/27 1348 : Tag: 1349 : Description: 1350 : 1351 : jhr 1831 Fixed ml-yacc to work on files with non-native end-of-line 1352 : encodings (e.g., Windows text file on a Unix system). 1353 : 1354 : ---------------------------------------------------------------------- 1355 : Name: John Reppy 1356 : jhr 1824 Date: 2005/07/20 1357 : Tag: 1358 : Description: 1359 : 1360 : Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com) 1361 : to support HPUX 11. 1362 : 1363 : ---------------------------------------------------------------------- 1364 : Name: John Reppy 1365 : jhr 1813 Date: 2005/07/06 1366 : Tag: 1367 : Description: 1368 : 1369 : Changes to the SML/NJ library. See smlnj-lib/CHANGES for details. 1370 : 1371 : ---------------------------------------------------------------------- 1372 : mblume 1808 Name: Matthias Blume (blume (at) tti - c (dot) org) 1373 : Date: 2005/07/06 00:45:00 CDT 1374 : Tag: blume-20050706-slice-copy 1375 : Description: 1376 : 1377 : Fixed reversed logic for deciding whether to "copy up" or "copy down" 1378 : in *-array-slice.sml. 1379 : 1380 : ---------------------------------------------------------------------- 1381 : allenleung 1806 Name: Allen Leung (leunga (at) reservoir (dot) com) 1382 : allenleung 1807 Date: 2005/05/31 17:00:00 EST 1383 : Tag: leunga-20050531-cygwin-fault-2 1384 : Description: 1385 : 1386 : A typo in the cygwin code fixed. 1387 : 1388 : ---------------------------------------------------------------------- 1389 : Name: Allen Leung (leunga (at) reservoir (dot) com) 1390 : allenleung 1806 Date: 2005/05/31 16:47:00 EST 1391 : Tag: leunga-20050531-cygwin-fault 1392 : Description: 1393 : 1394 : blume 2155 Updated Cygwin's fault/signal handling to match the Windows version. 1395 : allenleung 1806 Updated the export list. 1396 : 1397 : ---------------------------------------------------------------------- 1398 : mblume 1791 Name: Matthias Blume (blume (at) tti - c (dot) org) 1399 : mblume 1795 Date: 2005/05/18 13:35:00 CDT 1400 : Tag: Release_110_54 1401 : Description: 1402 : 1403 : New working version (110.54). NEW BOOTFILES! 1404 : 1405 : ---------------------------------------------------------------------- 1406 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1407 : mblume 1794 Date: 2005/05/18 11:58:00 CDT 1408 : Tag: blume-20050518-installer 1409 : Description: 1410 : 1411 : Added support scripts for Mac OS X PackageMaker and modified 1412 : config/install.sh so that it supports re-dumping a heap image 1413 : after customization. 1414 : 1415 : ---------------------------------------------------------------------- 1416 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1417 : mblume 1793 Date: 2005/05/18 10:55:00 CDT 1418 : Tag: blume-20050518-realdiv-noovld 1419 : Description: 1420 : 1421 : Un-overloaded / to work around bug in overloading resolution code. 1422 : 1423 : ---------------------------------------------------------------------- 1424 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1425 : mblume 1792 Date: 2005/05/16 23:50:00 CDT 1426 : Tag: blume-20050516-redump-heap 1427 : Description: 1428 : 1429 : Added mechanism for re-creating a heap file for the interactive system 1430 : after configuration variables have been changed. 1431 : 1432 : CM.redump_heap : string -> unit 1433 : 1434 : This is much like SMLofNJ.exportML, but starting from the resulting 1435 : blume 2155 heap does not return to the caller of CM.redump_heap but 1436 : mblume 1792 restarts the interactive system from scratch. The original call of 1437 : CM.redump_heap does not return but ends the interactive session. 1438 : Thus, CM.redump_heap is a lot like SMLofNJ.exportFn. 1439 : 1440 : Internally, redump_heap winds the dynamic execution context back to 1441 : the point where the original heap image was created and re-executes 1442 : the heap image generation code in the boot code. 1443 : 1444 : ---------------------------------------------------------------------- 1445 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1446 : mblume 1791 Date: 2005/05/09 21:55:00 CDT 1447 : Tag: blume-20050509-word64 1448 : Description: 1449 : 1450 : Added a hack to the existing hack known as Word64 to make fromString 1451 : behave correctly. I am still not sure whether Word64.scan will work 1452 : as specified with respect to the interaction of radix and prefix. 1453 : 1454 : ---------------------------------------------------------------------- 1455 : allenleung 1785 Name: Allen Leung (leunga (at) reservoir (dot) com) 1456 : Date: 2005/05/04 11:50:00 EST 1457 : Tag: leunga-20050504-checkgc 1458 : Description: 1459 : 1460 : blume 2155 Added a gc protocol checking phase. This phase is enabled with 1461 : allenleung 1785 the flag "check-gc". "debug-check-gc" turns on the verbose mode. 1462 : 1463 : ---------------------------------------------------------------------- 1464 : mblume 1741 Name: Matthias Blume (blume (at) tti - c (dot) org) 1465 : mblume 1784 Date: 2005/05/04 10:45:00 CDT 1466 : Tag: blume-20050504-intinf 1467 : Description: 1468 : 1469 : Fixed a bug in the implementation of div and mod for IntInf. 1470 : Thanks to Neophytos Michael for reporting the problem. 1471 : 1472 : ---------------------------------------------------------------------- 1473 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1474 : mblume 1783 Date: 2005/05/04 10:35:00 CDT 1475 : Tag: blume-20050504-join 1476 : Description: 1477 : 1478 : Added a "join" combinator to the ParserComb module in smlnj-lib.cm. 1479 : 1480 : ---------------------------------------------------------------------- 1481 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1482 : mblume 1770 Date: 2005/02/28 23:40:00 CST 1483 : Tag: blume-20050228-mVar 1484 : Description: 1485 : 1486 : Fixed serious bug (brown paper bag variety) in new implementation of 1487 : structure Atom in CML. (I had accidentally used a mailbox instead of 1488 : an mvar, leaving the door open for races.) 1489 : 1490 : ---------------------------------------------------------------------- 1491 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1492 : mblume 1761 Date: 2005/02/25 15:00:00 CST 1493 : Tag: Release_110_53 1494 : Description: 1495 : 1496 : New working version (110.53). NEW BOOTFILES! 1497 : 1498 : ---------------------------------------------------------------------- 1499 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1500 : mblume 1760 Date: 2005/02/25 14:50:00 CST 1501 : Tag: blume-20050225-susp 1502 : Description: 1503 : 1504 : Brought back SMLofNJ.Susp. The underlying suspension type is the one 1505 : implemented in Core -- which means that it is the same as the one used 1506 : by the lazy extension. 1507 : 1508 : ---------------------------------------------------------------------- 1509 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1510 : mblume 1759 Date: 2005/02/24 16:50:00 CST 1511 : Tag: blume-20050224-cml-atom 1512 : Description: 1513 : 1514 : Simpler and at the same time more general implementation of structure 1515 : Atom in CML. 1516 : 1517 : ---------------------------------------------------------------------- 1518 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1519 : mblume 1758 Date: 2005/02/15 17:35:00 CST 1520 : Tag: blume-20050215-tools 1521 : Description: 1522 : 1523 : Created new "tools" directory under "src" and moved "TraceDebugProf" 1524 : there. 1525 : 1526 : ---------------------------------------------------------------------- 1527 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1528 : mblume 1755 Date: 2005/02/10 17:55:00 CST 1529 : Tag: blume-20050210-longlong 1530 : Description: 1531 : 1532 : Implemented "long long" arguments and results for NLFFI. (Only the 1533 : PPC/MacOS implementation is complete, the other backends still need to 1534 : be updated.) 1535 : 1536 : ---------------------------------------------------------------------- 1537 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1538 : mblume 1751 Date: 2005/01/24 17:40:00 CST 1539 : Tag: blume-20050124-mlyacc 1540 : Description: 1541 : 1542 : Minor cleanup in ML-Yacc rule printing mechanism. This should fix a 1543 : problem with certain "as" patterns which previously got rendered 1544 : using incorrect syntax. 1545 : 1546 : ---------------------------------------------------------------------- 1547 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1548 : mblume 1750 Date: 2005/01/18 12:00:00 CST 1549 : Tag: blume-20050118-profile 1550 : Description: 1551 : 1552 : Made time profiling code (interrupt handler) in runtime system aware 1553 : of new array representation. 1554 : 1555 : ---------------------------------------------------------------------- 1556 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1557 : mblume 1747 Date: 2005/01/14 18:00:00 CST 1558 : Tag: blume-20050114-heap2exec 1559 : Description: 1560 : 1561 : Implemented new (but still experimental) heap2exec facility. This is 1562 : tested under Mac OS X and should work under Linux (will test shortly). 1563 : It will probably also work on the Sparc (will test some time later). 1564 : 1565 : - removed old "HACKED_STANDALONE" hack from runtime 1566 : 1567 : To be able to test this, uncomment the request for "heap2asm" in 1568 : config/targets prior to installation. (Notice that this is different 1569 : from "heap2exec" mentioned below. Not a typo.) 1570 : 1571 : To perform an actual test, run the command 1572 : 1573 :$ bin/heap2exec heapfile execfile 1574 : 1575 : (You can put heap2exec on your shell's path.) 1576 : 1577 : For example, run 1578 : 1579 : $bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly 1580 : 1581 : This will create a standalone executable called "mly" which you can 1582 : then invoke directly as a command. 1583 : 1584 : ---------------------------------------------------------------------- 1585 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1586 : mblume 1746 Date: 2005/01/07 11:44:00 CST 1587 : Tag: blume-20050107-mlstring 1588 : Description: 1589 : 1590 : fixed off-by-one error in ML_STRING macro (globals.c) 1591 : 1592 : ---------------------------------------------------------------------- 1593 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1594 : mblume 1744 Date: 2004/12/23 18:00:00 CST 1595 : Tag: blume-20041223-santa 1596 : Description: 1597 : 1598 : Made ml-build script "smarter" (but only very little). 1599 : 1600 : ---------------------------------------------------------------------- 1601 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1602 : mblume 1742 Date: 2004/12/21 15:05:00 CST 1603 : Tag: blume-20041221-longlong 1604 : Description: 1605 : 1606 : * Implemented access to signed and unsigned long long data in NLFFI. 1607 : (The parameter-passing part of the picture has not complete. But 1608 : data structure access seems to work.) 1609 : 1610 : * Fixed CM's incorrect assumption that the PPC is little-endian. 1611 : (On the Mac, it is big-endian. And that's currently our only 1612 : PPC platform.) 1613 : 1614 : ---------------------------------------------------------------------- 1615 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1616 : mblume 1741 Date: 2004/12/21 12:50:00 CST 1617 : Tag: blume-20041221-memory 1618 : Description: 1619 : 1620 : Some cleanup in the$c/memory.cm library: separated some concerns by 1621 : moving allocation code and memory access code each into their own 1622 : files. 1623 : 1624 : ---------------------------------------------------------------------- 1625 : allenleung 1740 Name: Allen Leung (leunga (at) reservoir (dot) com) 1626 : Date: 2004/12/17 16:12:00 EST 1627 : Tag: leunga-20041217-cygwin-smlnj-home 1628 : Description: 1629 : 1630 : blume 2155 The Unix I/O library of SML/NJ on cygwin does not understand 1631 : Windows style pathname, so problems arise when SMLNJ_HOME is set 1632 : to a Windows style pathname. _run-sml now converts SMLNJ_HOME 1633 : to a POSIX pathname on cygwin. 1634 : allenleung 1740 1635 : ---------------------------------------------------------------------- 1636 : mblume 1737 Name: Matthias Blume (blume (at) tti - c (dot) org) 1637 : mblume 1736 Date: 2004/12/16 13:35:00 CST 1638 : Tag: Release_110_52 1639 : Description: 1640 : 1641 : Last-minute changes incorporated into 110.52. Release tag moved. 1642 : 1643 : The changes: 1644 : - HashString.hashString' -> HashString.hashSubstring 1645 : - bug fix in UnivariateStats 1646 : 1647 : ---------------------------------------------------------------------- 1648 : mblume 1702 Name: Matthias Blume (blume (at) tti - c (dot) org) 1649 : mblume 1733 Date: 2004/12/15 23:40:00 CST 1650 : Tag: blume-20041215-hashSubstring 1651 : Description: 1652 : 1653 : - HashString.hashString' -> HashString.hashSubstring 1654 : - corresponding changes in atom.sml 1655 : - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and 1656 : added some comments 1657 : 1658 : ---------------------------------------------------------------------- 1659 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1660 : mblume 1728 Date: 2004/12/15 15:30:00 CST 1661 : mblume 1736 Tag: (Release_110_52) 1662 : mblume 1728 Description: 1663 : 1664 : New working version (110.52). NEW BOOTFILES! 1665 : 1666 : ---------------------------------------------------------------------- 1667 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1668 : mblume 1727 Date: 2004/12/15 12:45:00 CST 1669 : Tag: blume-20041215-spaces 1670 : Description: 1671 : 1672 : More on the space problem (this time for Win32). 1673 : 1674 : ---------------------------------------------------------------------- 1675 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1676 : mblume 1725 Date: 2004/12/14 17:30:00 CST 1677 : Tag: blume-20041214-spaces 1678 : Description: 1679 : 1680 : Hacked some of the scripts (in particular: the installer) to cope with 1681 : spaces in filenames a bit better. But beware: the current "solution" 1682 : is likely still full of bugs and inherently incomplete. (We need to 1683 : do away with those shell scripts for a comprehensive solution.) 1684 : 1685 : ---------------------------------------------------------------------- 1686 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1687 : mblume 1724 Date: 2004/12/13 14:45:00 CST 1688 : Tag: blume-20041213-ml-makedepend 1689 : Description: 1690 : 1691 : Fixed bug in code for ml-makedepend. 1692 : 1693 : ---------------------------------------------------------------------- 1694 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1695 : mblume 1720 Date: 2004/12/09 16:30:00 CST 1696 : Tag: blume-20041209-statistics 1697 : Description: 1698 : 1699 : Added two simple but potentially useful statistics modules to SML/NJ Library. 1700 : (See CHANGES file there.) 1701 : 1702 : ---------------------------------------------------------------------- 1703 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1704 : mblume 1718 Date: 2004/12/01 16:50:00 CST 1705 : Tag: blume-20041201-atom 1706 : Description: 1707 : 1708 : smlnj-lib: 1709 : 1710 : Added function HashString.hashString' for substrings. 1711 : Hand-inlined CharVector.foldl into HashString (for speed). 1712 : Modified implementation of structure Atom to avoid extracting 1713 : strings from substrings unless necessary. 1714 : (Also see CHANGES file for smlnj-lib.) 1715 : 1716 : ---------------------------------------------------------------------- 1717 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1718 : mblume 1717 Date: 2004/11/24 22:15:00 CST 1719 : Tag: blume-20041124-cml 1720 : Description: 1721 : 1722 : Made sure CML compiles when Position = Int64. 1723 : 1724 : ---------------------------------------------------------------------- 1725 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1726 : mblume 1715 Date: 2004/11/24 14:30:00 CST 1727 : Tag: blume-20041124-position 1728 : Description: 1729 : 1730 : The compiler can now be compiled in a mode that makes structure Position 1731 : equal to Int64. The default, however, is unchanged (Position = Int31) 1732 : for the time being. 1733 : 1734 : To enable 64-bit positions, use the following procedure: 1735 : 1736 : 1. Start sml 1737 : 2. Autoload $smlnj/cmb.cm (if not already autoloaded) 1738 : 3. Type 1739 : #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1); 1740 : 4. Run CMB.make() as usual. 1741 : 1742 : This is barely tested. The only test so far was a little SML program 1743 : counting the number of characters in an 8-gigabyte file by 1744 : reading it character-by-character. That test was successful. 1745 : 1746 : In support of 64-bit positions, a number of new functions have been 1747 : added to the runtime system. 1748 : 1749 : ---------------------------------------------------------------------- 1750 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1751 : mblume 1716 Date: 2004/11/23 14:45:00 CST 1752 : Tag: blume-20041123-useFile 1753 : mblume 1712 Description: 1754 : 1755 : Fixed a problem with unhelpful error messages related to problems with 1756 : .cm- or .sml files that appear as part of the sml command line. 1757 : 1758 : ---------------------------------------------------------------------- 1759 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1760 : mblume 1703 Date: 2004/11/18 15:40:00 CST 1761 : Tag: Release_110_51 1762 : Description: 1763 : 1764 : New working version (110.51). NEW BOOTFILES! 1765 : 1766 : ---------------------------------------------------------------------- 1767 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1768 : mblume 1702 Date: 2004/11/18 15:35:00 CST 1769 : Tag: 1770 : Description: 1771 : 1772 : Enabled dlopen and friends for FreeBSD (as recommended by Johannes 5 1773 : Joemann). 1774 : 1775 : ---------------------------------------------------------------------- 1776 : allenleung 1701 Name: Allen Leung (leunga (at) reservoir (dot) com) 1777 : Date: 2004/11/17 16:05:21 EST 2004 1778 : Tag: leunga-20041117-mlrisc-live-kill 1779 : Description: 1780 : 1781 : blume 2155 Added support for MLTree constructs LIVE and KILL 1782 : allenleung 1701 to all the architectures. 1783 : 1784 : ---------------------------------------------------------------------- 1785 : mblume 1687 Name: Matthias Blume (blume (at) tti - c (dot) org) 1786 : mblume 1689 Date: 2004/11/13 00:20:00 CST 1787 : Tag: blume-20041113-versiontool 1788 : Description: 1789 : 1790 : - Stripped down the versiontool: It now only handles the version number. 1791 : The date string is generated at bootstrap time (during makeml). 1792 : 1793 : - In a previous commit, fixed a minor issue with how polyequal is being 1794 : translated. In particular, the code now "looks through" abstractions. 1795 : This results in slightly fewer polyEqual warnings and hopefully slightly 1796 : more efficient code. Important examples for where this matters are 1797 : the new int64 and word64 types. 1798 : 1799 : ---------------------------------------------------------------------- 1800 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1801 : mblume 1687 Date: 2004/11/12 00:30:00 CST 1802 : Tag: blume-20041112-int64 1803 : Description: 1804 : 1805 : Structure Int64 fully hooked in. (The implementation is not very 1806 : efficient, though.) 1807 : 1808 : ---------------------------------------------------------------------- 1809 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1810 : mblume 1686 Date: 2004/11/11 17:30:00 CST 1811 : Tag: blume-20041111-more64 1812 : Description: 1813 : 1814 : All the pieces of Word64 are now there, with the exception of the 1815 : conversions from and to LargeWord. (Eventually these need to be identities, 1816 : but for the time being they don't even make sense because LargeWord is 1817 : 32-bit wide.) 1818 : 1819 : Also started to add similar support for Int64, but major pieces of that 1820 : are still missing. 1821 : 1822 : ---------------------------------------------------------------------- 1823 : mblume 1668 Name: Matthias Blume (blume (at) tti - c (dot) org) 1824 : mblume 1684 Date: 2004/11/11 00:15:00 CST 1825 : Tag: blume-20041111-word64 1826 : Description: 1827 : 1828 : Structure Word64 is now (almost) complete, word literals and patterns 1829 : seem to work. There are a few odd pieces missing. In particular, 1830 : I didn't do the {from,to}LargeWord parts because LargeWord is still Word32 1831 : at the moment. 1832 : 1833 : Making Word64 official would mean that LargeWord becomes Word64. But 1834 : this requires extreme care because most word-word conversions have to 1835 : go through LargeWord, so making a mistake means loss of efficiency or 1836 : worse. Eventually there will be a solution similar to (but actually 1837 : simpler than) what I did with IntInf. 1838 : 1839 : ---------------------------------------------------------------------- 1840 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1841 : mblume 1683 Date: 2004/11/10 18:12:00 CST 1842 : Tag: blume-20041110-64bit 1843 : Description: 1844 : 1845 : More 64-bit hacking (but still not even half-way there yet). 1846 : Also, some assorted improvements to the handling of 8-bit words. 1847 : 1848 : ---------------------------------------------------------------------- 1849 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1850 : mblume 1682 Date: 2004/11/09 17:50:00 CST 1851 : mblume 1683 Tag: 1852 : mblume 1682 Description: 1853 : 1854 : Started adding some infrastructure for supporting 64-bit int- and 1855 : word-types. (Still in its very early stages.) 1856 : 1857 : ---------------------------------------------------------------------- 1858 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1859 : mblume 1672 Date: 2004/10/28 10:45:00 CDT 1860 : Tag: Release_110_50 1861 : Description: 1862 : 1863 : New working version (110.50). NEW BOOTFILES! 1864 : 1865 : ===================== 1866 : 1867 : Also: 1868 : 1869 : - Changend config/srcarchiveurl from a file just 1870 : containing the URL string into a file containing 1871 : shell script code. The code has access to the$VERSION variable. 1872 : - Made corresponding changes to config/install.sh and config/unpack. 1873 : - Default contents of config/srcarchiveurl uses $VERSION and 1874 : normally does not have to be edited to reflect a version change. 1875 : 1876 : (As a result, a version change can be done by just editing 1877 : config/version, the rest is now automatic.) 1878 : 1879 : ---------------------------------------------------------------------- 1880 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1881 : mblume 1669 Date: 2004/10/27 17:50:00 CDT 1882 : Tag: blume-20041027-btrace-msg 1883 : Description: 1884 : 1885 : BackTrace.monitor now also reports the source of the exception that 1886 : triggered the trace. 1887 : 1888 : ---------------------------------------------------------------------- 1889 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1890 : mblume 1668 Date: 2004/10/27 17:20:00 CDT 1891 : Tag: blume-20041027-x86-c-calls 1892 : Description: 1893 : 1894 : This is the HISTORY entry for two earlier commits, both concerning 1895 : the x86 c-calls code in MLRISC: 1896 : 1897 : - added a missing LOAD in the code that deals with struct arguments 1898 : - made sure the caller does not add the wrong number of bytes to the 1899 : stack pointer after a call of a function returning a struct 1900 : (the callee already pops the implicit argument which points to 1901 : the space reserved for the result) 1902 : 1903 : ---------------------------------------------------------------------- 1904 : allenleung 1662 Name: Allen Leung (leunga (at) reservoir (dot) com) 1905 : Date: 2004/10/24 14:00:00 EST 1906 : Tag: leunga-20041024-x86-gas-fucomip 1907 : Description: 1908 : 1909 : John discovered a bug in the syntax of fucomip. 1910 : The opcodes FU?COMIP? have been changed to 1911 : 1912 : fu?comip? %st(i), %st 1913 : 1914 : ---------------------------------------------------------------------- 1915 : mblume 1622 Name: Matthias Blume (blume (at) tti - c (dot) org) 1916 : mblume 1656 Date: 2004/10/20 15:06:00 CDT 1917 : Tag: blume-20041020-standalone-backtrace 1918 : Description: 1919 : 1920 : Added a mechanism for getting back-trace information from standalone 1921 : programs. Here is how it works: 1922 : 1923 : 1. The part of the program from which you want to get backtrace 1924 : information (usually the whole program) should be wrapped with 1925 : BackTrace.monitor. This is a (unit->'a)->'a function, and your 1926 : main program could be modified from something like 1927 : 1928 : fun main (pgm, args) = ... 1929 : 1930 : to 1931 : 1932 : fun main (pgm, args) = BackTrace.monitor (fn () => ...) 1933 : 1934 : 2. To be able to access BackTrace.monitor, you have to add 1935 : library$smlnj-tdp/plugins.cm to the .cm file that contains your 1936 : main function. 1937 : 1938 : 3. Remove all compiled code (i.e., all the .cm/ subdirectories that 1939 : CM might have created in the past for your project). 1940 : 1941 : 4. Build the system using this command line: 1942 : 1943 : ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \ 1944 : myprog.cm MyProg.main myprog 1945 : 1946 : instead of the usual 1947 : 1948 : ml-build myprog.cm MyProg.main myprog 1949 : 1950 : I changed a library name: 1951 : 1952 :$/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm 1953 : 1954 : New libraries: 1955 : 1956 :$smlnj-tdp/back-trace.cm 1957 : -- when loaded causes the back-trace plugin to be installed 1958 : $smlnj-tdp/coverage.cm 1959 : -- when loaded causes the coverage plugin to be installed 1960 : 1961 : ---------------------------------------------------------------------- 1962 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1963 : mblume 1655 Date: 2004/10/18 16:45:00 CDT 1964 : Tag: blume-20041018-groupowner 1965 : Description: 1966 : 1967 : Added an "obsolete" warning for the "group owner" syntax to CM's parser. 1968 : 1969 : Eliminated group owner specs from .cm files throughout the source tree. 1970 : 1971 : ---------------------------------------------------------------------- 1972 : Name: Matthias Blume (blume (at) tti - c (dot) org) 1973 : mblume 1653 Date: 2004/10/15 15:45:00 CDT 1974 : Tag: blume-20041015-coverage 1975 : Description: 1976 : 1977 : * Test coverage tool added! 1978 : * Further reorganization of tracing-, debugging-, and profiling support: 1979 : 1980 : - moved original BTImp -- now called BackTrace -- into a separate 1981 : library called$/trace-debug-profile.cm 1982 : - eliminated all mentions of BTrace from SMLofNJ.Internals 1983 : - only the instrumentation mechanism is now left in the compiler proper 1984 : - BackTrace module is a plugin which is NOT plugged in by default 1985 : - Coverage module is another such plugin 1986 : 1987 : To get the benefits of any of these plugin modules, the code in 1988 : question must be compiled with tdp instrumentation turned on. This 1989 : can be done by setting SMLofNJ.Internals.TDP.mode to true. 1990 : (The ref cell is also controlled via the -Ctdp.instrument=... switch.) 1991 : 1992 : Plugins are selected at link time. (Pre-compiled instrumented code 1993 : can be re-loaded with different plugins in effect.) When an 1994 : instrumented module is linked, whatever plugins are at that time 1995 : enabled will come into effect for that module. 1996 : 1997 : To enable the back-trace plugin, load library $/trace-debug-profile.cm 1998 : and invoke BackTrace.install() (e.g., from the interactive prompt). 1999 : To enable the coverage plugin, load the same library and invoke 2000 : Coverage.install(). 2001 : 2002 : Back-traces are generated automatically on uncaught exceptions and 2003 : when the code in question explicitly invokes BackTrace.trigger(). 2004 : 2005 : Coverage (and execution frequency-) information must be queried 2006 : explicitly by calling Coverage.not_covered and Coverage.hot_spots. 2007 : 2008 : ---------------------------------------------------------------------- 2009 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2010 : mblume 1652 Date: 2004/10/14 17:40:00 CDT 2011 : Tag: blume-20041014-tdp-core 2012 : Description: 2013 : 2014 : Snapshot of a significant overhaul of how the trace/debug/profile support 2015 : is hooked into the system (specifically: Core and SMLofNJ.Internals). 2016 : 2017 : ---------------------------------------------------------------------- 2018 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2019 : mblume 1650 Date: 2004/10/13 16:34:00 CDT 2020 : Tag: blume-20041013-tdp 2021 : Description: 2022 : 2023 : Some rationalization of names: 2024 : 2025 : structure BTrace -> structure TDPInstrument 2026 : etc. 2027 : 2028 : This is is preparation of using the original back-trace 2029 : instrumentation for other purposes. "TDP" stands for 2030 : Trace/Debug/Profile. 2031 : 2032 : The control flag controlling whether instrumentation is on or off is now 2033 : registered under a different name, so instead of running sml as 2034 : 2035 : sml -Cinstrument.btrace-mode=true 2036 : 2037 : one has to say 2038 : 2039 : sml -Ctdp.instrument=true 2040 : 2041 : ---------------------------------------------------------------------- 2042 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2043 : mblume 1645 Date: 2004/10/11 16:37:00 CDT 2044 : Tag: blume-20041011-regions 2045 : Description: 2046 : 2047 : Made some minor modifications to elabcore.sml to have source regions 2048 : be propagated more tightly -- resulting in better (i.e., smaller) 2049 : regions being reported in error- and debug messages. 2050 : 2051 : ---------------------------------------------------------------------- 2052 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2053 : mblume 1644 Date: 2004/10/08 22:50:00 CDT 2054 : Tag: blume-20041008-cmkw 2055 : Description: 2056 : 2057 : Fixed handling of keywords in .cm files: After seeing "is" the lexer 2058 : treats subsequent occurrences of "group", "library", "source", "is", 2059 : "*", and "-" as ordinary identifiers rather than keywords. 2060 : 2061 : Most seriously, this fixes a problem with CM's "shell" tool. The tool 2062 : is supposed to accept a tool argument called "source", but this did 2063 : not work because of the clash with the keyword. 2064 : 2065 : ---------------------------------------------------------------------- 2066 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2067 : mblume 1642 Date: 2004/10/07 16:00:00 CDT 2068 : Tag: blume-20041007-cleanup 2069 : Description: 2070 : 2071 : Assorted cleanup work: 2072 : 2073 : - got rid of intstrmap in favor of using the library's 2074 : hash table implementation 2075 : - threw out most of the pathnames stuff, as it was not used anyway 2076 : - simplified tokentable implementation 2077 : - fixed some minor spelling errors 2078 : 2079 : ---------------------------------------------------------------------- 2080 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2081 : mblume 1641 Date: 2004/10/06 15:15:15 CDT 2082 : Tag: blume-20041006-handler 2083 : Description: 2084 : 2085 : Cleaned up the absyn to reflect the invariant that HANDLE always 2086 : carries a FNexp as part of the type definition. This eliminates some 2087 : superfluous sanity checks at runtime down the road. 2088 : 2089 : Some minor cleanup of the btrace code. 2090 : 2091 : ---------------------------------------------------------------------- 2092 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2093 : mblume 1640 Date: 2004/10/01 10:20:30 CDT 2094 : Tag: blume-20041001-slave 2095 : Description: 2096 : 2097 : Added hack to make slave mode work in the presence of the version 2098 : tool. (Still, since the master does two passes over the code for 2099 : CMB.make, the release number gets bumped twice when slaves are 2100 : attached. I don't know if this is worth fixing...) 2101 : 2102 : ---------------------------------------------------------------------- 2103 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2104 : mblume 1639 Date: 2004/09/30 10:55:00 CDT 2105 : Tag: blume-20040930-version 2106 : Description: 2107 : 2108 : * Moved the "version" magic into its own little library under 2109 : mblume 1672 src/system/smlnj/internal. This avoids expensive reconstruction of 2110 : a stable src/compiler/core.cm. 2111 : mblume 1639 2112 : mblume 1672 * At the same time, structure CompilerVersion is now known as 2113 : structure SMLNJVersion. 2114 : mblume 1639 2115 : * Arranged for the version tool to NOT kick in when rebuilding the system 2116 : (makeml -rebuild, fixpt). Otherwise one would never reach a fixpoint. 2117 : Also, loading the versiontool does not work when rebuilding the system 2118 : because CM is not properly initialized at that time. 2119 : 2120 : ---------------------------------------------------------------------- 2121 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2122 : mblume 1638 Date: 2004/09/29 14:00:00 CDT 2123 : Tag: blume-20040929-autoversion 2124 : Description: 2125 : 2126 : Implemented some CM magic to have 2127 : file src/compiler/TopLevel/main/version.sml 2128 : generated automagically. 2129 : The version is taken from two files: config/version and config/release. 2130 : The first is expected to contain a two-part version number such as 110.49. 2131 : The second should contain a single number, but it may be missing. 2132 : 2133 : If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the 2134 : time the version tool is loaded (which is the first time you say CMB.make), 2135 : then the tool will increment the value stored in config/release every 2136 : time CMB.make is invoked. 2137 : 2138 : The binfile format is now insensitive to anything beyond the first 2139 : two components of a version number, so bumping the release does not render 2140 : binfiles incompatible. Auto-bumping can be used to keep track of versions 2141 : during development without invalidating existing binfiles. 2142 : 2143 : In any case, every CMB.make updates the date information in version.sml. 2144 : (This is the date that is printed in the banner.) 2145 : 2146 : ---------------------------------------------------------------------- 2147 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2148 : mblume 1634 Date: 2004/09/28 10:53:00 CDT 2149 : Tag: blume-20040928-controls 2150 : Description: 2151 : 2152 : Some cleanup of the controls code. 2153 : 2154 : ---------------------------------------------------------------------- 2155 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2156 : mblume 1633 Date: 2004/09/27 22:08:00 CDT 2157 : Tag: blume-20040927-controls 2158 : Description: 2159 : 2160 : Added two pieces of functionality to the Controls interface: 2161 : 2162 : 1. val save'restore: 'a control -> unit -> unit 2163 : 2164 : grabs the current value of the control in stage 1 and restores it 2165 : in stage 2. 2166 : 2167 : 2. val set' : 'a control * 'a -> unit -> unit 2168 : 2169 : stores the given value into the control in stage 2 (i.e., delayed) 2170 : but does all error checking in stage 1. 2171 : (This is for string controls that need to do parse their argument -- 2172 : something that might fail. In some cases, notably in CM, one 2173 : already knows the intended argument but wants to delay the actual 2174 : assignment until a time when error recovery would be more difficult.) 2175 : 2176 : Changed the handling of controls in tool arguments to classes "sml" and 2177 : "lazysml": 2178 : - use Controls.save'restore as a more robust way of restoring the 2179 : old value (in particular: without having to re-parse the string) 2180 : - use controls to handle the "overload" keyword in the init group 2181 : (I believe this change actually fixes a long-standing obscure bug.) 2182 : 2183 : ---------------------------------------------------------------------- 2184 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2185 : mblume 1632 Date: 2004/09/27 17:00:00 CDT 2186 : Tag: blume-20040927-lazysml 2187 : Description: 2188 : 2189 : Added a new tool class called "lazysml" to CM's tool chest. The only 2190 : difference to "sml" is that compilation is done with Control.lazysml 2191 : set to true. A source of class "lazysml" is automatically recognized 2192 : by a file name suffix of ".lml". 2193 : 2194 : In addition to the above feature, the original class "sml" now also 2195 : supports a tool argument "lazy" which has the same effect. As a 2196 : result, the following three lines are equivalent: 2197 : 2198 : foo.sml : lazysml 2199 : foo.sml : sml (lazy) 2200 : foo.sml (lazy) 2201 : 2202 : The setting goes into effect both during parsing and during 2203 : compilation. The original setting is restored right after parsing and 2204 : after compilation, respectively. 2205 : 2206 : In addition to all the above, there is also a general mechanism to set 2207 : ANY of the "controls" that are available at the command line via 2208 : "-C..." on a per-sml-file basis. The same rules that apply for "lazy" 2209 : apply as well. (In fact, "lazy" is implemented as a special case of 2210 : the general mechanism.) 2211 : 2212 : The .cm file syntax uses a new keyword tool argument called "with". 2213 : There are several ways of indicating the desired settings: 2214 : 2215 : foo.sml (with:parser.quotations=true) 2216 : foo.sml (with:(name:parser.quotations value:true)) 2217 : foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...)) 2218 : foo.sml (with:(name1=value1 name2=value2 ...)) 2219 : foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...)) 2220 : 2221 : etc. 2222 : 2223 : Another possible abbreviation is to leave out the =v or value:v part 2224 : if the name refers to a boolean control (in which case the value is 2225 : taken to be true). Thus, one could get lazy sml also by saying: 2226 : 2227 : foo.sml (with:parser.lazy-keyword=true) 2228 : foo.sml (with:parser.lazy-keyword) 2229 : foo.sml (with:(name:parser.lazy-keyword value:true)) 2230 : foo.sml (with:(name:parser.lazy-keyword)) 2231 : 2232 : ---------------------------------------------------------------------- 2233 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2234 : mblume 1631 Date: 2004/09/24 16:22:00 CDT 2235 : Tag: blume-20040924-ppc-long-branch 2236 : Description: 2237 : 2238 : Turned message about "emiting long form of branch" off by default. 2239 : Added a control flag to turn it back on when desired. 2240 : 2241 : ---------------------------------------------------------------------- 2242 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2243 : mblume 1630 Date: 2004/09/24 16:05:00 CDT 2244 : Tag: blume-20040924-rounding 2245 : Description: 2246 : 2247 : Applied patch for setting rounding modes under Mac OS X. Thanks to 2248 : Melissa O'Neill for providing the code! 2249 : 2250 : ---------------------------------------------------------------------- 2251 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2252 : mblume 1629 Date: 2004/09/23 17:30:00 CDT 2253 : Tag: blume-20040923-envvars 2254 : Description: 2255 : 2256 : 1. Changed definition of type ControlRegistry.registry_tree to 2257 : include control_info (i.e., the name of the controlling environment 2258 : variable). 2259 : 2260 : 2. Added command-line flags -e and -E to print the names of environment 2261 : variables that can be used to control internal settings. 2262 : (This uses the new API mentioned in 1.) 2263 : 2264 : ---------------------------------------------------------------------- 2265 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2266 : mblume 1622 Date: 2004/09/13 16:50:00 CDT 2267 : Tag: Release_110_49 2268 : Description: 2269 : 2270 : New working version (110.49). NEW BOOTFILES! 2271 : 2272 : ---------------------------------------------------------------------- 2273 : mblume 1621 Name: Matthias Blume 2274 : Date: 2004/09/13 16:20:00 CDT 2275 : Tag: blume-20040913-config-mlrisc 2276 : Description: 2277 : 2278 : Put target "mlrisc" back into the default list. 2279 : (There is no harm in having it, and some users have expressed their 2280 : wish to have "mlrisc" included by default.) 2281 : 2282 : ---------------------------------------------------------------------- 2283 : jhr 1620 Name: John Reppy 2284 : Date: 2004/09/13 2285 : Tag: jhr-20040913-signals 2286 : Description: 2287 : 2288 : Fixed the signal masking code to properly nest mask/unmask operations 2289 : on a per-signal basis. 2290 : 2291 : ---------------------------------------------------------------------- 2292 : mblume 1619 Name: Matthias Blume (blume (at) tti - c (dot) org) 2293 : Date: 2004/09/08 13:20:00 CDT 2294 : Tag: blume-20040908-heap-magic 2295 : Description: 2296 : 2297 : Bumped the heap macig number to 0x09082004 to account for the changed 2298 : layout of the ML frame under MacOS X. 2299 : 2300 : ---------------------------------------------------------------------- 2301 : allenleung 1618 Name: Allen Leung (leunga (at) reservoir (dot) com) 2302 : Date: 2004/09/03 11:26:00 EST 2303 : Tag: leunga-20040903-cygwin-install 2304 : Description: 2305 : 2306 : Added a patch to _arch-n-opsys to enable the Cygwin runtime. 2307 : The Cygwin runtime is turned on by setting the environment 2308 : variable SMLNJ_CYGWIN_RUNTIME to 1. 2309 : 2310 : ---------------------------------------------------------------------- 2311 : mblume 1615 Name: Matthias Blume (blume (at) tti - c (dot) org) 2312 : mblume 1617 Date: 2004/08/31 17:15:00 CDT 2313 : Tag: blume-20040831-core 2314 : Description: 2315 : 2316 : Added some exports to src/compiler/core.cm upon request by J. Joemann. 2317 : 2318 : ---------------------------------------------------------------------- 2319 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2320 : mblume 1616 Date: 2004/08/30 17:55:00 CDT 2321 : Tag: blume-20040830-installer 2322 : Description: 2323 : 2324 : Upon request by Johannes Joemann: 2325 : 2326 : - improved ML code of installer to fall back to coping when renaming 2327 : fails (i.e., when source and target are on different file systems); 2328 : the code compiles but has yet to be tested in anger 2329 : - removed mlrisc from list of default targets (config/targets) 2330 : 2331 : ---------------------------------------------------------------------- 2332 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2333 : mblume 1615 Date: 2004/08/27 17:20:00 CDT 2334 : Tag: blume-20040827-ptreql 2335 : Description: 2336 : 2337 : Added ptreql primop to structure InlineT (upon request from Larry 2338 : Paulson). 2339 : 2340 : ---------------------------------------------------------------------- 2341 : allenleung 1613 Name: Allen Leung (leunga (at) reservoir (dot) com) 2342 : allenleung 1614 Date: 2004/08/15 21:21:00 EST 2343 : Tag: leunga-110_48-udgraph 2344 : Description: 2345 : 2346 : Another bug fix from Carl Hauser: 2347 : 2348 : diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml 2349 : > 48c48 2350 : > < | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else 2351 : > e::L) 2352 : > --- 2353 : > > | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L) 2354 : > Without this, any deletion of an edge in an undirected graph does severe 2355 : > violence to the graph. 2356 : 2357 : ---------------------------------------------------------------------- 2358 : Name: Allen Leung (leunga (at) reservoir (dot) com) 2359 : allenleung 1613 Date: 2004/08/10 23:35:00 EST 2360 : Tag: leunga-110_48-ppc 2361 : Description: 2362 : 2363 : The IBM/MacOS syntax switch on PPC was incorrectly swapped. 2364 : 2365 : ---------------------------------------------------------------------- 2366 : mblume 1602 Name: Matthias Blume (blume (at) tti - c (dot) org) 2367 : mblume 1615 Date: 2004/08/10 12:00:00 CDT 2368 : mblume 1602 Tag: Release_110_48 2369 : Description: 2370 : 2371 : New working version (110.48). NEW BOOTFILES! 2372 : 2373 : ---------------------------------------------------------------------- 2374 : allenleung 1599 Name: Allen Leung (leunga (at) reservoir (dot) com) 2375 : Date: 2004/08/09 12:21:00 EST 2376 : Tag: leunga-110_47-dijsktra 2377 : Description: 2378 : 2379 : Bug fix from Carl Hauser: 2380 : 2381 : blume 2155 single_source_shortest_paths in dijkstra.sml was observed to get wrong 2382 : allenleung 1599 answers (by comparing to single_source_shortest_paths in bellman-ford.sml). 2383 : 2384 : blume 2155 The problem is that following the expression A.update(dist,s,Num.zero) 2385 : allenleung 1599 it is necessary to update the priority queue using Q.decreaseWeight(Q,s). 2386 : 2387 : ---------------------------------------------------------------------- 2388 : mblume 1595 Name: Matthias Blume (blume (at) tti - c (dot) org) 2389 : Date: 2004/08/06 18:10:00 CDT 2390 : Tag: blume-20040806-cmdline 2391 : Description: 2392 : 2393 : Fiddled with handling of command-line options: 2394 : 2395 : * sml now quits after processing the command line 2396 : if -H, -S, -h, or -s appears as the last 2397 : command-line argument 2398 : * a new option -q terminates the session when encountered on 2399 : the command line; subsequent arguments will be ignored 2400 : * bug fixes: short (erroneous) arguments are no longer ignored 2401 : completely 2402 : 2403 : ---------------------------------------------------------------------- 2404 : allenleung 1593 Name: Allen Leung (leunga (at) reservoir (dot) com) 2405 : Date: 2004/08/04 18:17:00 EST 2406 : Tag: leunga-110_47-ppc-ibm-asm 2407 : Description: 2408 : 2409 : - Added minimal IBM assembly syntax support for PowerPC. 2410 : 2411 : blume 2155 - Cygwin: manually changed the file cygwin.def. Some exported symbols have 2412 : allenleung 1593 been altered in the runtime. We need an automatic way to keep the file 2413 : in sync. 2414 : 2415 : ---------------------------------------------------------------------- 2416 : mblume 1548 Name: Matthias Blume (blume (at) tti - c (dot) org) 2417 : mblume 1581 Date: 2004/08/04 14:00:00 CDT 2418 : Tag: Release_110_47 2419 : Description: 2420 : 2421 : New working version (110.47). NEW BOOTFILES! 2422 : 2423 : ---------------------------------------------------------------------- 2424 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2425 : mblume 1580 Date: 2004/08/03 14:25:00 CDT 2426 : Tag: blume-20040803-callingconv 2427 : Description: 2428 : 2429 : Added low-level support for choosing C calling conventions by 2430 : twiddling the type of rawccall. (See 2431 : src/compiler/Semant/types/cproto.sml for details.) 2432 : 2433 : ---------------------------------------------------------------------- 2434 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2435 : mblume 1579 Date: 2004/08/02 15:55:00 CDT 2436 : Tag: blume-20040802-backout 2437 : Description: 2438 : 2439 : Backed out of change to win32-filesys.c. The earlier patch to 2440 : get_file_time caused CM to produce files with the wrong time stamp. 2441 : 2442 : ---------------------------------------------------------------------- 2443 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2444 : mblume 1573 Date: 2004/08/02 14:45:00 CDT 2445 : Tag: blume-20040802-nlffi-win32 2446 : Description: 2447 : 2448 : Added NLFFI support for Win32, adapted from a patch provided by David 2449 : Hansel. This is currently completely untested. Also, the issue 2450 : concerning stdcall vs. ccall is still unresolved. 2451 : 2452 : ---------------------------------------------------------------------- 2453 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2454 : mblume 1572 Date: 2004/07/30 17:55:00 CDT 2455 : Tag: blume-20040730-various 2456 : Description: 2457 : 2458 : Gearing up towards 110.47... 2459 : 2460 : - various minor bugfixes to ml-nlffigen 2461 : - a beginning of a manual for nlffi 2462 : 2463 : - eliminated 'export name=value' in config/install.sh as this does 2464 : not work with certain versions of /bin/sh 2465 : (Thanks to David King at Motorola for catching this.) 2466 : 2467 : - several bugfixes provided or suggested by David Hansel at Reactive Systems: 2468 : - added a test for tm==NULL to gmtime.c and localtime.c 2469 : - applied patch for incorrect GetFileTime under win32 2470 : - toSeconds -> toMilliseconds in Win32/win32-process.sml 2471 : 2472 : ---------------------------------------------------------------------- 2473 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2474 : mblume 1557 Date: 2004/07/21 18:20:00 CDT 2475 : Tag: blume-20040721-nlffigen 2476 : Description: 2477 : 2478 : - Fixed minor issue in ml-nlffigen: Now generate structure T_foo 2479 : for a typedef to an incomplete type, but leave out the "typ" member. 2480 : (This is just for consistency.) 2481 : - Started to produce what is supposed to become better (i.e., comprehensive) 2482 : documentation of what ml-nlffigen does and produces. 2483 : 2484 : ---------------------------------------------------------------------- 2485 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2486 : mblume 1548 Date: 2004/07/14 16:25:00 CDT 2487 : Tag: blume-20040714-union 2488 : Description: 2489 : 2490 : Added C_UNION to c-calls/c-types.sml and updated the machinery 2491 : (ml-nlffigen, cproto.sml) that conveys C function interface 2492 : information to the code generator. 2493 : 2494 : However, the actual architecture-specific implementation of function 2495 : arguments and results that are C unions is still not implemented. 2496 : 2497 : ---------------------------------------------------------------------- 2498 : allenleung 1539 Name: Allen Leung (leunga (at) reservoir (dot) com) 2499 : allenleung 1546 Date: 2004/07/14 14:38:00 EST 2500 : Tag: leunga-110_46_1-ppc-lwzu 2501 : Description: 2502 : 2503 : Added these instructions to the PowerPC architecture: 2504 : LBZU(X), LHZU(X), LWZU(X), 2505 : blume 2155 STWU(X), STFDU, STFSU 2506 : 2507 : allenleung 1546 etc... 2508 : 2509 : Note: I haven't added their instruction encoding into the description. 2510 : 2511 : ---------------------------------------------------------------------- 2512 : Name: Allen Leung (leunga (at) reservoir (dot) com) 2513 : allenleung 1539 Date: 2004/07/13 15:04:00 EST 2514 : Tag: leunga-110_46_1-ppc-lwarx 2515 : Description: 2516 : 2517 : Added the two instructions LWARX and STWCX to the PowerPC 2518 : blume 2155 instruction set. 2519 : allenleung 1539 2520 : A (untested) rewrite of loop-structure.sml. The old version 2521 : is completely broken. 2522 : 2523 : ---------------------------------------------------------------------- 2524 : mblume 1479 Name: Matthias Blume (blume (at) tti - c (dot) org) 2525 : mblume 1537 Date: 2004/07/13 13:50:00 CDT 2526 : Tag: blume-20040713-nlffi 2527 : Description: 2528 : 2529 : - use paramAlloc to report c-calls with too many arguments 2530 : (for PPC version where parameter area is pre-allocated) 2531 : - added ccall_maxargspace to machspec (to implement the above) 2532 : - made "make" commend in CM's "make" tool configurable 2533 : - added option (default: on) for passing the name of the SML/NJ's "bin" 2534 : directory to "make"; the call looks like this: 2535 : 2536 : make SMLNJ_BINDIR= 2537 : 2538 : This can be used by the Makefile to, e.g., pick the "right" version 2539 : of ml-nlffigen. 2540 : - minor code tweaks 2541 : 2542 : ---------------------------------------------------------------------- 2543 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2544 : mblume 1532 Date: 2004/07/12 22:50:00 CDT 2545 : Tag: blume-110_46_1-macosx-nlffi 2546 : Description: 2547 : 2548 : NLFFI under Mac OS X now working (sort of). This is largely untested, 2549 : though. 2550 : 2551 : Note: 1. You have to make a new, clean build of the runtime system. 2552 : 2. There are new BOOTFILES, you have to use them! 2553 : (Doing the bootstrap process yourself would be *very* painful! 2554 : If you absolutely have to do it, build the system under 2555 : a different architecture and then cross-compile.) 2556 : 2557 : Version bumped to 110.46.1 to account for runtime data format changes. 2558 : 2559 : ---------------------------------------------------------------------- 2560 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2561 : mblume 1515 Date: 2004/06/18 14:30:00 CDT 2562 : Tag: blume-20040618-unix 2563 : Description: 2564 : 2565 : Changed the implementation of structure Unix so that the same stream 2566 : is returned every time one of the {text,bin}{In,Out}streamOf functions 2567 : is invoked on the same proc. This is not what the spec currently 2568 : says -- although IMO it arguably should. (See discussion below.) 2569 : 2570 : ---------------------------------------------------------------------- 2571 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2572 : mblume 1507 Date: 2004/06/17 18:15:00 CDT 2573 : Tag: Release_110_46 2574 : Description: 2575 : 2576 : New working version (110.46). NEW BOOTFILES! 2577 : 2578 : ---------------------------------------------------------------------- 2579 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2580 : mblume 1506 Date: 2004/06/17 17:20:00 CDT 2581 : Tag: blume-20040617-timer-unix 2582 : Description: 2583 : 2584 : Changed the interface of structures Timer and Unix to match the most 2585 : recent Basis spec. 2586 : 2587 : In the case of Unix there still seems to be an open/weird issue: 2588 : 2589 : The {text,bin}{In,Out}streamOf functions are supposed to create 2590 : fresh streams whenever they are called -- as opposed to have them 2591 : return the same stream every time. This design is supposed to 2592 : prevent space leaks caused by proc values hanging on to streams. 2593 : 2594 : The reap function, on the other hand, is supposed to close the 2595 : streams. This cannot be done without having a handle on the 2596 : stream in proc after all... 2597 : 2598 : I took the liberty to implement the following stopgap solution: 2599 : 2600 : The proc value hangs on to the most recently created stream(s). 2601 : Reap closes those. If either or both of the two streams hadn't 2602 : been created at all yet, then reap will close the corresponding 2603 : file descriptors directly. 2604 : 2605 : PS: I don't understand the original space leak argument anymore. If 2606 : a proc hangs on to the imperative stream, then I/O operations on those 2607 : will advance the state of the cached stream and avoid the space leak. 2608 : 2609 : ---------------------------------------------------------------------- 2610 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2611 : mblume 1500 Date: 2004/05/28 16:45:00 CDT 2612 : Tag: blume-20040528-basis 2613 : Description: 2614 : 2615 : Added signature PACK_REAL and exported functor PrimIO. 2616 : 2617 : ---------------------------------------------------------------------- 2618 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2619 : mblume 1498 Date: 2004/05/25 16:00:00 CDT 2620 : Tag: blume-20040525-group-owner 2621 : Description: 2622 : 2623 : CM now ignores (but still accepts) the "owner" information in group 2624 : descriptions. The owner of a group is its next enclosing 2625 : library. Each group must have a unique owner. (There is a virtual 2626 : mblume 1505 "toplevel" library that owns groups which are not nested within a real 2627 : mblume 1498 library.) Previously, each group had to explicitly declare its owner, 2628 : and CM would check that such a declaration is correct. The new scheme 2629 : is to have CM check that for each group there is precisely one owning 2630 : library. 2631 : 2632 : The advantage of the new scheme is that the programmer no longer needs 2633 : to maintain the somewhat annoying owner information. The downside is 2634 : that CM cannot enforce the ownership rule across multiple runs of 2635 : CM.make. Fortunately, enclosing the same group in two different 2636 : libraries A and B which are not part of the same program does not 2637 : cause real problems. 2638 : 2639 : ---------------------------------------------------------------------- 2640 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2641 : mblume 1496 Date: 2004/05/20 16:00:00 CDT 2642 : Tag: blume-20040520-win32 2643 : Description: 2644 : 2645 : Made the win32 version work again. (Strangely, a misplaced comma had 2646 : slipped into win32-process.c which prevented the runtime from being 2647 : compiled correctly.) 2648 : 2649 : Also, included a minor addition to ml-build.bat analogous to what was 2650 : done in blume-20040519-ml-build. 2651 : 2652 : ---------------------------------------------------------------------- 2653 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2654 : mblume 1494 Date: 2004/05/19 22:10:00 CDT 2655 : Tag: blume-20040519-ml-build 2656 : Description: 2657 : 2658 : Arranged for ml-build to clean up after itself a little bit better. 2659 : The script generates a temporary SML source file and compiles it using 2660 : CM, so CM generates metadata (GUID, SKEL, objectfile) for it. It now 2661 : gets rid of those at the end, so they don't accumulate under .cm. 2662 : 2663 : This required a minor change to install.sh because the name of the 2664 : metadata directory (default: .cm) is actually configurable at 2665 : installation time. 2666 : 2667 : ---------------------------------------------------------------------- 2668 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2669 : mblume 1491 Date: 2004/05/18 15:50:00 CDT 2670 : Tag: blume-20040518-mkreader 2671 : Description: 2672 : 2673 : Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective 2674 : implementations from internal modules PosixBinPrimIO and PosixTextPrimIO. 2675 : 2676 : ---------------------------------------------------------------------- 2677 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2678 : mblume 1489 Date: 2004/05/11 14:35:00 CDT 2679 : Tag: blume-20040511-win32sock 2680 : Description: 2681 : 2682 : Added previously missing support for many socket-related functions 2683 : under win32. Thanks to David Hansel 2684 : for the voluminous patch! 2685 : 2686 : (I have not tested this patch under win32 yet.) 2687 : 2688 : mblume 1490 Here is David's e-mail: 2689 : 2690 : Hi, 2691 : 2692 : Attached to this email you find a diff against sml/nj 110.45 2693 : that will enable socket support under Windows. 2694 : 2695 : To apply the patch (using unix or cygwin) 2696 : 1) gunzip runtime.diff.gz 2697 : 2) "cd" into "src/runtime" in the source tree of a fresh 2698 : 110.45 installation. 2699 : 3) patch -p 1 < [your/path/to]runtime.diff 2700 : 2701 : blume 2155 The code compiles fine but has NOT yet been extensively tested. 2702 : I only ran a few tests for basic socket client functionality 2703 : (which worked fine). Especially the functions that use ioctl 2704 : mblume 1490 are not tested at all and might not work (see below). 2705 : 2706 : I implemented this since we want to move to a newer version of sml/nj 2707 : but need socket support in order to use it. This is the first time I 2708 : even had a look at the sml/nj source, so please review my changes 2709 : before making this part of the distribution! Here are a few issues 2710 : blume 2155 that I think might be better for someone to solve who is more 2711 : mblume 1490 familiar with the sml/nj source (and socket programming): 2712 : 2713 : - getnetbyaddr.c and getnetbyname.c will raise a "not implemented" 2714 : exception since I could not figure out what the windows equivalent 2715 : of these functions is 2716 : 2717 : - In sockets-osdep.h there are a some #include statements that are 2718 : only used in a few files that include sockets-osdep.h 2719 : 2720 : - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but 2721 : does not process its return value since I don't know how to 2722 : report an error upwards. 2723 : 2724 : - It would probably be good to have a call to WSACleanup() when 2725 : blume 2155 the library is unloaded (if there is such a possibility). 2726 : mblume 1490 Otherwise I think Windows will take care of this automatically 2727 : when the process finishes. 2728 : 2729 : - I used ioctlsocket() as a replacement for ioctl() but I have 2730 : no idea if that is actually the proper replacement on Windows. 2731 : 2732 : - All these issues are marked in the code by "FIXME" comments. 2733 : 2734 : blume 2155 We use sml/nj extensively in our products and are quite happy 2735 : with it. I hope this contribution will help you. 2736 : mblume 1490 2737 : Keep up the good work! 2738 : 2739 : David 2740 : 2741 : mblume 1489 ---------------------------------------------------------------------- 2742 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2743 : mblume 1488 Date: 2004/05/11 14:20:00 CDT 2744 : Tag: blume-20040511-installml 2745 : Description: 2746 : 2747 : Fixed two bugs in installml script. (Thanks to Vesa A. Norrman for 2748 : the patch.) 2749 : 2750 : ---------------------------------------------------------------------- 2751 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2752 : mblume 1487 Date: 2004/05/11 14:05:00 CDT 2753 : Tag: blume-20040511-nlffi-netbsd 2754 : Description: 2755 : 2756 : Added support for nlffi under netbsd. (Thanks to Vesa A. Norrman for 2757 : the patch.) 2758 : 2759 : ---------------------------------------------------------------------- 2760 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2761 : mblume 1486 Date: 2004/05/11 12:05:00 CDT 2762 : Tag: blume-20040511-exports 2763 : Description: 2764 : 2765 : As per request by Adam Chlipala , extended various 2766 : export lists in compiler-related .cm-files. 2767 : 2768 : ---------------------------------------------------------------------- 2769 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2770 : mblume 1485 Date: 2004/05/11 11:35:00 CDT 2771 : Tag: blume-20040511-allsource 2772 : Description: 2773 : 2774 : The installer now honors the "src-smlnj" target again, although its meaning 2775 : has changed from "all sources required for the compiler" to "all sources 2776 : the installer knows about". In other words, if you enable "src-smlnj" 2777 : in the "targets" file, then the installer will pull in sources for 2778 : everything. (Notice that this refers to source code only. Compiled 2779 : code is still only installed for modules that were requested explicitly 2780 : or which are required for other modules that were requested explicitly.) 2781 : 2782 : ---------------------------------------------------------------------- 2783 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2784 : mblume 1482 Date: 2004/04/23 17:40:00 CDT 2785 : Tag: blume-20040423-ieee-scan 2786 : Description: 2787 : 2788 : Fixed IEEEReal.scan (and .fromString) so that if there is an overflow 2789 : in the exponent calculation we get INF or ZERO (depending on the mantissa 2790 : and the sign of the exponent). 2791 : 2792 : ---------------------------------------------------------------------- 2793 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2794 : mblume 1480 Date: 2004/04/23 10:40:00 CDT 2795 : Tag: blume-20040423-ml-build 2796 : Description: 2797 : 2798 : The ml-build script now terminates with a non-0 status when something 2799 : goes wrong. 2800 : 2801 : ---------------------------------------------------------------------- 2802 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2803 : mblume 1479 Date: 2004/04/22 16:35:00 CDT 2804 : Tag: blume-20040422-Option 2805 : Description: 2806 : 2807 : Made exception Option to be the same as exception Option.Option 2808 : (as it should be). 2809 : 2810 : ---------------------------------------------------------------------- 2811 : allenleung 1468 Name: Allen Leung (leunga (at) reservoir (dot) com) 2812 : Date: 2004/03/19 14:40:00 EST 2813 : Tag: leunga-20040319-cygwin-nlffi 2814 : Description: 2815 : 2816 : Fixed the runtime so that ml-nlffi-lib runs on the cygwin version 2817 : of SML/NJ. The problem is that 2818 : 2819 : lib = dlopen(NULL, ...) 2820 : f = dlsym(lib, "malloc"); 2821 : 2822 : blume 2155 does not work on Windows unless we explicitly export symbols 2823 : such as 'malloc' during linking. We fixed this by explicitly 2824 : allenleung 1468 exporting the required symbols with the magic gcc incantation: 2825 : 2826 : -Wl,--export-all cygwin.def 2827 : 2828 : where cygwin.def is a file containing all the symbols that 2829 : blume 2155 we wish to export. 2830 : allenleung 1468 2831 : blume 2155 I suspect this is a Windows problem and we'll have to 2832 : do the same (somehow with windows compilers) when 2833 : allenleung 1468 we build the native win32 version with the system 2834 : blume 2155 calls LoadLibrary/GetProcAddress. 2835 : allenleung 1468 2836 : ---------------------------------------------------------------------- 2837 : mblume 1384 Name: Matthias Blume (blume (at) tti - c (dot) org) 2838 : mblume 1465 Date: 2004/03/04 16:35:00 CST 2839 : Tag: blume-20040304-intinf-fmt 2840 : Description: 2841 : 2842 : Fixed problem with IntInf.fmt (sign would show up on the right instead 2843 : of on the left for BIN, OCT, and HEX). 2844 : 2845 : ---------------------------------------------------------------------- 2846 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2847 : mblume 1464 Date: 2004/03/04 11:25:00 CST 2848 : Tag: blume-20040304-symlinks 2849 : Description: 2850 : 2851 : Fixed problem with installer script (unix only) where bin/ml-yacc and 2852 : friends pointed (via symlinks) to absolute locations instead of just 2853 : .run-sml. This was reported by Vesa A Norrman. 2854 : 2855 : ---------------------------------------------------------------------- 2856 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2857 : mblume 1455 Date: 2004/02/13 14:50:00 CST 2858 : Tag: Release_110_45 2859 : Description: 2860 : 2861 : New working version (110.45). New bootfiles. 2862 : 2863 : ---------------------------------------------------------------------- 2864 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2865 : mblume 1448 Date: 2004/01/26 15:15:15 CST 2866 : Tag: blume-20040126-toplevel 2867 : Description: 2868 : 2869 : Improved handling of exceptions at the interactive toplevel. 2870 : 2871 : ---------------------------------------------------------------------- 2872 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2873 : Date: 2004/01/26 11:25:00 2874 : mblume 1446 Tag: blume-20040126-app 2875 : Description: 2876 : 2877 : Type of top-level "app" corrected. 2878 : mblume 1447 Added code for setting vp_limitPtrMask to Win32-specific runtime. 2879 : mblume 1446 2880 : ---------------------------------------------------------------------- 2881 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2882 : mblume 1427 Date: 2003/11/18 17:10 CST 2883 : Tag: blume-20031118-basis-fiddle 2884 : Description: 2885 : 2886 : - changed Timer interface to what might become the spec 2887 : - POSIX_FLAGS -> BIT_FLAGS according to spec 2888 : - some other minor discrepancies wrt. spec eliminated 2889 : 2890 : ---------------------------------------------------------------------- 2891 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2892 : mblume 1414 Date: 2003/11/06 12:00:00 CST 2893 : Tag: Release_110_44 2894 : Description: 2895 : 2896 : New working version (110.44). New bootfiles. 2897 : 2898 : ---------------------------------------------------------------------- 2899 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2900 : mblume 1411 Date: 2003/11/04 11:50:00 CST 2901 : Tag: blume-20031104-move-libraries 2902 : Description: 2903 : 2904 : Eliminated the "dont_move_libraries" directive in config/targets. 2905 : (The mechanism was broken and could not be fixed easily. Moreover, 2906 : there does not seem to be any reason not to move all libraries into 2907 : lib during installation. I originally implemented this directive as a 2908 : backward-compatibility feature when I first introduced the new CM. 2909 : Now that things have been stable for a long time and going back to the 2910 : old CM is not an option, there is no reason to keep it around.) 2911 : 2912 : ---------------------------------------------------------------------- 2913 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2914 : mblume 1409 Date: 2003/11/03 16:00:00 CST 2915 : Tag: blume-20031103-installdir 2916 : Description: 2917 : 2918 : Made installer honor INSTALLDIR variable again. (Thanks to Chris 2919 : Richards for pointing out the problem and providing the solution.) 2920 : 2921 : ---------------------------------------------------------------------- 2922 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2923 : mblume 1400 Date: 2003/10/01 17:05:00 CDT 2924 : Tag: blume-20031001-lal-mlrisc 2925 : Description: 2926 : 2927 : MLRISC bug fix from Lal. 2928 : 2929 : ---------------------------------------------------------------------- 2930 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2931 : mblume 1399 Date: 2003/09/30 16:10:00 CDT 2932 : Tag: blume-20030930-primio-bat 2933 : mblume 1398 Description: 2934 : 2935 : 1. Added openVector, nullRd, and nullWr to PRIM_IO. 2936 : 2. Improved .bat files (for Win32 port) to make things work under Win95. 2937 : (thanks to Aaron S. Hawley for this one) 2938 : 2939 : ---------------------------------------------------------------------- 2940 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2941 : mblume 1395 Date: 2003/09/26 16:05:00 CDT 2942 : Tag: blume-20030926-wrappriv 2943 : Description: 2944 : 2945 : Added missing wrapper for privilege "primitive" in$smlnj/viscomp/core.cm. 2946 : 2947 : ---------------------------------------------------------------------- 2948 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2949 : mblume 1394 Date: 2003/09/26 15:00:00 CDT 2950 : Tag: blume-20030926-110_43_3 2951 : Description: 2952 : 2953 : - additional cleanup 2954 : - version number bump, NEW BOOTFILES 2955 : 2956 : ---------------------------------------------------------------------- 2957 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2958 : mblume 1393 Date: 2003/09/26 12:00:00 CDT 2959 : Tag: blume-20030926-ppautoload 2960 : Description: 2961 : 2962 : I modified the read-eval-print loop so that the autoloader gets 2963 : invoked whenever the prettyprinter tries to look up a symbol that 2964 : is not currently defined in the toplevel environment but which 2965 : appears in CM's autoload registry. As a result, we see far fewer of 2966 : those ?.Foo.Bar.xxx names in the prettyprinter's output. 2967 : 2968 : In addition to this I tried to clean up some pieces of the Basis 2969 : implementation (e.g., Socket, Word8Array) in order to prevent other 2970 : instances of these ?.Foo.Bar.xxx names from being printed. 2971 : 2972 : The mechanism that picks names for types still needs some work, though. 2973 : (Right now it seems that if there is a type A.t which is defined to 2974 : mblume 1394 be B.u, but B is unavailable at toplevel, then A.t gets printed as 2975 : "?.B.u" although the perhaps more sensible solution would be to use 2976 : mblume 1393 "A.t" in this case. In other words, the prettyprinter should follow 2977 : a chain of DEFtycs not farther than there are corresponding toplevel 2978 : names in the current environment.) 2979 : 2980 : ---------------------------------------------------------------------- 2981 : Name: Matthias Blume (blume (at) tti - c (dot) org) 2982 : mblume 1391 Date: 2003/09/24 16:31:00 CDT 2983 : Tag: blume-20030924-installer 2984 : Description: 2985 : 2986 : Another installer tweak: All the ML code for the installer is now 2987 : compiled during CMB.make and put into a little library called 2988 : $smlnj/installer.cm. The installation then simply invokes 2989 : 2990 : sml -m$smlnj/installer.cm 2991 : 2992 : and everything happens automagically. 2993 : 2994 : Win32: ML code senses value of environment variable SMLNJ_HOME. 2995 : Unix: ML code senses values of environment variables ROOT, CONFIGDIR, 2996 : and BINDIR. 2997 : 2998 : The new scheme guarantees that the ML code responsible for the installation 2999 : is in sync with the APIs of the main system. Also, the installer is 3000 : somewhat faster because the installer script is precompiled. 3001 : 3002 : ---------------------------------------------------------------------- 3003 : Name: Matthias Blume (blume (at) tti - c (dot) org) 3004 : mblume 1390 Date: 2003/09/24 15:35:00 CDT 3005 : Tag: blume-20030924-synsock 3006 : Description: 3007 : 3008 : Added a signature SYNCHRONOUS_SOCKET to basis.cm. This is like SOCKET 3009 : but excludes all non-blocking operations. Defined SOCKET (in Basis) 3010 : and CML_SOCKET in terms of SYNCHRONOUS_SOCKET. Removed superfluous 3011 : implementations of non-blocking operations from CML's Socket 3012 : structure. 3013 : 3014 : ---------------------------------------------------------------------- 3015 : Name: Matthias Blume (blume (at) tti - c (dot) org) 3016 : mblume 1389 Date: 2003/09/24 15:10:05 CDT 3017 : Tag: blume-20030924-sockets 3018 : Description: 3019 : 3020 : 1. Fixed SOCKET API and implementation to match Basis spec. 3021 : This required changing the internal representation of sockets to one 3022 : that remembers (for each socket file descriptor) whether it is currently 3023 : blocking or non-blocking. This state is maintained lazily (i.e., a system 3024 : call is made only if the state actually needs to change). 3025 : 3026 : 2. OS-specific details of sockets were moved into separate files, thus 3027 : making it possible to unify the bulk of the socket implementations 3028 : between Unix and Win32. 3029 : 3030 : 3. CML's socket API changed accordingly. 3031 : (Note that we need to remove non-blocking functions from this API 3032 : since they are redundant in the case of CML!) 3033 : 3034 : 4. CML's socket implementation now makes use of non-blocking functions 3035 : provided by Basis, thus removing all OS-dependent code from this part 3036 : of CML. 3037 : 3038 : 5. Changed Real64.precision from 52 to 53. Minor cleanup in Real64 code. 3039 : 3040 : ---------------------------------------------------------------------- 3041 : Name: Matthias Blume (blume (at) tti - c (dot) org) 3042 : mblume 1387 Date: 2003/09/22 12:10:00 CDT 3043 : mblume 1388 Tag: blume-20030922-110_43_2 3044 : mblume 1387 Description: 3045 : 3046 : Made a new interim version and bootfiles for developer's bootstrapping 3047 : convenience. 3048 : 3049 : 110.43.2 -- NEW BOOTFILES 3050 : 3051 : ---------------------------------------------------------------------- 3052 : Name: Matthias Blume (blume (at) tti - c (dot) org) 3053 : mblume 1385 Date: 2003/09/19 15:55:00 CDT 3054 : Tag: blume-20030919-cmdir 3055 : Description: 3056 : 3057 : 1. new-install.sh -> install.sh 3058 : 2. changed default CM "metadata" directory name to ".cm" (instead of "CM") 3059 : 3. tweaked installer so that another name instead of .cm can be chosen 3060 : at install time (by setting the CM_DIR_ARC environment variable 3061 : during installation); once installation is complete, the name is 3062 : fixed 3063 : 3064 : ---------------------------------------------------------------------- 3065 : Name: Matthias Blume (blume (at) tti - c (dot) org) 3066 : mblume 1384 Date: 2003/09/18 16:00:00 CDT 3067 : Tag: blume-20030918-110_43_1 3068 : Description: 3069 : 3070 : Made a new interim version and bootfiles for developer's bootstrapping 3071 : convenience. 3072 : 3073 : 110.43.1 -- NEW BOOTFILES 3074 : 3075 : ---------------------------------------------------------------------- 3076 : Name: Matthias Blume (blume (at) tti - c (dot) org) 3077 : mblume 1383 Date: 2003/09/18 15:20:00 CDT 3078 : Tag: blume-20030918-misc 3079 : Description: 3080 : 3081 : 1. Exported fractionsPerSecond etc. from TimeImp (but not from Time as 3082 : this seems to be controversial at the moment) and used those in 3083 : Posix.ProcEnv.times. 3084 : 3085 : 2. Added Time.{from,to}Nanoseconds to Time. 3086 : 3087 : 3. Improved Real.{from,to}LargeInt by avoiding needless calculations. 3088 : For example, fromLargeInt never needs to look at more than 3 "big 3089 : digits" to get its 53 bits of precision. 3090 : 3091 : ---------------------------------------------------------------------- 3092 : mblume 1384 Name: Matthias Blume (blume (at) tti - c (dot) org) 3093 : mblume 1381 Date: 2003/09/17 16:30:00 CDT 3094 : Tag: blume-20030917-real32-slices 3095 : Description: 3096 : 3097 : Added an entry to the primitive environment 3098 : (compiler/Semant/statenv/prim.sml) for int32->real64 conversion and 3099 : added code to compiler/CodeGen/main/mlriscGen.sml to implement it. 3100 : 3101 : Removed some of the "magic" constants in real64.sml and replaced them 3102 : with code that generates these values from their corresponding 3103 : integer counterparts. 3104 : 3105 : Made all(?) the slice-related changes to the Basis and made everything 3106 : compile again... 3107 : 3108 : ---------------------------------------------------------------------- 3109 : mblume 1368 Name: Matthias Blume (blume (at) tti - c (dot) org) 3110 : mblume 1375 Date: 2003/09/15 17:45:00 CDT 3111 : Tag: blume-20030915-rbase 3112 : Description: 3113 : 3114 : Fixed bug in Real.fromLargeInt. 3115 : 3116 : ---------------------------------------------------------------------- 3117 : Name: Matthias Blume (blume (at) tti - c (dot) org) 3118 : mblume 1369 Date: 2003/09/13 18:11:00 CDT 3119 : Tag: blume-20030913-libinstall 3120 : Description: 3121 : 3122 : Minor bugfix in config/libinstall (set anchor with path to 3123 : standalone tool after installing it, otherwise libraries that 3124 : need ml-lex or ml-yacc won't compile the first time the installer 3125 : runs). 3126 : 3127 : ---------------------------------------------------------------------- 3128 : Name: Matthias Blume (blume (at) tti - c (dot) org) 3129 : mblume 1368 Date: 2003/09/12 11:45:00 CDT 3130 : Tag: blume-20030912-various 3131 : Description: 3132 : 3133 : - fixed bug in Real.toLargeInt 3134 : - fixed bug in Posix.ProcEnv.times 3135 : - changed inputLine functions to return an option 3136 : - minor installer improvements / bugfixes 3137 : - changed default @SMLalloc parameter for x86/celeron to 64k 3138 : 3139 : ---------------------------------------------------------------------- 3140 : Name: Matthias Blume (blume (at) tti - c (dot) org) 3141 : mblume 1356 Date: 2003/09/09 22:00:00 CDT 3142 : Tag: Release_110_43 3143 : Description: 3144 : 3145 : New working release 110.43. New bootfiles. 3146 : 3147 : ---------------------------------------------------------------------- 3148 : mblume 1368 Name: Matthias Blume (blume (at) tti - c (dot) org) 3149 : mblume 1354 Date: 2003/09/09 19:20:00 CDT 3150 : Tag: blume-20030909-installer 3151 : Description: 3152 : 3153 : Rewrote large parts of config/install.sh in SML (config/libinstall.sml). 3154 : Modified config/install.bat to take advantage of it. Also modified 3155 : config/install.sh (and called it config/new-install.sh) to take advantage 3156 : of it on Unix systems. (The SML code is (supposed to be) platform- 3157 : independent.) 3158 : 3159 : The installer can now install everything under Win32 3160 : as well as under *nix as long as it compiles. 3161 : 3162 : Other changes: 3163 : 3164 : - made CML compile again under Win32 3165 : - made eXene compile under Win32 (by providing a fake structure UnixSock 3166 : and by using OS.Process.getEnv instead of Posix.ProcEnv.getenv) 3167 : - fixed a bug in nowhere: it assumed that type OS.Process.status is the 3168 : same as type int; under Win32 it isn't 3169 : - fixed some slice-related problems in the win32-specific parts of CML 3170 : - added a functor argument "sameVol" to os-path-fn.sml in the Basis 3171 : (under Win32, the volume name is case-insensitive, and the 3172 : OS.Path code compares volume names for equality) 3173 : 3174 : ---------------------------------------------------------------------- 3175 : mblume 1368 Name: Matthias Blume (blume (at) tti - c (dot) org) 3176 : mblume 1353 Date: 2003/09/08 11:55:00 CDT 3177 : Tag: blume-20030908-fullpath 3178 : Description: 3179 : 3180 : Made Win32 version of OS.FileSys.fullPath return current directory 3181 : when given an empty string. This is what the spec says, and incidentally, 3182 : CM depends on it. (CM otherwise goes into an infinite loop in certain 3183 : cases when presented with the name of a non-existing .cm file.) 3184 : 3185 : ---------------------------------------------------------------------- 3186 : mblume 1368 Name: Matthias Blume (blume (at) tti - c (dot) org) 3187 : mblume 1350 Date: 2003/09/04 16:30:00 CDT 3188 : mblume 1352 Tag: blume-20030905-slices-etc 3189 : mblume 1350 Description: 3190 : 3191 : 1. Changed interface to vectors and arrays in Basis to match 3192 : (draft) Basis spec. 3193 : 2. Added signatures and implementations of slices according to 3194 : Basis spec. 3195 : 3. Edited source code throughout the system to make it compile again 3196 : under 1. and 2. (In some cases code had to be added to have it 3197 : match the new signatures.) 3198 : 4. MLRISC should be backward-compatible: the copies of the originals 3199 : of files that needed to change under 3. were retained, the .cm files 3200 : check the compiler version number and use old versions when 3201 : appropriate. 3202 : 5. Changed type of OS.FileSys.readDir and Posix.FileSys.readdir to 3203 : dirstream -> string option (in accordance with Basis spec). 3204 : 6. When generating code that counts lines, ml-lex used function 3205 : CharVector.foldli, taking advantage of its old interface. 3206 : This has been replaced with the corresponding code from 3207 : CharVectorSlice. (html-lex must be re-lexed!) 3208 : 7. BitArray in smlnj-lib/Util has been extended/modified to match the 3209 : new MONO_ARRAY signature. (Do we need BitArraySlice?) 3210 : 8. Removed temporary additions (fromInternal, toInternal) from the 3211 : (now obsolete) IntInf in smlnj-lib/Util. 3212 : 9. Cleaned up structure Byte. 3213 : 10. Added localOffset, scan, and fromString to Date (according to spec). 3214 : Cleaned/corrected implementation of Date. 3215 : (Still need to check for correctness; implement better canonicalizeDate.) 3216 : 11. Added "scan" to signature IEEE_REAL. 3217 : 12. Some improvements to IntInf [in particular: efficiency-hack for 3218 : mod and rem when second operand is 2 (for parity checks).] 3219 : 13. Changed representation of type Time.time, using a single IntInf.int 3220 : value counting microseconds. This considerably simplified the 3221 : implementation of structure Time. We now support negative time 3222 : values; scan and fromString handle signs. 3223 : 14. Functor PrimIO now takes two additional arguments (VectorSlice and 3224 : ArraySlice). 3225 : 3226 : ---------------------------------------------------------------------- 3227 : mblume 1368 Name: Matthias Blume (blume (at) tti - c (dot) org) 3228 : mblume 1347 Date: 2003/08/28 17:00:00 CDT 3229 : Tag: blume-20030828-intinf 3230 : Description: 3231 : 3232 : This is a major update which comes with a version number bump 3233 : (110.42.99 -- yes, we are really close to 110.43 :-), NEW BOOTFILES, 3234 : and an implementation of IntInf in the Basis. 3235 : 3236 : There are a fairly large number of related changes and updates throughout 3237 : the system: 3238 : 3239 : Basis: 3240 : - Implemented IntInf. 3241 : - Made LargeInt a projection of IntInf (by filtering through INTEGER). 3242 : mblume 1348 - Added some missing Real64 operations, most notably Real.toLargeInt. 3243 : mblume 1347 - Added FixedInt as a synonym for Int32. 3244 : 3245 : compiler: 3246 : * Added support for a built-in intinf type. 3247 : - literals 3248 : - pattern matching 3249 : - conversion shortcuts (Int32.fromLarge o Int.toLarge etc.) 3250 : - overloading on literals and operations 3251 : 3252 : This required adding a primitive type intinf, some additional 3253 : primops, and implementations for several non-trivial intinf 3254 : operations in Core. (The intinf type is completely abstract 3255 : to the compiler; all operations get delegated back to the Core.) 3256 : 3257 : * Intinf equality is handled by polyequal. However, the compiler 3258 : does not print its usual warning in this case (since polyequal 3259 : is the right thing to do there). 3260 : 3261 : * Improved the organization of structure InlineT. 3262 : 3263 : * A word about conversion primops: 3264 : If conversions involving intinf do not cancel out during 3265 : mblume 1348 CPS contract, then the compiler must insert calls to Core functions. 3266 : mblume 1347 Since all core access must be resolved already during the FLINT 3267 : translate phase, it would be too late a the time of CPS contract 3268 : mblume 1348 to add new Core calls. For this reason, conversion primops 3269 : mblume 1347 for intinf carry two arguments: 1. the numeric argument that 3270 : they are supposed to convert, and 2. the Core function that 3271 : can help with this conversion if necessary. If CPS contract 3272 : mblume 1348 eliminates a primop, then the associated Core function becomes 3273 : dead and goes away. Intinf conversion primops that do not get 3274 : eliminated by CPS contract get rewritten into calls of their 3275 : core functions by a separate, new phase. 3276 : mblume 1347 3277 : interactive system: 3278 : - Control.Print.intinfDepth controls max length of intinf constants 3279 : being printed. (Analogous to Control.Print.stringDepth.) 3280 : - Cleanup in printutil and pputil: got rid of unused stuff and 3281 : duplicates; replaced some of the code with code that makes better 3282 : use of library functionality. 3283 : 3284 : CM: 3285 : Bugfix: parse-errors in init group (system/smlnj/init/init.cmi) 3286 : are no longer silent. 3287 : 3288 : CKIT: 3289 : Fixed mismatched uses of Int32 and LargeInt. I always decided 3290 : in favor of LargeInt -- which is now the same as IntInf. 3291 : CKIT-knowledgable people should check whether this is what's 3292 : intended and otherwise change things back to using Int32 or 3293 : FixedInt. 3294 : 3295 : Throughout the code: 3296 : mblume 1348 Started using IntInf.int literals and built-in operations 3297 : mblume 1347 (e.g., comparison with 0) where this seems appropriate. 3298 : 3299 : 3300 : ---------------------------------------------------------------------- 3301 : macqueen 1343 Name: Dave MacQueen (dbm@cs.uchicago.edu) 3302 : Date: 2003/08/13 11:36:00 CDT 3303 : Tag: dbm-20030813-mcz-merge1 3304 : Description: 3305 : 3306 : Merging changes from the mcz-branch development branch into trunk. 3307 : These changes involve replacement of the emulated old prettyprinter 3308 : interface with direct use of the SML/NJ Lib PP library, and fixing 3309 : of a couple of bugs (895, 1186) relating to error messages. A new 3310 : prettyprinter for ast datatypes (Elaborator/print/ppast.{sig,sml}) 3311 : has been added. 3312 : 3313 : ---------------------------------------------------------------------- 3314 : mblume 1368 Name: Matthias Blume (blume (at) tti - c (dot) org) 3315 : mblume 1342 Date: 2003/08/11 15:45:00 CDT 3316 : Tag: blume-20030811-windows 3317 : Description: 3318 : 3319 : Version number bumped to 110.42.9. NEW BOOTFILES!!! 3320 : 3321 : http://smlnj.cs.uchicago.edu/dist/working/110.42.9/ 3322 : 3323 : This patch restores SML/NJ's ability to run under win32. There are a 3324 : number of changes, including fixes for several bugs that had gone 3325 : unnoticed until now: 3326 : 3327 : - uname "CYGWIN_NT*" is recognized as win32 (This is relevant only when 3328 : trying to run the win32 version from within cygwin.) 3329 : 3330 : - There are a number of simple .bat scripts that substitute for their 3331 : corresponding Unix shell-scripts. (See below.) 3332 : 3333 : - The internals of ml-build have been modified slightly. The main 3334 : difference is that instead of calling ".link-sml" (or link-sml.bat) 3335 : using OS.Process.system, the ML process delegates this task back 3336 : to the script. Otherwise problems arise in mixed environments such 3337 : as Cygwin where scripts look and work like Unix scripts, but 3338 : where OS.Process.system cannot run them. 3339 : 3340 : - In CM, the srcpath pickler used native pathname syntax -- which 3341 : is incorrect in the case of cross-compilation. The new pickle format 3342 : is independent of platform-specific naming conventions. 3343 : 3344 : - Path configuration files (such as lib/pathconfig) can now choose 3345 : between native and standard syntax. Placing a line of the form 3346 : 3347 : standard! 3348 : 3349 : into the file causes all subsequent paths to be interpreted using 3350 : CM standard pathname syntax (= Unix conventions); a line 3351 : 3352 : native! 3353 : 3354 : switches back to native style. This was needed so that 3355 : path config files can be written portably, see src/system/pathconfig. 3356 : 3357 : - Runtime system: 3358 : 3359 : - win32-filesys.c: get_file_time and set_file_time now 3360 : access modification time, not creation time. 3361 : 3362 : - I/O code made aware of new array representation. 3363 : 3364 : - Bug fixes in X86.prim.masm. 3365 : 3366 : - src/system/makeml made aware of win32. (For use under cygwin 3367 : and other Unix-environments for windows.) 3368 : 3369 : - In Basis, fixed off-by-one error in win32-io.sml (function vecF) 3370 : which caused BinIO.inputAll to fail consistently. 3371 : 3372 : .bat scripts: 3373 : 3374 : Windows .bat scripts assume that SMLNJ_HOME is defined. 3375 : 3376 : - sml.bat, ml-yacc.bat, ml-lex.bat: Driver scripts for standalone 3377 : applications (sml, ml-yacc, ml-lex). 3378 : - ml-build.bat: analogous to ml-build. 3379 : - config\install.bat: Analogous to config/install.sh. This requires 3380 : that SMLNJ_HOME is set and that Microsoft Visual C is ready to use. 3381 : (nmake etc. must be on the path, and vcvars32 must have been run.) 3382 : Moreover, sources for ml-lex and ml-yacc need to exist under src, 3383 : and the bootfile hierarchy must have been unpacked under 3384 : sml.boot.x86-win32. 3385 : The script is very primitive and does a poor job at error checking. 3386 : It only installs the base system, ml-lex, and ml-yacc. No other 3387 : libraries are being installed (i.e., you get only those that 3388 : are part of the compiler.) 3389 : - link-sml.bat: analogous to .link-sml, but not currently used 3390 : 3391 : Unrelated bug fixes: 3392 : 3393 : - ml-nlffigen now exports structures ST_* corresponding to incomplete 3394 : types. 3395 : - Added getDevice to PP/src/pp-debug-fn.sml. (Would not compile 3396 : otherwise.) 3397 : 3398 : ---------------------------------------------------------------------- 3399 : macqueen 1337 Name: Dave MacQueen (macqueen@cs.uchicago.edu) 3400 : Date: 2003/06/17 3401 : Tag: macqueen-20030617-bug895 3402 : Description: 3403 : 3404 : Modified compiler/Elaborator/print/pptype.sml to fix bug 895. 3405 : Tag will be used for new development branch (mcz-branch) for 3406 : use by MacQueen, (Lucasz) Zairek, and (George) Cao at uchicago. 3407 : 3408 : ---------------------------------------------------------------------- 3409 : mblume 1368 Name: Matthias Blume (blume (at) tti - c (dot) org) 3410 : mblume 1335 Date: 2003/05/27 16:55:00 CDT 3411 : Tag: blume-20030527-polyeq 3412 : Description: 3413 : 3414 : Tried to eliminated most cases of polymorphic equality. 3415 : 3416 : ---------------------------------------------------------------------- 3417 : mblume 1368 Name: Matthias Blume (blume (at) tti - c (dot) org) 3418 : mblume 1334 Date: 2003/05/21 17:45:00 CDT 3419 : Tag: blume-20030517-complete 3420 : Description: 3421 : 3422 : Two changes: 3423 : 3424 : 1. Added a flag for controlling whether non-exhaustive bindings will 3425 : be treated as errors (default is false). 3426 : 2. Cleaned up the *entire* source tree so that CMB.make goes through 3427 : without a single non-exhaustive match- or bind warning. 3428 : 3429 : ---------------------------------------------------------------------- 3430 : mblume 1368 Name: Matthias Blume (blume (at) tti - c (dot) org) 3431 : mblume 1332 Date: 2003/05/17 10:20:00 CDT 3432 : Tag: blume-20030517-absyn 3433 : Description: 3434 : 3435 : 1. Added cases for IF, WHILE, ANDALSO, and ORELSE to Absyn. 3436 : 3437 : This mainly affects the quality of error messages. However, some 3438 : of the code is now more straightforward than before. (Treatment of 3439 : the above four constructs in translate.sml is much simpler than 3440 : the "macro-expansion" that was going on before. Plus, the mach- 3441 : compiler no longer gets invoked just to be able to compile an 3442 : if-expression.) 3443 : 3444 : 2. The ErrorMsg.Error exception is now caught and absorbed by the 3445 : interactive loop. 3446 : 3447 : ---------------------------------------------------------------------- 3448 : allenleung 1327 Name: Allen Leung 3449 : Date: 2003/05/16 13:05:00 CDT 3450 : Tag: leunga-20030516-cygwin-runtime 3451 : Description: 3452 : 3453 : blume 2155 Ported the runtime system to cygwin, which uses the unix 3454 : allenleung 1327 x86-unix bin files. Missing/buggy features: 3455 : 3456 : blume 2155 o getnetbyname, getnetbyaddr: these functions seem to be missing in 3457 : allenleung 1327 the Cygwin library. 3458 : o Ctrl-C handling may be flaky. 3459 : o Windows system calls and Windows I/O are not supported. 3460 : 3461 : A new set of binfiles is located at: 3462 : 3463 : http://www.dorsai.org/~leunga/boot.x86-unix.tgz 3464 : 3465 : This is only needed for bootstrapping the cygwin version of smlnj. 3466 : Other x86 versions can use the existing binfiles. 3467 : 3468 : ---------------------------------------------------------------------- 3469 : mblume 1317 Name: Matthias Blume 3470 : Date: 2003/04/08 15:42:00 CDT 3471 : Tag: blume-20030408-listpair 3472 : Description: 3473 : 3474 : 1. Added a target 'mlrisc' to installer. 3475 : 3476 : 2. Added missing elements to structure ListPair. 3477 : 3478 : ---------------------------------------------------------------------- 3479 : leunga 1296 Name: Allen Leung 3480 : Date: 2003/01/07 10:40:00 EST 3481 : Tag: leunga-20030107-int-rem 3482 : Description: 3483 : 3484 : Fixed a bug in Int.rem(x,y) where y is a power of 2 on x86. 3485 : The arguments to the SUBL instruction were swapped. 3486 : 3487 : ---------------------------------------------------------------------- 3488 : blume 1229 Name: Matthias Blume 3489 : blume 1294 Date: 2002/12/12 16:25:00 EST 3490 : Tag: blume-20021212-risc-ra 3491 : Description: 3492 : 3493 : Fixed a serious bug in the rewrite code for FP spilling/reloading that 3494 : sent the RA into an infinite loop when floating point registers get 3495 : spilled. (Because of this bug, e.g., nucleic stopped compiling between 3496 : 110.37 and 110.38.) 3497 : There was another set of potential problems related to the handling of 3498 : MLRISC annotations (but those did not yet cause real problems, apparently). 3499 : 3500 : ---------------------------------------------------------------------- 3501 : Name: Matthias Blume 3502 : blume 1291 Date: 2002/12/06 22:40:00 EST 3503 : Tag: blume-20021206-cm-fileid 3504 : Description: 3505 : 3506 : Added a call of SrcPath.sync at the beginning of Parse.parse (in CM). 3507 : This fixes the problem of CM getting confused by files that suddenly 3508 : change their identity (e.g., by getting unlinked and recreated by some 3509 : text editor such as vi). There might be a better/cheaper/cleaner way 3510 : of doing this, but for now this will have to do. 3511 : 3512 : ---------------------------------------------------------------------- 3513 : Name: Matthias Blume 3514 : blume 1288 Date: 2002/10/28 09:50:00 EST 3515 : blume 2155 Tag: blume-20021028-typecheck 3516 : blume 1288 Description: 3517 : 3518 : Exported structure Typecheck from $smlnj/viscomp/core.cm. 3519 : 3520 : ---------------------------------------------------------------------- 3521 : Name: Matthias Blume 3522 : blume 1282 Date: 2002/10/17 09:10:00 EDT 3523 : blume 1279 Tag: Release_110_42 3524 : Description: 3525 : 3526 : blume 1282 In good old tradition, there has been a slight hiccup so that we have 3527 : to patch 110.42 after the fact. The old release tag has been replaced 3528 : (see below). 3529 : 3530 : The change solves a problem with two competing approaches the 3531 : configuration problem regarding MacOS 10.1 vs. MacOS 10.2 which got in 3532 : each other's way. 3533 : 3534 : This change only affects the runtime system code and the installer script. 3535 : (No new bootfiles.) 3536 : 3537 : ---------------------------------------------------------------------- 3538 : Name: Matthias Blume 3539 : Date: 2002/10/16 12:00:00 EDT 3540 : Tag: Release_110_42_removed 3541 : Description: 3542 : 3543 : blume 1279 New working release. New bootfiles. 3544 : 3545 : ---------------------------------------------------------------------- 3546 : Name: Matthias Blume 3547 : blume 1273 Date: 2002/10/10 13:10:00 EDT 3548 : Tag: blume-20021010-ppc-divs 3549 : Description: 3550 : 3551 : The mltree operator DIVS must be implemented with an overflow check on 3552 : the PPC because the hardware indicates divide-by-zero using "overflow" as 3553 : well. 3554 : 3555 : ---------------------------------------------------------------------- 3556 : Name: Matthias Blume 3557 : blume 1261 Date: 2002/07/23 11:45:00 3558 : Tag: blume-20020723-smlnj-home 3559 : Description: 3560 : 3561 : Sml now senses the SMLNJ_HOME environment variable. If this is set, 3562 : then the bin dir is assumed to be in$SMLNJ_HOME/bin and (unless 3563 : CM_PATHCONFIG is also set), the path configuration file is assumed 3564 : to be in $SMLNJ_HOME/lib/pathconfig. This way one can easily move 3565 : the entire tree to some other place and everything will "just work". 3566 : 3567 : (Companion commands such as ml-build and ml-makedepend also sense this 3568 : variable.) 3569 : 3570 : ---------------------------------------------------------------------- 3571 : Name: Matthias Blume 3572 : blume 1259 Date: 2002/07/12 21:19:00 EDT 3573 : Tag: blume-20020712-liveness 3574 : Description: 3575 : 3576 : Exported two useful "step" functions from liveness module (MLRISC). 3577 : 3578 : ---------------------------------------------------------------------- 3579 : Name: Matthias Blume 3580 : blume 1253 Date: 2002/07/05 16:00 EDT 3581 : Tag: Release_110_41 3582 : Description: 3583 : 3584 : New working release. New bootfiles. 3585 : 3586 : ---------------------------------------------------------------------- 3587 : Name: Matthias Blume 3588 : blume 1250 Date: 2002/07/05 10:25:00 EDT 3589 : Tag: blume-20020705-btimp 3590 : Description: 3591 : 3592 : Exported structure BTImp from$smlnj/viscomp/debugprof.cm so that 3593 : other clients can set up backtracing support. 3594 : 3595 : ---------------------------------------------------------------------- 3596 : Name: Matthias Blume 3597 : blume 1249 Date: 2002/06/25 17:23:00 EDT 3598 : Tag: blume-20020625-fpmax 3599 : Description: 3600 : 3601 : Fixed a bug in translation of INLMAX (and INLMIN) for the floating-point 3602 : case. (The sense of the isNaN test was reversed -- which made min and 3603 : max always return their first argument.) 3604 : 3605 : ---------------------------------------------------------------------- 3606 : Name: Matthias Blume 3607 : blume 1240 Date: 2002/06/11 3608 : Tag: blume-20020611-unixpath 3609 : Description: 3610 : 3611 : Back-ported OS.Path.{from,to}UnixPath from idlbasis-devel branch. 3612 : 3613 : ---------------------------------------------------------------------- 3614 : Name: Matthias Blume 3615 : blume 1238 Date: 2002/06/10 16:35:00 EDT 3616 : Tag: blume-20020610-ieeereal 3617 : Description: 3618 : 3619 : I back-ported my implementation of IEEEReal.fromString from the 3620 : idlbasis-devel branch so that we can test it. 3621 : 3622 : Another small change is that ppDec tries to give more information 3623 : than just "" in the case of functors. However, this code is 3624 : broken in some mysterious way if the functor's body's signature 3625 : has not been declared by ascription but gets inferred from the 3626 : implementation. This needs fixing... 3627 : 3628 : ---------------------------------------------------------------------- 3629 : Name: Matthias Blume 3630 : blume 1229 Date: 2002/05/31 3631 : Tag: blume-20020531-btrace-mode 3632 : Description: 3633 : 3634 : Resurrected SMLofNJ.Internals.BTrace.mode. (It accidentally fell by 3635 : the wayside when I switched over to using Controls everywhere.) 3636 : 3637 : ---------------------------------------------------------------------- 3638 : george 1222 Name: Lal George 3639 : Date: 2002/05/23 12:21:40 EDT 3640 : Tag: george-20020523-visual-labels 3641 : Description: 3642 : 3643 : Labels are now displayed in the graphical output to make 3644 : the fall-through and target blocks obvious. 3645 : 3646 : ---------------------------------------------------------------------- 3647 : blume 1204 Name: Matthias Blume 3648 : blume 1220 Date: 2002/05/22 11:03:00 EDT 3649 : Tag: blume-20020522-shrink 3650 : Description: 3651 : 3652 : John tweaked yesterday's fix for 1131 to handle an out-of-memory 3653 : situation that comes up when allocating huge arrays. 3654 : 3655 : ---------------------------------------------------------------------- 3656 : Name: Matthias Blume 3657 : blume 1215 Date: 2002/05/21 16:00:00 EDT 3658 : Tag: Release_110_40 3659 : Description: 3660 : 3661 : New working release (110.40). New bootfiles. 3662 : 3663 : [Also: John Reppy fixed GC bug 1131.] 3664 : 3665 : ---------------------------------------------------------------------- 3666 : Name: Matthias Blume 3667 : blume 1212 Date: 2002/05/21 12:35:00 EDT 3668 : Tag: blume-20020521-cmdoc 3669 : Description: 3670 : 3671 : CM documentation update. 3672 : 3673 : ---------------------------------------------------------------------- 3674 : Name: Matthias Blume 3675 : blume 1211 Date: 2002/05/21 10:55:00 EDT 3676 : Tag: blume-20020521-misc 3677 : Description: 3678 : 3679 : - John tweaked runtime to be silent on heap export (except when 3680 : GC messages are on). 3681 : - I added a few more things (cross-compiling versions of CMB) to 3682 : config/preloads (as suggestions). 3683 : 3684 : ---------------------------------------------------------------------- 3685 : Name: Matthias Blume 3686 : blume 1208 Date: 2002/05/20 22:25:00 EDT 3687 : Tag: blume-20020520-controls 3688 : Description: 3689 : 3690 : - Added ControlUtil structure to control-lib.cm. 3691 : - Use it throughout. 3692 : - Used Controls facility to define MLRISC controls (as opposed to 3693 : registering MLRISC control ref cells with Controls after the fact) 3694 : - Fixed messed-up controls priorities. 3695 : 3696 : * Removed again all the stuff from config/preloads that one wouldn't 3697 : be able to preload at the time the initial heap image is built. 3698 : (Many libraries, e.g., CML, do not exist yet at this time. The 3699 : only libraries that can be preloaded via config/preloads are those 3700 : that come bundled with the bootfiles.) 3701 : 3702 : ---------------------------------------------------------------------- 3703 : Name: Matthias Blume 3704 : blume 1204 Date: 2002/05/20 10:59:00 EDT 3705 : Tag: blume-20020520-preloads 3706 : Description: 3707 : 3708 : Added a lot of commented-out suggestions for things to be included 3709 : in config/preloads. 3710 : 3711 : ---------------------------------------------------------------------- 3712 : leunga 1203 Name: Allen Leung 3713 : Date: 2002/05/18 14:20:00 EDT 3714 : Tag: leunga-20020518-mdl 3715 : Description: 3716 : 3717 : o Made the mdl tool stuff compile and run again. 3718 : o I've disabled all the stuff that depends on RTL specifications; they 3719 : are all badly broken anyway. 3720 : 3721 : ---------------------------------------------------------------------- 3722 : blume 1201 Name: Matthias Blume 3723 : Date: 2002/05/17 16:49:00 EDT 3724 : Tag: blume-20020517-controls 3725 : Description: 3726 : 3727 : 0. John Reppy made several modifications to the SML/NJ library. 3728 : In particular, there is a shiny new controls-lib.cm. 3729 : 3730 : 1. Pushed new controls interface through compiler so that everything 3731 : compiles again. 3732 : 3733 : 2. Added FormatComb and FORMAT_COMB to the CML version of the 3734 : SML/NJ library (so that CML compiles again). 3735 : 3736 : 3. Modified init scripts because XXX_DEFAULT environment variables 3737 : are no longer with us. (Boot-time initialization is now done 3738 : using the same environment variables that are also used for 3739 : startup-time initialization of controls.) 3740 : 3741 : ---------------------------------------------------------------------- 3742 : george 1192 Name: Lal George 3743 : Date: 2002/05/15 09:20:10 EDT 3744 : Tag: george-20020515-pseudo-op-decls 3745 : Description: 3746 : 3747 : All pseudo-ops emitted before the first segment declaration 3748 : such as TEXT, DATA, and BSS directives are assumed to be global 3749 : declarations and are emitted first in the assembly file. This is 3750 : useful in a number of situations where one has pseudo-ops that are not 3751 : specific to any segment, and also works around the constraint that one 3752 : cannot have client pseudo-ops in the TEXT segment. 3753 : 3754 : Because no segment is associated with these declarations it is 3755 : an error to allocate any space or objects before the first segment 3756 : directive and an exception will be raised. However, we cannot make 3757 : this check for client pseudo-ops. 3758 : 3759 : These top level declarations are a field in the CFG graph_info. 3760 : In theory you can continue to add to this field after the CFG has been 3761 : built -- provided you know what you are doing;-) 3762 : 3763 : ---------------------------------------------------------------------- 3764 : blume 1175 Name: Matthias Blume 3765 : blume 1190 Date: 2002/05/13 16:40:00 EDT 3766 : Tag: blume-20020513-pp-etc 3767 : Description: 3768 : 3769 : A few minor bugfixes: 3770 : 3771 : - Stopgap measure for bug recently reported by Elsa Gunter (ppDec). 3772 : (Bogus printouts for redefined bindings still occur. Compiler 3773 : bug should no longer occur now. We need to redo the prettyprinter 3774 : from scratch.) 3775 : 3776 : - CM pathname printer now also adds escape sequences for ( and ) 3777 : 3778 : - commend and docu fixes for ml-nlffi 3779 : 3780 : ---------------------------------------------------------------------- 3781 : Name: Matthias Blume 3782 : blume 1189 Date: 2002/05/10 16:40:00 EDT 3783 : Tag: blume-20020510-erg-textio 3784 : Description: 3785 : 3786 : Applied the following bugfix provided by Emden Gansner: 3787 : 3788 : Output is corrupted when outputSubstr is used rather than output. 3789 : 3790 : blume 2155 The problem occurs when a substring 3791 : blume 1189 3792 : ss = (s, dataStart, dataLen) 3793 : 3794 : blume 2155 where dataStart > 0, fills a stream buffer with avail bytes left. 3795 : avail bytes of s, starting at index dataStart, are copied into the 3796 : blume 1189 buffer, the buffer is flushed, and then the remaining dataLen-avail 3797 : blume 2155 bytes of ss are copied into the beginning of the buffer. Instead of 3798 : starting this copy at index dataStart+avail in s, the current code 3799 : blume 1189 starts the copy at index avail. 3800 : 3801 : Fix: 3802 : In text-io-fn.sml, change line 695 from 3803 : val needsFlush = copyVec(v, avail, dataLen-avail, buf, 0) 3804 : blume 2155 to 3805 : blume 1189 val needsFlush = copyVec(v, dataStart+avail, dataLen-avail, buf, 0) 3806 : 3807 : ---------------------------------------------------------------------- 3808 : Name: Matthias Blume 3809 : blume 1186 Date: 2002/04/12 13:55:00 EDT 3810 : Tag: blume-20020412-assyntax 3811 : Description: 3812 : 3813 : 1. Grabbed newer assyntax.h from the XFree86 project. 3814 : 2. Fiddled with how to compile X86.prim.asm without warnings. 3815 : 3. (Very) Minor cleanup in CM. 3816 : 3817 : ---------------------------------------------------------------------- 3818 : Name: Matthias Blume 3819 : blume 1185 Date: 2002/04/01 (no joke!) 17:07:00 EST 3820 : Tag: blume-20020401-x86div 3821 : Description: 3822 : 3823 : Added full support for div/mod/rem/quot on the x86, using the machine 3824 : instruction's two results (without clumsily recomputing the remainder) 3825 : directly where appropriate. 3826 : 3827 : Some more extensive power-of-two support was added to the x86 instruction 3828 : selector (avoiding expensive divs, mods, and muls where they can be 3829 : replaced with cheaper shifts and masks). However, this sort of thing 3830 : ought to be done earlier, e.g., within the CPS optimizer so that 3831 : all architectures benefit from it. 3832 : 3833 : The compiler compiles to a fixed point, but changes might be somewhat 3834 : fragile nevertheless. Please, report any strange things that you might 3835 : see wrt. div/mod/quot/rem... 3836 : 3837 : ---------------------------------------------------------------------- 3838 : Name: Matthias Blume 3839 : blume 1184 Date: 2002/03/29 17:22:00 3840 : Tag: blume-20020329-div 3841 : Description: 3842 : 3843 : Fixed my broken div/mod logic. Unfortunately, this means that the 3844 : inline code for div/mod now has one more comparison than before. 3845 : Fast paths (quotient > 0 or remainder = 0) are not affected, though. 3846 : The problem was with quotient = 0, because that alone does not tell 3847 : us which way the rounding went. One then has to look at whether 3848 : remainder and divisor have the same sign... :( 3849 : 3850 : Anyway, I replaced the bootfiles with fresh ones... 3851 : 3852 : ---------------------------------------------------------------------- 3853 : Name: Matthias Blume 3854 : blume 1183 Date: 2002/03/29 14:10:00 EST 3855 : Tag: blume-20020329-inlprims 3856 : Description: 3857 : 3858 : NEW BOOTFILES!!! Version number bumped to 110.39.3. 3859 : 3860 : Primops have changed. This means that the bin/boot-file formats have 3861 : changed as well. 3862 : 3863 : To make sure that there is no confusion, I made a new version. 3864 : 3865 : 3866 : CHANGES: 3867 : 3868 : * removed REMT from mltree (remainder should never overflow). 3869 : 3870 : * added primops to deal with divisions of all flavors to the frontend 3871 : 3872 : * handled these primops all the way through so they map to their respective 3873 : MLRISC support 3874 : 3875 : * used these primops in the implementation of Int, Int32, Word, Word32 3876 : 3877 : * removed INLDIV, INLMOD, and INLREM as they are no longer necessary 3878 : 3879 : * parameterized INLMIN, INLMAX, and INLABS by a numkind 3880 : 3881 : * translate.sml now deals with all flavors of INL{MIN,MAX,ABS}, including 3882 : floating point 3883 : 3884 : * used INL{MIN,MAX,ABS} in the implementation of Int, Int32, Word, Word32, 3885 : and Real (but Real.abs maps to a separate floating-point-only primop) 3886 : 3887 : 3888 : TODO items: 3889 : 3890 : * Hacked Alpha32 instruction selection, disabling the selection of REMx 3891 : instructions because the machine instruction encoder cannot handle 3892 : them. (Hppa, PPC, and Sparc instruction selection did not handle 3893 : REM in the first place, and REM is supported by the x86 machine coder.) 3894 : 3895 : * Handle DIV and MOD with DIV_TO_NEGINF directly in the x86 instruction 3896 : selection phase. (The two can be streamlined because the hardware 3897 : delivers both quotient and remainder at the same time anyway.) 3898 : 3899 : * Think about what to do with "valOf(Int32.minInt) div ~1" and friends. 3900 : (Currently the behavior is inconsistent both across architectures and 3901 : wrt. the draft Basis spec.) 3902 : 3903 : * Word8 should eventually be handled natively, too. 3904 : 3905 : * There seems to be one serious bug in mltree-gen.sml. It appears, though, 3906 : as if there currently is no execution path that could trigger it in 3907 : SML/NJ. (The assumptions underlying functions arith and promotable do not 3908 : hold for things like multiplication and division.) 3909 : 3910 : ---------------------------------------------------------------------- 3911 : Name: Matthias Blume 3912 : blume 1181 Date: 2002/03/27 16:27:00 EST 3913 : Tag: blume-20020327-mlrisc-divisions 3914 : Description: 3915 : 3916 : Added support for all four division operations (ML's div, mod, quot, 3917 : and rem) to MLRISC. In the course of doing so, I also rationalized 3918 : the naming (no more annoying switch-around of DIV and QUOT), by 3919 : parameterizing the operation by div_rounding_mode (which can be either 3920 : DIV_TO_ZERO or DIV_TO_NEGINF). 3921 : 3922 : The generic MLTreeGen functor takes care of compiling all four 3923 : operations down to only round-to-zero div. 3924 : 3925 : Missing pieces: 3926 : 3927 : * Doing something smarter than relying on MLTreeGen on architectures 3928 : like, e.g., the x86 where hardware division delivers both quotient and 3929 : remainder at the same time. With this, the implementation of the 3930 : round-to-neginf operations could be further streamlined. 3931 : 3932 : * Remove inlining support for div/mod/rem from the frontend and replace it 3933 : with primops that get carried through to the backend. Do this for all 3934 : int and word types. 3935 : 3936 : ---------------------------------------------------------------------- 3937 : Name: Matthias Blume 3938 : blume 1180 Date: 2002/03/25 17:25:00 EST 3939 : Tag: blume-20020325-divmod 3940 : Description: 3941 : 3942 : I improved (hopefully without breaking them) the implementation of Int.div, 3943 : Int.mod, and Int.rem. For this, the code in translate.sml now takes 3944 : advantage of the following observations: 3945 : 3946 : Let q = x quot y r = x rem y 3947 : d = x div y m = x mod y 3948 : 3949 : where "quot" is the round-to-zero version of integer division that 3950 : hardware usually provides. Then we have: 3951 : 3952 : r = x - q * y where neither the * nor the - will overflow 3953 : d = if q >= 0 orelse x = q * y then q else q - 1 3954 : where neither the * nor the - will overflow 3955 : m = if q >= 0 orelse r = 0 then r else r + y 3956 : where the + will not overflow 3957 : 3958 : This results in substantial simplification of the generated code. 3959 : The following table shows the number of CFG nodes and edges generated 3960 : for 3961 : fun f (x, y) = x OPER y 3962 : (* with OPER \in div, mod, quot, rem *) 3963 : 3964 : 3965 : OPER | nodes(old) | edges(old) | nodes(new) | edges(new) 3966 : -------------------------------------------------------- 3967 : div | 24 | 39 | 12 | 16 3968 : mod | 41 | 71 | 12 | 16 3969 : quot | 8 | 10 | 8 | 10 3970 : rem | 10 | 14 | 8 | 10 3971 : 3972 : 3973 : ---------------------------------------------------------------------- 3974 : Name: Matthias Blume 3975 : blume 1179 Date: 2002/03/25 22:06:00 EST 3976 : Tag: blume-20020325-cprotobug 3977 : Description: 3978 : 3979 : Fixed a bug in cproto (c prototype decoder). 3980 : 3981 : ---------------------------------------------------------------------- 3982 : Name: Matthias Blume 3983 : blume 1178 Date: 2002/03/25 16:00:00 EST 3984 : Tag: blume-20020325-raw-primops 3985 : Description: 3986 : 3987 : I did some cleanup to Allen's new primop code and 3988 : replaced yesterday's bootfiles with new ones. 3989 : (But they are stored in the same place.) 3990 : 3991 : ---------------------------------------------------------------------- 3992 : Name: Matthias Blume 3993 : blume 1175 Date: 2002/03/24 22:40:00 EST 3994 : Tag: blume-20020324-bootfiles 3995 : Description: 3996 : 3997 : Made the bootfiles that Allen asked for. 3998 : 3999 : ---------------------------------------------------------------------- 4000 : leunga 1174 Name: Allen Leung 4001 : Date: 2002/03/23 15:50:00 EST 4002 : Tag: leunga-20020323-flint-cps-rcc-primops 4003 : Description: 4004 : 4005 : 1. Changes to FLINT primops: 4006 : 4007 : (* make a call to a C-function; 4008 : * The primop carries C function prototype information and specifies 4009 : * which of its (ML-) arguments are floating point. C prototype 4010 : * information is for use by the backend, ML information is for 4011 : * use by the CPS converter. *) 4012 : | RAW_CCALL of { c_proto: CTypes.c_proto, 4013 : ml_args: ccall_type list, 4014 : ml_res_opt: ccall_type option, 4015 : reentrant : bool 4016 : } option 4017 : (* Allocate uninitialized storage on the heap. 4018 : * The record is meant to hold short-lived C objects, i.e., they 4019 : blume 2155 * are not ML pointers. With the tag, the representation is 4020 : leunga 1174 * the same as RECORD with tag tag_raw32 (sz=4), or tag_fblock (sz=8) 4021 : *) 4022 : blume 2155 | RAW_RECORD of {tag:bool,sz:int} 4023 : leunga 1174 and ccall_type = CCALL_INT32 | CCALL_REAL64 | CCALL_ML_PTR 4024 : 4025 : 2. These CPS primops are now overloaded: 4026 : 4027 : rawload of {kind:numkind} 4028 : rawstore of {kind:numkind} 4029 : 4030 : The one argument form is: 4031 : 4032 : rawload {kind} address 4033 : 4034 : The two argument form is: 4035 : blume 2155 4036 : leunga 1174 rawload {kind} [ml object, byte-offset] 4037 : 4038 : 3. RAW_CCALL/RCC now takes two extra arguments: 4039 : 4040 : a. The first is whether the C call is reentrant, i.e., whether 4041 : ML state should be saved and restored. 4042 : b. The second argument is a string argument specifying the name of 4043 : library and the C function. 4044 : 4045 : These things are currently not handled in the code generator, yet. 4046 : 4047 : 4. In CProto, 4048 : 4049 : blume 2155 An encoding type of "bool" means "ml object" and is mapped into 4050 : C prototype of PTR. Note that "bool" is different than "string", 4051 : leunga 1174 even though "string" is also mapped into PTR, because "bool" 4052 : is assigned an CPS type of BOGt, while "string" is assigned INT32t. 4053 : 4054 : 5. Pickler/unpicker 4055 : 4056 : Changed to handle RAW_RECORD and newest RAW_CCALL 4057 : 4058 : 6. MLRiscGen, 4059 : 4060 : 1. Changed to handle the new rawload/rawstore/rawrecord operators. 4061 : 2. Code for handling C Calls has been moved to a new module CPSCCalls, 4062 : in the file CodeGen/cpscompile/cps-c-calls.sml 4063 : 4064 : 7. Added the conditional move operator 4065 : 4066 : condmove of branch 4067 : 4068 : blume 2155 to cps. Generation of this is still buggy so it is currently 4069 : leunga 1174 disabled. 4070 : blume 2155 4071 : leunga 1174 ---------------------------------------------------------------------- 4072 : george 1168 Name: Lal George 4073 : blume 2155 Date: 2002/03/22 14:18:25 EST 4074 : george 1171 Tag: george-20020322-cps-branch-prob 4075 : george 1168 Description: 4076 : 4077 : blume 2155 Implemented the Ball-Larus branch prediction-heuristics, and 4078 : george 1168 incorporated graphical viewers for control flow graphs. 4079 : 4080 : george 1171 Ball-Larus Heuristics: 4081 : george 1168 --------------------- 4082 : See the file compiler/CodeGen/cpscompile/cpsBranchProb.sml. 4083 : 4084 : By design it uses the Dempster-Shafer theory for combining 4085 : probabilities. For example, in the function: 4086 : 4087 : fun f(n,acc) = if n = 0 then acc else f(n-1, n*acc) 4088 : 4089 : the ball-larus heuristics predicts that the n=0 is unlikely 4090 : (OH-heuristic), and the 'then' branch is unlikely because of the 4091 : RH-heuristic -- giving the 'then' branch an even lower combined 4092 : george 1171 probability using the Dempster-Shafer theory. 4093 : george 1168 4094 : Finally, John Reppy's loop analysis in MLRISC, further lowers the 4095 : probability of the 'then' branch because of the loop in the else 4096 : branch. 4097 : 4098 : 4099 : Graphical Viewing: 4100 : blume 2155 ------------------ 4101 : george 1168 I merely plugged in Allen's graphical viewers into the compiler. The 4102 : additional code is not much. At the top level, saying: 4103 : 4104 : Control.MLRISC.getFlag "cfg-graphical-view" := true; 4105 : 4106 : will display the graphical view of the control flow graph just before 4107 : back-patching. daVinci must be in your path for this to work. If 4108 : daVinci is not available, then the default viewer can be changed 4109 : using: 4110 : 4111 : Control.MLRISC.getString "viewer" 4112 : 4113 : which can be set to "dot" or "vcg" for the corresponding viewers. Of 4114 : course, these viewers must be in your path. 4115 : 4116 : The above will display the compilation unit at the level of clusters, 4117 : many of which are small, boring, and un-interesting. Also setting: 4118 : 4119 : Control.MLRISC.getInt "cfg-graphical-view_size" 4120 : 4121 : will display clusters that are larger than the value set by the above. 4122 : 4123 : blume 2155 4124 : george 1168 ---------------------------------------------------------------------- 4125 : blume 1159 Name: Matthias Blume 4126 : Date: 2002/03/21 22:20:00 EST 4127 : Tag: blume-20020321-kmp-bugfix 4128 : Description: 4129 : 4130 : Changed the interface to the KMP routine in PreString and fixed 4131 : a minor bug in one place where it was used. 4132 : 4133 : ---------------------------------------------------------------------- 4134 : leunga 1156 Name: Allen Leung 4135 : leunga 1158 Date: 2002/03/21 20:30:00 EST 4136 : Tag: leunga-20020321-cfg 4137 : Description: 4138 : 4139 : Fixed a potential problem in cfg edge splitting. 4140 : 4141 : ---------------------------------------------------------------------- 4142 : Name: Allen Leung 4143 : leunga 1156 Date: 2002/03/21 17:15:00 EST 4144 : Tag: leunga-20020321-x86-fp-cfg 4145 : Description: 4146 : 4147 : blume 2155 1. Recoded the buggy parts of x86-fp. 4148 : leunga 1156 4149 : a. All the block reordering code has been removed. 4150 : We now depend on the block placement phases to do this work. 4151 : 4152 : b. Critical edge splitting code has been simplified and moved into the 4153 : CFG modules, as where they belong. 4154 : 4155 : Both of these were quite buggy and complex. The code is now much, much 4156 : simpler. 4157 : 4158 : 2. X86 backend. 4159 : 4160 : a. Added instructions for 64-bit support. Instruction selection for 4161 : 64-bit has not been committed, however, since that 4162 : blume 2155 requires changes to MLTREE which haven't been approved by 4163 : leunga 1156 Lal and John. 4164 : 4165 : blume 2155 b. Added support for FUCOMI and FUCOMIP when generating code for 4166 : leunga 1156 PentiumPro and above. We only generate these instructions in 4167 : the fast-fp mode. 4168 : 4169 : blume 2155 c. Added cases for JP and JNP in X86FreqProps. 4170 : 4171 : leunga 1156 3. CFG 4172 : 4173 : CFG now has a bunch of methods for edge splitting and merging. 4174 : 4175 : 4. Machine description. 4176 : 4177 : John's simplification of MLTREE_BASIS.fcond broke a few machine 4178 : description things: 4179 : 4180 : rtl-build.{sig,sml} and hppa.mdl fixed. 4181 : 4182 : blume 2155 NOTE: the machine description stuff in the repository is still broken. 4183 : Again, I can't put my fixes in because that involves 4184 : changes to MLTREE. 4185 : leunga 1156 4186 : ---------------------------------------------------------------------- 4187 : blume 1145 Name: Matthias Blume 4188 : blume 1155 Date: 2002/03/20 15:55:00 EST 4189 : Tag: blume-20020320-kmp 4190 : Description: 4191 : 4192 : Implemented Knuth-Morris-Pratt string matching in PreString and used