1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<head> 4<title>History of Ghostscript versions 1.n</title> 5<!-- $Id: History1.htm,v 1.39 2005/10/20 19:46:23 ray Exp $ --> 6<!-- Originally: history1.txt --> 7<!-- 8 WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to 9 re-create the table of contents here, because it will replace the 10 hand-edited TOC subheads with a separate subhead for each H2 in 11 the body of the file. Or if you do, first look at the original 12 TOC to see how to edit it for visual conciseness. 13--> 14<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style"> 15</head> 16 17<body> 18<!-- [1.0 begin visible header] ============================================ --> 19 20<!-- [1.1 begin headline] ================================================== --> 21 22<h1>History of Ghostscript versions 1.n</h1> 23 24<!-- [1.1 end headline] ==================================================== --> 25 26<!-- [1.2 begin table of contents] ========================================= --> 27 28<h2>Table of contents</h2> 29 30<blockquote><ul> 31<li><a href="#Version1.3">Version 1.3 (6/20/89)</a> 32<ul> 33<li><a href="#V1.3_Interpreter">Interpreter</a>, 34 <a href="#V1.3_Fonts">Fonts</a>, 35 <a href="#V1.3_Library">Library</a>, 36 <a href="#V1.3_Usage_procedures">Usage procedures</a> 37</ul> 38<li><a href="#Version1.2">Version 1.2 (2/22/89)</a> 39<ul> 40<li><a href="#V1.2_Interpreter">Interpreter</a>, 41 <a href="#V1.2_Library">Library</a>, 42 <a href="#V1.2_Usage_procedures">Usage procedures</a> 43</ul> 44<li><a href="#Version1.1">Version 1.1 (2/12/89)</a> 45<ul> 46<li><a href="#V1.1_Interpreter">Interpreter</a>, 47 <a href="#V1.1_Initialization">Initialization (ghost.ps, gfonts.ps)</a>, 48 <a href="#V1.1_Library">Library</a>, 49 <a href="#V1.1_Usage_procedures">Usage procedures</a> 50</ul> 51<li><a href="#Version1.0">Version 1.0 (8/11/88)</a> 52</ul></blockquote> 53 54<!-- [1.2 end table of contents] =========================================== --> 55 56<!-- [1.3 begin hint] ====================================================== --> 57 58<p> 59This document is a history of Ghostscript releases numbered 1.n. For more 60recent changes, see the the other history documents and, for the latest 61versions, the news: 62 63<blockquote> 64<a href="News.htm">News</a><br> 65<a href="History4.htm">History of Ghostscript versions 4.n</a><br> 66<a href="History3.htm">History of Ghostscript versions 3.n</a><br> 67<a href="History2.htm">History of Ghostscript versions 2.n</a><br> 68History of Ghostscript versions 1.n (this document)<br> 69</blockquote> 70 71<p>For other information, see the <a href="Readme.htm">Ghostscript 72overview</a>. 73 74<!-- [1.3 end hint] ======================================================== --> 75 76<hr> 77 78<!-- [1.0 end visible header] ============================================== --> 79 80 81<h2><a name="Version1.3"></a>Version 1.3 (6/20/89)</h2> 82<pre> 83This release should have had a lot more things in it, but time pressure 84and the already long delay in getting it out made it necessary to push it 85out the door in an incomplete state (e.g., no testing on X systems 86whatsoever). 87 88</pre> 89<h3><a name="V1.3_Interpreter"></a>Interpreter</h3> 90 91<pre> 92Makes -d and -D equivalent on the command line. Adds a new switch -s / -S 93that defines a name as a string rather than a token. 94 95Arranges things so that if -sLIB=_a_prefix_ is defined on the command 96line, (filename) run will look for _a_prefix_filename before giving up if 97filename isn't the name of an accessible file. 98 99Changes showpage from an operator to a procedure. The definition of 100showpage in ghost.ps does a copypage, beeps the console, waits for the 101user to type a character (normally a <return>, since line buffering is 102always enabled), and then does an erasepage and an initgraphics. 103 104Adds a new initialization file, gdevs.ps, containing device-dependent 105parameters. The default window size for X Windows is properly set to 612 106x 792, i.e., 8.5" x 11". 107 108Adds a new optional initialization file, statusd.ps, that provides dummy 109definitions for the names found in statusdict on LaserWriters. 110 111Adds a new operator, getenv, to get information from the shell 112environment. 113 114Adds a new predefined operator, defaultdevicename, that returns either (X) 115or (EGA) according to how the interpreter was built. 116 117Adds a new type, devicetype, and new operators deviceparams, getscanlines, 118makedevice, makeimagedevice, and setdevice. Changes currentdevice to 119return a device object rather than a set of parameters. 120 121Makes the scanner recognize reals with 'e' exponent notation, and handle 122reals with more than 9 digits. 123 124Fixes a bug that made names starting with digits read incorrectly. 125 126Fixes a bug in the exp operator that made it not pop its first argument 127from the stack. 128 129Fixes a bug in the rand operator that made it return negative values about 130half the time. 131 132Fixes a bug in equality comparison (eq, ne, and several other operators) 133that made unequal operator objects occasionally appear to be equal on DOS 134systems. 135 136Fixes a bug in the bind operator that made it not work on packed arrays. 137 138Changes the internal representation of dictionaries so they can be 139expanded or contracted dynamically. Adds a new operator, setmaxlength, to 140change the allocated size of a dictionary. 141 142Changes sstorei.h so that non-DOS compilers don't encounter the #pragma 143directive used by Turbo C. 144 145Restores the display mode (on MS-DOS systems) when exiting. 146 147</pre> 148<h3><a name="V1.3_Fonts"></a>Fonts</h3> 149 150<pre> 151Makes undefined characters in the standard font display as tilde rather 152than blank (or causing an error). Unmapped character codes (those mapped 153to .notdef in the encoding) still display as nothing, per the PostScript 154manual. 155 156</pre> 157<h3><a name="V1.3_Library"></a>Library</h3> 158 159<pre> 160Adds a new header file, gxbitmap.h, with some new documentation describing 161the internal storage format for bitmaps. 162 163Makes numerous internal changes in the character / font cache, affecting 164many of the routines in gxcache.c. 165 166Fixes a bug in gz_draw_line / gz_fill_trapezoid that made nearly 167horizontal lines display wrong. 168 169Fixes a bug in gs_scale that made scaling not work if the coordinate 170system was rotated or skewed. 171 172Extends the font cache so it will handle characters rotated by multiples 173of 90 degrees. 174 175Changes the second argument of gx_path_bbox and gx_path_is_rectangle to be 176a gs_fixed_rect * rather than a fixed [4]. 177 178Changes gs_matrix_rotate so it handles multiples of 90 degrees as a 179special case. 180 181Changes the definition of the gx_device structure to accommodate the new 182device operators, and adds corresponding library calls. 183 184Changes the type for a device color index from int to gx_color_index 185(equivalent to unsigned long). ***NOTE***: this affects existing clients 186and drivers in a non-trivial way on MS-DOS systems. 187 188Changes gs_malloc and gs_free to take a client name string as an argument. 189 190</pre> 191<h3><a name="V1.3_Usage_procedures"></a>Usage procedures</h3> 192 193<pre> 194Changes the compilation rules for Unix systems to not use the -o and -c 195compiler flags together, to be compatible with more versions of cc. 196 197Changes the gcc makefile to use $(GCC) rather than gcc as the compiler 198name. 199 200Moves the -1 flag for the MS-DOS compiler from the cc*.bat files to the 201makefile. 202 203Changes CCDEBUG to CCFLAGS, and adds ASMFLAGS, in DOS makefile. 204 205Adds -DFOR80386 and /DFOR80386 to enable use of 80386 instructions in 206assembly code on DOS systems. 207 208Merges the DEBUG and gs_DEBUG switches. There is now only a single DEBUG 209switch that affects both the interpreter and the library. 210 211Adds a new compilation switch, -DNOPRIVATE, that makes private (static) 212variables and procedures public for debugging and profiling (only needed 213on DOS systems). 214 215Adds the DOS executable (gs.exe and gs.map) to the distribution fileset. 216 217Adds new platform-specific code files, gp-*.c, for a few things like 218reading the clock. 219 220Adds a new documentation file, drivers.doc, that describes the interface 221between Ghostscript and device drivers. 222 223</pre> 224 225<hr> 226 227<h2><a name="Version1.2"></a>Version 1.2 (2/22/89)</h2> 228 229<h3><a name="V1.2_Interpreter"></a>Interpreter</h3> 230 231<pre> 232Adds the new facilities in version 25 of PostScript: //name for immediate 233lookup, packed arrays (setpacking, currentpacking, packedarray operators), 234and new font cache parameters (setcacheparams, currentcacheparams 235operators). 236 237Adds new operators (setfileposition, currentfileposition) for random 238access to files. 239 240Extends readhexstring to take either a string or a file, just like token. 241 242Fixes a bug that caused the 'for' operator (and a couple of others) to 243randomly smash memory locations on PC platforms. 244 245</pre> 246<h3><a name="V1.2_Library"></a>Library</h3> 247 248<pre> 249Renames the init_device driver procedure as open_device, and adds a 250corresponding close_device. 251 252Adds new procedures to read and set the cache limit values (implementing 253the currentcacheparams and setcacheparams operators). 254 255</pre> 256<h3><a name="V1.2_Usage_procedures"></a>Usage procedures</h3> 257 258<pre> 259Changes the name of the Unix makefile to ux-cc-x.mak, and adds a new Unix 260makefile, ux-gcc-x.mak, for using gcc instead of cc. (The latter doesn't 261actually work yet.) 262 263Changes the name of the single built-in font from uglyfont.cp to 264ugly10.cp. 265 266</pre> 267 268<hr> 269 270<h2><a name="Version1.1"></a>Version 1.1 (2/12/89)</h2> 271 272<h3><a name="V1.1_Interpreter"></a>Interpreter</h3> 273 274<pre> 275Makes the scanner treat ^Z (ASCII code 26) as whitespace: it erroneously 276treated ^R (ASCII code 22, or octal 26) as whitespace. 277 278Makes the token and readline operators, and the syntax for comments, 279recognize \r (code 13), \n (code 10), and \r\n as equivalent end-of-line 280indicators. The token and readline operators will skip over any of these 281sequences at the end of a token or line respectively, and a comment will 282read through any of these sequences. The other file operators (read, 283write, readstring, writestring) do nothing special with these characters. 284 285Changes the debug switch name from -D to -Z. Adds a -D switch for 286defining names in systemdict from the command line. Defines -DDEBUG for 287printing out debugging information during initialization, and -DNODISPLAY 288for suppressing display output. 289 290Corrects a bug that prevented the error machinery from working -- in 291version 1.0, errors always dumped the stacks and aborted interpretation. 292 293Corrects a bug that made eq and ne not work for strings. 294 295Makes the atan (arctangent) operator normalize its results according to 296the PostScript convention. 297 298Makes the div operator check for zero divisor. 299 300Makes unimplemented operators (resetfile, echo, save, restore, strokepath, 301reversepath) truly undefined. 302 303Makes the interactive loop exit gracefully on end-of-file: in version 1.0 304this caused an infinite loop. 305 306Implements the status operator. 307 308Corrects a bug that made the 'for' operator deliver garbage values if one 309or more of the operands (start, increment, end) was a real. 310 311Corrects a bug that made the arc and arcn operators not pop their operands 312from the stack. 313 314Corrects a bug that made the kshow operator crash the interpreter. 315 316Corrects a bug that made the print operator fail on machines that don't 317pass structure arguments by simply pushing the contents of the structure. 318 319Adds a new operator, imagecharpath, to convert images to 320addcharpath-compatible outlines. 321 322Changes alloc and alloc_free to use char * rather than byte *, and 323alloc_free to return void rather than int, making them compatible with the 324library's expectations and with malloc/free. 325 326Explicitly casts all expressions of the form (ptr1 - ptr2) used as 327procedure arguments to unsigned, to handle an incompatibility between 328Turbo C versions 1.5 and 2.0. 329 330Changes some of the internal conventions for operators: operators that 331push on the operand stack must check for overflow explicitly, and 332operators that modify the execution stack must return a special code. 333(See oper.h for details.) 334 335</pre> 336<h3><a name="V1.1_Initialization"></a>Initialization (ghost.ps, gfonts.ps)</h3> 337 338<pre> 339Modifies ghost.ps and gfonts.ps so they print debugging information only 340if the name DEBUG is defined. (Presumably the user will set this from the 341command line with -DDEBUG.) 342 343Changes ghost.ps so it initializes the nominal screen size to 640 x 350 on 344MS-DOS systems as before, but to 612 x 792 on Unix systems, which is an 3458.5" x 11" page at 72 pixels per inch. 346 347</pre> 348<h3><a name="V1.1_Library"></a>Library</h3> 349 350<pre> 351Corrects a bug that made the fill and eofill operators (gs_fill and 352gs_eofill) not perform a newpath afterward. 353 354Corrects the bug that made thin, nearly horizontal lines display wrong (as 355a series of disconnected dots) in the MS-DOS implementation. 356 357Fixes a bug in the EGA driver that often made it fill rectangular regions 358with black around information being displayed in white. 359 360Completely changes the internal representation of outline fonts, and 361changes btoi.ps (a Ghostscript language program for converting bitmaps to 362outlines) to use a new library call, gs_imagecharpath. 363 364Changes the extension for outline font files from .gf to .cp. 365 366Adds a new debugging switch, q, that traces all rectangle fill operations. 367 368Adds a new debugging switch, v, that traces all device-level output calls. 369 370Explicitly casts pointer differences passed as procedure arguments, as in 371the interpreter. 372 373Makes stringwidth work if there is no current point. In version 1.0, this 374gave a nocurrentpoint error. 375 376</pre> 377<h3><a name="V1.1_Usage_procedures"></a>Usage procedures</h3> 378 379<pre> 380Changes the name of the 'read me' file from READ.ME to README. 381 382Removes a bogus line (invoking the 'mcopy' utility) from the makefile. 383 384Splits up the makefile into a generic part (ghost.mak) and 385platform-specific parts (dos-ega.mak, unix-x11.mak). The latter are what 386is actually executed. 387 388Puts the definitions of the DEBUG and gs_DEBUG compilation flags into the 389makefile instead of in ghost.h and gx.h respectively. 390 391Changes the names of the documentation files to be a little less cryptic. 392Changes all the file names to lower-case in the documentation. Adds 393installation information to make.doc. 394 395Changes all function definitions (but not prototype declarations) to ANSI 396syntax, and adds a preprocessing step (ansi2knr) to convert them to K&R 397syntax on Unix systems. 398 399Changes the normal MS-DOS link configuration to not assume the presence of 400an 80x87 coprocessor, and describes how to increase performance if a 401coprocessor is present. 402 403Changes the names of all the interpreter .c files, except stream.c, to 404begin with 'i'. 405 406</pre> 407 408<hr> 409 410<h2><a name="Version1.0"></a>Version 1.0 (8/11/88)</h2> 411 412<pre> 413First version released to the public. 414</pre> 415 416<!-- [3.0 begin visible trailer] =========================================== --> 417<hr> 418 419<p><small>Copyright © 1996, 1997, 1998 Aladdin Enterprises. 420All rights reserved.</small> 421 422<p>This software is provided AS-IS with no warranty, either express or 423<p>implied. 424<p> 425<p>This software is distributed under license and may not be copied, 426<p>modified or distributed except as expressly authorized under the terms 427<p>of the license contained in the file LICENSE in this distribution. 428<p> 429<p>For more information about licensing, please refer to 430<p>http://www.ghostscript.com/licensing/. For information on 431<p>commercial licensing, go to http://www.artifex.com/licensing/ or 432<p>contact Artifex Software, Inc., 101 Lucas Valley Road #110, 433<p>San Rafael, CA 94903, U.S.A., +1(415)492-9861. 434 435<p> 436<small>Ghostscript version 8.53, 20 October 2005 437 438<!-- [3.0 end visible trailer] ============================================= --> 439 440</body> 441</html> 442