/[gnustep]/gnustep/core/make/Documentation/faq.texi
ViewVC logotype

Contents of /gnustep/core/make/Documentation/faq.texi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.16 - (show annotations) (download) (as text)
Tue Jul 22 03:03:27 2003 UTC (20 years, 9 months ago) by fedor
Branch: MAIN
CVS Tags: pre-header-reorg-20030731, make-1_8_0, make-1_7_4, make-1_7_3, make-1_7_2
Branch point for: freeze-1_8_0
Changes since 1.15: +1 -1 lines
File MIME type: application/x-texinfo
target.make: Set thread library in AUXILIARY_OBJC_LIBS. Set
reentrant flags for all targets if threaded. Remove duplicates.
Update docs

1 \input texinfo @c -*-texinfo-*-
2 @c A FAQ for GNUstep
3
4 @node Top, Compatibility, (dir), (dir)
5 @chapter GNUstep Frequently Asked Questions with Answers
6
7 Last updated @today{}.
8 Please send corrections to @email{gnustep-maintainer@@gnu.org}. Also look
9 at the user FAQ for more user oriented questions.
10
11 @menu
12 * Compatibility::
13 * Compiling and Developing::
14 * GNU Objective C Compiler and Runtime::
15 * GNUstep Base Library::
16 * GNUstep GUI Library::
17 * GNUstep DisplayGhostScript Server::
18 @end menu
19
20 @c ****************************************************************
21 @c Compiling
22 @node Compatibility, Compiling and Developing, Top, Top
23 @section Compatibility
24
25 @menu
26 * Is it easy to port OPENSTEP programs to GNUstep?::
27 * How about porting between Cocoa and GNUstep?::
28 * Can I transfer archived data from GNUstep to Cocoa?::
29 * Does distributed objects work between GNUstep and Cocoa?::
30 * Is there an Interface Builder for GNUstep?::
31 * Can I use my original NIB files?::
32 * Can one use the hybrid "Objective-C++"::
33 * Is there a plan to support Java/YellowBox Bindings?::
34 * What if I compile GNUstep under OPENSTEP/MacOS X?::
35 * Is the Objective C API for GTK related?::
36 * How about implementing parts of the Application Kit with GTK?::
37 @end menu
38
39 @node Is it easy to port OPENSTEP programs to GNUstep?, How about porting between Cocoa and GNUstep?, Compatibility, Compatibility
40 @subsection Is it easy to port OPENSTEP programs to GNUstep?
41
42 It is probably easy for simple programs. There are some portability
43 tools to make this easier, or rewrite
44 the Makefiles yourself. You will also have to translate the NIB files
45 (if there are any) to GNUstep model files using the nib2gmodel program
46 (from @url{ftp://ftp.gnustep.org/pub/gnustep/dev-apps}).
47
48 @node How about porting between Cocoa and GNUstep?, Can I transfer archived data from GNUstep to Cocoa?, Is it easy to port OPENSTEP programs to GNUstep?, Compatibility
49 @subsection How about porting between Cocoa and GNUstep?
50
51 It's easier from GNUstep to Cocoa than Cocoa to GNUstep. Cocoa is
52 constantly changing, much faster than GNUstep could hope to keep
53 up. They have added extensions and new classes that aren't available in
54 GNUstep yet. Plus there are some other issues. If you start with
55 Cocoa:
56
57 @itemize @bullet
58 @item Be careful with Cocoa.h includes
59 @item Do not use CoreFoundation
60 @item Do not use C++
61 @item Do not use Quicktime or other propriatory extention
62 @item You need to convert .nib (IB if you use it) to .gmodel or .gorm
63 and Gorm is good enough for most of the work
64 @item Do not use NSToolBar (not finished in GNUstep)
65 @item Do not use Drawer (not implmented in GNUstep)
66 @end itemize
67
68 @node Can I transfer archived data from GNUstep to Cocoa?, Does distributed objects work between GNUstep and Cocoa?, How about porting between Cocoa and GNUstep?, Compatibility
69 @subsection Can I transfer archived data from GNUstep to Cocoa?
70
71 Apple's archiving format is proprietary and not documented, so this
72 poses a problem for anyone wanting to implement compatibility with it.
73 However, even if we reverse engineered the format, there are enough
74 differences between the class and ivar layouts to make this sort of
75 compatibility difficult. Not to mention the fact that we would
76 constantly have to keep up with the changes Apple made. Also Apple's
77 archiving format, as far as we know, would not be compatible between
78 different machines because of endiness issues, although GNUstep doesn't
79 have this problem.
80
81 Your best bet is to implement your own archiving format that would work
82 both with GNUstep and Cocoa. Fortuneatly, you don't have to start from
83 scratch, since this has been essentially done for you in the nib2gmodel
84 tool, which has an archiver that works both on GNUstep and Cocoa. It
85 might be nice to split this off into a separate project to make it
86 easier for other people to do the same thing.
87
88 @node Does distributed objects work between GNUstep and Cocoa?, Is there an Interface Builder for GNUstep?, Can I transfer archived data from GNUstep to Cocoa?, Compatibility
89 @subsection Does distributed objects work between GNUstep and Cocoa?
90
91 See the answer to the previous question (on archive compatibility) for
92 why this won't work either.
93
94 @node Is there an Interface Builder for GNUstep?, Can I use my original NIB files?, Does distributed objects work between GNUstep and Cocoa?, Compatibility
95 @subsection Is there an Interface Builder for GNUstep?
96
97 There is an Interface Builder for GNUstep called Gorm, but it is
98 in alpha release, so it may not work perfectly. You can download it from
99 the ftp site or via http.
100 The Project Manager ProjectCenter is also available.
101
102 @node Can I use my original NIB files?, Can one use the hybrid "Objective-C++", Is there an Interface Builder for GNUstep?, Compatibility
103 @subsection Can I use my original NIB files?
104
105 No - NeXT/Apple never documented their nib format, so GNUstep supports
106 both the 'gmodel' format (which stores information as text
107 (property-lists) and can therefore be edited 'by hand') and binary
108 archive format (which can be edited by Gorm). There IS a conversion
109 tool called nib2gmodel that can be compiled under OPENSTEP to convert
110 OPENSTEP nib files to GNUstep gmodel files.
111
112 @node Can one use the hybrid "Objective-C++", Is there a plan to support Java/YellowBox Bindings?, Can I use my original NIB files?, Compatibility
113 @subsection Can one use the hybrid "Objective-C++"
114
115 No. at present the GNU compiler (gcc) does not support
116 "Objective-C++". Apple has submitted patches for this, but it is up to
117 the GCC steering commitee to decide if they want to add them. If you
118 would like to see this, please politely and respectfully lobby them at
119 @email{gcc@@gnu.org}.
120
121 @node Is there a plan to support Java/YellowBox Bindings?, What if I compile GNUstep under OPENSTEP/MacOS X?, Can one use the hybrid "Objective-C++", Compatibility
122 @subsection Is there a plan to support the Java/YellowBox Bindings?
123
124 Yes. The GNustep Java library/bridge called JIGS is available now. JIGS
125 is a free (LGPL) Java Interface for GNUstep; it can automatically wrap
126 Objective-C libraries based on GNUstep, making them accessible directly
127 to the Java programmer as if they were Java libraries. As a side effect,
128 it is also possible to use the whole engine in the reverse way: JIGS
129 provides a high level API to allow Objective-C programmers to start java
130 virtual machines inside GNUstep Objective-C code and access java objects
131 in the java virtual machine transparently, as if they were objective-C
132 objects.
133
134 @node What if I compile GNUstep under OPENSTEP/MacOS X?, Is the Objective C API for GTK related?, Is there a plan to support Java/YellowBox Bindings?, Compatibility
135 @subsection What if I compile GNUstep under OPENSTEP/MacOS X?
136
137 GNUstep uses the X-windows display postscript extension.
138 The interface to that is not the same as the interface to the
139 OPENSTEP/MacOS-X windows server. While someone could write a
140 backend library to provide the interface, nobody has bothered to
141 date.
142
143 Also, the GNUstep base library is still being ported to Darwin.
144
145 @node Is the Objective C API for GTK related?, How about implementing parts of the Application Kit with GTK?, What if I compile GNUstep under OPENSTEP/MacOS X?, Compatibility
146 @subsection Is the Objective C API for GTK related?
147
148 No. GNUstep applications provide their GUI via the OpenStep
149 API, which provides fully object-oriented access to GUI manipulation.
150
151 The object-oriented nature of the libraries and language make it much easier
152 for new users to create their own subclasses rather than simply using the
153 supplied widgets as in other frameworks.
154
155 @node How about implementing parts of the Application Kit with GTK?, , Is the Objective C API for GTK related?, Compatibility
156 @subsection How about implementing parts of the Application Kit with GTK?
157
158 Yes and No - The GNUstep architecture provides a single,
159 platform-independent, API for handling all aspects of GUI interaction
160 (implemented in the gstep-gui library), with a backend architecture
161 that permits you to have different display models (display postscript,
162 X-windows, win32, berlin ...) while letting you use the same code
163 for printing as for displaying. Use of GTK in the frontend gui
164 library would remove some of those advantages without adding any.
165
166 That being said, a backend library could be implemented using gtk
167 if anyone wanted to do so. Since the frontend library handles most
168 of the work involved in implementing the OpenStep API, the backend
169 is a relatively thin layer and the advantages of GTK over direct
170 xlib or win32 calls is likely to be minimal. If/when GTK is ported
171 to more systems, a backend written using it could be a valuable
172 asset - volunteers are, as always, wecome.
173
174
175 @c ****************************************************************
176 @c Compiling
177 @node Compiling and Developing, GNU Objective C Compiler and Runtime, Compatibility, Top
178 @section Compiling and Developing
179
180 @menu
181 * How can I get started programming?::
182 * How can I help with GNUstep?::
183 * Helping develop GNUstep::
184 * Helping document GNUstep::
185 * How do I update the task list?::
186 * How do I start writing tests?::
187 * How do I start writing applications?::
188 * How can I help with the GNUstep website?::
189 * Why doesn't GDB support Objective-C?::
190 @end menu
191
192 @node How can I get started programming?, How can I help with GNUstep?, Compiling and Developing, Compiling and Developing
193 @subsection How can I get started programming?
194
195 Good question. Read the tutorials at the GNUstep web site. Also look at
196 Apple's documentation (pointers in the Resources section on the GNUstep web
197 site.
198
199 @node How can I help with GNUstep?, Helping develop GNUstep, How can I get started programming?, Compiling and Developing
200 @subsection How can I help with GNUstep?
201
202 @enumerate
203 @item Write/debug library code
204 @item Write documentation
205 @item Update the task list and library headers
206 @item Write applications
207 @end enumerate
208
209 Let people know what you are doing. Break your project up into
210 the smallest units you can. Feed back frequent updates to the
211 maintainers. Ask questions in the discussion mailing list.
212
213 Do remember that any changes beyond a few lines of code (or
214 documentation) require a disclaimer or copyright assignment to the
215 Free Software Foundation before they can be incorporated into the
216 project. Get in touch with the maintainer of the library you are
217 working on about this.
218
219 Don't start with large-scale reorganisation of anything - instead,
220 get a general idea in mind of what you want to do, and proceed as
221 much as possible with incremental changes that don't break anything
222 - that way you can make those incremental changes available to the
223 rest of the community at frequent intervals.
224
225 Don't be afraid to give up - there is no shame in finding out that
226 you have take on too large/complex a project. It's much better to
227 'resign' and take on a smaller job than to just stop without telling
228 anyone.
229
230 Please document the code you add or change (using autogsdoc comments
231 that begin with a slash and two asterices). But PLEASE, do not copy from
232 the Apple documentation or any other copyrighted documentation.
233
234
235 @node Helping develop GNUstep, Helping document GNUstep, How can I help with GNUstep?, Compiling and Developing
236 @subsection Helping develop GNUstep
237
238 There is plenty of unimplemented stuff in the gui library and
239 backend libraries that volunteers can work on - just browse through
240 the code and see if it conforms to the documentation.
241
242 Specific tasks are noted in the developers section on the GNUstep
243 website.
244
245 Once you have coded something, you could always write a testcase
246 and documentation for it :-)
247
248 @node Helping document GNUstep, How do I update the task list?, Helping develop GNUstep, Compiling and Developing
249 @subsection Helping document GNUstep
250
251 All class documentation is written directly in the source code itself
252 and translated using the autogsdoc program. See the source code and
253 documentation for autogsdoc for information on documenting the classes.
254
255 Newcomers could write documentation for individual classes by
256 comparing the OpenStep specification, the MacOS-X documentation,
257 and the GNUstep source. Documentation should clearly note where
258 individual methods are specific to OpenStep, MacOS-X or are GNustep
259 extensions.
260
261 More experienced people could write documentation on general
262 programming topics, and tutorials for new users.
263
264 Anyone willing to write documentation, either tutorials for using
265 GNUstep, or reference documentation for individual classes, should
266 either write it in gsdoc or as plain ascii text for someone else to
267 format into gsdoc.
268
269 GNUstep documentation should have copyright assigned to the Free
270 Software Foundation.
271
272 @node How do I update the task list?, How do I start writing tests?, Helping document GNUstep, Compiling and Developing
273 @subsection How do I update the task list?
274
275 The task list (@url{http://savannah.gnu.org/pm/?group_id=99}) is
276 supposed to tell people what jobs are waiting to be done. Feel free to
277 add to it or update the tasks that are there (you need to create a login
278 for yourself first).
279
280 One job of major importance that pretty much anyone can do is to
281 look for jobs to add to the task list. In the case of methods from
282 the OpenStep specification or the MacOS-X documentation not being
283 present in the GNUstep libraries, it is also helpful to add the
284 method prototypes to the library header files.
285
286 Send any changes or additions to @email{bug-gnustep@@gnu.org}.
287
288 A beginner can look through the MacOS-X documentation, the OpenStep
289 specification and the GNUstep source and contribute task items.
290
291 If a class or method is in MacOS-X and OpenStep but is not in
292 GNUstep - it's a high priority TODO and should at least be added
293 to the GNUstep headers and a dummy version added to the source with
294 a FIXME comment.
295
296 If a class or method is in MacOS-X but not OpenStep or GNUstep -
297 it's a low priority TODO. It should be added to the GNUstep headers
298 bracketed in @code{#ifndef STRICT_OPENSTEP}
299
300 If a class or method is in OpenStep but not in MacOS-X or GNUstep
301 - it's a low priority TODO. It should be added to the GNUstep
302 headers bracketed in @code{#ifndef STRICT_MACOS_X}
303
304 There are a couple of people working on this already, so it's a
305 good idea to get in touch with Adam or Richard to coordinate efforts.
306
307 @node How do I start writing tests?, How do I start writing applications?, How do I update the task list?, Compiling and Developing
308 @subsection How do I start writing tests?
309
310 You can write testcases - where the libraries fail tests, you
311 could either fix the problem, or add it to the task list.
312
313 To write testcases, you need to use anonymous CVS to install the
314 latest GNUstep snapshots you can find. Then checkout the 'tests'
315 module from CVS. In the 'tests' directory, you will find a
316 regression testing framework.
317 In order to use this you will also need a recent (v 1.3.2 or later) copy of
318 Guile (you can get this from a GNU ftp site) and will need to check-out,
319 built, and installed the 'guile' package from the GNUstep CVS repository.
320
321 @node How do I start writing applications?, How can I help with the GNUstep website?, How do I start writing tests?, Compiling and Developing
322 @subsection How do I start writing applications?
323
324 You can either look at the links on the GNUstep website for
325 applications that have been started, and email their owners to
326 volunteer to help, or you can start your own project.
327
328 @node How can I help with the GNUstep website?, Why doesn't GDB support Objective-C?, How do I start writing applications?, Compiling and Developing
329 @subsection How can I help with the GNUstep website?
330
331 Talk to Adam Fedor @email{fedor@@gnu.org}, the maintainer.
332
333 The GNUstep website is kept as a CVS module, but the largest portions
334 of it (the FAQ and the Documentation) are actually
335 generated from files in the individual GNUstep packages.
336
337 If you want to update the FAQ or documentation - grab
338 the latest snapshot of the GNUstep core you can find, update it
339 from the CVS repository, and work with the contents of the appropriate
340 documentation directory.
341
342 If you want to work on other parts of the website, you can grab a copy
343 of the website via anonymous CVS. See
344 @url{http://savannah.gnu.org/cvs/?group_id=99} for instructions on how
345 to do that.
346
347 The main task with the website is to figure out which bits are
348 out-of-date (or wrong) and update/mark-as-outdated as required.
349
350 @node Why doesn't GDB support Objective-C?, , How can I help with the GNUstep website?, Compiling and Developing
351 @subsection Why doesn't GDB support Objective-C?
352
353 Apple has submitted their patches to make GDB work with Objective-C
354 programs, and the GDB maintainer has said that he is interested in
355 integrating them. Now it appears that that there is just a lack of
356 time and priority to get this done. You can ask about or lobby for this -
357 see @url{http://sources.redhat.com/gdb/}.
358
359 There are patches available on the gnustep web site if you want
360 to compile your own gdb (see @url{ftp://ftp.gnustep.org/pub/gnustep/patches}).
361
362
363 @c -------------------------------------------------------------------
364
365 @node GNU Objective C Compiler and Runtime, GNUstep Base Library, Compiling and Developing, Top
366 @section GNU Objective C Compiler and Runtime
367
368 @menu
369 * What is the Objective C Runtime?::
370 * Does it allow a mixture of Objective C and C++::
371 * Where can I find more information?::
372 @end menu
373
374 @node What is the Objective C Runtime?, Does it allow a mixture of Objective C and C++, GNU Objective C Compiler and Runtime, GNU Objective C Compiler and Runtime
375 @subsection What is the Objective C Runtime?
376
377 The Objective C Runtime Library provides C functions and data structures
378 required to execute an Objective C program.
379
380 The GNU Objective C Runtime Library offers everything NeXT's runtime
381 does, including Categories, Protocols, @samp{+poseAs:}, thread-safety,
382 class initialization on demand, delayed loading of classes, and
383 initialization of static instances (such as @@""-style string objects).
384
385 It also has several improvements over NeXT's implementation:
386
387 @itemize @bullet
388
389 @item NeXT's runtime requires an extra function call (objc_msgSend) for
390 each message that is sent; (the function looks up the receiving
391 instance's implementation of the method). GNU's implementation is
392 faster because it does not use an extra function call. Instead, it
393 inlines a short piece of code that makes two pointer hops into a method
394 dispatch table; because the code is inlined, it does not incur the
395 overhead of a function call.
396
397 @item When running in thread-safe mode, NeXT's runtime must aquire a
398 global mutual exclusion lock every time a message is sent; this is
399 extremely slow. GNU's runtime, amazingly, sends messages just as fast
400 in thread-safe mode as it does in single-thread mode---the code path
401 does not contain even a single extra instruction! The GNU runtime only
402 needs locks when certainly structures are written, not read; the
403 structures are written relatively infrequently: only at class
404 initialization and when @samp{+poseAs:} is called.
405
406 @item GNU's runtime provides ``selector-types'' along with each
407 selector; NeXT's does not. A selector-type is a string that describes
408 the C variable types for the method's return and argument values. Among
409 other uses, selector-types is extrememly helpful for fast distributed
410 objects implementations, (see GNUstep Base Library Section, below).
411
412 @item Many of the GNU functions have different names than their
413 corresponding NeXT functions; the GNU names conform to the GNU coding
414 standards.
415
416 @end itemize
417
418 @node Does it allow a mixture of Objective C and C++, Where can I find more information?, What is the Objective C Runtime?, GNU Objective C Compiler and Runtime
419 @subsection Does it allow a mixture of Objective C and C++?
420
421 No.
422 See @pxref{Can one use the hybrid "Objective-C++"}
423
424 @node Where can I find more information?, , Does it allow a mixture of Objective C and C++, GNU Objective C Compiler and Runtime
425 @subsection Where can I find more information?
426
427 The FAQ associated with the newsgroup @samp{comp.lang.objective-c}
428 contains more information about GNU Objective C.
429
430 @c ------------- GNU Compiler and Objective C Runtime Library -------
431
432 @node GNUstep Base Library, GNUstep GUI Library, GNU Objective C Compiler and Runtime, Top
433 @section GNUstep Base Library
434
435 @menu
436 * What is the GNUstep Base Library?::
437 * What is base's current state of development?::
438 * What are the features of GNU Distributed Objects?::
439 @end menu
440
441 @node What is the GNUstep Base Library?, What is base's current state of development?, GNUstep Base Library, GNUstep Base Library
442 @subsection What is the GNUstep Base Library?
443
444 The GNUstep Base Library is a library of general-purpose, non-graphical
445 Objective C objects. For example, it includes classes for strings,
446 object collections, byte streams, typed coders, invocations,
447 notifications, notification dispatchers, moments in time, network ports,
448 remote object messaging support (distributed objects), event loops, and
449 random number generators.
450
451 It provides functionality that aims to implement the non-graphical
452 portion of the OpenStep standard (the Foundation library).
453
454 @node What is base's current state of development?, What are the features of GNU Distributed Objects?, What is the GNUstep Base Library?, GNUstep Base Library
455 @subsection What is its current state of development?
456
457 GNUstep base is currently stable and implements probably 99% of the
458 functionality of the OpenStep classes and most all of the new Cocoa
459 classes.
460 Normal work can already be done using the library since the
461 missing 1 percent are the least-often-used features or are simply not
462 up to date with the latest Carbon spec.
463
464 @node What are the features of GNU Distributed Objects?, , What is base's current state of development?, GNUstep Base Library
465 @subsection What are the features of GNU Distributed Objects?
466
467 GNU Distributed Objects has many of the features of other distributed
468 objects implementations, but, since it is free software, it can be
469 ported to platforms for which other distributed objects implementations
470 are not available.
471
472 [NOTE: The GNU distributed object facilities have the same ease-of-use
473 as NeXT's; be warned, however, that they are not compatible with each
474 other. They have different class heirarchies, different instance
475 variables, different method names, different implementation strategies
476 and different network message formats. You cannot communicate with a
477 NeXT NSConnection using a GNU NSConnection.
478
479 Here are some differences between GNU distributed objects and NeXT's
480 distributed objects: NeXT NSDistantObject asks it's remote
481 target for the method encoding types and caches the results; GNU
482 NSDistantObject gets the types directly from the local GNU "typed selector"
483 mechanism if the information is known locally and only queries the remote
484 target or caching encoding types when using a method that is not known to
485 the local process. The NSProxy for the remote root object always has name 0
486 and, once set, you cannot change the root object of a NSConnection; the GNU
487 Proxy for the remote root object has a target address value just like
488 all other Proxy's, and you can change the root object as many times as
489 you like. ].
490
491 @c --------------------------GNUstep Base Library----------------------
492
493 @node GNUstep GUI Library, GNUstep DisplayGhostScript Server, GNUstep Base Library, Top
494 @section GNUstep GUI Library
495
496 @menu
497 * What is the GUI Library?::
498 * Explain the organization of the front- and back-ends::
499 * What is the current state of development of the front-end?::
500 * What is the current state of development of the X/DPS back-end?::
501 @end menu
502
503 @node What is the GUI Library?, Explain the organization of the front- and back-ends, GNUstep GUI Library, GNUstep GUI Library
504 @subsection What is the GUI Library?
505
506 The GNUstep GUI Library is a library of objects useful for writing
507 graphical applications. For example, it includes classes for drawing
508 and manipulating graphics objects on the screen: windows, menus,
509 buttons, sliders, text fields, and events. There are also many
510 peripheral classes that offer operating-system-independent interfaces to
511 images, cursors, colors, fonts, pasteboards, printing. There are also
512 workspace support classes such as data links, open/save panels,
513 context-dependent help, spell checking.
514
515 It provides functionality that aims to implement the @samp{AppKit}
516 portion of the OpenStep standard. However the implementation has
517 been written to take advantage of GNUstep enhancements wherever possible.
518
519
520 @node Explain the organization of the front- and back-ends, What is the current state of development of the front-end?, What is the GUI Library?, GNUstep GUI Library
521 @subsection Explain the organization of the front- and back-ends
522
523 The GNUstep GUI Library is divided into a front- and back-end. The
524 front-end contains the majority of implementation, but leaves out the
525 low-level drawing and event code. A back-end can override whatever
526 methods necessary in order to implement low-level drawing event
527 receiving. Different back-ends will make GNUstep available on various
528 platforms. The default GNU back-end will run on top of X Windows.
529 Other back-ends could allow GNUstep to run on OpenGL and WIN32
530 graphics/event platforms. Much work will be saved by this clean
531 separation between front- and back-end, because it allows different
532 platforms to share the large amount of front-end code.
533
534 @node What is the current state of development of the front-end?, What is the current state of development of the X/DPS back-end?, Explain the organization of the front- and back-ends, GNUstep GUI Library
535 @subsection What is the current state of development of the front-end?
536
537 Many of the classes are well implemented, if not thouroughly tested.
538 See the GNUstep web sites and read status information contained in the
539 distribution for the most up-to-date information.
540
541 @node What is the current state of development of the X/DPS back-end?, , What is the current state of development of the front-end?, GNUstep GUI Library
542 @subsection What is the current state of development of the X/DPS back-end?
543
544 It works, but is slow and buggy. A lot of work could be done.
545
546 @c ------------------------- GNUstep GUI Library -----------------------
547
548 @node GNUstep DisplayGhostScript Server, , GNUstep GUI Library, Top
549 @section GNUstep DisplayGhostScript Server
550
551 @menu
552 * What is the Display Ghostscript Server?::
553 * What is DGSs current state of development?::
554 * What is the relationship between the Display Ghostscript Server and X Windows?::
555 @end menu
556
557 @node What is the Display Ghostscript Server?, What is DGSs current state of development?, GNUstep DisplayGhostScript Server, GNUstep DisplayGhostScript Server
558 @subsection What is the Display Ghostscript Server?
559
560 It is a free implementation of a Display PostScript server based on the
561 GNU Ghostscript program developed by Aladdin Enterprises and now owned by artofcode LLC.
562
563 @node What is DGSs current state of development?, What is the relationship between the Display Ghostscript Server and X Windows?, What is the Display Ghostscript Server?, GNUstep DisplayGhostScript Server
564 @subsection What is its current state of development?
565
566 GNU contracted with Aladdin Enterprises to add some key features to GNU
567 Ghostscript so it could be used as a DPS server. This work has mostly
568 been done, although Aladdin did not completely finish the work that they
569 were contracted for. (Because the work took longer than specified and
570 was not completed, Aladdin agreed to waive approximately $10,000 in
571 promised fees for the work that was actually done and delivered.) DGS
572 works fairly well with a single context. Alpha channel and compositing
573 currently doesn't work.
574
575 @node What is the relationship between the Display Ghostscript Server and X Windows?, , What is DGSs current state of development?, GNUstep DisplayGhostScript Server
576 @subsection What is the relationship between the Display Ghostscript Server and X Windows?
577
578 Display Ghostscript runs on top of X Windows.
579
580 @c ------------------ GNUstep DisplayGhostScript Server ---------------
581
582 @bye
583 \bye

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26