/[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.18 - (show annotations) (download) (as text)
Sun Oct 5 02:21:04 2003 UTC (20 years, 7 months ago) by fedor
Branch: MAIN
CVS Tags: make-1_9_2, make-1_9_0, make_1_9_1, alex_latest_semistable
Changes since 1.17: +1 -1 lines
File MIME type: application/x-texinfo
Documentation updates

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

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