-
Notifications
You must be signed in to change notification settings - Fork 9
/
Changes
243 lines (223 loc) · 11.5 KB
/
Changes
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
Polygen: Change Log
-------------------
* 22/01/2018:
- makefile and building procedure readapted to new OCaml compiler after many years
- version bump 1.0.6a
* 28/6/2004
- official release 1.0.6 (formers were 1.0 pre-releases)
- just few bugfixes
* 17/9/2003
- bufix update v1.0pre r5
- some checkings (i.e. cyclic unfoldings detection) didn't work anymore in
conjuction with the new label checker; new second phase checker written
* 9/9/2003
- bugfix update v1.0pre r4
- lock/unlock block didn't work; atomic rename of temporary file used instead
* 8/9/2003
- first official pre-release v1.0 r3 (formers are internal only)
- new language feature: keyword ":=" introduces strong bindings that
generates only once the binding itself is performed
- new language feature: subproductions (of any form) introduces now local
nestable scopes; any series of weak as well as strong mutual
recursive bindings may appear prior to subproduction body; scoping rules
are static lexical
- new language feature: EBNF-like iteration is supported suffixing a "+"
to a subproduction (standard form only)
- new language feature: keyword "," acts as infix delimeter for positional
atoms within production; generation occurs selecting all i-th elements
- lexical rules changed: ',' character is no more a terminal simbol; use
quotings instead
- the new grammar checker is now able to infer label groups for each
production, follow selections and report top-level environment-free
label groups
- grammar checker improved: all destructive selections are now detected
and exhaustively reported, leading label usage towards higher robustness
- grammar checker changed: termination is checkable from start symbol only
- grammar checker improved: useless unfoldings are detected
- warning suppressed: simple recursions are no more detected (was nonsense)
- preprocessor bufixed: permutated sequences used to be automatically
unfolded within a prodution, leading to incosistent probability
distribution; now a subproduction is created
- many translations (either syntactical sugars or preprocessings) now are
implemented by using local bindings and scopes
- compiled grammar files are no more called status files; compiled grammar
object files is more suitable
- command line option "-nasty" is suppressed: autocompilation of source
grammars is now performed automatically
- command line option "-T" is suppressed
- command line option "-t" now performs termination check and report of
inferred label groups
- new command line option -l allows top-level initialization of label
environment; useful for global symbols requiring some label
- command line option "-seed" prevents now shuffling but still compiles
grammar source and produces a grammar object file
- command line option "-g" renamed to "-pre"
- compiled grammar object file loading and storing operations are now
enclosed within a lock/unlock pair, allowing concurrent access
- new error location system supports file name now
- more robust and exhaustive I/O exception system
- HOWTO-grm manual is from now on referred as the reference manual
- documentation roughly updated in italian only: there might
be some minor incosistencies
- all known grammars have been modified and corrected according to new
features
- grammars are no more distributed within the program package
* 6/2/2003
- unofficial release v0.8.1 on the website
- more readable error position part within message
- minor lexing improvement and more self-explainatory lexer and parser error
messages
- now warnings are grouped into levels (the lower, the higher gravity): new
options -W and -pedantic activates respectively a certain level and all
of them
- grammar checker improved: any cyclic subgraph is now detected and
circuit is printed within the error message; potential recursions are
detected too as level-2 warnings
- grammar checker reengineered in some parts due to complexity increase; it
still is single-pass, though
- minor I/O exception system improvement
- HOWTO manuals updated
- oroscopo.grm, photoshop.grm, rappaz.grm and piani.grm added to official
grammar package
* 9/1/2003
- unofficial release v0.8 on the website
- language feature changed: unfolding is no more specified in curly brackets:
now the > operator unfolds any unfoldable atom, i.e. non-terminals and
any kind of subproduction
- new language feature: specifying subproductions in curly brackets on
a given sequence allows permutation between themselves
- new language feature: subproductions in reverse-doubleangle brackets are
unfolded in depth
- new language feature: operator < locks the following atom as non-unfoldable
- error/warning system improved: all messages now specify the position in the
source file where the error/warning occured
- grammar checker speed improved: results of subgraph checking are now cached
- program now takes more than one source file and processes all of them
- now option -g, -t, -T and -nasty does not conflict any more
- HOWTO manuals updated
- lotto.grm, annunci.grm, monte.grm added to official grammar package
* 9/12/2002
- unofficial release v0.7.1 on the website
- new language feature: backslash keyword capitalizes following terminal
- Unix.umask was not implemented under Windows and an exception used to be
rosen; now umask is no more invoked and, as a side effect, permission
triplets for status files now are rw-r--r-- on Linux systems with ---w-w-
default umask
- now status file is closed after laoding, cause storing open_out used to
fail under some Windows
- HOWTO manuals updated
- filippi.grm, prov.grm, ponti.grm added to offical grammar package
* 5/12/2002
- unofficial release v0.7 on the website
- new and much more powerful preprocessor unfolding system
- new language feature: productions in curly brackets are unfolded as if they
were specified flat at the very level of the sequence containing them
- language feature improvement: unfolding operator for non-terminal symbols
may now appear as any atom within a sequence
- all official grammars updated and exploit new features, resulting in
less ad-hoc grouping tricks and dramatic raising of output quality in
conjunction with nasty mode
- more robust status file format: now contains version field for detecting
compatibility and original grammar timestamp field for more reliable
comparison
- verbose mode even more verbose and informatory
- HOWTO manuals updated
- new delonghi.grm added to offical grammar package
* 27/11/2002
- unofficial release v0.6.1 on the website
- a lexical conflict previor used to cause troubles wherever a subproduction
in round brackets followed the standalone dot operator: now it is
no more mistaken for the multiselection syntactical sugar
- lexical rules changed: now the underscore char cannot belong anymore to
terminals, non-terminals and labels
- all official grammars updated according to the new rules
- ms.grm improved
- status file is now created with rw-rw-rw- permission triplets
- nasty mode now fails on error accessing status file instead of falling back
to normal mode
- more robust and self-explainatory I/O exceptions
* 22/11/2002
- unofficial release v0.6 on the website
- new option -v activates verbose mode
- new option -nasty allows the program to store (and reload) the status file
of a grammar, which represents the annotated absyn tree used by the
generator and the shuffler: this way, multiple launches of the program
produce etherogeneous output as if the -X option was used
- now arguments are checked for conflicts
- new README.win32 for MSWin users claiming known bugs or lacks of the win32
executable due to OCaml compiler/library system incosistencies
* 20/11/2002
- unofficial release v0.5 on the website
- HOWTO-grm rewritten in HTML
- neweconomy.grm renamed to manager.grm
- topgirl.grm renamed to teen.grm
- new b-film.grm, fiera.grm and genio.grm added to official grammar package
- further checker improvement:
(EE) overriding of non-terminal symbols
epsilon-productions for both destructive label selection
and actual epsilon terms
- language feature improvement: selections are now nestable and there can be
more than one active label; standalone dot operator now empties the list
of active labels
- further shuffling+random algorithm improvement: now probability weights
are given to branches and more-chosen as well as less-chosen ones
may be selected - this leads to much better results e.g. in loops
- new option -eof specifies string to be used as end of output
* xx/10-11/2002
- www.polygen.org website under construction
- release-keeping stuff written: README, License, Credits, etc. files
- major checker improvement - now things are really getting serious:
(EE) existence of non-terminal symbols
cyclic recursions
recursive unfoldings
(WW) potential epsilon-productions
undefinition of non-termianl symbol "I'"
- support for two checking levels: the former starts from "S" (or specified
start sym) and explores grammar in depth; the latter iterates in-depth
exploration for all non-terminal syms
- new options -t and -T for check-only launches
- new option -o specifies output file
* 14/10/2002
- unofficial release v0.4
- directory tree restructured: now grammars are collected by language and
source code lies on a subdir
- HOWTO-grm extended and translated into english as well
- bio.grm and neweconomy.grm translated into english
- new ms.grm and pythonizer.grm (english only) added to official grammar
package; epigrafi.grm and recensioni.grm (italian only) too
- source code restyling: checker and generator now stand on separate
files and modules
- added fairly simple recursive unfolding detection to the checker
- new language feature: labels and selection (dot operator)
- new shuffling+random algorithm for more etherogeneous output: now generator
keeps track of explored path and selects among unchosen (or least chosen)
branches only
- epsilon term added (underscore keyword) to the absyn
- now the optional subproduction is no more a term in the absyn and has been
replaced by a syntactical sugar: [P] ==> (_ | P)
- now the concatenation operator is a standalone term in the absyn and is no
more handled as a special terminal symbol
- conventional "I" non-terminal sym specifies grammar information string
- new option -S allows specification of a starting non-terminal symbol other
than "S"
- new option -info stands for "-S I"
- new options -ps and -seed allow output of and control over random seed
- new option -X for iterating generation several times and exploiting the
shuffling algorithm
* 2/9/2002
- unofficial release v0.3
- new amiG.grm (dedicated to MatG), bio.grm, neweconomy.grm, payoff.grm
and topgirl.grm added to official grammar package
- first small HOWTO-grm version in italian written
* ...I've been on holyday =;D
* 21/7/2002
- unofficial release v0.2
- new language feature: unfolding operator
- new preprocessing phase does the unfoldings
- absyn has been doubled: the former is both output of the parser
and input of the preprocessor; the latter is output of the preprocessor
and input of the generator
* 20/7/2002
- new tormentoni.grm (dedicated to Sergio) added to official grammar package
* 18/7/2002
- first unofficial release v0.1