| 1 | Changes from 3.1.4 to 3.1.5
|
|---|
| 2 | ---------------------------
|
|---|
| 3 |
|
|---|
| 4 | 1. The random() suite has been updated to a current FreeBSD version, which
|
|---|
| 5 | works on systems with > 32-bit ints.
|
|---|
| 6 |
|
|---|
| 7 | 2. A new option, `--exec' has been added. It's like -f but ends option
|
|---|
| 8 | processing. It also disables `x=y' variable assignments, but not -v.
|
|---|
| 9 | It's needed mainly for CGI scripts, so that source code can't be
|
|---|
| 10 | passed in as part of the URL.
|
|---|
| 11 |
|
|---|
| 12 | 3. dfa.[ch] have been synced with GNU grep development. This also fixes
|
|---|
| 13 | multiple regex matching problems in multibyte locales.
|
|---|
| 14 |
|
|---|
| 15 | 4. Updated to Automake 1.9.5.
|
|---|
| 16 |
|
|---|
| 17 | 5. Updated to Bison 2.0.
|
|---|
| 18 |
|
|---|
| 19 | 6. The getopt* and regex* files were synchronized with current GLIBC CVS.
|
|---|
| 20 | See the ChangeLog for the versions and minor edits made.
|
|---|
| 21 |
|
|---|
| 22 | 7. `configure --disable-nls' now disables just gawk's own translations.
|
|---|
| 23 | Gawk continues to work with the locale's numeric formatting. This
|
|---|
| 24 | includes a bug fix in handling the printf ' flag (e.g., %'d).
|
|---|
| 25 |
|
|---|
| 26 | 8. Gawk is now multibyte aware. This means that index(), length(),
|
|---|
| 27 | substr() and match() all work in terms of characters, not bytes.
|
|---|
| 28 |
|
|---|
| 29 | 9. Gawk is now smarter about parsing numeric constants in corner cases.
|
|---|
| 30 |
|
|---|
| 31 | 11. Not closing open redirections no longer causes gawk to exit non-zero.
|
|---|
| 32 |
|
|---|
| 33 | 10. The VMS port has been updated.
|
|---|
| 34 |
|
|---|
| 35 | 11. Changes from Andrew Schorr at the xmlgawk project to provide for
|
|---|
| 36 | open hooks from extensions are now included. This will let the
|
|---|
| 37 | xmlgawk extension work in the standard gawk.
|
|---|
| 38 |
|
|---|
| 39 | 12. Updated to gettext 0.14.4. Gawk no longer includes its own copy
|
|---|
| 40 | of the gettext `intl' library, following current GNU practice to
|
|---|
| 41 | rely on there being an external version thereof.
|
|---|
| 42 |
|
|---|
| 43 | 13. A regexp of the form `//' will now generate a warning that it
|
|---|
| 44 | is not a C++ comment from --lint (awk.y).
|
|---|
| 45 |
|
|---|
| 46 | 14. The ^ and ^= operators with an integer exponent now use Exponentiation
|
|---|
| 47 | by Squaring. This simultaneously fixes a problem with ^= and a negative
|
|---|
| 48 | integer exponent.
|
|---|
| 49 |
|
|---|
| 50 | 15. length(array) now returns the number of elements in the array. This is
|
|---|
| 51 | is a non-standard extension that will fail in POSIX mode.
|
|---|
| 52 |
|
|---|
| 53 | 16. Carriage return characters are now ignored in program source code.
|
|---|
| 54 |
|
|---|
| 55 | 17. Four new translations added.
|
|---|
| 56 |
|
|---|
| 57 | 18. Various minor bugs fixed. See the ChangeLog for the details.
|
|---|
| 58 |
|
|---|
| 59 | Changes from 3.1.3 to 3.1.4
|
|---|
| 60 | ---------------------------
|
|---|
| 61 |
|
|---|
| 62 | 1. Gawk now supports the POSIX %F format, falling back to %f if the local
|
|---|
| 63 | system printf doesn't handle it.
|
|---|
| 64 |
|
|---|
| 65 | 2. Gawk now supports the ' flag in printf. E.g., %'d in a locale with thousands
|
|---|
| 66 | separators includes the thousands separator in the value, e.g. 12,345.
|
|---|
| 67 |
|
|---|
| 68 | This has one problem; the ' flag is next to impossible to use on the
|
|---|
| 69 | command line, without major quoting games. Oh well, TANSTAAFL.
|
|---|
| 70 |
|
|---|
| 71 | 3. The dfa code has been reinstated; the performance degradation was
|
|---|
| 72 | just too awful. Sigh. (For fun, use `export GAWK_NO_DFA=1' to
|
|---|
| 73 | see the difference.)
|
|---|
| 74 |
|
|---|
| 75 | 4. The special case `x = x y' is now recognized in the grammar, and gawk
|
|---|
| 76 | now uses `realloc' to append the new value to the end of the existing
|
|---|
| 77 | one. This can speed up the common case of appending onto a string.
|
|---|
| 78 |
|
|---|
| 79 | 5. The dfa code was upgraded with most of the fixes from grep 2.5.1, and
|
|---|
| 80 | the regex code was upgraded with GLIBC as mid-January 2004. The regex
|
|---|
| 81 | code is faster than it was, but still not as fast as the dfa code, so
|
|---|
| 82 | the dfa code stays in. The getopt code was also synced to current GLIBC.
|
|---|
| 83 |
|
|---|
| 84 | 6. Support code upgraded to Automake 1.8.5, Autoconf 2.59, and gettext 0.14.1.
|
|---|
| 85 |
|
|---|
| 86 | 7. When --posix is in effect, sub/gsub now follow the 2001 POSIX behavior.
|
|---|
| 87 | Yippee. This is even documented in the manual.
|
|---|
| 88 |
|
|---|
| 89 | 8. Gawk will now recover children that have died (input pipelines, two-way
|
|---|
| 90 | pipes), upon detecting EOF from them, thus avoiding filling
|
|---|
| 91 | up the process table. Open file descriptors are not recovered
|
|---|
| 92 | (unfortunately), since that could break awk semantics. See the
|
|---|
| 93 | ChangeLog and the source code for the details.
|
|---|
| 94 |
|
|---|
| 95 | 9. Handling of numbers like `0,1' in non-American locales ought to
|
|---|
| 96 | work correctly now.
|
|---|
| 97 |
|
|---|
| 98 | 10. IGNORECASE is now locale-aware for characters with values above 128.
|
|---|
| 99 | The dfa matcher is now used for IGNORECASE matches too.
|
|---|
| 100 |
|
|---|
| 101 | 11. Dynamic function loading is better. The documentation has been improved
|
|---|
| 102 | and some new APIs for use by dynamic functions have been added.
|
|---|
| 103 |
|
|---|
| 104 | 12. Gawk now has a fighting chance of working on older systems,
|
|---|
| 105 | a la SunOS 4.1.x.
|
|---|
| 106 |
|
|---|
| 107 | 13. Issues with multibyte support on HP-UX are now resolved. `configure' now
|
|---|
| 108 | disables such support there, since it's not up to what gawk needs.
|
|---|
| 109 |
|
|---|
| 110 | 14. There are now even more tests in the test suite.
|
|---|
| 111 |
|
|---|
| 112 | 15. Various bugs fixed; see ChangeLog for the details.
|
|---|
| 113 |
|
|---|
| 114 | Changes from 3.1.2 to 3.1.3
|
|---|
| 115 | ---------------------------
|
|---|
| 116 |
|
|---|
| 117 | 1. Gawk now follows POSIX in handling of local numeric formats for
|
|---|
| 118 | input, output and number/string conversions.
|
|---|
| 119 |
|
|---|
| 120 | 2. Multibyte detection improved. See README_d/README.multibyte for more
|
|---|
| 121 | info about multibyte locales.
|
|---|
| 122 |
|
|---|
| 123 | 3. Handling of `close' made more POSIX-compliant for POSIXLY_CORRECT,
|
|---|
| 124 | see the documentation.
|
|---|
| 125 |
|
|---|
| 126 | 4. The record reading code was redone, again. This time it's much
|
|---|
| 127 | better. Really!
|
|---|
| 128 |
|
|---|
| 129 | 5. For RS = "\n" and RS = "", gawk now only sets RT when it has changed.
|
|---|
| 130 | This provides considerable performance improvement.
|
|---|
| 131 |
|
|---|
| 132 | 6. `match' now sets all the subscripts in the third argument array
|
|---|
| 133 | correctly, even if not all subexpressions matched.
|
|---|
| 134 |
|
|---|
| 135 | 7. Updated to Automake 1.7.5. configure.in renamed configure.ac.
|
|---|
| 136 |
|
|---|
| 137 | 8. C-style switch statements are available, but must be enabled at
|
|---|
| 138 | compile time via `configure --enable-switch'. For 3.2 they'll be
|
|---|
| 139 | enabled by default. Thanks to Michael Benzinger for the initial
|
|---|
| 140 | code.
|
|---|
| 141 |
|
|---|
| 142 | 9. %c now always prints no more than one character, whatever
|
|---|
| 143 | precision is provided.
|
|---|
| 144 |
|
|---|
| 145 | 10. strtonum(<number>) now works again.
|
|---|
| 146 |
|
|---|
| 147 | 11. Gawk is now much better about scalar/array typing of global
|
|---|
| 148 | uninitiailzed variables passed as parameters. Once the parameter
|
|---|
| 149 | is then used one way or the other, the global var's type is
|
|---|
| 150 | adjusted accordingly. Thanks to Stepan Kasal for the original
|
|---|
| 151 | (considerable) changes.
|
|---|
| 152 |
|
|---|
| 153 | 12. Dynamic function loading under Windows32 should now be possible. See
|
|---|
| 154 | README_d/README.pcdynamic. Thanks to Patrick T.J. McPhee for the changes.
|
|---|
| 155 |
|
|---|
| 156 | 13. Updated to gettext 0.12.1.
|
|---|
| 157 |
|
|---|
| 158 | 14. Gawk now follows historical practice and POSIX for the return
|
|---|
| 159 | value of `rand': It's now 0 <= N < 1.
|
|---|
| 160 |
|
|---|
| 161 | Changes from 3.1.1 to 3.1.2
|
|---|
| 162 | ---------------------------
|
|---|
| 163 |
|
|---|
| 164 | 1. Loops of the form:
|
|---|
| 165 |
|
|---|
| 166 | for (iggy in foo)
|
|---|
| 167 | next
|
|---|
| 168 |
|
|---|
| 169 | no longer leak memory.
|
|---|
| 170 |
|
|---|
| 171 | 2. gawk -v FIELDWIDTHS="..." now sets PROCINFO["FS"] correctly.
|
|---|
| 172 |
|
|---|
| 173 | 3. All builtin operations and functions should now fully evaluate their
|
|---|
| 174 | arguments so that side effects take place correctly.
|
|---|
| 175 |
|
|---|
| 176 | 4. Fixed a logic bug in gsub/gensub for matches to null strings that occurred
|
|---|
| 177 | later in the string after a nonnull match.
|
|---|
| 178 |
|
|---|
| 179 | 5. getgroups code now works on Ultrix again.
|
|---|
| 180 |
|
|---|
| 181 | 6. Completely new version of the full GNU regex engine now in place.
|
|---|
| 182 |
|
|---|
| 183 | 7. Argument parsing and variable assignment has been cleaned up.
|
|---|
| 184 |
|
|---|
| 185 | 8. An I/O bug on HP-UX has been documented and worked around. See
|
|---|
| 186 | README_d/README.hpux.
|
|---|
| 187 |
|
|---|
| 188 | 9. awklib/grcat should now compile correctly.
|
|---|
| 189 |
|
|---|
| 190 | 10. Updated to automake 1.7.3, autoconf 2.57 and gettext 0.11.5 ; thanks to
|
|---|
| 191 | Paul Eggert for the initial automake and autoconf work.
|
|---|
| 192 |
|
|---|
| 193 | 11. As a result of #6, removed the use of the dfa code from GNU grep.
|
|---|
| 194 |
|
|---|
| 195 | 12. It is now possible to use ptys for |& two-way pipes instead of
|
|---|
| 196 | pipes. The basic plumbing for this was provided by Paolo Bonzini.
|
|---|
| 197 | To make this happen:
|
|---|
| 198 |
|
|---|
| 199 | command = "unix command etc"
|
|---|
| 200 | PROCINFO[command, "pty"] = 1
|
|---|
| 201 |
|
|---|
| 202 | print ... |& command
|
|---|
| 203 | command |& getline stuff
|
|---|
| 204 |
|
|---|
| 205 | In other words, set the element in PROCINFO *before* opening the
|
|---|
| 206 | two-way pipe, and then gawk will use ptys instead of pipes.
|
|---|
| 207 |
|
|---|
| 208 | On systems without ptys or where all the ptys are in use, gawk
|
|---|
| 209 | will fall back to using plain pipes.
|
|---|
| 210 |
|
|---|
| 211 | 13. Fixed a regex matching across buffer boundaries bug, with a
|
|---|
| 212 | heuristic. See io.c:rsre_get_a_record.
|
|---|
| 213 |
|
|---|
| 214 | 14. Profiling no longer dumps core if there are extension functions in place.
|
|---|
| 215 |
|
|---|
| 216 | 15. Grammar and scanner cleaned up, courtesy of Stepen Kasal, to hopefully
|
|---|
| 217 | once and for all fix the `/=' operator vs. `/=.../' regex ambiguity.
|
|---|
| 218 | Lots of other grammar simplifications applied, as well.
|
|---|
| 219 |
|
|---|
| 220 | 16. BINMODE should work now on more Windows ports.
|
|---|
| 221 |
|
|---|
| 222 | 17. Updated to bison 1.875. Includes fix to bisonfix.sed script.
|
|---|
| 223 |
|
|---|
| 224 | 18. The NODE structure is now 20% (8 bytes) smaller (on x86, anyway), which
|
|---|
| 225 | should help conserve memory.
|
|---|
| 226 |
|
|---|
| 227 | 19. Builds not in the source directory should work again.
|
|---|
| 228 |
|
|---|
| 229 | 20. Arrays now use 2 NODE's per element instead of three. Combined with
|
|---|
| 230 | #18, (on the x86) this reduces the overhead from 120 bytes per element
|
|---|
| 231 | to just 64 bytes: almost a 50% improvement.
|
|---|
| 232 |
|
|---|
| 233 | 21. Programs that make heavy use of changing IGNORECASE should now be
|
|---|
| 234 | much faster, particularly if using a regular expression for FS or RS.
|
|---|
| 235 | IGNORECASE now correctly affects RS regex record splitting, as well.
|
|---|
| 236 |
|
|---|
| 237 | 22. IGNORECASE no longer affects single-character field splitting (FS = "c"),
|
|---|
| 238 | or single-character record splitting (RS = "c").
|
|---|
| 239 |
|
|---|
| 240 | This cleans up some weird behavior, and makes gawk better match the
|
|---|
| 241 | documentation, which says it only affects regex-based field splitting
|
|---|
| 242 | and record splitting.
|
|---|
| 243 |
|
|---|
| 244 | The documentation on this was improved, too.
|
|---|
| 245 |
|
|---|
| 246 | 23. The framework in test/ has been simplified, making it much easier to
|
|---|
| 247 | add new tests while keeping the size of Makefile.am reasonable. Thanks
|
|---|
| 248 | for this to Stepan Kasal.
|
|---|
| 249 |
|
|---|
| 250 | 24. --lint=invalid causes lint warnings only about stuff that's actually
|
|---|
| 251 | invalid. This needs additional work.
|
|---|
| 252 |
|
|---|
| 253 | 25. More translations.
|
|---|
| 254 |
|
|---|
| 255 | 26. The `get_a_record' routine has been revamped (currently by splitting it
|
|---|
| 256 | into three variants). This should improve long-term maintainability.
|
|---|
| 257 |
|
|---|
| 258 | 27. `match' now adds more entries to 3rd array arg:
|
|---|
| 259 | match("the big dog", /([a-z]+) ([a-z]+) ([a-z]+)/, data)
|
|---|
| 260 | fills in variables:
|
|---|
| 261 | data[1, "start"], data[1, "length"], and so on.
|
|---|
| 262 |
|
|---|
| 263 | 28. New `asorti' function with same interface as `asort', but sorts indices
|
|---|
| 264 | instead of values.
|
|---|
| 265 |
|
|---|
| 266 | 29. Documentation updated to FDL 1.2.
|
|---|
| 267 |
|
|---|
| 268 | 30. New `configure' option --disable-lint at compile time disables lint
|
|---|
| 269 | checking. With GCC dead-code-elimination, cuts almost 200K off the
|
|---|
| 270 | executable size on GNU/Linux x86. Presumably speeds up runtime.
|
|---|
| 271 |
|
|---|
| 272 | Using this will cause some of the tests in the test suite to fail.
|
|---|
| 273 | This option may be removed at a later date.
|
|---|
| 274 |
|
|---|
| 275 | 31. Various minor cleanups, see the ChangeLog for details.
|
|---|
| 276 |
|
|---|
| 277 | Changes from 3.1.0 to 3.1.1
|
|---|
| 278 | ---------------------------
|
|---|
| 279 |
|
|---|
| 280 | 1. Six new translations.
|
|---|
| 281 |
|
|---|
| 282 | 2. Having more than 4 different values for OFMT and/or CONVFMT now works.
|
|---|
| 283 |
|
|---|
| 284 | 3. The handling of dynamic regexes is now more more sane, esp. w.r.t.
|
|---|
| 285 | the profiling code. The profiling code has been fixed in several
|
|---|
| 286 | places.
|
|---|
| 287 |
|
|---|
| 288 | 4. The return value of index("", "") is now 1.
|
|---|
| 289 |
|
|---|
| 290 | 5. Gawk should no longer close fd 0 in child processes.
|
|---|
| 291 |
|
|---|
| 292 | 6. Fixed test for strtod semantics and regenerated configure.
|
|---|
| 293 |
|
|---|
| 294 | 7. Gawk can now be built with byacc; an accidental bison dependency was
|
|---|
| 295 | removed.
|
|---|
| 296 |
|
|---|
| 297 | 8. `yyerror' will no longer dump core on long source lines.
|
|---|
| 298 |
|
|---|
| 299 | 9. Gawk now correctly queries getgroups(2) to figure out how many groups
|
|---|
| 300 | the process has.
|
|---|
| 301 |
|
|---|
| 302 | 10. New configure option to force use of included strftime, e.g. on
|
|---|
| 303 | Solaris systems. See `./configure --help' for the details. Replaced
|
|---|
| 304 | the included strftime.c with the one from textutils.
|
|---|
| 305 |
|
|---|
| 306 | 11. OS/2 port has been updated.
|
|---|
| 307 |
|
|---|
| 308 | 12. Multi-byte character support has been added, courtesy of IBM Japan.
|
|---|
| 309 |
|
|---|
| 310 | 13. The `for (iggy in foo) delete foo[iggy]' -> `delete foo' optimisation
|
|---|
| 311 | now works.
|
|---|
| 312 |
|
|---|
| 313 | 14. Upgraded to gettext 0.11.2 and automake 1.5.
|
|---|
| 314 |
|
|---|
| 315 | 15. Full gettext compatibility (new dcngettext function).
|
|---|
| 316 |
|
|---|
| 317 | 16. The O'Reilly copyedits and indexing changes for the documentation have
|
|---|
| 318 | been folded into the texinfo version of the manuals.
|
|---|
| 319 |
|
|---|
| 320 | 17. A humongously long value for the AWKPATH environment variable will no
|
|---|
| 321 | longer dump core.
|
|---|
| 322 |
|
|---|
| 323 | 18. Configuration / Installation issues have been straightened out in
|
|---|
| 324 | Makefile.am.
|
|---|
| 325 |
|
|---|
| 326 | Changes from 3.0.6 to 3.1.0
|
|---|
| 327 | ---------------------------
|
|---|
| 328 |
|
|---|
| 329 | 1. A new PROCINFO array provides info about the process. The non-I/O /dev/xxx
|
|---|
| 330 | files are now obsolete, and their use always generates a warning.
|
|---|
| 331 |
|
|---|
| 332 | 2. A new `mktime' builtin function was added for creating time stamps. The
|
|---|
| 333 | `mktime' function written in awk was removed from the user's guide.
|
|---|
| 334 |
|
|---|
| 335 | 3. New `--gen-po' option creates GNU gettext .po files for strings marked
|
|---|
| 336 | with a leading underscore.
|
|---|
| 337 |
|
|---|
| 338 | 4. Gawk now completely interprets special file names internally, ignoring the
|
|---|
| 339 | existence of real /dev/stdin, /dev/stdout files, etc.
|
|---|
| 340 |
|
|---|
| 341 | 5. The mmap code was removed. It was a worthwhile experiment that just
|
|---|
| 342 | didn't work out.
|
|---|
| 343 |
|
|---|
| 344 | 6. The BINMODE variable is new; on non-UNIX systems it affects how gawk
|
|---|
| 345 | opens files for text vs. binary.
|
|---|
| 346 |
|
|---|
| 347 | 7. The atari port is now unsupported.
|
|---|
| 348 |
|
|---|
| 349 | 8. Gawk no longer supports `next file' as two words.
|
|---|
| 350 |
|
|---|
| 351 | 9. On systems that support it, gawk now sets the `close on exec' flag on all
|
|---|
| 352 | files and pipes it opens. This makes sure that child processes run via
|
|---|
| 353 | `system' or pipes have plenty of file descriptors available.
|
|---|
| 354 |
|
|---|
| 355 | 10. New ports: Tandem and BeOS. The Tandem port is unsupported.
|
|---|
| 356 |
|
|---|
| 357 | 11. If `--posix' is in effect, newlines are not allowed after ?:.
|
|---|
| 358 |
|
|---|
| 359 | 12. Weird OFMT/CONVFMT formats no longer cause fatal errors.
|
|---|
| 360 |
|
|---|
| 361 | 13. Diagnostics about array parameters now include the parameter's name,
|
|---|
| 362 | not just its number.
|
|---|
| 363 |
|
|---|
| 364 | 14. configure should now automatically add -D_SYSV3 for ISC Unix.
|
|---|
| 365 | (This seems to have made it into the gawk 3.0.x line long ago.)
|
|---|
| 366 |
|
|---|
| 367 | 15. It is now possible to open a two-way pipe via the `|&' operator.
|
|---|
| 368 | See the discussion in the manual about putting `sort' into such a pipeline,
|
|---|
| 369 | though. (NOTE! This is borrowed from ksh: it is not the same as
|
|---|
| 370 | the same operator in csh!)
|
|---|
| 371 |
|
|---|
| 372 | 16. The `close' function now takes an optional second string argument
|
|---|
| 373 | that allows closing one or the other end of the two-way pipe to
|
|---|
| 374 | a co-process. This is needed to use `sort' in a co-process, see
|
|---|
| 375 | the doc.
|
|---|
| 376 |
|
|---|
| 377 | 17. If TCP/IP is available, special file names beginning with `/inet'
|
|---|
| 378 | can be used with `|&' for IPC. Thanks to Juergen Kahrs for the initial
|
|---|
| 379 | code.
|
|---|
| 380 |
|
|---|
| 381 | 18. With `--enable-portals' on the configure command line, gawk will also
|
|---|
| 382 | treat file names that start with `/p/' as a 4.4 BSD type portal file,
|
|---|
| 383 | i.e., a two-way pipe for `|&'.
|
|---|
| 384 |
|
|---|
| 385 | 19. Unrecognized escapes, such as "\q" now always generate a warning.
|
|---|
| 386 |
|
|---|
| 387 | 20. The LINT variable is new; it provides dynamic control over the --lint
|
|---|
| 388 | option.
|
|---|
| 389 |
|
|---|
| 390 | 21. Lint warnings can be made fatal by using --lint=fatal or `LINT = "fatal"'.
|
|---|
| 391 | Use this if you're really serious about portable code.
|
|---|
| 392 |
|
|---|
| 393 | 22. Due to an enhanced sed script, there is no longer any need to worry
|
|---|
| 394 | about finding or using alloca. alloca.c is thus now gone.
|
|---|
| 395 |
|
|---|
| 396 | 23. A number of lint warnings have been added. Most notably, gawk will
|
|---|
| 397 | detect if a variable is used before assigned to. Warnings for
|
|---|
| 398 | when a string that isn't a number gets converted to a number are
|
|---|
| 399 | in the code but disabled; they seem to be too picky in practice.
|
|---|
| 400 |
|
|---|
| 401 | Also, gawk will now warn about function parameter names that shadow
|
|---|
| 402 | global variable names.
|
|---|
| 403 |
|
|---|
| 404 | 24. It is now possible to dynamically add builtin functions on systems
|
|---|
| 405 | that support dlopen. This facility is not (yet) as portable or well
|
|---|
| 406 | integrated as it might be. *** WARNING *** THIS FEATURE WILL EVOLVE!
|
|---|
| 407 |
|
|---|
| 408 | 25. There are *many* new tests in the test suite.
|
|---|
| 409 |
|
|---|
| 410 | 26. Profiling has been added! A separate version of gawk, named pgawk, is
|
|---|
| 411 | built and generates a run-time execution profile. The --profile option
|
|---|
| 412 | can be used to change the default output file. In regular gawk, this
|
|---|
| 413 | option pretty-prints the parse tree.
|
|---|
| 414 |
|
|---|
| 415 | 27. Gawk has been internationalized, using GNU gettext. Translations for
|
|---|
| 416 | future distributions are most welcome. Simultaneously, gawk was switched
|
|---|
| 417 | over to using automake. You need Automake 1.4a (from the CVS archive)
|
|---|
| 418 | if you want to muck with the Makefile.am files.
|
|---|
| 419 |
|
|---|
| 420 | 28. New `asort' function for sorting arrays. See the doc for details.
|
|---|
| 421 |
|
|---|
| 422 | 29. The match function takes an optional array third argument to hold
|
|---|
| 423 | the text matched by parenthesized sub-expressions.
|
|---|
| 424 |
|
|---|
| 425 | 30. The bit op functions and octal and hex source code constants are on by
|
|---|
| 426 | default, no longer a configure-time option. Recognition of non-decimal
|
|---|
| 427 | data is now enabled at runtime with --non-decimal-data command line option.
|
|---|
| 428 |
|
|---|
| 429 | 31. Internationalization features available at the awk level: new TEXTDOMAIN
|
|---|
| 430 | variable and `bindtextdomain' and `dcgettext' functions. printf formats
|
|---|
| 431 | may contain the "%2$3.5d" kind of notation for use in translations. See
|
|---|
| 432 | the texinfo manual for details.
|
|---|
| 433 |
|
|---|
| 434 | 32. The return value from `close' has been rationalized. Most notably,
|
|---|
| 435 | closing something that wasn't open returns -1 but remains non-fatal.
|
|---|
| 436 |
|
|---|
| 437 | 33. The array effeciency change from 3.0.5 was reverted; the semantics were
|
|---|
| 438 | not right. Additionally, index values of previously stored elements
|
|---|
| 439 | can no longer change dynamically.
|
|---|
| 440 |
|
|---|
| 441 | 34. The new option --dump-variables dumps a list of all global variables and
|
|---|
| 442 | their final types and values to a file you give, or to `awkvars.out'.
|
|---|
| 443 |
|
|---|
| 444 | 35. Gawk now uses a recent version of random.c courtesy of the FreeBSD
|
|---|
| 445 | project.
|
|---|
| 446 |
|
|---|
| 447 | 36. The gawk source code now uses ANSI C function definitions (new style),
|
|---|
| 448 | with ansi2knr to translate code for old compilers.
|
|---|
| 449 |
|
|---|
| 450 | 37. `for (iggy in foo)' loops should be more robust now in the face of
|
|---|
| 451 | adding/deleting elements in the middle; they loop over just the elements
|
|---|
| 452 | that are present in the array when the loop starts.
|
|---|
| 453 |
|
|---|
| 454 | Changes from 3.0.5 to 3.0.6
|
|---|
| 455 | ---------------------------
|
|---|
| 456 |
|
|---|
| 457 | This is a bug fix release only, pending further development on 3.1.0.
|
|---|
| 458 |
|
|---|
| 459 | Bugs fixed and changes made:
|
|---|
| 460 |
|
|---|
| 461 | 1. Subscripting an array with a variable that is just a number no
|
|---|
| 462 | longer magically converts the variable into a string.
|
|---|
| 463 |
|
|---|
| 464 | 2. Similarly, running a `for (iggy in foo)' loop where `foo' is a
|
|---|
| 465 | function parameter now works correctly.
|
|---|
| 466 |
|
|---|
| 467 | 3. Similarly, `i = ""; v[i] = a; if (i in v) ...' now works again.
|
|---|
| 468 |
|
|---|
| 469 | 4. Gawk now special cases `for (iggy in foo) delete foo[iggy]' and
|
|---|
| 470 | treats it as the moral equivalent of `delete foo'. This should be
|
|---|
| 471 | a major efficiency win when portably deleting large arrays.
|
|---|
| 472 |
|
|---|
| 473 | 5. VMS port brought up to date.
|
|---|
| 474 |
|
|---|
| 475 | Changes from 3.0.4 to 3.0.5
|
|---|
| 476 | ---------------------------
|
|---|
| 477 |
|
|---|
| 478 | This is a bug fix release only, pending further development on 3.1.0.
|
|---|
| 479 |
|
|---|
| 480 | Bugs Fixed:
|
|---|
| 481 |
|
|---|
| 482 | 1. `function foo(foo)' is now a fatal error.
|
|---|
| 483 |
|
|---|
| 484 | 2. Array indexing is now much more efficient: where possible, only one
|
|---|
| 485 | copy of an index string is kept, even if used in multiple arrays.
|
|---|
| 486 |
|
|---|
| 487 | 3. Support was added for MacOS X and an `install-strip' target.
|
|---|
| 488 |
|
|---|
| 489 | 4. [s]printf formatting for `0' flag and floating point formats now
|
|---|
| 490 | works correctly.
|
|---|
| 491 |
|
|---|
| 492 | 5. HP-UX large file support with GCC 2.95.1 now works.
|
|---|
| 493 |
|
|---|
| 494 | 6. Arguments that contain `=' but that aren't syntactically valid are
|
|---|
| 495 | now treated as filenames, instead of as fatal errors.
|
|---|
| 496 |
|
|---|
| 497 | 7. `-v NF=foo' now works.
|
|---|
| 498 |
|
|---|
| 499 | 8. Non-ascii alphanumeric characters are now treated as such in the
|
|---|
| 500 | right locales by regex.c. Similarly, a Latin-1 y-umlaut (decimal
|
|---|
| 501 | value 255) in the program text no longer acts like EOF.
|
|---|
| 502 |
|
|---|
| 503 | 9. Array indexes are always compared as strings; fixes an obscure bug
|
|---|
| 504 | when user input gets used for the `x in array' test.
|
|---|
| 505 |
|
|---|
| 506 | 10. The usage message now points users to the documentation for how
|
|---|
| 507 | to report bugs.
|
|---|
| 508 |
|
|---|
| 509 | 11. `/=' now works after an array.
|
|---|
| 510 |
|
|---|
| 511 | 12. `b += b += 1' now works correctly.
|
|---|
| 512 |
|
|---|
| 513 | 13. IGNORECASE changing with calls `match' now works better. (Fix for
|
|---|
| 514 | semi-obscure bug.)
|
|---|
| 515 |
|
|---|
| 516 | 14. Multicharacter values for RS now generate a lint warning.
|
|---|
| 517 |
|
|---|
| 518 | 15. The gawk open file caching is now much more efficient.
|
|---|
| 519 |
|
|---|
| 520 | 16. Global arrays passed to functions are now managed better. In particular,
|
|---|
| 521 | test/arynocls.awk won't crash referencing freed memory.
|
|---|
| 522 |
|
|---|
| 523 | 17. In obscure cases, `getline var' can no longer clobber $0.
|
|---|
| 524 |
|
|---|
| 525 | Changes from 3.0.3 to 3.0.4
|
|---|
| 526 | ---------------------------
|
|---|
| 527 |
|
|---|
| 528 | This is a bug fix release only, pending further development on 3.1.0.
|
|---|
| 529 |
|
|---|
| 530 | Bugs Fixed:
|
|---|
| 531 |
|
|---|
| 532 | 1. A memory leak when turning a function parameter into an array was
|
|---|
| 533 | fixed.
|
|---|
| 534 |
|
|---|
| 535 | 2. The non-decimal data option now works correctly.
|
|---|
| 536 |
|
|---|
| 537 | 3. Using an empty pair of brackets as an array subscript no longer causes
|
|---|
| 538 | a core dump during parsing. In general, syntax errors should not
|
|---|
| 539 | cause core dumps any more.
|
|---|
| 540 |
|
|---|
| 541 | 4. Standard input is no longer closed if it provides program source,
|
|---|
| 542 | avoiding strange I/O problems.
|
|---|
| 543 |
|
|---|
| 544 | 5. Memory corruption during printing with `print' has been fixed.
|
|---|
| 545 |
|
|---|
| 546 | 6. The gsub function now correctly counts the number of matches.
|
|---|
| 547 |
|
|---|
| 548 | 7. A typo in doc/Makefile.in has been fixed, making installation work.
|
|---|
| 549 |
|
|---|
| 550 | 8. Calling `next' or `nextfile' from a BEGIN or END rule is now fatal.
|
|---|
| 551 |
|
|---|
| 552 | 9. Subtle problems in rebuilding $0 when fields were changed have been
|
|---|
| 553 | fixed.
|
|---|
| 554 |
|
|---|
| 555 | 10. `FS = FS' now correctly turns off the use of FIELDWIDTHS.
|
|---|
| 556 |
|
|---|
|
|---|