summaryrefslogtreecommitdiff
path: root/CHANGELOG
blob: 173780693c179d961f8ada2d6956714d2b4fb08b (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
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
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
Version 1.0.2 (2017-08-26)
--------------------------
- Fixed bug #194 Build with "--enable-docs"
- Updated documentation.

Version 1.0.1 (2017-08-11)
--------------------------
- Fixed bug #193 1.0 build failure on macOS: error: calling a private constructor of class 're2c::Rule'
- Added paper "Tagged Deterministic Finite Automata with Lookahead" to distribution

Version 1.0 (2017-08-11)
------------------------
- Added options:
    '-P --posix-captures' (POSIX-compliant capturing groups)
    '-T --tags' (standalone tags with leftmost greedy disambiguation)
    '--no-lookahead'
    '--no-optimize-tags'
    '--eager-skip'
    '--dump-nfa'
    '--dump-dfa-raw'
    '--dump-dfa-det'
    '--dump-dfa-tagopt'
    '--dump-dfa-min'
    '--dump-adfa'
- Added new syntax:
    '@<stag>'
    '#<mtag>'
- Added new directives:
    '/*!stags:re2c ... */'
    '/*!mtags:re2c ... */'
    '/*!maxnmatch:re2c ... */'
- Added new API:
    'YYSTAGN (t)'
    'YYSTAGP (t)'
    'YYMTAGN (t)'
    'YYMTAGP (t)'
    'YYRESTORETAG (t)'
    'YYMAXNMATCH'
    'yynmatch'
    'yypmatch'
- Added inplace confgurations:
    're2c:define:YYSTAGN'
    're2c:define:YYSTAGP'
    're2c:define:YYMTAGN'
    're2c:define:YYMTAGP'
    're2c:define:YYRESTORETAG'
    're2c:flags:8' or 're2c:flags:utf-8''
    're2c:flags:b' or 're2c:flags:bit-vectors'
    're2c:flags:case-insensitive'
    're2c:flags:case-inverted'
    're2c:flags:d' or 're2c:flags:debug-output'
    're2c:flags:dfa-minimization'
    're2c:flags:eager-skip'
    're2c:flags:e' or 're2c:flags:ecb'
    're2c:flags:empty-class'
    're2c:flags:encoding-policy'
    're2c:flags:g' or 're2c:flags:computed-gotos'
    're2c:flags:i' or 're2c:flags:no-debug-info'
    're2c:flags:input'
    're2c:flags:lookahead'
    're2c:flags:optimize-tags'
    're2c:flags:P' or 're2c:flags:posix-captures'
    're2c:flags:s' or 're2c:flags:nested-ifs'
    're2c:flags:T' or 're2c:flags:tags'
    're2c:flags:u' or 're2c:flags:unicode'
    're2c:flags:w' or 're2c:flags:wide-chars'
    're2c:flags:x' or 're2c:flags:utf-16'
    're2c:tags:expression'
    're2c:tags:prefix'
- Added warning '-Wnondeterministic-tags'
- Added fuzz-testing scripts
- Added paper "Tagged Deterministic Finite Automata with Lookahead"
- Fixed bugs:
    #121 "trailing contexts are fundamentally broken"
    #135 "In installation 'make check' give syntax error"
    #137 "run_tests.sh fail when running configure script with absolute path"
    #138 "website improvement"
    #141 "Tests under Windows"
    #142 "segvault with null terminated input"
    #145 "Values for enum YYCONDTYPE are not generated when default rules with conditions are used"
    #147 "Please add symbol name to "can't find symbol" error message"
    #152 "Line number in #line directive after enum YYCONDTYPE is 0-based"
    #156 "Build with Visual Studio 14 2015: symbol name conflict"
    #158 "Inconsistent forward declaration of struct/class vs definition"
    #160 "Open text files with "wb" causes issues on Windows"
    #162 "Reading files with "rb" causes issues in Windows"
    #165 "Trailing context consumed if initial expression matches it"
    #176 "re2c help message is too wide for most terminals"
    #184 "Small documentation issue"
    #186 "Difference operator sometimes doesn't work with utf-8"
- Merged pull requests:
    #131 "Use bash-specific '[[' builtin"
    #136 "Added basic support for travis-ci.org integration"
    #171 "Typo fix"
    #172 "Grammar fixes in the docs"
    #173 "Grammar fixes in the manpage"
    #174 "more documentation fixes"
    #175 "more manpage fixes"
    #177 "sync --help output w/ manpage"
    #178 "Moves rts used in the manpage to master"
    #179 "compose manpage out of rsts from gh-pages-gen"
    #189 "Typo fix and small grammatical change"
    #191 "Makefile.am: create target directory before writing into it"

Version 0.16 (2016-01-21)
-------------------------
- Fixed bug #127 "code generation error with wide chars and bitmaps (omitted 'goto' statement)"
- Added DFA minimization and option '--dfa-minimization <table | moore>'
- Fixed bug #128 "very slow DFA construction (resulting in a very large DFA)"
- Fixed bug #132 "test failure on big endian archs with 0.15.3"

Version 0.15.3 (2015-12-02)
---------------------------
- Fixed bugs and applied patches:
    #122 "clang does not compile re2c 0.15.x" (reported and fixed by Oleksii Taran).
    #124 "Get rid of UINT32_MAX and friends" (patch by Sergei Trofimovich, fixes FreeBSD builds).
    #125 "[OS X] git reports changes not staged for commit in newly cloned repository" (by Oleksii Taran, this fix also applies to Windows).
- Added option --no-version that allows to omit version information.
- Reduced memory and time consumed with -Wundefined-control-flow.
- Improved coverage of input data generated with -S --skeleton.

Version 0.15.2 (2015-11-23)
---------------------------
- Fixed build system: lexer depends on bison-generated parser
  (Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=566620)

Version 0.15.1 (2015-11-22)
---------------------------
- Fixed test failures caused by locale-sensitive 'sort'.

Version 0.15 (2015-11-22)
-------------------------
- Updated website http://re2c.org:
        added examples
        updated docs
        added news
        added web feed (Atom 1.0)
- Added options:
        -S, --skeleton
        --empty-class <match-empty | match-none | error>
- Added warnings:
        -W
        -Werror
        -W<warning>
        -Wno-<warning>
        -Werror-<warning>
        -Wno-error-<warning>
- Added individual warnings:
        -Wundefined-control-flow
        -Wunreachable-rules
        -Wcondition-order
        -Wuseless-escape
        -Wempty-character-class
        -Wswapped-range
        -Wmatch-empty-string
- Fixed options:
        -- (interpret remaining arguments as non-options)
- Deprecated options:
        -1 --single-pass (single pass is by default now)
- Reduced size of the generated .dot files.
- Fixed bugs:
        #27 re2c crashes reading files containing %{ %} (patch by Rui)
        #51 default rule doesn't work in reuse mode
        #52 eliminate multiple passes
        #59 bogus yyaccept in -c mode
        #60 redundant use of YYMARKER
        #61 empty character class [] matches empty string
        #115 flex-style named definitions cause ambiguity in re2c grammar
        #119 -f with -b/-g generates incorrect dispatch on fill labels
        #116 empty string with non-empty trailing context consumes code units
- Added test options:
        -j, -j <N> (run tests in N threads, defaults to the number of CPUs)
        --wine (test windows builds using wine)
        --skeleton (generate skeleton programs, compile and execute them)
        --keep-tmp-files (don't delete intermediate files for successful tests)
- Updated build system:
        support out of source builds
        support `make distcheck`
        added `make bootstrap` (rebuild re2c after building with precomplied .re files)
        added `make tests` (run tests with -j)
        added `make vtests` (run tests with --valgrind -j)
        added `make wtests` (run tests with --wine -j 1)
        added Autoconf tests for CXXFLAGS. By default try the following options:
            -W -Wall -Wextra -Weffc++ -pedantic -Wformat=2 -Wredundant-decls
            -Wsuggest-attribute=format -Wconversion -Wsign-conversion -O2 -Weverything),
            respect user-defined CXXFLAGS
        support Mingw builds: `configure -host i686-w64-mingw32`
        structured source files
        removed old MSVC files
- Moved development to github (https://github.com/skvadrik/re2c), keep a mirror on sourceforge.

Version 0.14.3 (2015-05-20)
-----------------------------
- applied patch '#27 re2c crashes reading files containing %{ %}' by Rui
- dropped distfiles for MSVC (they are broken anyway)

Version 0.14.2 (2015-03-25)
-----------------------------
- fixed #57 Wrong result only if another rule is present

Version 0.14.1 (2015-02-27)
-----------------------------
- fixed #55 re2c-0.14: re2c -V outputs null byte

Version 0.14 (2015-02-23)
-----------------------------
- Added generic input API 21 (#21 Support to configure how re2c code interfaced with the symbol buffer?)
- fixed #46 re2c generates an infinite loop, depends on existence of previous parser
- fixed #47 Dot output label escaped characters

Version 0.13.7.5 (2014-08-22)
-----------------------------
- Fixed Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=518904 (PHP lexer)

Version 0.13.7.4 (2014-07-29)
-----------------------------
- Enabled 'make docs' only if configured with '--enable-docs'
- Disallowed to use yacc/byacc instead of bison to build parser
- Removed non-portable sed feature in script that runs tests

Version 0.13.7.3 (2014-07-28)
-----------------------------
- Fixed CXX warning
- Got rid of asciidoc build-time dependency

Version 0.13.7.2 (2014-07-27)
-----------------------------
- Included man page into dist, respect users CXXFLAGS.

Version 0.13.7.1 (2014-07-26)
-----------------------------
- Added missing files to tarball

Version 0.13.7 (2014-07-25)
---------------------------
- Added UTF-8 support
- Added UTF-16 support
- Added default rule
- Added option to control ill-formed Unicode

Version 0.13.6 (2013-07-04)
---------------------------
- Fixed #2535084 uint problem with Sun C 5.8
- #3308400: allow Yacc-style %{code brackets}%
- #2506253: allow C++ // comments
- Fixed inplace configuration in -e mode.
- Applied #2482572 Typos in error messages.
- Applied #2482561 Error in manual section on -r mode.
- Fixed #2478216 Wrong start_label in -c mode.
- Fixed #2186718 Unescaped backslash in file name of #line directive.
- Fixed #2102138 Duplicate case labels on EBCDIC.
- Fixed #2088583 Compile problem on AIX.
- Fixed #2038610 Ebcdic problem.
- improve dot support: make char intervals (e.g. [A-Z]) instead of one edge per char

Version 0.13.5 (2008-05-25)
---------------------------
- Fixed #1952896 Segfault in re2c::Scanner::scan.
- Fixed #1952842 Regression.

Version 0.13.4 (2008-04-05)
---------------------------
- Added transparent handling of #line directives in input files.
- Added re2c:yyfill:check inplace configuration.
- Added re2c:define:YYSETSTATE:naked inplace configuration.
- Added re2c:flags:w and re2c:flags:u inplace configurations.
- Added the ability to add rules in 'use:re2c' blocks.
- Changed -r flag to accept only 'rules:re2c' and 'use:re2c' blocks.

Version 0.13.3 (2008-03-14)
---------------------------
- Added -r flag to allow reuse of scanner definitions.
- Added -F flag to support flex syntax in rules.
- Fixed SEGV in scanner that occurs with very large blocks.
- Fixed issue with unused yybm.
- Partial support for flex syntax.
- Changed to allow /* comments with -c switch.
- Added flag -D/--emit-dot.

Version 0.13.2 (2008-02-14)
---------------------------
- Added flag --case-inverted.
- Added flag --case-insensitive.
- Added support for '<!...>' to enable rule setup.
- Added support for '=>' style rules.
- Added support for ':=' style rules.
- Added support for ':=>' style rules.
- Added re2c:cond:divider and re2c:con:goto inplace configuration.
- Fixed code generation to emit space after 'if'.

Version 0.13.1 (2007-08-24)
---------------------------
- Added custom build rules for Visual Studio 2005 (re2c.rules). (William Swanson)
- Fixed issue with some compilers.
- Fixed #1776177 Build on AIX.
- Fixed #1743180 fwrite with 0 length crashes on OS X.

Version 0.13.0 (2007-06-24)
---------------------------
- Added -c and -t to generate scanners with (f)lex-like condition support.
- Fixed issue with short form of switches and parameter if not first switch.
- Fixed #1708378 segfault in actions.cc.

Version 0.12.3 (2007-08-24)
---------------------------
- Fixed issue with some compilers.
- Fixed #1776177 Build on AIX.
- Fixed #1743180 fwrite with 0 length crashes on OS X.

Version 0.12.2 (2007-06-26)
---------------------------
- Fixed #1743180 fwrite with 0 length crashes on OS X.

Version 0.12.1 (2007-05-23)
---------------------------
- Fixed #1711240 problem with '"' and 7F on EBCDIC plattforms.

Version 0.12.0 (2007-05-01)
---------------------------
- Re-release of 0.11.3 as new stable branch.
- Fixed issue with short form of switches and parameter if not first switch.
- Fixed #1708378 segfault in actions.cc.

Version 0.11.3 (2007-04-01)
---------------------------
- Added support for underscores in named definitions.
- Added new option --no-generation-date.
- Fixed issue with long form of switches.

Version 0.11.2 (2007-03-01)
---------------------------
- Added inplace configuration 're2c:yyfill:parameter'.
- Added inplace configuration 're2c:yych:conversion'.
- Fixed -u switch code generation.
- Added ability to avoid defines and overwrite variable and label names.

Version 0.11.1 (2007-02-20)
---------------------------
- Applied #1647875 add const to yybm vector.

Version 0.11.0 (2007-01-01)
---------------------------
- Added -u switch to support unicode.

Version 0.10.8 (2007-04-01)
---------------------------
- Fixed issue with long form of switches.

Version 0.10.7 (2007-02-20)
---------------------------
- Applied #1647875 add const to yybm vector.

Version 0.10.6 (2006-08-05)
---------------------------
- Fixed #1529351 Segv bug on unterminated code blocks.
- Fixed #1528269 Invalid code generation.

Version 0.10.5 (2006-06-11)
---------------------------
- Fixed long form of -1 switch to --single-pass as noted in man page and help.
- Added MSVC 2003 project files and renamed old 2002 ones.

Version 0.10.4 (2006-06-01)
---------------------------
- Fix whitespace in generated code.

Version 0.10.3 (2006-05-14)
---------------------------
- Fixed issue with -wb and -ws.
- Added -g switch to support gcc's computed goto's.
- Changed to use nested if's instead of "switch(yyaccept)" in -s mode.

Version 0.10.2 (2006-05-01)
---------------------------
- Changed to generate YYMARKER only when needed or in single pass mode.
- Added -1 switch to force single pass generation and make two pass the default.
- Fixed -i switch.
- Added configuration 'yyfill:enable' to allow suppression of YYFILL() blocks.
- Added tutorial like lessons to re2c.
- Added /*!ignore:re2c */ to support documenting of re2c source.
- Fixed issue with multiline re2c comments (/*!max:re2c ... */ and alike).
- Fixed generation of YYDEBUG() when using -d switch.
- Added /*!getstate:re2c */ which triggers generation of the YYGETSTATE() block.
- Added configuration 'state:abort'.
- Changed to not generate yyNext unless configuration 'state:nextlabel' is used.
- Changed to not generate yyaccept code unless needed.
- Changed to use if- instead of switch-expression when yyaccpt has only one case.
- Added docu, examples and tests to .src.zip package (0.10.1 zip was repackaged).
- Fixed #1479044 incorrect code generated when using -b.
- Fixed #1472770 re2c creates an infinite loop.
- Fixed #1454253 Piece of code saving a backtracking point not generated.
- Fixed #1463639 Missing forward declaration.
- Implemented #1187127 savable state support for multiple re2c blocks.

Version 0.10.1 (2006-02-28)
---------------------------
- Added support for Solaris and native SUN compiler.
- Applied #1438160 expose YYCTXMARKER.

Version 0.10.0 (2006-02-18)
---------------------------
- Added make target zip to create windows source packages as zip files.
- Added re2c:startlabel configuration.
- Fixed code generation to not generate unreachable code for initial state.
- Added support for c/c++ compatible \u and \U unicode notation.
- Added ability to control indendation.
- Made scanner error out in case an ambiguous /* is found.
- Fixed indendation of generated code.
- Added support for DOS line endings.
- Added experimental unicode support.
- Added config_w32.h to build out of the box on windows (using msvc 2002+).
- Added Microsoft Visual C .NET 2005 build files.
- Applied #1411087 variable length trailing context.
- Applied #1408326 do not generate goto next state.
- Applied #1408282 CharSet initialization fix.
- Applied #1408278 readsome with MSVC.
- Applied #1307467 Unicode patch for 0.9.7.

Version 0.9.12 (2005-12-28)
---------------------------
- Fixed bug #1390174 re2c cannot accept {0,}.

Version 0.9.11 (2005-12-18)
---------------------------
- Fixed #1313083 -e (EBCDIC cross compile) broken.
- Fixed #1297658 underestimation of n in YYFILL(n).
- Applied #1339483 Avoid rebuilds of re2c when running subtargets.
- Implemented #1335305 symbol table reimplementation, just slightly modifed.

Version 0.9.10 (2005-09-04)
---------------------------
- Added -i switch to avoid generating #line information.
- Fixed bug #1251653 re2c generate some invalid #line on WIN32.

Version 0.9.9 (2005-07-21)
--------------------------
- Implemented #1232777 negated char classes '[^...]' and the dot operator '.'.
- Added hexadecimal character definitions.
- Added consistency check for octal character definitions.

Version 0.9.8 (2005-06-26)
--------------------------
- Fixed code generation for -b switch.
- Added Microsoft Visual C .NET build files.

Version 0.9.7 (2005-04-30)
--------------------------
- Applied #1181535 storable state patch.
- Added -d flag which outputs a debugable parser.
- Fixed generation of '#line' directives (according to ISO-C99).
- Fixed bug #1187785 Re2c fails to generate valid code.
- Fixed bug #1187452 unused variable `yyaccept'.

Version 0.9.6 (2005-04-14)
--------------------------
- Fixed build with gcc >= 3.4.

Version 0.9.5 (2005-04-08)
--------------------------
- Added /*!max:re2c */ which emits a '#define YYMAXFILL <max>\n' line
  This allows to define buffers of the minimum required length. Occurence
  must follow '/*re2c */ and cannot preceed it.
- Changed re2c to two pass generation to output warning free code.
- Fixed bug #1163046 re2c hangs when processing valid re-file.
- Fixed bug #1022799 re2c scanner has buffering bug.

Version 0.9.4 (2005-03-12)
--------------------------
- Added --vernum support.
- Fixed bug #1054496 incorrect code generated with -b option.
- Fixed bug #1012748 re2c does not emit last line if '\n' missing.
- Fixed bug #999104 --output=output option does not work as documented.
- Fixed bug #999103 Invalid options prefixed with two dashes cause program crash.

Version 0.9.3 (2004-05-26)
--------------------------
- Fixes one small possible bug in the generated output.  ych instead of yych is 
  output in certain circumstances

Version 0.9.2 (2004-05-26)
--------------------------
- Added -o option to specify the output file which also will set the #line 
  directives to something useful.
- Print version to cout instead cerr.
- Added -h and -- style options.
- Moved development to http://sourceforge.net/projects/re2c .
- Fixed bug #960144 minor cosmetic problem.
- Fixed bug #953181 cannot compile with.
- Fixed bug #939277 Windows support.
- Fixed bug #914462 automake build patch
- Fixed bug #891940 braced quantifiers: {\d+(,|,\d+)?} style.
- Fixed bug #869298 Add case insensitive string literals.
- Fixed bug #869297 Input buffer overrun. 

Version 0.9.1 (2003-12-13)
--------------------------
- Removed rcs comments in source files.

Version 0.9
-----------
- Redistribution based on version 0.5.
- Added parentheses to assignment expressions in 'if' statements.
- Rearranged class members to match initialization order.
- Substr fix.
- Use array delete [] when necessary.
- Other minor fixes for subduing compiler warnings.