summaryrefslogtreecommitdiff
path: root/ChangeLog
blob: 1479d2d5c80bd2d8553f455deabfb28debf35ba6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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.