Information specifically about Ghostscript 6.0

## Table of contents

> - New features (since release 5.50)
> - Changes (since release 5.50)
> - Known problems
>   - Usage
>   - Limitations
>   - Graphics bugs
>   - Non-graphics bugs

For other information, see the Ghostscript overview.

# New features (since release 5.50)

(This is not a complete list of new features: see the news for details.)

Ghostscript now handles essentially all of PostScript LanguageLevel 3 and PDF 1.3 (Acrobat 4.x compatibility). See Language.htm for details.

The PDF writer now implements most of the Acrobat (TM) Distiller parameters for compressing and downsampling images.

The PDF writer now recognizes nearly all varieties of pdfmark, other than the Distiller 3.0 "named object" pdfmarks and the Distiller 4.0 "document structure" pdfmarks.

The PDF writer now handles text in all fonts, not just the 14 built-in ones, and implements the Distiller parameters affecting font embedding and subsetting. (It still usually converts double-byte fonts to bitmaps.)

16- and 24-bit X Windows displays are now fully supported.

You now need only the header files and shared libraries, not the source code, if you want to use precompiled versions of the jpeg, libpng, or zlib libraries.

The syntax `%`iodevice`%`filename is now supported with the `-sOutputFile=` switch, allowing you to send raster output to a piped command.

You can now use MMK or MMS to build Ghostscript on OpenVMS systems.

For driver writers, there are improved facilities for planar output, rasterizing directly into a driver-provided buffer, detecting bands that are all white or that only use a subset of the colorants, and providing CRDs from the driver.

The driver API now includes facilities for passing high-level text operations, completing the set of high-level operations (bitmap images and vector graphics were implemented in 5.50). See the documentation for details.

Ghostscript as a dynamically linked library is now supported on the Mac as well as on Windows.

GNU readline was supported in most of the beta distributions for 6.0, but was removed at the last minute because of objections from the Free Software Foundation. Please see here for more information.

# Changes (since release 5.50)

## Directories and build procedure

The files in the release now have a more complex directory structure. In the table below, top refers to the top-level directory, `gs` n.nn.

The top`/` is where you create a link to the appropriate makefile in top`/src/`. On all systems other than MS Windows, the build procedure does not write into this directory.

The files included in the Ghostscript release now are found in five subdirectories.

- top`/src/` contains the C/C++ source code, the makefiles, and all other files needed to build the program. The build procedure reads from this directory but does not write into it. Nothing in this directory is needed at run time.

- top`/lib/` contains PostScript and script files needed at run time. The build procedure reads from this directory but does not write into it. The contents of this directory are needed at run time and are copied by the Unix `make install` command.

- top`/doc/` contains documentation. Copied by `make install`.
- top`/man/` contains Unix `man` pages. Copied by `make install`.
- top`/examples/` contains sample PostScript and PDF files. Copied by `make install`.

The build procedure creates two additional subdirectories, top`/obj/` (or `debugobj` or `pgobj`) and top`/bin/`. See the documentation on how to build Ghostscript for more information.

## Other changes

If you are a developer working with the Ghostscript code in any way other than writing or modifying drivers, please read all of the "Incompatible changes" sections of the release news for important information.

# Known problems

See the release news for details.

## Usage

On a DOS system, interrupting the interpreter by typing control-C doesn't restore the display mode.

## Limitations

`serialnumber` returns the same value in all copies.

Some floating point exceptions terminate the interpreter, rather than producing a `limitcheck` error.

The `DCTEncode` filter disregards the `Blend` parameter, and uses different `QuantTables` and `HuffTables` from Adobe's.

The DCT filters do not support nonintegral sample ratios. Also, `DCTEncode` will not create files with Sum(HS×VS)>10 (regardless of the value of the `Relax` parameter) because they violate the JPEG standard; but `DCTDecode` will read such files.

The size of the execution stack cannot be changed dynamically. (However, the sizes of the operand and dictionary stacks can be changed.)

`Separation` and `DeviceN` color spaces are implemented, but devices that actually produce color separations are not supported: these color spaces always use the alternate space. The special color separations `All` and `None`, and the primary separations (`Red`, `Green`, etc.), are not supported.

`execform` and `ucache` are implemented, but they do not actually do any caching; `setucacheparams` and `ucachestatus` are dummies. (This only impacts performance, not functionality.)

The `image` operator honors the `Interpolate` flag in the image dictionary only for ImageType 1 and 3 images, only if the combined transformation (`ImageMatrix` + CTM) doesn't involve rotation, skewing, or X-reflection, and only for certain scalings and color spaces; `imagemask` doesn't honor `Interpolate` at all.

Some path-building operations that would generate a device coordinate larger than +/-2^19 will cause a limitcheck. However, the common ones (`[r]moveto`, `[r]lineto`, `[r]curveto`, `closepath`) will not.

## Graphics bugs

There are no known graphics bugs in this release.

## Non-graphics bugs

The `definefont` operator (Subrs (type 1 fonts)) expects arrays but won't accept packed arrays.

Syntax errors occurring within a binary token do not produce the error message specified by the Adobe documentation.

Copyright © 1996, 1997, 1998, 1999 Aladdin Enterprises. All rights reserved.

This file is part of Aladdin Ghostscript. See the Aladdin Free Public License (the "License") for full details of the terms of using, copying, modifying, and redistributing Aladdin Ghostscript.

Ghostscript version 6.0, 3 February 2000