Linux Today: Linux News On Internet Time.

More on LinuxToday

Release Digest: GNU, March 31, 2003

Apr 01, 2003, 05:00 (0 Talkback[s])


How to Help Your Business Become an AI Early Adopter

gawk 3.1.2

Greetings all.

Patch #2 to GNU Awk (gawk) 3.1 is now available. Gawk is the GNU project's
version of the AWK programming language.

The following files may be retrieved from ftp://ftp.gnu.org/gnu/gawk:

-rw-r--r--    1 1239     101       2003860 Mar 21 02:14 gawk-3.1.2.tar.gz/
-rw-r--r--    1 1239     101       1581562 Mar 21 02:12 gawk-3.1.2.tar.bz/2
-rw-r--r--    1 1239     101        985820 Mar 21 02:10 gawk-3.1.2-ps.tar.gz/
-rw-r--r--    1 1239     101        618847 Mar 21 02:09 gawk-3.1.2-doc.tar.gz/
-rw-r--r--    1 1239     101        613311 Mar 21 02:08 gawk-3.1.1-3.1.2.diff.gz/

This is a bug fix release.  A minor new feature is the asorti() function,
as well as multidimensional subscripts for match()'s third argument.
The relevant part of the NEWS file is reproduced below.

A .bz2 file is available for the full distribution to save download time.

The -doc.tar.gz file contains the TeX dvi and ``dribble'' files, while
the -doc.ps.tar.gz file contains PostScript versions of the manuals,
the man page, and the reference card.

The .diff file is a SHELL SCRIPT that should be executed with `sh'. It
sets things up correctly both before and after applying the embedded
context diff.  Note also that if you use the .diff file to upgrade,
you need to have the version of makeinfo from Texinfo 4.5 in order to
rebuild the *.info files.

Bug reports should be sent to bug-gawk@gnu.org.


Arnold Robbins
Changes from 3.1.1 to 3.1.2

1. Loops of the form:

        for (iggy in foo)

   no longer leak memory.

2. gawk -v FIELDWIDTHS="..." now sets PROCINFO["FS"] correctly.

3. All builtin operations and functions should now fully evaluate their
   arguments so that side effects take place correctly.

4. Fixed a logic bug in gsub/gensub for matches to null strings that occurred
   later in the string after a nonnull match.

5. getgroups code now works on Ultrix again.

6. Completely new version of the full GNU regex engine now in place.

7. Argument parsing and variable assignment has been cleaned up.

8. An I/O bug on HP-UX has been documented and worked around. See

9. awklib/grcat should now compile correctly.

10. Updated to automake 1.7.3, autoconf 2.57 and gettext 0.11.5 ; thanks to
    Paul Eggert for the initial automake and autoconf work.

11. As a result of #6, removed the use of the dfa code from GNU grep.

12. It is now possible to use ptys for |& two-way pipes instead of
    pipes.  The basic plumbing for this was provided by Paolo Bonzini.
    To make this happen:

        command = "unix command etc"
        PROCINFO[command, "pty"] = 1

        print ... |& command
        command |& getline stuff

    In other words, set the element in PROCINFO before opening the
    two-way pipe, and then gawk will use ptys instead of pipes.

    On systems without ptys or where all the ptys are in use, gawk
    will fall back to using plain pipes.

13. Fixed a regex matching across buffer boundaries bug, with a
    heuristic.  See io.c:rsre_get_a_record().

14. Profiling no longer dumps core if there are extension functions in place.

15. Grammar and scanner cleaned up, courtesy of Stepen Kasal, to hopefully
    once and for all fix the `/=' operator vs. `/=.../' regex ambiguity.
    Lots of other grammar simplifications applied, as well.

16. BINMODE should work now on more Windows ports.

17. Updated to bison 1.875.  Includes fix to bisonfix.sed script.

18. The NODE structure is now 20% (8 bytes) smaller (on x86, anyway), which
    should help conserve memory.

19. Builds not in the source directory should work again.

20. Arrays now use 2 NODE's per element instead of three. Combined with
    #18, (on the x86) this reduces the overhead from 120 bytes per element
    to just 64 bytes: almost a 50% improvement.

21. Programs that make heavy use of changing IGNORECASE should now be
    much faster, particularly if using a regular expression for FS or RS.
    IGNORECASE now correctly affects RS regex record splitting, as well.

22. IGNORECASE no longer affects single-character field splitting (FS = "c"),
    or single-character record splitting (RS = "c").

    This cleans up some weird behavior, and makes gawk better match the
    documentation, which says it only affects regex-based field splitting
    and record splitting.

    The documentation on this was improved, too.

23. The framework in test/ has been simplified, making it much easier to
    add new tests while keeping the size of Makefile.am reasonable. Thanks
    for this to Stepan Kasal.

24. --lint=invalid causes lint warnings only about stuff that's actually
    invalid.  This needs additional work.

25. More translations.

26. The get_a_record() routine has been revamped (currently by splitting it
    into three variants).  This should improve long-term maintainability.

27. match() now adds more entries to 3rd array arg:
        match("the big dog", /([a-z]+) ([a-z]+) ([a-z]+)/, data)
    fills in variables:
        data[1, "start"], data[1, "length"], and so on.

28. New asorti() function with same interface as asort(), but sorts indices
    instead of values.  

29. Documentation updated to FDL 1.2.

30. New `configure' option --disable-lint at compile time disables lint
    checking.  With GCC dead-code-elimination, cuts almost 200K off the
    executable size on GNU/Linux x86.  Presumably speeds up runtime.

    Using this will cause some of the tests in the test suite to fail.
    This option may be removed at a later date.

31. Various minor cleanups, see the ChangeLog for details.


GLPK 3.3

GLPK 3.3 -- Release Information

Release date: Mar 25, 2003

GLPK (GNU Linear Programming Kit) is intended for solving large-scale
linear programming (LP), mixed integer linear programming (MIP), and
other related problems. It is a set of routines written in ANSI C and
organized in the form of a callable library.

Now the API routine lpx_simplex (a driver to the simplex method) is
provided with the built-in LP presolver, a program that transforms the
original LP problem to an equivalent problem, which may be easier for
solving with the simplex method than the original one. For further
details please see the reference manual.

The LP presolver is used by default in glpsol (which is a stand-alone
LP/MIP solver). In order not to use it, the option --nopresol should
be specified in the command line.

The syntax and semantics of the GLPK/L modeling language was changed to
allow declarations of "interval" sets. This means that now the user can
declare a set, for example, as:

   set task = [8:11];

that is exactly equivalent to the following declaration:

   set task = (task_8, task9, task10, task_11);

For details please see the language description.

Now GLPK also includes GLPK JNI (Java Native Interface), a package
developed and programmed by Yuri Victorovich <<A HREF="mailto:yuri@gjt.org">yuri@gjt.org> that is a
contribution to the GLPK project. This package implements Java binding
and allows Java programs to utilize GLPK API routines in solving LP and
MIP problems. For details please see a brief user's guide included in
the subdirectory contrib/java-binding.

See GLPK web page at <<A HREF="http://www.gnu.org/software/glpk/glpk.html>">http://www.gnu.org/software/glpk/glpk.html>;.

GLPK distribution can be ftp'ed from <<A HREF="ftp://ftp.gnu.org/gnu/glpk/">ftp://ftp.gnu.org/gnu/glpk/> or
from some mirror ftp sites; see <<A HREF="http://www.gnu.org/order/ftp.html>">http://www.gnu.org/order/ftp.html>;.

The md5sum is the following:

8c885d4d9531e461da629391f3f566b5 *glpk-3.3.tar.gz/

GLPK is also available as a Debian GNU/Linux package. See its web page
at <<A HREF="http://packages.debian.org/stable/math/glpk.html>">http://packages.debian.org/stable/math/glpk.html>;.


Gforth 0.6.1
Vmgen 0.6.1

Gforth 0.6.1 (including Vmgen) has been released.  It is available
from ftp://ftp.gnu.org/gnu/gforth/ and its mirrors (see
http://www.gnu.org/order/ftp.html), and from

Gforth is a fast and portable implementation of the ANS Forth
language. It works nicely with the Emacs editor, offers some nice
features such as input completion and history and a powerful locals
facility, and it even has a manual. Gforth employs traditional
implementation techniques: its inner innerpreter is indirect or direct
threaded.  Gforth is distributed under the GNU General Public license
(see COPYING).

Vmgen generates much of the code for efficient virtual machine (VM)
interpreters from simple descriptions of the VM instructions.  It
generates code for executing VM instructions (with optional tracing),
for generating VM code, for disassembling VM code, and for profiling
VM instruction sequences.  Interpreters created with vmgen usually are
faster than competing interpreters and are typically only a factor of
2-10 slower than the code generateed by native-code compilers.

The Vmgen home page is at
<<A HREF="http://www.complang.tuwien.ac.at/anton/vmgen/>">http://www.complang.tuwien.ac.at/anton/vmgen/>;.

Changes in Gforth:

User-visible changes between 0.5.0 and 0.6.0:

Changes in behaviour:

S": interpreted use now ALLOCATEs the string (they live until BYE).
Long word names (512MB on 32-bit systems) are now supported (change to
  the header format).
New threaded code execution method: primitive-centric (allows the
  following), hybrid direct/indirect threaded (easier portability),
  with dynamic superinstructions (typical speedup on Athlon: factor
  2).  New engine gforth-itc for dealing with some potential
  backwards-compatibility problems (see "Invoking Gforth" in the

Operating environment:

Default dictionary size is now 4MB.
Large file support on OSs that support them (i.e., files with more
  than 2GB on 32-bit machines).
Gforth can now deal well with broken pipes in most situations.
vi tags files can be built with tags.fs (usage like etags.fs).
gforth.el mostly rewritten.
New image file format.

New words:

Conditional execution: [DEFINED] [UNDEFINED]
Defining Words: CONST-DOES>
String comparison: STR= STR< STRING-PREFIX?
String literals: S" ." "-PARSE
Floating point output: F.RDP F>STR-RDP F>BUF-RDP


Generalized prims2x.fs into Vmgen (see README.vmgen etc.); used the
  new capabilities in prims (e.g., automatic handling of the return
  stack and instruction stream).

Changes in Vmgen:

User-visible changes between 0.5.9-20020901 and 0.6.0:

Support for upward-growing stacks (see "Stack growth direction" in the
New macro in output: IMM_ARG.
New input flag: include-skipped-insts (currently pointless).
Lazy loading and eager storing of stack items in superinstructiuons;
  this reduces register pressure (useful on 386), but causes compiler
  warnings about unused variables.

User-visible changes between 0.5.9-20020822 and 0.5.9-20020901:

The store optimization is now disabled by default, but can be enabled
by the user.  Documentation for this optimization is also new.

Use-visible changes between 0.5.9-20010501 and 0.5.9-20020822:

There is now a manual (in info, HTML, Postscript, or plain text format).

There is the vmgen-ex2 variant of the vmgen-ex example; the new
variant uses a union type instead of lots of casting.

Both variants of the example can now be compiled with an ANSI C
compiler (using switch dispatch and losing quite a bit of
performance); tested with lcc.

There are several changes in the way you have to define macros (see
node/section "Changes" in the manual).  I recommend keeping the
gforth-0.5.9-20010501 version until you have completed the changes
(note that you can have several versions of Gforth installed at the
same time).

- anton
M. Anton Ertl                    Some things have to be seen to be believed
anton@mips.complang.tuwien.ac.at Most things have to be believed to be seen


GIMP 1.3.13


there is a new GIMP development release available from:


The list of changes seems to be short this time but there are a lot of
bug fixes and small improvements all over the place which are not
explicitely listed here. Check the ChangeLog for more details.

Overview of Changes in GIMP 1.3.13

- New tree-view based popup to select brushes, gradients and such [Mitch]
- Added color pickers to levels tool for easier color correction [Sven]
- Allow to create channels from an image's color component [Sven, Mitch]
- Added a full-screen mode for the image window [Sven, Mitch]
- Added a simple config file writer to GimpConfig [Sven]
- Moved gimp-perl into it's own CVS module [Yosh]
- Migrated all core dialogs from GtkList to GtkTreeView [Mitch]
- Refactored the GimpDisplayShell update/draw code [Mitch, Sven]
- Rewrote the Undo History as a GimpDockable [Mitch]
- Lots of bug fixes

Other contributors:
  Sunil Mohan Adapa, Tor Lillqvist, Jay Cox, Dave Neary, Michael J. Hammel,
  Toralf Lund, Raphael Quinet, Hans Breuer, Tuomas Kuosmanen, David Necas,
  Jakub Steiner, Simon Budig

Happy GIMPing,  Sven


GNU Source-highlight 1.7

GNU Source-highlight 1.7 has been released.  It is available from
ftp://ftp.gnu.org/gnu/source-highlight/ and mirrors of that site (see
list of mirror sites at http://www.gnu.org/order/ftp.html).

GNU Source-highlight, given a source file, produces a document with
syntax highlighting.

At the moment this package can handle

      Ruby       new

as source languages, and


as output format.

Version 1.7

    * scanner for Ruby programming language (thanks to Noritsugu Nakamura
      <<A HREF="mailto:nnakamur@mxq.mesh.ne.jp">nnakamur@mxq.mesh.ne.jp>).
    * fixed explicit rules in Makefiles that generated errors with some
      versions of non-GNU makes.

Visit the Source-highlight home page at

Anonymous CVS access is also available.  Please visit
where you can find detailed descriptions of how to access the CVS
(read-only).  I plan to make release-candidate versions available
through CVS.

Bug reports should go to bug-source-highlight@gnu.org.