feat: 9.5.9
This commit is contained in:
		
							parent
							
								
									cb1753732b
								
							
						
					
					
						commit
						35f43a7909
					
				
					 1084 changed files with 558985 additions and 0 deletions
				
			
		
							
								
								
									
										832
									
								
								nanopass/LOG
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										832
									
								
								nanopass/LOG
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,832 @@ | |||
| 2008-09-25 18:51:12 - 4865e596edc0ea8a68be26943c1463b9a9b3b6ab | ||||
|   * initial import of Dipa Sarkar's code | ||||
|       alltests.ss, compiler.ss, define-language.ss, define-pass.ss, driver.ss, | ||||
|       helpers.ss, match.ss, meta-parser.ss, meta-syntax-dispatch.ss, | ||||
|       nano-syntax-dispatch.ss, nano.ss, nanohelpers.ss, nanotest.ss, parser.ss, | ||||
|       preprocess.ss, records.ss, synforms.ss, syntaxconvert.ss, term.ss, | ||||
|       unparser.ss | ||||
| 2008-10-03 19:28:03 - d0a9aa5cfe8463a0a7d52a8fc9e03283b5f86078 | ||||
|   * added copyright notice | ||||
|       + Copyright.txt | ||||
|   * removed match, it was used to do initial parsing of sexp | ||||
|       - match.ss, nanotest.ss | ||||
|   * added first comment in trying to decode define-language | ||||
|       define-language.ss | ||||
|   * moved back to optimize-level 2 to give debugging information | ||||
|       nanotest.ss | ||||
| 2008-10-06 09:40:52 - 1fd736e52b3ca305f56aaeac049176ddd6f5eb71 | ||||
|   * removed execution bit from files, since they were unneeded | ||||
|       compiler.ss, define-language.ss, define-pass.ss, meta-parser.ss,  | ||||
|       meta-syntax-dispatch.ss, nano-syntax-dispatch.ss, nano.ss, | ||||
|       nanohelpers.ss, parser.ss, records.ss, syntaxconvert.ss, term.ss, | ||||
|       unparser.ss | ||||
| 2008-10-06 09:48:17 - e06164bd5a6bf2437a833a2b8009e7dc8c7629a2 | ||||
|   * reorganized code to move library source into src directory | ||||
|       moved: define-language.ss, define-pass.ss, meta-parser.ss, | ||||
|       meta-syntax-dispatch.ss, nano-syntax-dispatch.ss, nano.ss, | ||||
|       nanohelpers.ss, parser.ss, records.ss, syntaxconvert.ss, terms.ss, and | ||||
|       unparser.ss to src directory | ||||
| 2008-10-06 09:49:43 - d72c88e555b24a6bc8738162c98d194b1069503f | ||||
|   * reorganized code to move testing source into tests directory | ||||
|       moved: alltests.ss, compiler.ss, driver.ss, helpers.ss, nanotest.ss, | ||||
|       preprocess.ss, and synforms.ss to tests directory | ||||
| 2008-10-09 21:29:41 - a1b2dd8408b6f1282cfc9a962d38f0647dc32409 | ||||
|   * accidentally changed (define-syntax define-langauge ... to | ||||
|     (define-language ... | ||||
|   * changed tests to support reorganized directories | ||||
|       tests/nanotest.ss | ||||
|   * began working to identify (and remove) unused code, along with code | ||||
|     reading to understand where and how functions are used.  Also changed | ||||
|     to use consistent function definition syntax and line-wrap. | ||||
|       src/define-language.ss, src/define-pass.ss | ||||
|   * removed code after #!eof to be put in chaff file. | ||||
|       src/define-language.ss, src/define-pass.ss | ||||
|   * lifted duplicated common functions from make-processor-clause and | ||||
|     do-define-pass | ||||
|       src/define-pass.ss | ||||
| 2008-10-09 21:43:19 - d43213f91181deee413f86126fc3a0a56bfdf53e | ||||
|   * lifted make-incontext-transformer and make-quasiquote-transformer to | ||||
|     commonize these functions | ||||
|       src/define-pass.ss | ||||
|   * fixed (define-syntax define-language ... typo | ||||
|       src/define-language.ss | ||||
| 2008-10-09 22:23:42 - 29d2029f0213605732712c2be60f586e02c27677 | ||||
|   * commented out some of the lifted fields | ||||
|       src/define-pass.ss | ||||
| 2008-10-09 22:23:42 - d14c0b3ed8e254991baddd15317a6a9e31dcf30c | ||||
|   * uncommented and generally reworked code for defining passes | ||||
|       src/define-pass.ss | ||||
| 2008-10-10 11:18:17 - 4f7840c069d47d7cd68357c67cd5b805a98886de | ||||
|   * cleanup of language->s-expression code | ||||
|       src/define-language.ss | ||||
|   * more code reformating and moving of common functions into the helpers.ss | ||||
|       src/nanohelpers.ss, src/define-pass.ss, src/meta-parser.ss, | ||||
|       src/meta-syntax-dispatch.ss, src/nano-syntax-dispatch.ss, src/parser.ss, | ||||
|       src/records.ss, src/syntaxconvert.ss, src/unparser.ss | ||||
| 2008-10-24 18:13:23 - d1dff8cb77922342f52a10ed36a89497f8df5f6b | ||||
|   * added external TODO list moved from other files | ||||
|       TODO.txt, src/define-language.ss | ||||
|   * added load-all.ss file to load the parts from the src and tests directories | ||||
|       load-all.ss | ||||
|   * moved spare code to scrap file | ||||
|       scraps.ss | ||||
|   * curried the rec-member? call to reuse the code in all of the member? | ||||
|     functions | ||||
|       src/define-language.ss | ||||
|   * removed alt-union, alt-difference, and tspec-union functions | ||||
|       src/define-language.ss | ||||
|   * reorganized deeply nested if statements into conds | ||||
|       src/define-language.ss, src/define-pass.ss | ||||
| 2008-10-25 14:25:18 - 21451b92b0bd1a140b35cc375eda365530edfcc0 | ||||
|   * removed calls to eval that were used for looking up the meta-parser by | ||||
|     changing the meta-parser from a meta define to a procedure stored in the | ||||
|     compile time environment (procedure is then passed around in define-pass). | ||||
|       src/define-pass.ss, src/define-language.ss | ||||
| 2008-10-26 21:17:58 - 1284b9818ffb015f16d81e407aab94bfeaa59098 | ||||
|   * R6RSification: changed syntax-object->datum => syntax->datum, | ||||
|     list* => cons*, datum->syntax-object => datum->syntax, | ||||
|     (sub1 ,x) =>  (- ,x 1), (add1 ,x) =>  (+ ,x 1), partition => partition-syn | ||||
|       src/define-language.ss, src/define-pass.ss, src/meta-parser.ss,  | ||||
|       src/nanohelpers.ss, src/records.ss, src/syntaxconvert.ss, src/unparser.ss | ||||
|   * removed unused, useless, or duplicated procedure definitions: show-decls,  | ||||
|     show-tspecs, show-productions, lookup-any, split-decls, any, every, choose,  | ||||
|     assp, remp, memp, filter, fold, reduce, empty-set, singleton-set, | ||||
|     add-element, member?, empty?, union, intersection, difference | ||||
|       src/nanohelpers.ss | ||||
|   * moved lookup-alt from nanohelpers.ss to meta-parser.ss | ||||
|       src/nanohelpers, src/meta-parser.ss | ||||
|   * removed module wrappers as part of r6rsification | ||||
|       src/unparser.ss, src/parser.ss, src/meta-parser.ss | ||||
|   * changed null syntax () to #'() in generation of field patterns | ||||
|       src/syntaxconvert.ss, | ||||
|   * added more to scraps from the tail end of unparser | ||||
|       src/scraps.ss | ||||
| 2008-10-26 21:20:07 - dc1e9b02e6964ec0c36772380660a462cf8e73d6 | ||||
|   * created R6RS libraries to wrap around existing code base | ||||
|       nanopass.ss, nanopass/helpers.ss, nanopass/language.ss, | ||||
|       nanopass/meta-parser.ss, nanopass/parser.ss, nanopass/pass.ss, | ||||
|       nanopass/r6rs-helpers.ss, nanopass/records.ss, nanopass/unparser.ss, | ||||
|   * added R6RS compatibililty wrappers for define-record, syntax-error, | ||||
|     literal-identifier=?, warning, and fx= | ||||
|       nanopass/r6rs-helpers.ss | ||||
|   * accidentally added swap file: nanopass/.records.ss.swp | ||||
|       nanopass/.records.ss.swp | ||||
| 2008-10-26 22:15:18 - 871b67ad1d4e2dafabe71536f15a6ec6d364c2ec | ||||
|   * added test-all script wrapper to ease testing | ||||
|       test-all.ss | ||||
| 2008-11-09 01:50:07 - 806ef5378ca0259b9a2a1bf3f1766e18a14ac227 | ||||
|   * removed accidentally added swap files: nanopass/.records.ss.swp | ||||
|       nanopass/.records.ss.swp | ||||
|   * cleaned up imports as more code is changed to comply with R6RS | ||||
|       nanopass/helpers.ss, nanopass/language.ss, nanpoass/meta-parser.ss, | ||||
|       nanopass/parser.ss, nanopass/pass.ss, nanopass/r6rs-helpers.ss, | ||||
|       nanopass/records.ss, nanopass/syntaxconvert.ss, nanopass/unparser.ss | ||||
|   * continued to press an Chez -> R6RS compatibility macro for define-record | ||||
|       nanopass/r6rs-helpers.ss | ||||
|   * also introduced my-syntax-violation to push for syntax-error compatibility | ||||
|       nanopass/r6rs-helpers.ss | ||||
|   * committed some debugging source (trace-define of parse-language) | ||||
|       nanopass/define-language.ss, | ||||
|   * added R6RS version of test-all | ||||
|       test-all-r6rs.ss | ||||
|   * code reformatting (removed spaces, changed to consistent coding standard) | ||||
|       nanopass/r6rs-helpers.ss, tests/r6rs-compiler.ss | ||||
|   * added implementation-helpers to abstract away some of the implementation | ||||
|     specific code | ||||
|       nanopass/syntaxconvert.ss, nanopass/unparser.ss | ||||
|   * moved iota from tests/compiler.ss to tests/helpers.ss | ||||
|       nanopass/compiler.ss | ||||
|   * create r6rs copy of the test compiler | ||||
|       tests/r6rs-compiler.ss, tests/r6rs-helper.ss, tests/r6rs-nanotest.ss  | ||||
| 2008-11-09 01:59:07 - 118a0a36a308f49c25c58c3b67539ce4e384d46d | ||||
|   * added the implementation helpers files to the repositor, one for  | ||||
|     Chez Scheme and one for Ikarus Scheme | ||||
|       nanopass/implementation-helpers.ikarus.ss, | ||||
|       nanopass/implementation-helpers.ss | ||||
| 2008-11-24 20:30:17 - 6e88caf2af091aac629fddb896651fcca92512a2 | ||||
|   * removed parse-language trace-define | ||||
|       src/define-language.ss | ||||
|   * commented out assert, since the R6RS one stands in fine | ||||
|       src/nanohelpers.ss | ||||
| 2008-11-24 20:39:20 - afe583a450a94aa25f9884902a7ce1032d5b48d7 | ||||
|   * resolving conflicts between two wroking copies, assert => syn-assert | ||||
|       src/nanohelpers.ss | ||||
| 2008-11-24 20:50:04 - 370bd11afdfc8a0233cf82b9f3d7f3c9e2f3db80 | ||||
|   * exported all of the internal exports from the main nanopass library | ||||
|       nanopass.ss | ||||
|   * more exports to allow this to run on Ikarus Scheme: added meta-define, | ||||
|     and a hack to support meta-define | ||||
|       nanopass/implementation-helpers.ikarus.ss, nanopass/term.ss | ||||
|   * exported more features of meta-parser: parse-cata, lookup-alt | ||||
|       nanopass/meta-parser.ss | ||||
|   * created library for meta-syntax-dispatch | ||||
|       nanopass/meta-syntax-dispatch.ss | ||||
|   * moved to more formal make-compile-time-value definition for | ||||
|     putting things into the compile-time environment to support ikarus. | ||||
|       src/define-language.ss | ||||
|   * more cleanup and R6RSification of meta-parser.ss | ||||
|       src/meta-parser.ss | ||||
|   * removed module tag from meta-syntax-dispatch | ||||
|       src/meta-syntax-dispatch.ss | ||||
|   * R6RSification of src/parser.ss: syntax-object->datum => syntax->datum, | ||||
|     assert => syn-assert | ||||
|       src/parser.ss, src/records.ss | ||||
|   * excluded datum from the R6RS compiler nanopss import | ||||
|       tests/r6rs-compiler.ss | ||||
| 2008-11-22 11:05:22 - 61feff78ee11abef5624b2de493e2bdb09851ffe | ||||
|   * same changes as previous version on a differnt machine. | ||||
|       nanopass.ss, nanopass/helpers.ss, nanopass/meta-parser.ss | ||||
|       nanopass/implementation-helpers.ikarus.ss, src/define-language.ss, | ||||
|       src/meta-parser.ss, src/meta-syntax-dispatch.ss, src/nanohelpers.ss, | ||||
|       src/records.ss, tests/r6rs-compiler.ss | ||||
| 2008-11-22 14:13:59 - 6b61d840e4e1b86eeacd1a489431a241023cf962 | ||||
|   * finished copying changes from previous commit in different working copy | ||||
|       nanopass/meta-syntax-dispatch.ss, nanopass/term.ss | ||||
| 2008-11-24 20:50:28 - 31d49c16511376b46781a3e5e737cb705b8f9609 | ||||
|   * merged two working copies | ||||
| 2008-11-24 22:36:14 - cbc2955a6fd540f482290fc92a39eaa4168d057b | ||||
|   * added trace-define-syntax and printf to the implementation-helpers to | ||||
|     support debugging | ||||
|       nanopass/implementation-helpers.ikarus.ss | ||||
|   * imported meta-syntax-dispatch into the meta-parser | ||||
|       nanopass/meta-parser.ss | ||||
|   * committed debugging code in the language definition | ||||
|       src/define-language.ss | ||||
| 2008-11-24 20:27:30 - f79bcb8b4aab5e804246a4030d2061edcf560e8d | ||||
|   * added meta-define and make-compilet-time-value macros for Chez to expand | ||||
|     into the appropriate meta define and cons | ||||
|       load-all.ss | ||||
|   * reformatted the exports in the nanopass top-level | ||||
|       nanopass.ss | ||||
|   * exported more helper procedures | ||||
|       nanopass/helpers.ss, nanopass/implementation-helpers.ss | ||||
|   * created auxiliaary keywords to export from the libraries to ensure they | ||||
|     will be free-identifier=? when used as keywords outside the library with | ||||
|     macros defined within the library | ||||
|       nanopass/language.ss, nanopas/meta-parser.ss | ||||
|   * created nano-syntax-dispatch library based on the syntax dispatcher from | ||||
|     the original code. | ||||
|       nanopass/nano-syntax-dispatch.ss | ||||
|   * added inclusing of nanopass/nano-syntax-dispatch.ss to parser.ss | ||||
|       nanopass/parsers.ss | ||||
|   * small formatting changes and removed debugging code. | ||||
|       nanopass/language.ss, src/define-language.ss, src/define-pass.ss, | ||||
|       src/parser.ss, src/unparser.ss, tests/r6rs-compiler.ss | ||||
|   * pulled make-double-collector-over-list and map2 into helpers | ||||
|       nanopass/helpers.ss | ||||
|   * small changes to deal with chez style records (record-type-name =>  | ||||
|     chez-record-type-name, record-type-descriptor =>  | ||||
|     chez-record-type-descriptor | ||||
|       src/unparser.ss  | ||||
|   * added procedure definitions for compose, disjoin, any, every, choose, | ||||
|     reverse-filter, fold, reduce, partition, constant? keyword?,  | ||||
|     list-of-user-primitives, list-of-system-primitives, user-primitive?, | ||||
|     system-primitive? primitive? predicate-primitive? value-primitive?, | ||||
|     effect-primitive? effect-free-primitive? gen-label, gen-symbol-seed, | ||||
|     reset-seed, gen-symbol, set? iota, with-values, mvlet, empty-set, | ||||
|     singleton-set, add-element, member?, empty?, union, intersection, and | ||||
|     difference to tests version of r6rs-helpers | ||||
|       tests/r6rs-helpers.ss | ||||
|   * created tiny testing library for looking at a single language definition | ||||
|       tests/r6rs-tiny.ss, tests/tiny.ss | ||||
| 2008-11-24 22:37:23 - 6f68e61e97d091ebad305b4406f7352e3cc14a6e | ||||
|   * no changes? looks like a merge node. | ||||
| 2008-12-11 09:06:34 - 65049181072cd5a748e732d454617083814b724e | ||||
|   * re-added auxiliary keywords for $tspec, $metas, $production, and $alt | ||||
|       nanopass.ss | ||||
|   * added code to push wraps down into syntax to support Ikarus.  current | ||||
|     code makes extended use of car, cdr, etc. to decompose syntax rather than | ||||
|     syntax-case.  eventually more of this needs to be dropped. | ||||
|       nanopass/helpers.ss | ||||
|   * added more implementation specific helpers to the Ikarus specific code. | ||||
|     some of these are to support things like format, printf, etc. | ||||
|       nanopass/implementation-helpers.ikarus.ss, | ||||
|       nanopass/implementation-helpers.ss | ||||
|   * moved auxiliary keywords: $tspec, $metas, $production, $alt, in, where, | ||||
|     over, extends, definitions, and entry into aux-keywords library | ||||
|       nanopass/language.ss, nanopassrecords.ss, (nanopass/aux-keywords.ss?) | ||||
|   * added helper syntax for map to print out what is being mapped over | ||||
|     for debugging purposes | ||||
|       nanopass/pass.ss | ||||
|   * fixing syntax around null (replacing #'() with '()) | ||||
|       nanopass/r6rs-helpers.ss | ||||
|   * tspec?, gramelt-metas, tspec-terminal, nonterminal-name, alt=?, and | ||||
|     define-language now use an eq? comparison to match aux-keywords rather | ||||
|     then relying on the auxiliary keyword facility | ||||
|       nanopass/define-language.ss | ||||
|   * general code cleanup (reformatting, removing debugging in places, etc.) | ||||
|       nanopass/define-language.ss | ||||
| LATEST | ||||
|   * reformatted a couple places where there was some odd indenting | ||||
|       tests/compiler-test.ss | ||||
|   * updated compiler passes to make use of the new pass syntax.  with this | ||||
|     change passes that utilized the automatic combining code needed to be | ||||
|     rewritten to explicitly do the combining themselves (this was usually | ||||
|     append or union).  these passes now thread a varaible through and  | ||||
|     perform a cheaper update when possible. | ||||
|       tests/compiler.ss, tests/unit-tests.ss | ||||
|   * added set-cons for adding individual items to a set (instead of using | ||||
|     union everywhere | ||||
|       tests/helpers.ss, test/compiler.ss | ||||
|   * worked a little on a new test compiler, but did not make much progress | ||||
|       tests/new-compiler.ss | ||||
|   * fixed error handling in the test driver so that we are no longer getting | ||||
|     a non-continuable error raised when there is an exception in a pass | ||||
|       tests/test-driver.ss | ||||
| 2011-04-09 -  | ||||
|   * added todo to investigate the handling of tspec=? down the road we may want | ||||
|     to investigate the syntax for extending languages again and drop the | ||||
|     definitions section (or at least rename it) | ||||
|       nanopass/language.ss | ||||
|   * fixed the cata syntax to support cata to a Processor that returns  | ||||
|     zero values.  as part of this fix also improved support for mapping | ||||
|     over processors that return multiple values.  originally this was | ||||
|     limited to just mapping over processors with one or two values, but | ||||
|     now it supports zero or more.  (zero return value is special-cased to | ||||
|     use for-each, one return value is special-cased to use map, and a loop | ||||
|     is built on the fly to support two or more return values.) | ||||
|       nanopass/meta-parser.ss, nanopass/pass.ss | ||||
|   * improved error message when a processor meta-variable cannot be found in | ||||
|     the parser and unparser. | ||||
|       nanopass/parser.ss, nanopass/meta-parser.ss | ||||
| 2011-04-25 - | ||||
|   * merged changes from work with some in progress changes here. | ||||
|   * updated tests to work with new meta-variable only nonterminal alternatives | ||||
| 2011-05-13 - | ||||
|   * added nanopass-case macro to allow for local matching of nanopass | ||||
|     syntax.  currently this expands into a directly applied define-pass | ||||
|     and is restricted to returning a single, non-checked value. | ||||
|       nanopass/pass.ss | ||||
|   * extended the meta parser to allow more then statement in the body of | ||||
|     in-context and with-output-language transformers. | ||||
|       nanopass/meta-parser.ss | ||||
|   * fixed issue with processor internal definitions not being properly | ||||
|     recognized and placed definitions within a with-output-language so | ||||
|     that quasiquotes will be transformed into nanopass language-records | ||||
|     similar to the processor right-hand-sides. | ||||
|       nanopass/pass.ss | ||||
|   * fixed bug with define-pass that was causing it to return a single value | ||||
|     when a user provided body was checked for an appropriate language value. | ||||
|     the check now happens to the first return value and the extra returned | ||||
|     values are returned as is. | ||||
|       nanopass/pass.ss | ||||
|   * fixed bug in how extend pred-all checks were being generated so that | ||||
|     a call to the ntspec's pred is being generated instead of just the a | ||||
|     reference to the pred itself. | ||||
|       nanopass/records.ss | ||||
|   * fixed bug in the unparser that was causing non-terminal productions to | ||||
|     be handled through a recursively generated form rather then using the | ||||
|     existing pred-all for the non-terminal. | ||||
|       nanopass/unparser.ss | ||||
|   * improved error message when searching for procs fails, so that we know | ||||
|     the syntax we were trying to process (and hence whether it was a body, | ||||
|     auto-generated ntspec production, auto-generated cata, or cata call | ||||
|     that generated the problem). | ||||
|       nanopass/pass.ss | ||||
|   * changed a debugging pretty-print | ||||
|       nanopass/language.ss | ||||
| 2011-05-17 | ||||
|   * improved error message when a field cannot be autogenerated in an | ||||
|     autogenerated clause to a processor | ||||
|       nanopass/pass.ss | ||||
|   * changed from call-with-values to let-values in code produced in | ||||
|     body of a processor (now that the error message doesn't hold onto | ||||
|     the 3D code we were generating) | ||||
|       nanopass/pass.ss | ||||
| 2011-05-22 | ||||
|   * removed the syn-map, map2, make-double-collector, and find-matching-clause | ||||
|     since they were no longer being used. | ||||
|       nanopass/helpers.ss, tests/helpers.ss | ||||
|   * changed references to prod and production to ntspec | ||||
|       nanopass/languages.ss, nanopass/meta-parser.ss, nanopass/parser.ss, | ||||
|       nanopass/unparser.ss, nanopass/records.ss | ||||
|   * rewrote code for handling user clauses in order to support nonterminals on | ||||
|     the left-hand-side of a clause.  clauses are now matched in the order they | ||||
|     appear, with additional clauses autogenerated after user clauses have been | ||||
|     added. the code supports the current (limited) testing but has not yet been | ||||
|     tested with the new compiler code.  it also does not yet support terminal | ||||
|     or nonterminal catas. | ||||
|       nanopass/meta-parser.ss, nanopass/pass.ss | ||||
| 2011-05-22 | ||||
|   * fixed the processor builder by adding the input identifier from a cata to | ||||
|     the list of formal arguments (when it would not be otherwise shadowed). | ||||
|     note: the order is not necessarily maintained, but since these values will | ||||
|     be set by the let* that binds them, there does not seem to be a need of | ||||
|     ordering.  also fixed the else thunk to be a thunk. | ||||
|       nanopass/pass.ss | ||||
|   * incorporated changes to nanopass-case that Kent Dybvig made.  when an | ||||
|     identifier is used in as the expression to be matched the identifier is | ||||
|     rebound with the new value when the cata is called. | ||||
|       nanopass/pass.ss | ||||
|   * incorporated changes to meta-language quasiquote syntax from Kent Dybvig. | ||||
|     this change allows things like `(locals (,(reverse xnfv*) ...) ---) which | ||||
|     would previously have raised an error since ellispis expected to find an | ||||
|     identifier in its body.  to support this a quote form was also added to | ||||
|     make sure this feature does no cause automatically quoted items in the body | ||||
|     of an input, like booleans, symbols, and other constants. | ||||
|       nanopass/records.ss, nanopass/meta-parser.ss, nanopass/pass.ss | ||||
| 2011-05-25 | ||||
|   * fixed the error message for the output processor so that it would have the | ||||
|     preformatted name rather then the syntax I had inadvertently dropped in | ||||
|     (fix thanks to Kent Dybvig). | ||||
|       nanopass/meta-parser.ss | ||||
| 2011-05-25 | ||||
|   * setup the output process to leave quasiquote in the correct context | ||||
|     when an output expression is unquoted.  this should allow us to avoid | ||||
|     many of the in-context specifiers needed in the current np-compiler. | ||||
|       nanopass/meta-parser.ss | ||||
| 2011-09-23 | ||||
|   * removed definitions form from define-language.  added a todo for a better | ||||
|     solution to the problem of unparsing languages into a runnable s-expression | ||||
|     syntax.  also removed empty let wrapper from unparser output, since it is | ||||
|     no longer needed with the definitions support gone. | ||||
|       nanopass/language.ss, nanopass/record.ss, nanopass/unparser.ss | ||||
|   * added feature to gather up information about the syntax being passed to | ||||
|     a record constructor so that we can provide a slightly better error message | ||||
|     when the value passed for one of the fields is invalid.  this is done | ||||
|     using the source-annotation functionality, and produces a single message | ||||
|     for each fld (even though multiple syntax objects might have contributed, | ||||
|     e.g. in the case of a list field).  when the identifier is known, it will | ||||
|     report that the problem occurred at the given syntax item and when it is | ||||
|     not it will report that the problem ocurred near the given syntax item. | ||||
|       nanopass/records.ss, nanopass/meta-parser.ss, nanopass/parser.ss | ||||
|   * parser and unparser are now defined with define-who so that they can report | ||||
|     which parser or unparser went belly up when an error occurs. | ||||
|       nanopass/language.ss, nanopass/parser.ss | ||||
|   * added check in nano-meta->fml* to raise an error when a quoted terminal | ||||
|     is found in the list of formals.  this is just a more specific message | ||||
|     than the "unrecognized nano-rec" in the else case. | ||||
|       nanopass/pass.ss | ||||
|   * at optimize-level 3, the "checking" version of the pair-alt record | ||||
|     constructor is now a syntax definitions that washes down to a call to | ||||
|     the normal record constructor, so that the output of the checked and | ||||
|     unchecked cases will be the same. | ||||
|       nanopass/records.ss | ||||
| 2011-09-24 | ||||
|   * moved the preprocessor code into the tests/compiler.ss file and changed | ||||
|     it to use with-output-language, rather than the s-expression quasiquote. | ||||
|       tests/compiler.ss, tests/compiler-tests.ss, tests/preprocess.ss (removed) | ||||
|   * updated the synforms library to not require a quasiquoted expression. | ||||
|     also changed to use ... in place of dots or .. by using the Chez extended | ||||
|     syntax-rules (which allow for a general guard expression). also got rid of | ||||
|     top level quoted item, probably should have also made unquote legal as | ||||
|     start of pattern. | ||||
|       tests/synforms.ss | ||||
|   * now exporting define-who from tests/helpers.ss to allow for more convenient | ||||
|     error calls in the rename-var/verify-scheme function. | ||||
|       tests/helpers.ss, tests/compiler.ss | ||||
| 2011-09-29 | ||||
|   * added a (maybe x) form to language definitions to allow language defintions | ||||
|     to contain fields that can be occupied by either a non-terminal or #f. | ||||
|     this means it is now possible to have a production like: | ||||
|     (define-language L | ||||
|       (terminals | ||||
|         (integer (int)) | ||||
|         ---) | ||||
|       (Exp (e) | ||||
|         (Foo int (maybe e)) | ||||
|         ---)) | ||||
|     and the e field in Foo maybe either be an Exp or #f. also added ? as a valid | ||||
|     character to put on a meta-variable to allow e? for those fields that are | ||||
|     maybe fields. | ||||
|       nanopass/helpers.ss, nanopass/meta-parser.ss, nanopass/pass.ss, | ||||
|       nanopass/records.ss, nanopass/syntaxconvert.ss, nanopass/unparser.ss | ||||
|       test-all.ss, tests/unit-test-helpers.ss, tests/unit-tests.ss | ||||
|   * Fixed variable overlap bug when a pattern and the langauge formal to a processor | ||||
|     share the same name. For example: | ||||
|     (Exp : Exp (e1) -> Exp () | ||||
|       [(Foo ,e1 ,e2) ---] | ||||
|       ---) | ||||
|     this now produces the expected code and shadowing, instead of re-binding e1 | ||||
|     before e2 has a chance to be extracted from e1. | ||||
|       nanopass/pass.ss | ||||
|   * Fixed bug when handling output expressions that can end in a terminal in the | ||||
|     meta-parser.  This means if you have: | ||||
|     (define-language L | ||||
|       (terminals | ||||
|         (integer (int)) | ||||
|         (boolean (bool)) | ||||
|         ---) | ||||
|       (Exp (e) | ||||
|         (Foo int e-or-bool) | ||||
|         ---) | ||||
|       (Exp-or-Bool (e-or-bool) | ||||
|         bool | ||||
|         e)) | ||||
|     then the expression: | ||||
|     (with-output-language (L Exp) `(Foo 4 #f)) | ||||
|     it should now work properly. | ||||
|       nanopass/meta-parser.ss | ||||
|   * Added indirect-export of record constructors, predicates, and accessors | ||||
|     created when defining a language, so that if the language is exported, | ||||
|     these will be exported as well. | ||||
|       nanopass/records.ss | ||||
|   * convert-pattern now returns fields and levels as separate list return | ||||
|     values along with a list of maybes.  it also parses the (maybe e) syntax | ||||
|     (see note above) | ||||
|       nanopass/syntaxconvert.ss | ||||
|   * Fixed some tests that were still expecting the (let () ---) wrapper | ||||
|     around the output of language unparsers. also cleaned up the output | ||||
|     to make it a little more obvious what was going on with these. | ||||
|       tests/unit-tests.ss, tests/unit-test-helpers.ss | ||||
| 2011-09-09 | ||||
|   * The nanopass library is now built as a library group to ease testing in | ||||
|     Chez Scheme 8.9.1 (which includes a built in copy of the nanopass framework | ||||
|     that will be used in place of the library if it is not carefully loaded). | ||||
|       nanopass.ss | ||||
|   * Cleaned up unique names so that they now have a single number added to them | ||||
|     rather then several, and the names are divided by : in stead of being | ||||
|     divided by . | ||||
|       nanopass/helpers.ss | ||||
|   * Small changes to error messages that report bad meta-variables, these now | ||||
|     report if they are from the parser or meta-parser. | ||||
|       nanopass/meta-parser.ss, nanopass/parser.ss | ||||
|   * First step at moving to record variants with case dispatch.  This version | ||||
|     includes the potential for some extra record checks, sometimes even when | ||||
|     they are not needed.  However the basic dispatch is there now. | ||||
|       nanopass/pass.ss, nanopass/records.ss | ||||
| 2011-09-10 | ||||
|   * Moved calculation of ntspec sub-terminal predicate and ntspec full tags | ||||
|     into the same code that calculates the all-pred for the ntspec. This | ||||
|     has the added benefit that when the else is used we only put in the  | ||||
|     nanopass-record check when there is a possibility that it could be a | ||||
|     terminal. | ||||
|       nanopass/records.ss, nanopass/pass.ss | ||||
| ---- | ||||
| 2011-12-26 | ||||
|   * Small fix to echo message for echoing passes (now includes newline) | ||||
|       nanopass/pass.ss | ||||
|   * Added basic support for nanopass records as terminals. This support is | ||||
|     incomplete, since it doesn't have a syntax that fully supports the | ||||
|     define-record-type syntax, but should be able to. | ||||
|       nanopass/pass.ss, nanopass/records.ss, nanopass/language.ss, | ||||
|       nanopass/meta-parser.ss | ||||
|   * Fixed (slightly) handling of mapping over input terms.  Now if there is | ||||
|     not an expression to map, it does not build a call to map. | ||||
|       nanopass/pass.ss | ||||
| ---- | ||||
| 2012-12-17 - 949d59d57739e3a29cce020b244c81d049f73e5b | ||||
|   * Moved project to public github. | ||||
|       all files | ||||
| 2013-01-30 - 41f14e679b5fb9c2a8eaabe6f908905c3f329fe1 | ||||
|   * removed list-tail definition from helpers and turned it into an import in | ||||
|     implementation helpers. (thanks to Kent Dybvig, who made the change and | ||||
|     submitted a bug report). | ||||
|       nanopass/helpers.ss, nanopass/implementation-helpers.ss | ||||
|   * there is no longer an additional (duplicate) count for traversing into a | ||||
|     sub-nonterminal. counts for terminal elements of a wrapping nonterminal | ||||
|     have also been removed (not sure if this was a good change or not). | ||||
|       nanopass/language-node-counter.ss | ||||
|   * changed how the "trace" keyword determines when it should use an input or | ||||
|     output unparser. this is now determined by both checking that there is an | ||||
|     input (or output) language and an input (or output) nonterminal in the | ||||
|     transformer being traced. | ||||
|       nanopass/pass.ss | ||||
|   * changed the autogenerated clauses to call the checking record maker instead | ||||
|     of the non-checking version, because a recursive call could potentially hit | ||||
|     a compiler writer supplied terminal or nonterminal transformer that builds | ||||
|     an invalid item. | ||||
|       nanopass/pass.ss | ||||
| 2013-01-30 - 65d35a107fcdd4e7091af6c159867215d8da0971 | ||||
|   * Updated copyright information in all the files. | ||||
|       Copyright, nanopass.ss, nanopass/helpers.ss, | ||||
|       nanopass/implementation-helpers.chezscheme.ss, | ||||
|       nanopass/implementation-helpers.ikarus.ss, | ||||
|       nanopass/implementation-helpers.ss, nanopass/language-node-counter.ss, | ||||
|       nanopass/language.ss, nanopass/meta-parser.ss, | ||||
|       nanopass/meta-syntax-dispatch.ss, nanopass/nano-syntax-dispatch.ss, | ||||
|       nanopass/parser.ss, nanopass/pass.ss, nanopass/random-util.sls, | ||||
|       nanopass/records.ss, nanopass/syntax-handler.sls, | ||||
|       nanopass/syntaxconvert.ss, nanopass/unparser.ss, test-all.ss, | ||||
|       tests/alltests.ss, tests/compiler-test.ss, tests/compiler.ss, | ||||
|       tests/helpers.ss, tests/implementation-helpers.ikarus.ss, | ||||
|       tests/implementation-helpers.ss, tests/new-compiler.ss, | ||||
|       tests/synforms.ss, tests/test-driver.ss, | ||||
|       tests/unit-test-helpers-implementation.chezscheme.sls, | ||||
|       tests/unit-test-helpers.ss, tests/unit-tests.ss | ||||
| 2013-07-18 - 097f7c428a1573af14556e76619fab323f7d42b8 | ||||
|   * Merged typo fix in error message (courtesy of Eric Holk) | ||||
|       nanopass/pass.ss | ||||
| 2013-07-18 - 79e0e644d5c490a2ea71418834228a429b97d581 | ||||
|   * Merged another typo fix in another error message (courtesy of Eric Holk) | ||||
|       nanopass/records.ss | ||||
| 2013-08-03 - ce94b43cfc1a6ef1dd7de5bd65d37c165902918d | ||||
|   * INCOMPATIBLE CHANGE: Extended languages now use the base languages's entry | ||||
|     point as the entry point for the language instead of the first listed | ||||
|     nonterminal.  In general, this seems like the behavior you want, though it | ||||
|     may break some existing libraries, so upgrade with caution. | ||||
|       nanopass/languages.ss, tests/compiler.ss | ||||
|   * Added a prune-language form that, when given a language, starts traversing | ||||
|     the language from the entry nontermainal and determines if there are any | ||||
|     dead nonterminals or terminals in the language, prunes them, and returns an | ||||
|     S-expression representing only the reachable parts of the language. | ||||
|       nanopass/language.ss, nanopass.ss | ||||
| 2013-09-03 - f8fc318d2bc644357c02cef5e897702efa2d1675 | ||||
|   * Added binaries of the nanopass framework for OS X | ||||
|       ReadMe, ReadMe.md, lib/ReadMe.md, lib/csv8.4/{,t}{a6,i3}osx/nanopass.so | ||||
| 2013-09-03 - b13b070e578d960c895c45aafba616175d4c5782 | ||||
|   * Added binaries ot the nanopass framework for Linux | ||||
|       lib/csv8.4/{,t}{a6,i3}le/nanopasss.so | ||||
| 2013-09-16 - ad7ff9b1eba29bffc474fc94cb4fc0ab431fa3ab | ||||
|   * Fixed a bug with the parser that caused bare boolean terminals to fail to | ||||
|     parse.  Specifically, since #f was used to indicate a failed parse, | ||||
|     parsing the bare boolean #f was raising an error. | ||||
|       nanopass/parse.ss, tests/unit-tests.ss | ||||
| 2013-10-01 - af34af0544292872a5f1de4a8f92c1caca5e51b2 | ||||
|   * changed unique-id to unique-symbol, since we are now building the | ||||
|     unique-symbol and using it directly instead of generating the id to use in | ||||
|     output syntax.  also exporting make-list to make generating accessors | ||||
|     easier. | ||||
|       nanopass/helpers.ss, nanopass/implementation-helpers.chezscheme.ss, | ||||
|       nanopass/implementation-helpers.ss | ||||
|   * fixed language->s-expression to no longer output the nongenerative id of | ||||
|     an ntspec, since it is no longer necessary to specify for each ntspec | ||||
|       nanopass/language.ss | ||||
|   * small cleanup of the meta-parser.  removed extra (unused) argument to a | ||||
|     couple of procedures. | ||||
|       nanopass/meta-parsers.ss, nanopass/parser.ss, nanopass/unparser.ss | ||||
|   * removed differentiation between checking and non-checking maker, since we | ||||
|     are no longer using the non-checking maker. | ||||
|       nanopass/meta-parsers.ss, nanopass/records.ss, nanopass/parser.ss, | ||||
|       nanopass/pass.ss | ||||
|   * improved checking of meta-variables so that if the wrong meta-variable is | ||||
|     used, it will report it to the user, rather than doing a check that will | ||||
|     always fail we now report that an invalid meta-variable was used at expand | ||||
|     time.  also did some general cleanup and improved error messages around | ||||
|     using quoted items in a pattern match. | ||||
|       nanopass/pass.ss, nanopass/records.ss | ||||
|   * changed record creation code to skip the define-record-type macro and | ||||
|     instead we are creating the records directly using the procedural | ||||
|     interface.  this (hopefully) helps the memory usage and speed of expanding | ||||
|     language definitions. | ||||
|       nanopass/records.ss | ||||
| 2013-10-02 - 3dd941537379b2a2a1a139daf8107a24ce919346 | ||||
|   * added bin directory to automate the process of building binaries across Mac | ||||
|     OS X and Linux.  these scripts require a setup with multiple versions of | ||||
|     the Chez Scheme compiler installed. | ||||
|       bin/build-shared-objects, bin/compile-file-to-lib-dir | ||||
| 2013-10-02 - 3dd941537379b2a2a1a139daf8107a24ce919346 | ||||
|   * added a define-pruned-language form that prunes a language and then defines | ||||
|     it with a new name.  also changed diff-languages to output code that is | ||||
|     appropriate for the current implemntation of language extensions in the | ||||
|     nanopass framework. | ||||
|       nanopass.ss, nanopass/languages.ss | ||||
| 2013-10-04 - 9cd67d5ee048370ca253b7fd3b942151921858fd | ||||
|   * added checking for mutually recursive nonterminals so that we now report | ||||
|     an error to the user.  this was a simple change, and if we want to support | ||||
|     this in the future, there is probably a way to do so, we just need to be | ||||
|     careful about pass generation. | ||||
|       nanopass/records.ss | ||||
| 2013-10-04 - 1aa2c01274137066aa3de75f966ce7c11374d20f, | ||||
|              c38ba0f9fea350ca403f8d0892765aebbb80890b | ||||
|   * fixed a small bug in the error reporting code for the stricter checking of | ||||
|     nanopass meta-variables. | ||||
|       nanopass/pass.ss | ||||
| 2013-10-15 - 47c580d5ee361d6aa209189baa3489c067e18248, | ||||
|              3c7b2c6eff3e0e724291063cddce46ad9a447d47 | ||||
|   * added support for Vicare Scheme through the implementation helper files. | ||||
|     removed use of define-property, since it is not supported on other | ||||
|     Scheme platforms. | ||||
|       nanopass.ss, nanopass/helpers.ss, nanopass/language-node-counter.ss, | ||||
|       nanopass/language.ss, nanopass/meta-parser.ss, | ||||
|       nanopass/meta-syntax-dispatch.ss, nanopass/parser.ss, nanopass/pass.ss, | ||||
|       nanopass/record.ss, nanopass/unparser.ss, nanopass/synforms.ss, | ||||
|       nanopass.chezscheme.sls (new), | ||||
|       nanopass/implementation-helpers.chezscheme.sls | ||||
|       (renamed, was nanopass/implementation-helpers.chezscheme.ss), | ||||
|       nanopass/implementation-helpers.ss (removed), | ||||
|       nanopass/implementation-helpers.vicare.sls (new), | ||||
|       tests/implementation-helpers.chezscheme.sls (new), | ||||
|       tests/implementation-helpers.vicare.sls (new), | ||||
|       tests/unit-test-helpers-implementation.vicare.sls (new) | ||||
|   * moved language pruning code into a separate library to remove duplicated | ||||
|     code for prune-language and define-pruned-language. | ||||
|     nanopass/language-helpers.ss (new), nanopass/language.ss | ||||
|   * added a gitignore file so that I won't accidentally commit vim swap files. | ||||
|       .gitignore | ||||
| 2013-10-16 - d7f3c8a71a99f2cc88a3a5f8c28b780dcf07c41d | ||||
|   * added support for Ikarus Scheme (which is a little easier to install on Mac | ||||
|     OS X).  moved more Chez specific code to the implementation specific | ||||
|     libraries. | ||||
|       nanopass/helpers.ss, implementation-helpers.chezscheme.sls, | ||||
|       implementation-helpers.ikarus.ss, implementation-helpers.vicare.sls, | ||||
|       nanopass/meta-parser.ss, nanopass/parser.ss, nanopass/pass.ss, | ||||
|       nanopass/records.ss, nanopass/unparser.ss, tests/compiler.ss, | ||||
|       tests/unit-test-helpers-implementation.ikarus.sls (new) | ||||
|   * test-all now prints output when running under Vicare Scheme. | ||||
|       tests/unit-test-helpers-implementation.vicare.sls | ||||
|   * started cleaning up code that is no longer used. | ||||
|       nanopass/helpers.ss, nanopass/random-util.sls (removed), | ||||
|       nanopass/syntax-handler.sls (removed) | ||||
| 2013-10-17 - 31bdcd721d5685ca78c1f43974ffb0ea890ad8b2 | ||||
|   * code cleanup.  removed more no longer used code. | ||||
|       nanopass/helpers.ss, nanopass/implementation-helpers.chezscheme.sls, | ||||
|       test-all.ss | ||||
| 2013-10-17 - | ||||
|   * updated documentation and logs | ||||
|       LOG, TODO, ReadMe.md, CHANGES (removed), Notes (removed), | ||||
|       ReadMe (removed) | ||||
|   * updated binary build script and built updated binaries | ||||
|       bin/build-shared-objects, bin/compile-file-to-dir, | ||||
|       lib/csv8.4/{,t}{a6,i3}{le,osx}/nanopass.so | ||||
| 2013-10-24 - | ||||
|   * fixed support for using improper lists in language productions.  this | ||||
|     addresses issue 7 from the github issues list.  it is now possible to | ||||
|     use an improper list as the top-level pattern for a production and | ||||
|     improper lists can now be matched in a pass without raising an invalid | ||||
|     pattern syntax error in the pass.  also added regression tests. | ||||
|       nanopass/language.ss, nanopass/meta-syntax-dispatch.ss, | ||||
|       tests/unit-tests.ss, test-all.ss, | ||||
|       lib/csv8.4/a6le/nanopass.so, lib/csv8.4/a6osx/nanopass.so, | ||||
|       lib/csv8.4/i3le/nanopass.so, lib/csv8.4/i3osx/nanopass.so, | ||||
|       lib/csv8.4/ta6le/nanopass.so, lib/csv8.4/ta6osx/nanopass.so, | ||||
|       lib/csv8.4/ti3le/nanopass.so, lib/csv8.4/ti3osx/nanopass.so | ||||
| 2013-12-05 - | ||||
|   * added a with-r6rs-quasiquote and a with-extended-quasiquote forms.  the | ||||
|     r6rs version provides the normal quasiquote, while the extended version | ||||
|     includes support for ellipsis in the template (the extended quasiquote is | ||||
|     now needed for the pretty output forms). | ||||
|       nanopass.ss, nanopass/helpers.ss, nanopass/unparser.ss | ||||
|   * added a second pretty form (->) for writing procedural unparsing of | ||||
|     nonterminal productions. | ||||
|       nanopass/language.ss, nanopass/helpers.ss, nanopass.ss, nanopass/records.ss, | ||||
|       nanopass/unparser.ss | ||||
|   * changed how trace-define-pass and traced transformers work, so that the | ||||
|     tracing now outputs the raw S-expressions syntax, rather than the unparsed | ||||
|     S-expression syntax. | ||||
|       nanopass/unparser.ss | ||||
|   * fixed how the unparser handles terminals, so that they will be unparsed | ||||
|     using the pretty unparser, even when they are unparsed at the top level, if | ||||
|     they are not using the raw unparsing. | ||||
|       nanopass/unparser.ss | ||||
|   * fixed a bug in how the meta-parser generates catas so that it will now put | ||||
|     the correct type in for terminal specs.  | ||||
|       nanopass/meta-parser.ss | ||||
|   * fixed a bug in how the transformer syntax is parsed when there is no input | ||||
|     language, or when there is no output language.  (the code used to assume | ||||
|     that the language would be present, leading to unhelpful error messages.) | ||||
|       nanopass/pass.ss | ||||
| 2013-12-05 - | ||||
|   * fixed a bug with how errors are reported when a language production gets | ||||
|     the wrong the value.  (Thanks to Eric Holk for pointing out the bug (and | ||||
|     the different handling of formats in Vicare). | ||||
|       nanopass/records.ss | ||||
|   * built csv8.4 binaries with the current updates. | ||||
|       lib/csv8.4/a6le/nanopass.so, lib/csv8.4/a6osx/nanopass.so, | ||||
|       lib/csv8.4/i3le/nanopass.so, lib/csv8.4/i3osx/nanopass.so, | ||||
|       lib/csv8.4/ta6le/nanopass.so, lib/csv8.4/ta6osx/nanopass.so, | ||||
|       lib/csv8.4/ti3le/nanopass.so, lib/csv8.4/ti3osx/nanopass.so | ||||
| 2013-12-09 - | ||||
|   * fixed a bug with the unparsing of maybe fields, with an added test to make | ||||
|     sure that we don't wreck the handling of maybe fields again. | ||||
|       nanopass/unparser.ss, test-all.ss, tests/unit-tests.ss | ||||
|   * built csv8.4 binaries with the current updates. | ||||
|       lib/csv8.4/a6le/nanopass.so, lib/csv8.4/a6osx/nanopass.so, | ||||
|       lib/csv8.4/i3le/nanopass.so, lib/csv8.4/i3osx/nanopass.so, | ||||
|       lib/csv8.4/ta6le/nanopass.so, lib/csv8.4/ta6osx/nanopass.so, | ||||
|       lib/csv8.4/ti3le/nanopass.so, lib/csv8.4/ti3osx/nanopass.so | ||||
| 2017-11-09 - | ||||
|   * fixed bug in handling of extra arguments for terminal subtypes, nonterminal | ||||
|     subtypes, and pass bodies.  Previously all three of these cases simply | ||||
|     looked for a processor that did not require more extra arguments than we | ||||
|     had available, and supplied them in positional order, instead of using | ||||
|     names like the cata-morphism or normal pair-alt production processing. | ||||
|       nanopass/pass.ss, tests/unit-test.ss, test-all.ss | ||||
| 2017-11-10 - | ||||
|   * fixed a bug introduced by the last bug check that was leading to an | ||||
|     erroneous change in generation of terminal and nonterminal subtype calls | ||||
|     when there were additional return values.  Also fixed a bug with the | ||||
|     handling of terminal subtype calls (these originally looked for a processor | ||||
|     that could return multiple values and then produced a values return that | ||||
|     added effectively had a multi-valued first element (which would have lead | ||||
|     to run time errors). | ||||
|       nanopass/pass.ss | ||||
| 2017-11-17 - | ||||
|   * fixed error message generated by nanopass constructors with list fields so | ||||
|     that it reports that it expected a list of (or list of list of ... etc.) | ||||
|     the type instead of failing because we are calling for-each.  (bad error | ||||
|     message reported by Jamie Taylor---thanks!) | ||||
|       nanopass/records.ss, test-all.ss, tests/unit-tests.ss | ||||
|   * fixed assert-error so that it will work, now that there are tests that | ||||
|     need to make use of it. | ||||
|       tests/unit-test-helpers.ss | ||||
| 2018-09-05 - | ||||
|   * remove outdated information and add links to papers | ||||
|       ReadMe.md | ||||
|   * fixed Travis CI fails caused by inaccurate vicare-scheme version | ||||
|      .travis/install_scheme | ||||
| 2018-09-16 - | ||||
|   * fixed tests to work with recent version of vicare (0.4d1) | ||||
|       nanopass/implementation-helpers.vicare.sls, nanopass/language.ss, | ||||
|       nanopass/pass.ss, nanopass/records.ss,  | ||||
|       tests/implementation-helpers.vicare.sls, tests/test-driver.ss | ||||
| 2018-09-30 - | ||||
|   * implemented define-property for ikarus and vicare | ||||
|       nanopass/syntactic-property.sls (new), | ||||
|       nanopass/implementation-helpers.ikarus.ss, | ||||
|       nanopass/implementation-helpers.vicare.sls, | ||||
|       nanopass/implementation-helpers.chezscheme.ss, nanopass/helpers.ss | ||||
|   * added pass-input-parser and pass-output-unparser to allow the class | ||||
|     compiler driver to determine the parser and unparser for passes used in the | ||||
|     compiler so that we can trace and start at intermediate points in the | ||||
|     compiler without having to specify it in each case. | ||||
|       nanopass.ss, nanopass/pass.ss, test-all.ss, tests/unit-tests.ss, | ||||
|       tests/unit-test-helpers.ss | ||||
|   * updated to the most recent vicare release | ||||
|       .travis/install_scheme | ||||
| 2018-10-04 - | ||||
|   * Updated the way we store the pass input and output languages, so that we | ||||
|     can differentiate between a pass that does not have an input language or | ||||
|     output language and an identifier that is not for a pass.  These macros now | ||||
|     expand into code for the language unparser/parser (when there is an input | ||||
|     or output language), a procedure that takes one or more arguments and | ||||
|     returns the first one (when there is no input or output language), or #f | ||||
|     (when the identifier is not for a pass, or the pass info property has been | ||||
|     somehow lost).  Also added procedures for looking up the input and outpuot | ||||
|     language with an identifier and the compile time environment, and | ||||
|     determining if an identifier has related pass information. | ||||
|       nanopass.ss, nanopass/pass.ss nanopass/records.ss | ||||
| 2019-11-27 - | ||||
|   * Small fix to correct with-r6rs-quasiquote, which was previously not | ||||
|     restoring the normal R6RS quasiquote within a scope where a nanopass | ||||
|     quasiquote handler was bound. | ||||
|       nanopass/helpers.ss | ||||
|   * Whitespace cleanup. | ||||
|       nanopass/pass.ss | ||||
| 2019-12-07 - | ||||
|   * Small fix to make the unit tests exit with a non-zero exit code when one of | ||||
|     the unit test fails.  Along with this fixed formatting around the error | ||||
|     messages so that it should be consistent across platforms.  This required a | ||||
|     bit of hackery to get the filename that will be used by Chez, Ikarus, and | ||||
|     Vicare, along with exposing a version of format that sets the print | ||||
|     parameters necessary to get it to match display-condition (in Chez, this is | ||||
|     just format in Ikarus and Vicare).  Finally, exposed some of the underlying | ||||
|     source information extracting functions. | ||||
|       test-all.ss, nanopass/helpers.ss, | ||||
|       tests/unit-test-helpers-implementation.chezscheme.sls, | ||||
|       tests/unit-test-helpers-implementation.ikarus.sls, | ||||
|       tests/unit-test-helpers-implementation.vicare.sls, | ||||
|       tests/unit-test-helpers.ss, tests/unit-tests.ss | ||||
|   * Corrected (embarrassing) misspelling of received. | ||||
|       nanopass/records.ss | ||||
| 2020-01-31 - | ||||
|   * Small changes: added trace-define-who, slightly improved error message for | ||||
|     quoted terminals in patterns, and a little code and comment cleanup. | ||||
|       nanopass/helpers.ss, nanopass/meta-syntax-dispatch.ss, nanopass/pass.ss, | ||||
|       nanopass/records.ss | ||||
| 2020-10-11 - | ||||
|   * Changed the nano-syntax-dispatch into a macro so that compilers using | ||||
|     define-parser do not have a run-time dependency on the (nanopass | ||||
|     nano-syntax-dispatch) library.  With this change the pattern no longer | ||||
|     needs to be quoted in the output of define-parser. | ||||
|       nanopass/nano-syntax-dispatch.ss, nanopass/parser.ss | ||||
| 2020-10-18 - | ||||
|   * Removed np-parse-fail-token as a run-time dependency by making it a macro. | ||||
|     The whole parser really needs to be revisited, but this should make it | ||||
|     possible to generate compilers with intermediate language parser that do | ||||
|     not have a run-time dependency on the nanopass framework. | ||||
|       nanopass/parser.ss, nanopass/helpers.ss, | ||||
|       nanopass/implementation-helpers.chezscheme.sls, | ||||
|       nanopass/implementation-helpers.ikarus.ss, | ||||
|       nanopass/implementation-helpers.ironscheme.sls, | ||||
|       nanopass/implementation-helpers.vicare.sls | ||||
		Reference in a new issue
	
	 tmtt
						tmtt