Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 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>
59
This document is a history of Ghostscript releases numbered 1.n.  For more
60
recent changes, see the the other history documents and, for the latest
61
versions, 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>
68
History of Ghostscript versions 1.n (this document)<br>
69
</blockquote>
70
 
71
<p>For other information, see the <a href="Readme.htm">Ghostscript
72
overview</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>
83
This release should have had a lot more things in it, but time pressure
84
and the already long delay in getting it out made it necessary to push it
85
out the door in an incomplete state (e.g., no testing on X systems
86
whatsoever).
87
 
88
</pre>
89
<h3><a name="V1.3_Interpreter"></a>Interpreter</h3>
90
 
91
<pre>
92
Makes -d and -D equivalent on the command line.  Adds a new switch -s / -S
93
that defines a name as a string rather than a token.
94
 
95
Arranges things so that if -sLIB=_a_prefix_ is defined on the command
96
line, (filename) run will look for _a_prefix_filename before giving up if
97
filename isn't the name of an accessible file.
98
 
99
Changes showpage from an operator to a procedure.  The definition of
100
showpage in ghost.ps does a copypage, beeps the console, waits for the
101
user to type a character (normally a &lt;return&gt;, since line buffering is
102
always enabled), and then does an erasepage and an initgraphics.
103
 
104
Adds a new initialization file, gdevs.ps, containing device-dependent
105
parameters.  The default window size for X Windows is properly set to 612
106
x 792, i.e., 8.5" x 11".
107
 
108
Adds a new optional initialization file, statusd.ps, that provides dummy
109
definitions for the names found in statusdict on LaserWriters.
110
 
111
Adds a new operator, getenv, to get information from the shell
112
environment.
113
 
114
Adds a new predefined operator, defaultdevicename, that returns either (X)
115
or (EGA) according to how the interpreter was built.
116
 
117
Adds a new type, devicetype, and new operators deviceparams, getscanlines,
118
makedevice, makeimagedevice, and setdevice.  Changes currentdevice to
119
return a device object rather than a set of parameters.
120
 
121
Makes the scanner recognize reals with 'e' exponent notation, and handle
122
reals with more than 9 digits.
123
 
124
Fixes a bug that made names starting with digits read incorrectly.
125
 
126
Fixes a bug in the exp operator that made it not pop its first argument
127
from the stack.
128
 
129
Fixes a bug in the rand operator that made it return negative values about
130
half the time.
131
 
132
Fixes a bug in equality comparison (eq, ne, and several other operators)
133
that made unequal operator objects occasionally appear to be equal on DOS
134
systems.
135
 
136
Fixes a bug in the bind operator that made it not work on packed arrays.
137
 
138
Changes the internal representation of dictionaries so they can be
139
expanded or contracted dynamically.  Adds a new operator, setmaxlength, to
140
change the allocated size of a dictionary.
141
 
142
Changes sstorei.h so that non-DOS compilers don't encounter the #pragma
143
directive used by Turbo C.
144
 
145
Restores 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>
151
Makes undefined characters in the standard font display as tilde rather
152
than blank (or causing an error).  Unmapped character codes (those mapped
153
to .notdef in the encoding) still display as nothing, per the PostScript
154
manual.
155
 
156
</pre>
157
<h3><a name="V1.3_Library"></a>Library</h3>
158
 
159
<pre>
160
Adds a new header file, gxbitmap.h, with some new documentation describing
161
the internal storage format for bitmaps.
162
 
163
Makes numerous internal changes in the character / font cache, affecting
164
many of the routines in gxcache.c.
165
 
166
Fixes a bug in gz_draw_line / gz_fill_trapezoid that made nearly
167
horizontal lines display wrong.
168
 
169
Fixes a bug in gs_scale that made scaling not work if the coordinate
170
system was rotated or skewed.
171
 
172
Extends the font cache so it will handle characters rotated by multiples
173
of 90 degrees.
174
 
175
Changes the second argument of gx_path_bbox and gx_path_is_rectangle to be
176
a gs_fixed_rect * rather than a fixed [4].
177
 
178
Changes gs_matrix_rotate so it handles multiples of 90 degrees as a
179
special case.
180
 
181
Changes the definition of the gx_device structure to accommodate the new
182
device operators, and adds corresponding library calls.
183
 
184
Changes the type for a device color index from int to gx_color_index
185
(equivalent to unsigned long).  ***NOTE***: this affects existing clients
186
and drivers in a non-trivial way on MS-DOS systems.
187
 
188
Changes 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>
194
Changes the compilation rules for Unix systems to not use the -o and -c
195
compiler flags together, to be compatible with more versions of cc.
196
 
197
Changes the gcc makefile to use $(GCC) rather than gcc as the compiler
198
name.
199
 
200
Moves the -1 flag for the MS-DOS compiler from the cc*.bat files to the
201
makefile.
202
 
203
Changes CCDEBUG to CCFLAGS, and adds ASMFLAGS, in DOS makefile.
204
 
205
Adds -DFOR80386 and /DFOR80386 to enable use of 80386 instructions in
206
assembly code on DOS systems.
207
 
208
Merges the DEBUG and gs_DEBUG switches.  There is now only a single DEBUG
209
switch that affects both the interpreter and the library.
210
 
211
Adds a new compilation switch, -DNOPRIVATE, that makes private (static)
212
variables and procedures public for debugging and profiling (only needed
213
on DOS systems).
214
 
215
Adds the DOS executable (gs.exe and gs.map) to the distribution fileset.
216
 
217
Adds new platform-specific code files, gp-*.c, for a few things like
218
reading the clock.
219
 
220
Adds a new documentation file, drivers.doc, that describes the interface
221
between 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>
232
Adds the new facilities in version 25 of PostScript: //name for immediate
233
lookup, packed arrays (setpacking, currentpacking, packedarray operators),
234
and new font cache parameters (setcacheparams, currentcacheparams
235
operators).
236
 
237
Adds new operators (setfileposition, currentfileposition) for random
238
access to files.
239
 
240
Extends readhexstring to take either a string or a file, just like token.
241
 
242
Fixes a bug that caused the 'for' operator (and a couple of others) to
243
randomly smash memory locations on PC platforms.
244
 
245
</pre>
246
<h3><a name="V1.2_Library"></a>Library</h3>
247
 
248
<pre>
249
Renames the init_device driver procedure as open_device, and adds a
250
corresponding close_device.
251
 
252
Adds new procedures to read and set the cache limit values (implementing
253
the currentcacheparams and setcacheparams operators).
254
 
255
</pre>
256
<h3><a name="V1.2_Usage_procedures"></a>Usage procedures</h3>
257
 
258
<pre>
259
Changes the name of the Unix makefile to ux-cc-x.mak, and adds a new Unix
260
makefile, ux-gcc-x.mak, for using gcc instead of cc.  (The latter doesn't
261
actually work yet.)
262
 
263
Changes the name of the single built-in font from uglyfont.cp to
264
ugly10.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>
275
Makes the scanner treat ^Z (ASCII code 26) as whitespace: it erroneously
276
treated ^R (ASCII code 22, or octal 26) as whitespace.
277
 
278
Makes the token and readline operators, and the syntax for comments,
279
recognize \r (code 13), \n (code 10), and \r\n as equivalent end-of-line
280
indicators.  The token and readline operators will skip over any of these
281
sequences at the end of a token or line respectively, and a comment will
282
read through any of these sequences.  The other file operators (read,
283
write, readstring, writestring) do nothing special with these characters.
284
 
285
Changes the debug switch name from -D to -Z.  Adds a -D switch for
286
defining names in systemdict from the command line.  Defines -DDEBUG for
287
printing out debugging information during initialization, and -DNODISPLAY
288
for suppressing display output.
289
 
290
Corrects a bug that prevented the error machinery from working -- in
291
version 1.0, errors always dumped the stacks and aborted interpretation.
292
 
293
Corrects a bug that made eq and ne not work for strings.
294
 
295
Makes the atan (arctangent) operator normalize its results according to
296
the PostScript convention.
297
 
298
Makes the div operator check for zero divisor.
299
 
300
Makes unimplemented operators (resetfile, echo, save, restore, strokepath,
301
reversepath) truly undefined.
302
 
303
Makes the interactive loop exit gracefully on end-of-file: in version 1.0
304
this caused an infinite loop.
305
 
306
Implements the status operator.
307
 
308
Corrects a bug that made the 'for' operator deliver garbage values if one
309
or more of the operands (start, increment, end) was a real.
310
 
311
Corrects a bug that made the arc and arcn operators not pop their operands
312
from the stack.
313
 
314
Corrects a bug that made the kshow operator crash the interpreter.
315
 
316
Corrects a bug that made the print operator fail on machines that don't
317
pass structure arguments by simply pushing the contents of the structure.
318
 
319
Adds a new operator, imagecharpath, to convert images to
320
addcharpath-compatible outlines.
321
 
322
Changes alloc and alloc_free to use char * rather than byte *, and
323
alloc_free to return void rather than int, making them compatible with the
324
library's expectations and with malloc/free.
325
 
326
Explicitly casts all expressions of the form (ptr1 - ptr2) used as
327
procedure arguments to unsigned, to handle an incompatibility between
328
Turbo C versions 1.5 and 2.0.
329
 
330
Changes some of the internal conventions for operators: operators that
331
push on the operand stack must check for overflow explicitly, and
332
operators 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>
339
Modifies ghost.ps and gfonts.ps so they print debugging information only
340
if the name DEBUG is defined.  (Presumably the user will set this from the
341
command line with -DDEBUG.)
342
 
343
Changes ghost.ps so it initializes the nominal screen size to 640 x 350 on
344
MS-DOS systems as before, but to 612 x 792 on Unix systems, which is an
345
8.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>
351
Corrects a bug that made the fill and eofill operators (gs_fill and
352
gs_eofill) not perform a newpath afterward.
353
 
354
Corrects the bug that made thin, nearly horizontal lines display wrong (as
355
a series of disconnected dots) in the MS-DOS implementation.
356
 
357
Fixes a bug in the EGA driver that often made it fill rectangular regions
358
with black around information being displayed in white.
359
 
360
Completely changes the internal representation of outline fonts, and
361
changes btoi.ps (a Ghostscript language program for converting bitmaps to
362
outlines) to use a new library call, gs_imagecharpath.
363
 
364
Changes the extension for outline font files from .gf to .cp.
365
 
366
Adds a new debugging switch, q, that traces all rectangle fill operations.
367
 
368
Adds a new debugging switch, v, that traces all device-level output calls.
369
 
370
Explicitly casts pointer differences passed as procedure arguments, as in
371
the interpreter.
372
 
373
Makes stringwidth work if there is no current point.  In version 1.0, this
374
gave a nocurrentpoint error.
375
 
376
</pre>
377
<h3><a name="V1.1_Usage_procedures"></a>Usage procedures</h3>
378
 
379
<pre>
380
Changes the name of the 'read me' file from READ.ME to README.
381
 
382
Removes a bogus line (invoking the 'mcopy' utility) from the makefile.
383
 
384
Splits up the makefile into a generic part (ghost.mak) and
385
platform-specific parts (dos-ega.mak, unix-x11.mak).  The latter are what
386
is actually executed.
387
 
388
Puts the definitions of the DEBUG and gs_DEBUG compilation flags into the
389
makefile instead of in ghost.h and gx.h respectively.
390
 
391
Changes the names of the documentation files to be a little less cryptic.
392
Changes all the file names to lower-case in the documentation.  Adds
393
installation information to make.doc.
394
 
395
Changes all function definitions (but not prototype declarations) to ANSI
396
syntax, and adds a preprocessing step (ansi2knr) to convert them to K&amp;R
397
syntax on Unix systems.
398
 
399
Changes the normal MS-DOS link configuration to not assume the presence of
400
an 80x87 coprocessor, and describes how to increase performance if a
401
coprocessor is present.
402
 
403
Changes the names of all the interpreter .c files, except stream.c, to
404
begin 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>
413
First version released to the public.
414
</pre>
415
 
416
<!-- [3.0 begin visible trailer] =========================================== -->
417
<hr>
418
 
419
<p><small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises.
420
All 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>