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

Revision 2650 - (view) (download)

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