diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..1479d2d --- /dev/null +++ b/ChangeLog @@ -0,0 +1,92 @@ +colm 0.12.0 - Feb 1, 2014 +------------------------- + * allow matching against reference types + * refcount fixes for setting references + * can use 'in' expr to search ref types + * can take refs of temps in expresssions + * error handling improvements + * fixed the colm input open check + * added a default capture name to all production definition rhs elements, + defaults to the type name + * allow var ref as the target of a send construct + * added the cast operator + * return nil from open if file open fails + * improvements to locals downrefs (large func offset overflow and iters) + * fixed the typeref for stdout and stderr, now working + * evaluate print arguments left to right + * improved separation of declare, resolve/lookup, and compile passes + * lookup of types in cons/pats uses the cons type or pattern tree namespace + * added the void type, useful for calling func in send expression + * can re-enter namespaces that already exist + * don't search parent scopes when qualifications are present + * added a new syntax for literal tokens; a single backtick is starts the + literal, ends at whitespace or ] in second or greater position + * removed comma as separator in literal statement + * single-quoted strings are now treated like double-quoted strings; they + may appear in expressions and are concatenated with the other string forms + * new syntax for collect-ignore tokens "token <id> -" + * added the system function, which calls C's system + * fixes for contiguous stack regions that fixes some segfaults + * don't use stack top offsets in print instructions + * allow make_tree anywhere + * don't use sp offset for make_tree, removes need for contiguous + * eliminated stack offset from make-token instruction + * print function names in call op debug stmts + +colm 0.11 - May 26, 2013 +------------------------ + * Require <> around ref and ptr type declarations (eg: ptr<type_ref>) + * Added production labels, which follow a production with the form + :Label. Labels are exposed in the C++ interface using an enum. They + are prefixed with _ to avoid conflict with member access functions. + * It's now possible to access Tree::tokdata from the C++ interface. + * The print, stream print, stream push, and stream append operations all + no longer trim trees by default. This makes these functions + consistent with constructor, which refrains from trimming to avoid + extra work. A construct with a tree trim is accomplished with an + additional operator. The above print and stream operations now have + the same usage patterns. + * Fixes to prodNum preservation through tree copy, and to the parser + +colm 0.10 - Apr 18, 2013 +------------------------ + * Implemented the colm parser in colm. Bootstrapping with a parse tree + construction in C++. Using that generated parser to to parse the colm + grammar, from which the primary parser is produced. + * Improved error reporting. + * Added some tracking of progress through a stream for better + backtracking over includes that are pushed onto a stream. + * Updated the vim syntax, no longer highlighting parser, list, etc + (types). + * Parse expressions are now returning trees again. Returning the parser + results in semantics inconsistent with many other areas of the + program. + * Can now put '.' or eos on the end of a send expression to terminate + the parse + * Removed the original send syntax (<<). + * Lowercased and otherwise improved the C interface. + * The default binary name no longer has .bin suffix. + * Fixed -o option, now using -c to mean compile on (library). The + export filename options are now -e and -x. + +colm 0.9 - Feb 19, 2013 +----------------------- + * The parse loop now scans data that is owned by the input stream. It + is copied into a contiguous block in the scanner when the token is + consumed. + * The syntax of lexical regions was altered to omit the name. The + curlies were replaced with lex ... end syntax. + * The syntax of namespaces were altered. Curlies were replaced with + namespace <ID> ... end. + +colm 0.8 - Dec 29, 2012 +----------------------- + * The parse statement now includes a call to the finish operation. It + returns a value of type parser<Type>. The result tree and any error + message can be retrieved from this object using 'tree' and 'error' + members. + * Dropped curly brackets and the name from the syntax of lexical region + defintition. Using "lex ... end" + * Dropped curly brackets from the syntax of namespaces and context blocks. + Using "namespace N ... end N" and "context N ... end N" + * Now have a growable stack instead of a large, fixed, pre-allocated stack. |