Problems and new features in Ghostscript 5.50

## Table of contents

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

For other information, see the Ghostscript overview.

# New features (since release 5.10)

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

A number of PostScript LanguageLevel 3 features are implemented: `ImageType` 4 images, Type 32 fonts and `CIDFontType` 4 fonts, `CIEBasedDEF[G]` color spaces, idiom recognition, `shfill` (partial support), `CloseSource` and `CloseTarget`.

More of Display PostScript is implemented: view clipping, `DevicePixel` color space, context creation with private local VM, `ImageType` 2 images, compositing (NeXT extension).

The PDF interpreter now handles double-byte fonts. Ghostscript now handles essentially all of PDF 1.2 (Acrobat 3.x compatibility).

The PDF writer now implements the xxx`ImageFilter`, `Encode`xxx`Image`, and `ConvertCMYKImagesToRGB` distiller parameters, which provide the ability to compress images.

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

It is now possible (in fact, easy) to build Ghostscript with the source and object files in different directories.

There is a new PostScript-to-PostScript distiller, `ps2ps`.

# Changes

Contributed drivers now have their own makefile (`contrib.mak`).

The IJG JPEG library is now in a directory named `jpeg` rather than `jpeg-`#.

The `pdf2ps` utility has been completely rewritten. It should be much more reliable, at the expense of possibly producing larger, lower-level output.

Running `tar_cat` after editing makefiles is no longer necessary. Users should now edit the `unix*.mak` makefiles.

# Known problems

On MS Windows, trying to execute `setfileposition` or `bytesavailable` on the standard input file crashes Ghostscript.

On 16-bit-deep X Windows systems, the `x11cmyk` device doesn't work.

(This is not a complete list of 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` color spaces are implemented, but devices that actually produce color separations are not supported: `Separation` 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 only honors the `Interpolate` flag in the image dictionary if the combined transformation (`ImageMatrix` + CTM) doesn't involve rotation, skewing, or X-reflection; `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

Opening more than one window device at the same time doesn't work. This is the case for both X Windows and Microsoft Windows.

`cshow` doesn't work with composite fonts.

## 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 Aladdin Enterprises. All rights reserved.

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

Ghostscript version 5.50, 16 September 1998