1 2011-03-28 Robert Brown <robert.brown at gmail.com> 2 3 * match-block.lisp: Use &body in match-case and matchf-case so 4 code that uses them is correctly indented by editors. 5 6 2011-02-27 author <author at paniscia.local> 7 8 * .cvsignore: Updated. 9 10 * docs/html/images/Thumbs.db, docs/html/images/Thumbs.db:encryptable: 11 Removed Files: 12 Thumbs.db Thumbs.db:encryptable 13 14 2011-02-26 author <author at paniscia.local> 15 16 * .cvsignore: Updated. 17 18 * variables.lisp, unifier.lisp: 19 Minor changes (added COPYING information and other minutiae). 20 21 * unification-package.lisp: Exported a few more symbols. 22 23 * templates-hierarchy.lisp: 24 Minor changes (added COPYING information and other minutiae). 25 26 * substitutions.lisp: 27 Changed some environment functions and improved the DUMP-* ones. 28 29 * match-block.lisp, lambda-list-parsing.lisp, cl-unification.system, cl-unification.asd, cl-unification-lib.asd, apply-substitution.lisp: 30 Minor changes (added COPYING information and other minutiae). 31 32 * ACKNOWLEDGEMENTS: Acknowledgements updated. 33 34 2011-02-24 author <author at paniscia.local> 35 36 * ChangeLog, apply-substitution.lisp, cl-unification.system, lambda-list-parsing.lisp, lib-dependent/cl-ppcre-template.lisp, match-block.lisp, templates-hierarchy.lisp, unifier.lisp: 37 Delete trailing whitespace. In lambda-list-parsing.lisp this fixes a bug 38 with ~@<newline> format directives. 39 40 * ChangeLog, test/unification-tests.lisp, unifier.lisp: 41 unifier.lisp: Allow vectors to unify with sequence templates. 42 test/unification-tests.lisp: new test to verify the change 43 44 2011-02-24 Robert Brown <robert.brown at gmail.com> 45 46 * lambda-list-parsing.lisp: Delete trailing whitespace that turned 47 ~@<newline> into a bogus format directive by converting it into 48 ~@<space><newline> 49 50 * unifier.lisp, apply-substitution.lisp, cl-unification.system 51 * match-block.lisp, templates-hierarchy.lisp, unifier.lisp 52 * lib-dependent/cl-ppcre-template.lisp: delete trailing whitespace 53 54 2011-02-24 Robert Brown <robert.brown at gmail.com> 55 56 * unifier.lisp: Allow vectors to unify with sequence templates. 57 * test/unification-tests.lisp: new test to verify the change 58 59 2011-02-16 Robert Brown <robert.brown at gmail.com> 60 61 * cl-unification.asd: Add support for asdf:test-system. 62 63 * cl-unification-test.asd: File added. 64 65 2011-01-18 author <author at paniscia.local> 66 67 * unifier.lisp: 68 After a careful reading of PAIP fixed a very subtle bug in VAR-UNIFY 69 that prevented the correct unification of: 70 71 (?x ?y a) 72 73 with 74 75 (?y ?x ?x) 76 77 * substitutions.lisp: 78 Added debugging functions DUMP-FRAME and DUMP-ENVIRONMENT. 79 80 * .cvsignore: Added .cvsignore file. 81 82 2009-12-17 author <author at paniscia.local> 83 84 * ChangeLog: ChangeLog updated. 85 86 * lib-dependent/cl-ppcre-template.asd: Initial checkin. 87 88 * lib-dependent/cl-ppcre-template.lisp: 89 Patched to use Cl-PPCRE:SCAN-TO-STRINGS (thanks to Pixel // pinterface [a] gmail dot com). 90 91 * unifier.lisp: Minor cosmetic changes. 92 93 * unification-package.lisp: Exported MATCHF-CASE. 94 95 * templates-hierarchy.lisp: 96 Fixed a couple of problems with some accessors in the NUMBER, 97 STRUCTURE-OBJECT and STANDARD-OBJECT templates. 98 99 * match-block.lisp: Added MATCHF* macros. 100 101 2009-12-17 author <author@paniscia.local> 102 103 * lib-dependent/cl-ppcre-template.asd: Initial checkin. 104 105 * lib-dependent/cl-ppcre-template.lisp: 106 Patched to use Cl-PPCRE:SCAN-TO-STRINGS (thanks to Pixel // pinterface [a] gmail dot com). 107 108 * unifier.lisp: Minor cosmetic changes. 109 110 * unification-package.lisp: Exported MATCHF-CASE. 111 112 * templates-hierarchy.lisp: 113 Fixed a couple of problems with some accessors in the NUMBER, 114 STRUCTURE-OBJECT and STANDARD-OBJECT templates. 115 116 * match-block.lisp: Added MATCHF* macros. 117 118 2009-04-18 author <author@paniscia.local> 119 120 * ChangeLog: ChangeLog updated. 121 122 * cl-unification.system, cl-unification.asd: 123 System definitions files (.asd and .system) modified in order to make 124 dependency form CL-PPCRE optional. 125 126 * lib-dependent/cl-ppcre-template.system: File added. 127 128 * lib-dependent/cl-ppcre-template.lisp: 129 Removed REQUIRE of CL-PPCRE. Too brittle. 130 131 * cl-unification-lib.asd: File added. 132 133 2009-04-18 author <author@Macintosh-9.local> 134 135 * cl-unification.system, cl-unification.asd: 136 System definitions files (.asd and .system) modified in order to make 137 dependency form CL-PPCRE optional. 138 139 * lib-dependent/cl-ppcre-template.system: File added. 140 141 * lib-dependent/cl-ppcre-template.lisp: 142 Removed REQUIRE of CL-PPCRE. Too brittle. 143 144 * cl-unification-lib.asd: File added. 145 146 2009-04-17 author <author@Macintosh-9.local> 147 148 * unification-package.lisp: 149 Added a few exports and changed the actual package name (i.e., I put 150 my money where my mouth is; the "published" package name is now a 151 nickname). 152 153 * apply-substitution.lisp: 154 Fixed a couple of snags. APPLY-SUBSTITUTION was not applied 155 recursively and it was barfing on numbers. 156 Current version is still incomplete, but it serves as a template for 157 further development. 158 159 2009-04-15 author <author@Macintosh-9.local> 160 161 * ChangeLog: ChangeLog updated. 162 163 * lib-dependent/cl-ppcre-template.lisp, test/unification-tests.lisp: 164 Modified Files: 165 test/unification-tests.lisp 166 Added Files: 167 lib-dependent/cl-ppcre-template.lisp 168 169 The cl-ppcre-template reuses E. Weitz's wonderful CL-PPCRE library 170 to provide a seamless (YMMV) reuse of regular expressions within 171 CL-UNIFICATION. 172 173 * templates-hierarchy.lisp: Added LAMBDA-TEMPLATE. 174 175 * substitutions.lisp: 176 Added some functionality to extract all variables and/or all values 177 from an environment or a frame. 178 179 * match-block.lisp: 180 Added MATCHF (whose name may change) to simplify the 181 'destructuring-bind'-like syntax and behavior of the matching 182 facilities. 183 184 * COPYING: Dates updated. 185 186 * unifier.lisp: 187 Major API change to 'unify'. It now accepts keywords. Old code 188 shouls not be affected, but new code is now more flexible. Look the 189 the STRING and (new) CHARACTER methods to see how this change is 190 affecting the code. 191 192 * variables.lisp: Some 'diff' unfathomable change happened. 193 194 * unification-package.lisp: Added exports of a few symbols. 195 196 * cl-unification.system, cl-unification.asd: 197 Fixed a few snags and added "lib-dependent" module. 198 199 * apply-substitution.lisp: Added some functionality and comments. 200 201 2009-04-15 author <author@paniscia.pd.disco.unimib.it> 202 203 * lib-dependent/cl-ppcre-template.lisp, test/unification-tests.lisp: 204 Modified Files: 205 test/unification-tests.lisp 206 Added Files: 207 lib-dependent/cl-ppcre-template.lisp 208 209 The cl-ppcre-template reuses E. Weitz's wonderful CL-PPCRE library 210 to provide a seamless (YMMV) reuse of regular expressions within 211 CL-UNIFICATION. 212 213 * templates-hierarchy.lisp: Added LAMBDA-TEMPLATE. 214 215 * substitutions.lisp: 216 Added some functionality to extract all variables and/or all values 217 from an environment or a frame. 218 219 * match-block.lisp: 220 Added MATCHF (whose name may change) to simplify the 221 'destructuring-bind'-like syntax and behavior of the matching 222 facilities. 223 224 * COPYING: Dates updated. 225 226 * unifier.lisp: 227 Major API change to 'unify'. It now accepts keywords. Old code 228 shouls not be affected, but new code is now more flexible. Look the 229 the STRING and (new) CHARACTER methods to see how this change is 230 affecting the code. 231 232 * variables.lisp: Some 'diff' unfathomable change happened. 233 234 * unification-package.lisp: Added exports of a few symbols. 235 236 * cl-unification.system, cl-unification.asd: 237 Fixed a few snags and added "lib-dependent" module. 238 239 * apply-substitution.lisp: Added some functionality and comments. 240 241 2008-07-13 author <author@paniscia.pd.disco.unimib.it> 242 243 * ChangeLog: Changelog updated. 244 245 * ACKNOWLEDGEMENTS: 246 Added credits to a few people. Missing ones should bug the maintainer :) 247 248 * README: Copyright dates updated. 249 250 * unification.asd, unification.system: Cleaning up. 251 Committing in . 252 253 Removed Files: 254 unification.asd unification.system 255 256 * templates-hierarchy-saved.lisp: Clenaing up. 257 Committing in . 258 259 Removed Files: 260 templates-hierarchy-saved.lisp 261 262 * INSTALLATION: Instructions updated. 263 264 * COPYING: Copyright dates updated. 265 266 * test/unification-tests.lisp: Added file. 267 268 * substitutions.lisp, templates-hierarchy.lisp, unification-package.lisp, variables.lisp: 269 Some modification added. Exported symbols and reverted 270 reader macro #T to construct template instances at read time. 271 Added MAKE-LOAD-FORM method for templates which should fix problem with 272 SBCL. 273 274 Committing in . 275 276 Modified Files: 277 substitutions.lisp templates-hierarchy.lisp 278 unification-package.lisp variables.lisp 279 280 * cl-unification.system: 281 Added explicit :source-extension to accomodate Allegro CL. 282 283 2008-07-13 author <author@Macintosh.local> 284 285 * ACKNOWLEDGEMENTS: 286 Added credits to a few people. Missing ones should bug the maintainer :) 287 288 * README: Copyright dates updated. 289 290 * unification.asd, unification.system: Cleaning up. 291 Committing in . 292 293 Removed Files: 294 unification.asd unification.system 295 296 * templates-hierarchy-saved.lisp: Cleaning up. 297 Committing in . 298 299 Removed Files: 300 templates-hierarchy-saved.lisp 301 302 * INSTALLATION: Instructions updated. 303 304 * COPYING: Copyright dates updated. 305 306 * test/unification-tests.lisp: Added file. 307 308 * substitutions.lisp, templates-hierarchy.lisp, unification-package.lisp, variables.lisp: 309 Some modification added. Exported symbols and reverted 310 reader macro #T to construct template instances at read time. 311 Added MAKE-LOAD-FORM method for templates which should fix problem with 312 SBCL. 313 314 Committing in . 315 316 Modified Files: 317 substitutions.lisp templates-hierarchy.lisp 318 unification-package.lisp variables.lisp 319 320 * cl-unification.system: 321 Added explicit :source-extension to accomodate Allegro CL. 322 323 2008-07-10 author <author@Macintosh.local> 324 325 * apply-substitution.lisp: 326 Removed EXPORT of APPLY-SUBSTITUTION as it is already in the DEFPACKAGE. 327 328 2007-11-09 author <author@Macintosh.local> 329 330 * docs/html/index.html: Changed the position of the disclaimer. 331 332 * ChangeLog: ChangeLog updated. 333 334 * match-block.lisp: 335 Made several changes to improve MATCH-CASE (following a note from Ivan 336 Boldyrev from a long time ago), MATCHING and MATCH. 337 338 Else-clauses are now handled correctly (AFAICT). 339 340 Single variable templates in MATCH, MATCH-CASE and MATCHING clauses do 341 not need to be quoted. 342 343 MATCHING was generating one gensym'ed variable per clause without 344 creating an appropriate enclosing LET. This is now fixed. 345 346 * substitutions.lisp: 347 Changed the top comment and added a (:copier nil) option to the 348 ENVIRONMENT defstruct, as COPY-ENVIRONMENT is defined later in the 349 file. 350 351 * cl-unification.system, cl-unification.asd: 352 Added the new system building files with more meaningful names 353 w.r.t. the name of the library. 354 355 * unification.asd, unification.system: 356 Marked the two system building files as 'obsolete', before removing 357 them from the repository. The new files are prefixed by 'cl-'. 358 359 2007-11-09 author <author@papadopoulou-2.ydras.offices.> 360 361 * match-block.lisp: 362 Made several changes to improve MATCH-CASE (following a note from Ivan 363 Boldyrev from a long time ago), MATCHING and MATCH. 364 365 Else-clauses are now handled correctly (AFAICT). 366 367 Single variable templates in MATCH, MATCH-CASE and MATCHING clauses do 368 not need to be quoted. 369 370 MATCHING was generating one gensym'ed variable per clause without 371 creating an appropriate enclosing LET. This is now fixed. 372 373 * substitutions.lisp: 374 Changed the top comment and added a (:copier nil) option to the 375 ENVIRONMENT defstruct, as COPY-ENVIRONMENT is defined later in the 376 file. 377 378 * cl-unification.system, cl-unification.asd: 379 Added the new system building files with more meaningful names 380 w.r.t. the name of the library. 381 382 * unification.asd, unification.system: 383 Marked the two system building files as 'obsolete', before removing 384 them from the repository. The new files are prefixed by 'cl-'. 385 386 2007-05-21 author <author@papadopoulou-2.ydras.offices.> 387 388 * ChangeLog: ChangeLog updated. 389 390 * README, ACKNOWLEDGEMENTS, COPYING, INSTALLATION: 391 Updated copyrights dates and changed a few instructions in the 392 INSTALLATION file. 393 394 * docs/html/index.html: Updated copyrights dates. 395 396 * ChangeLog: ChangeLog updated. 397 398 * unification-package.lisp, unification.asd, apply-substitution.lisp, match-block.lisp, substitutions.lisp: 399 See previous message. 400 401 * unification.system: 402 Added file 'apply-substitition.lisp' with a few new functions that are 403 a start for the variable substitition operation. 404 405 New fixes to the MATCH and MATCH-CASE macros. They should now work as 406 advertised. 407 408 Minor changes to other files: added exports to package file, fixed 409 .system and .asd files. 410 411 2007-05-21 author <author@Paniscia-di-Marco-Antoniotti.local> 412 413 * README, ACKNOWLEDGEMENTS, COPYING, INSTALLATION: 414 Updated copyrights dates and changed a few instructions in the 415 INSTALLATION file. 416 417 * docs/html/index.html: Updated copyrights dates. 418 419 * ChangeLog: ChangeLog updated. 420 421 * unification-package.lisp, unification.asd, apply-substitution.lisp, match-block.lisp, substitutions.lisp: 422 See previous message. 423 424 * unification.system: 425 Added file 'apply-substitition.lisp' with a few new functions that are 426 a start for the variable substitition operation. 427 428 New fixes to the MATCH and MATCH-CASE macros. They should now work as 429 advertised. 430 431 Minor changes to other files: added exports to package file, fixed 432 .system and .asd files. 433 434 2007-05-21 author <author@paniscia.disco.unimib.it> 435 436 * unification.system: 437 Added file 'apply-substitition.lisp' with a few new functions that are 438 a start for the variable substitition operation. 439 440 New fixes to the MATCH and MATCH-CASE macros. They should now work as 441 advertised. 442 443 Minor changes to other files: added exports to package file, fixed 444 .system and .asd files. 445 446 2006-07-19 author <author@paniscia.disco.unimib.it> 447 448 * templates-hierarchy.lisp, unifier.lisp: 449 Fixed two problems with the unifier machinery. 450 451 The first one had to do with the matching of NIL against SYMBOL and LIST 452 in several places: essentially, the problem is incongruencies in the 453 results of COMPUTE-APPLICABLE-METHODS in these cases. I think I caught 454 most of them: unification of lists and the occur-check were the obvious 455 places where things went awry. 456 457 The second problem had to do with the reader macro #T. The original 458 code generated an object at read time, which is not such a good idea. 459 Now the code generates a call to MAKE-TEMPLATE with is evaluated later. 460 Incidentally, the reader macro function is now called |sharp-T-reader|, in 461 order to placate Emacs fontification. 462 463 Modified Files: 464 templates-hierarchy.lisp unifier.lisp 465 466 * unification-package.lisp: Added missing export. 467 468 2005-10-25 author <author@paniscia.disco.unimib.it> 469 470 * unifier.lisp: Fixed problem with the unification of a list with a 471 SEQUENCE-TEMPLATE. The implementation was not checking that the 472 length of the list was compatible with the length of the required 473 elements in the template. 474 475 Apart from that, keyword matching is still unimplemented. 476 477 * match-block.lisp: 478 Fixed problem with checking the presence of T and OTHERWISE clauses in 479 MATCHING. 480 481 2005-07-25 author <author@paniscia.disco.unimib.it> 482 483 * docs/html/downloads.html: Minor cleanup. 484 485 2005-05-20 author <author@paniscia.disco.unimib.it> 486 487 * docs/html/links.html: Fixed typos. 488 489 * docs/html/nil-template-class.html: Fixed bug in documentation. 490 491 * docs/html/links.html: Page updated. 492 493 * docs/html/unification-dictionary.html: Incremental change to page. 494 495 * docs/html/number-template-class.html: Fixed a documentation bug. 496 Thanks to Norman Werner for spotting it. 497 498 * docs/html/index.html: Added link to "Mailing Lists" page. 499 500 * docs/html/mailing-lists.html: File added. 501 502 * unifier.lisp: 503 Fixed two major bugs reported by Norman Werver. Unification of 504 strings and symbols and of numers and symbols was not recurring on 505 VAR-UNIFY, as required; thus 506 507 (unify '(?x ?x) '("asd" "qweert")) 508 and 509 (unify '(foo ?x baz) '(foo 42 ?x)) 510 511 would succed. 512 The two cases are now fixed. 513 514 2005-05-19 author <author@paniscia.disco.unimib.it> 515 516 * README: Year updated. 517 518 * ACKNOWLEDGEMENTS: File added. 519 520 * ChangeLog: ChangeLog updated. 521 522 * COPYING: Updated copyright notice. 523 524 * docs/html/downloads.html, docs/html/index.html: 525 Changed the DISCLAIMER parts in the files, in order to clarify the licensing 526 of the code. 527 528 2005-05-19 mantoniotti <mantoniotti@vault> 529 530 * COPYING: Updated copyright notice. 531 532 * docs/html/downloads.html, docs/html/index.html: 533 Changed the DISCLAIMER parts in the files, in order to clarify the licensing 534 of the code. 535 536 2005-04-27 mantoniotti <mantoniotti@vault> 537 538 * docs/html/control-flow.html: Fixed factorial example. 539 540 * match-block.lisp: 541 Added IGNORABLE declaration to MATCH macro expansion. 542 This is useful in quieting various compilers. 543 544 * match-block.lisp: Added acknowledgement to Peter Scott. 545 546 * match-block.lisp: Fixed bug in condition signaling within MATCH-CASE. 547 548 * templates-hierarchy.lisp: 549 Fixed bugs in COLLECT-TEMPLATE-VARS for NUMBER-TEMPLATEs. 550 If a variable was present, then the method was not returning a list. 551 The treatment of constants like PI was also incorrect, as the numeric 552 value was returned. Retunrning () seems the right thing to do 553 instead. 554 555 * match-block.lisp: 556 Added MATCH-CASE macro. Slightly modified from the version provided 557 by Peter Scott. 558 559 * unification.asd: Added unification.asd file. 560 561 2005-04-21 mantoniotti <mantoniotti@vault> 562 563 * docs/html/links.html: Fixed, but not completed, the page. 564 565 2005-01-28 mantoniotti <mantoniotti@vault> 566 567 * docs/html/downloads.html: Added file `downloads.html'. 568 569 * docs/html/index.html: 570 Minor changes to text. Fixed `download.html' link. 571 572 * lambda-list-parsing.lisp, unifier.lisp: 573 Fixed minor problem in Lambda List parsing. 574 Also VALID-TEMPLATE-P was expanded, and it looks like it should become 575 a generic function. 576 577 2004-11-17 mantoniotti <mantoniotti@vault> 578 579 * docs/html/images/unif-templ-hier.pcl, docs/html/images/unif-templ-hier.ps: 580 Initial import. 581 582 * docs/html/images/unif-templ-hier.pcl, docs/html/images/unif-templ-hier.ps: 583 New file. 584 585 * docs/html/images/Thumbs.db, docs/html/images/Thumbs.db:encryptable, docs/html/images/header_bg.gif, docs/html/images/header_bg_1.gif, docs/html/images/shim.gif, docs/html/images/unif-templ-hier.gif, docs/html/images/unif-templ-hier.pdf, docs/html/images/unif-templ-hier.sxd, docs/html/make-shared-environment-function.html, docs/html/match-case-macro.html, docs/html/standard-object-template-class.html, docs/html/string-template-class.html, docs/html/structure-object-template-class.html, docs/html/subseq-template-class.html: 586 Initial import. 587 588 * docs/html/images/Thumbs.db, docs/html/images/Thumbs.db:encryptable, docs/html/images/header_bg.gif, docs/html/images/header_bg_1.gif, docs/html/images/shim.gif, docs/html/images/unif-templ-hier.gif, docs/html/images/unif-templ-hier.pdf, docs/html/images/unif-templ-hier.sxd, docs/html/make-shared-environment-function.html, docs/html/match-case-macro.html, docs/html/standard-object-template-class.html, docs/html/string-template-class.html, docs/html/structure-object-template-class.html, docs/html/subseq-template-class.html: 589 New file. 590 591 * docs/html/.DS_Store, docs/html/aref-template-class.html, docs/html/array-template-class.html, docs/html/control-flow.html, docs/html/dictionary.html, docs/html/element-template-class.html, docs/html/elt-template-class.html, docs/html/expression-template-class.html, docs/html/find-variable-value-function.html, docs/html/hash-t-read-macro.html, docs/html/index.html, docs/html/links.html, docs/html/list-template-class.html, docs/html/main.css, docs/html/make-empty-environment-function.html, docs/html/match-macro.html, docs/html/matching-macro.html, docs/html/nil-template-class.html, docs/html/nth-template-class.html, docs/html/nthcdr-template-class.html, docs/html/number-template-class.html, docs/html/sequence-template-class.html, docs/html/symbol-template-class.html, docs/html/template-class.html, docs/html/template-p-function.html, docs/html/template-spec-accessor.html, docs/html/templates.html, docs/html/type-template-class.html, docs/html/unification-dictionary.html, docs/html/unify-function.html, docs/html/unify-package.html, docs/html/unifying-substitutions.html, docs/html/usci-variable.html, docs/html/vector-template-class.html, unification-package.lisp, unification.system, unifier.lisp, variables.lisp: 592 Initial import. 593 594 * docs/html/.DS_Store, docs/html/aref-template-class.html, docs/html/array-template-class.html, docs/html/control-flow.html, docs/html/dictionary.html, docs/html/element-template-class.html, docs/html/elt-template-class.html, docs/html/expression-template-class.html, docs/html/find-variable-value-function.html, docs/html/hash-t-read-macro.html, docs/html/index.html, docs/html/links.html, docs/html/list-template-class.html, docs/html/main.css, docs/html/make-empty-environment-function.html, docs/html/match-macro.html, docs/html/matching-macro.html, docs/html/nil-template-class.html, docs/html/nth-template-class.html, docs/html/nthcdr-template-class.html, docs/html/number-template-class.html, docs/html/sequence-template-class.html, docs/html/symbol-template-class.html, docs/html/template-class.html, docs/html/template-p-function.html, docs/html/template-spec-accessor.html, docs/html/templates.html, docs/html/type-template-class.html, docs/html/unification-dictionary.html, docs/html/unify-function.html, docs/html/unify-package.html, docs/html/unifying-substitutions.html, docs/html/usci-variable.html, docs/html/vector-template-class.html, unification-package.lisp, unification.system, unifier.lisp, variables.lisp: 595 New file. 596 597 * COPYING, INSTALLATION, README, lambda-list-parsing.lisp, match-block.lisp, substitutions.lisp, templates-hierarchy-saved.lisp, templates-hierarchy.lisp: 598 Initial import. 599 600 * COPYING, INSTALLATION, README, lambda-list-parsing.lisp, match-block.lisp, substitutions.lisp, templates-hierarchy-saved.lisp, templates-hierarchy.lisp: 601 New file.