832 lines
		
	
	
	
		
			44 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			832 lines
		
	
	
	
		
			44 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 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
 | 
