[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug-gawk] Beta release of gawk 4.2.0 now available
From: |
Arnold Robbins |
Subject: |
[bug-gawk] Beta release of gawk 4.2.0 now available |
Date: |
Wed, 04 Oct 2017 09:50:14 +0300 |
User-agent: |
Heirloom mailx 12.5 6/20/10 |
This note is to announce the BETA release of GNU Awk 4.2.0
It is available from:
http://www.skeeve.com/gawk/gawk-4.1.65.tar.gz
This is a major release, with many significant new features.
The important part of the NEWS file is below.
As far as I can tell, the documentation and code have both hit the
freeze point.
So, why do a beta release? So that you, yes you, the end user, can see
if anything I've done breaks gawk for you. Then you can TELL ME ABOUT
IT so that I can fix it for the final release.
Thanks,
Arnold Robbins
address@hidden
---------------------------------------------
Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
Changes from 4.1.4 to 4.2.0
---------------------------
1. If not in POSIX mode, changes to ENVIRON are reflected into
gawk's environment, affecting any programs run by system()
or for piped redirections. This can also affect built-in routines, such
as mktime(), which is typically influenced by the TZ environment variable.
2. The series of numbers returned by rand() should now be "more
random" than previously. Gawk's rand() remains repeatable; you will
get the same series of numbers each time you call rand() repeatedly,
but this will be a different series than previously.
3. The --pretty-print option no longer runs the program too.
4. The igawk script and igawk.1 man page are no longer installed by
`make install'. They have been obsolete since gawk 4.0.0.
5. Gawk can now be built with CMake. This is an alternative build
system for those who may want it; gawk is not going to switch off
use of the autotools anytime soon, if ever.
6. Gawk now processes a maximum of two hexadecimal digits in \x
escape sequences inside strings.
7. Setting PROCINFO["redirection", "NONFATAL"] to true makes I/O
errors for "redirection" not fatal, setting ERRNO. Setting
PROCINFO["NONFATAL"] makes all I/O nonfatal.
8. MirBSD is no longer supported.
9. Pretty printing now preserves comments and places them into the
pretty-printed file.
10. `make install' now installs shell startup files
$sysconfdir/profile.d/gawk.{csh,sh} containing shell functions to
manipulate the AWKPATH and AWKLIBPATH environment variables. On a Fedora
system, these files belong in /etc/profile.d, but the appropriate location
may be different on other platforms.
11. Gawk now supports retryable I/O via PROCINFO[input-file, "RETRY"]; see
the manual.
12. The API minor version has been increased to 2; the get_file()
API provides access to open redirections. Also see the manual.
13. Revisions in the POSIX standard remove the special case for POSIX
mode when FS = " " where newline was not a field separator. The code
and doc have been updated.
14. Gawk now supports strongly typed regexp constants. Such constants
look like @/.../. You can assign them to variables, pass them to
functions, use them in ~, !~ and the case part of a switch statement.
More details are provided in the manual.
15. The new typeof() function can be used to indicate if a variable or
array element is an array, regexp, string or number. The isarray()
function is deprecated in favor of typeof().
16. As promised when 4.1 was released, the old extension mechanism,
using the `extension' function, is now gone.
17. Support for GNU/Linux on Alpha systems has been removed.
18. Optimizations are now enabled by default. Use the new -s/--no-optimize
option(s) to disable them. Pretty-printing and profiling automatically
disable optimizations so that the output program is the same as the
original input program.
19. The extension API now provides a mechanism for generating nonfatal
error messages.
21. Gawk now uses fwrite_unlocked if it's available. The yields a 7% - 18%
improvement in raw output speed (gawk '{ print }' on a large file).
22. Pretty-printing now uses the original text of constant numeric values for
pretty-printing and profiling.
23. Passing negative operands to any of the bitwise functions now
produces a fatal error.
24. The C API has undergone changes that break binary compatibility with
the previous version. Thus the API version is now at 2.0. YOU WILL
NEED TO RECOMPILE YOUR EXTENSIONS to work with this version of gawk.
Source code compatibility remains intact, although you will get
compiler warnings if you do not revise your extensions. We strongly
recommend that you do so. Fortunately, the changes are fairly minor
and straightforward.
25. Programs that toggle IGNORECASE a lot should now be noticeably faster.
26. The mktime function now accepts an optional second argument. If this
argument is present and is non-zero or non-null, the time will be converted
from UTC instead of from the local timezone.
27. The FIELDWIDTHS parsing syntax has been enhanced to allow specifying
how many characters to skip before a field starts. It also allows
specifying '*' as the last character to mean "the rest of the record".
Field splitting with FIELDWIDTHS now sets NF correctly. The documentation
for FIELDWIDTHS in the manual has been considerably reorganized and
improved as well.
28. An API input parser now has the ability to override the default field
parsing mechanism by specifying the locations of each field in the input
record. When this is in effect, PROCINFO["FS"] will be set to "API".
29. The PROCINFO["argv"] array records all of gawk's command line arguments
as gawk received them (the values of the C level argv array).
30. Pretty-printing now preserves parenthesized expressions as they
were in the source file. This solves several niggling corner cases
with such things.
31. The DJGPP port has been revived and now has an official maintainer.
32. The API has been extended to give access to GMP and MPFR values.
33. The manual has been translated into Italian! The translation is
included in the distribution.
34. The OS/2 port is currently non-functional. The report is that it
compiles but does not link. The maintainer does not have time to
work on it; a volunteer to help out with (or perhaps take over) the
port is wanted. I will preserve the code for either a year or until
the next release, whichever is longer.