mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-25 17:51:01 +00:00
Changes by Scott Christley.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1098 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
642a35cd83
commit
6eb2c1dadd
1 changed files with 94 additions and 22 deletions
|
@ -3,7 +3,7 @@
|
||||||
Last updated 3 March 1996.
|
Last updated 3 March 1996.
|
||||||
Maintained by Andrew McCallum <mccallum@@gnu.ai.mit.edu>, with
|
Maintained by Andrew McCallum <mccallum@@gnu.ai.mit.edu>, with
|
||||||
contributions by Pascal Forget <pascal@@wsc.com>, Scott Christley
|
contributions by Pascal Forget <pascal@@wsc.com>, Scott Christley
|
||||||
<scottc@@ocbi.com>, and Randy Chapman <chapman@@u.washington.edu>.
|
<scottc@@net-community.com>, and Randy Chapman <chapman@@u.washington.edu>.
|
||||||
Please send corrections to <mccallum@@gnu.ai.mit.edu>.
|
Please send corrections to <mccallum@@gnu.ai.mit.edu>.
|
||||||
|
|
||||||
The intended audience of this FAQ is future and present code developers
|
The intended audience of this FAQ is future and present code developers
|
||||||
|
@ -29,6 +29,12 @@ The GNUstep project consists of the following sub-projects:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
|
|
||||||
|
@item GNU Compiler and Objective-C Runtime Library - though not part of
|
||||||
|
the GNUstep project per se, the GNU Compiler is used to compile
|
||||||
|
Objective-C code and the Library is a fundamental part of any GNUstep
|
||||||
|
application. Of particular interest to the GNUstep project is its
|
||||||
|
efficient thread-safe capability.
|
||||||
|
|
||||||
@item GNUstep Base Library - code for non-graphical objects, such as
|
@item GNUstep Base Library - code for non-graphical objects, such as
|
||||||
strings, collections, archiving support and distributed objects
|
strings, collections, archiving support and distributed objects
|
||||||
messaging. (Including functionality similar to OpenStep's
|
messaging. (Including functionality similar to OpenStep's
|
||||||
|
@ -70,7 +76,8 @@ on this platform.
|
||||||
OpenStep is an Application Programming Interface (API) for creating
|
OpenStep is an Application Programming Interface (API) for creating
|
||||||
applications using the Objective C language. It was published by NeXT
|
applications using the Objective C language. It was published by NeXT
|
||||||
Computer Inc. in 1994. It is being used by Sun Microsystems as part of
|
Computer Inc. in 1994. It is being used by Sun Microsystems as part of
|
||||||
their Common Desktop Environment (CDE).
|
their Common Desktop Environment (CDE), and it is being used by Ohio Carbon
|
||||||
|
Blank as part of their On-line Virtual Community Project.
|
||||||
|
|
||||||
OpenStep consists of three parts: the @samp{FoundationKit}, a library of
|
OpenStep consists of three parts: the @samp{FoundationKit}, a library of
|
||||||
non-graphical objects; the @samp{AppKit}, a library of objects usful in
|
non-graphical objects; the @samp{AppKit}, a library of objects usful in
|
||||||
|
@ -114,7 +121,7 @@ DisplayGhostScript and X Windows as a GNUstep GUI backend.
|
||||||
GNUstep DisplayGhostScript Server, adding DPS extensions to GhostScript,
|
GNUstep DisplayGhostScript Server, adding DPS extensions to GhostScript,
|
||||||
including pswrap work.
|
including pswrap work.
|
||||||
|
|
||||||
@item Scott Christley <scottc@@ocbi.com> is in charge of the
|
@item Scott Christley <scottc@@net-community.com> is in charge of the
|
||||||
InterfaceModeler project, which is currently in the design stages. He
|
InterfaceModeler project, which is currently in the design stages. He
|
||||||
is working on the GUI Library in conjunction with Pascal Forget. He has
|
is working on the GUI Library in conjunction with Pascal Forget. He has
|
||||||
already written much of the GUI Library frontend.
|
already written much of the GUI Library frontend.
|
||||||
|
@ -189,11 +196,12 @@ maintained by McCallum <mccallum@@gnu.ai.mit.edu>.
|
||||||
be completed?
|
be completed?
|
||||||
|
|
||||||
The Base Library is about 85 percent done. Significant useful work can
|
The Base Library is about 85 percent done. Significant useful work can
|
||||||
already be done using the library. The GUI library is a little less
|
already be done using the library. The GUI library is about 25
|
||||||
than half done. It can already put up windows with working buttons,
|
percent done. It is going through a major transition at the moment
|
||||||
sliders and textfields, but significant work needs to be done before it
|
to coordinate work from multiple developers, DisplayPostscript, and
|
||||||
is ready for generic application development work. The
|
the non-OPENSTEP objcX library into a single package that will be made
|
||||||
DisplayPostscript and drawing support is in transition now.
|
available to the public. The DisplayPostscript and drawing support
|
||||||
|
is also in transition.
|
||||||
|
|
||||||
More detailed information about the state of each of the sub-projects
|
More detailed information about the state of each of the sub-projects
|
||||||
can be found below.
|
can be found below.
|
||||||
|
@ -216,6 +224,50 @@ Andrew McCallum <mccallum@@gnu.ai.mit.edu>.
|
||||||
More detailed inforation about each of the GNUstep sub-projects can be
|
More detailed inforation about each of the GNUstep sub-projects can be
|
||||||
found below.
|
found below.
|
||||||
|
|
||||||
|
@section GNU Compiler and Objective-C Runtime Library
|
||||||
|
|
||||||
|
@enumerate
|
||||||
|
|
||||||
|
@item What is the Objective-C Runtime Library?
|
||||||
|
|
||||||
|
The Objective-C Runtime Library is a library of C functions and data
|
||||||
|
structures required to execute an Objective-C program. There has been
|
||||||
|
much written about the special capabilities of Objective-C; we refer you
|
||||||
|
to these resources to learn more about the language:
|
||||||
|
|
||||||
|
NEXTSTEP Object-Oriented Programming And The Objective-C Language
|
||||||
|
Addison-Wesley Publishing Company
|
||||||
|
ISBN 0-201-63251-9
|
||||||
|
|
||||||
|
FSF's implementation utilizes a very efficient sparse array for storing
|
||||||
|
and looking up selectors when performing method calls, and recently has
|
||||||
|
been enhanced to provide thread safe operation that induces NO overhead
|
||||||
|
to method calls. It has full support for protocols and categories.
|
||||||
|
|
||||||
|
@item What is its current state of development?
|
||||||
|
|
||||||
|
As of this writing 2.7.2 is the most recent version of the GNU Compiler;
|
||||||
|
it can be obtained at any of the FSF's ftp archives. This version does
|
||||||
|
not contain the patches for thread safe operation; though a later release
|
||||||
|
of the compiler will, so you must apply the patch which is distributed
|
||||||
|
with the GNUstep Base Library and recompile the Objective-C Runtime Library.
|
||||||
|
|
||||||
|
The thread safe patch defines a number of functions for maintaining mutual
|
||||||
|
exclusion objects and threads. The NSThread and NSLock type classes
|
||||||
|
in the GNUstep Base Library are based upon these underlying functions, but
|
||||||
|
you can call them directly if you are not using GNUstep. The implementation
|
||||||
|
is based upon a back-end program for the underlying operating system;
|
||||||
|
currently Microsoft Windows NT/95, SGI Unix, and Sun Unix have back-end
|
||||||
|
tested implementations. Volunteers are solicited for writing additional
|
||||||
|
back-ends, especially one for Linux which is sorely needed.
|
||||||
|
|
||||||
|
Additional detail about the implementation of thread safe operation can be
|
||||||
|
found in the source code and related documentation files. The Library
|
||||||
|
will still operate in a single, non-threaded, environment but any attempt
|
||||||
|
to create a thread will return an error.
|
||||||
|
|
||||||
|
@end enumerate
|
||||||
|
@c GNU Compiler and Objective-C Runtime Library
|
||||||
|
|
||||||
@section GNUstep Base Library
|
@section GNUstep Base Library
|
||||||
|
|
||||||
|
@ -466,19 +518,16 @@ the FTP directory.
|
||||||
@item What is the GUI Library?
|
@item What is the GUI Library?
|
||||||
|
|
||||||
The GNUstep GUI Library is a library of objects useful for writing
|
The GNUstep GUI Library is a library of objects useful for writing
|
||||||
graphical applications. For example, it includes classes for windows,
|
graphical applications. For example, it includes classes for drawing
|
||||||
menus, buttons, sliders, text fields, and events.
|
and manipulating graphics objects on the screen: windows, menus, buttons,
|
||||||
|
sliders, text fields, and events. Likewise there are many periphery
|
||||||
|
classes that offer operating system independent usage of images, cursors,
|
||||||
|
colors, fonts, pasteboards, printing; and workspace enhancement classes
|
||||||
|
such as data links, open/save panels, context-dependent help, spell checking.
|
||||||
|
|
||||||
It provides functionality that aims to implement the @samp{AppKit}
|
It provides functionality that aims to implement the @samp{AppKit}
|
||||||
portion of the OpenStep standard.
|
portion of the OpenStep standard. However the implementation has
|
||||||
|
been written to take advantage of GNUstep enhancements wherever possible.
|
||||||
|
|
||||||
@item What is its current state of development?
|
|
||||||
|
|
||||||
Much of the front-end is implemented, including...
|
|
||||||
|
|
||||||
The X Window / DPS back-end ...
|
|
||||||
|
|
||||||
|
|
||||||
@item Explain the organization of the front- and back-ends.
|
@item Explain the organization of the front- and back-ends.
|
||||||
|
|
||||||
|
@ -489,7 +538,7 @@ methods necessary in order to implement low-level drawing event
|
||||||
receiving. Different back-ends will make GNUstep available on various
|
receiving. Different back-ends will make GNUstep available on various
|
||||||
platforms. The default GNU back-end will run on top of X Windows and
|
platforms. The default GNU back-end will run on top of X Windows and
|
||||||
the DisplayGhostScript Server. Other back-ends could allow GNUstep to
|
the DisplayGhostScript Server. Other back-ends could allow GNUstep to
|
||||||
run on OpenGL, OS/2, WindowsNT, graphics/event platforms. Much work
|
run on OpenGL, OS/2, WIN32, graphics/event platforms. Much work
|
||||||
will be saved by this clean separation between front- and back-end,
|
will be saved by this clean separation between front- and back-end,
|
||||||
because it allows different platforms to share the large amount of
|
because it allows different platforms to share the large amount of
|
||||||
front-end code.
|
front-end code.
|
||||||
|
@ -503,6 +552,22 @@ implementor to choose what to override in the front-end, instead of
|
||||||
having the interface between front- and back-end fixed by the front-end.
|
having the interface between front- and back-end fixed by the front-end.
|
||||||
|
|
||||||
|
|
||||||
|
@item What is the current state of development of the front-end?
|
||||||
|
|
||||||
|
A number of classes in the front-end are complete or almost complete;
|
||||||
|
these include: NSActionCell, NSButtonCell, NSButton, NSCell, NSControl,
|
||||||
|
NSEvent, NSFont, NSResponder, and NSSlider.
|
||||||
|
|
||||||
|
These classes are complete enough to use but still require some major
|
||||||
|
additions before being considered almost complete: NSApplication, NSBox,
|
||||||
|
NSColor, NSFontManager, NSMenu, NSMenuCell, NSPopUpButton, NSSliderCell,
|
||||||
|
NSText, NSTextField, NSTextFieldCell, NSView, and NSWindow.
|
||||||
|
|
||||||
|
All remaining classes have stub implementations.
|
||||||
|
|
||||||
|
@item What is the current state of development of the X/DPS back-end?
|
||||||
|
|
||||||
|
|
||||||
@item Where can I get a copy?
|
@item Where can I get a copy?
|
||||||
|
|
||||||
It is not yet publically available. When it is available you will be
|
It is not yet publically available. When it is available you will be
|
||||||
|
@ -527,7 +592,7 @@ able to find it in @samp{ftp://alpha.gnu.ai.mit.edu/gnu}.
|
||||||
|
|
||||||
|
|
||||||
@end enumerate
|
@end enumerate
|
||||||
@c GNUstep GUI Library
|
@c GNUstep DisplayGhostScript Server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -537,10 +602,17 @@ able to find it in @samp{ftp://alpha.gnu.ai.mit.edu/gnu}.
|
||||||
|
|
||||||
@item What is the Interface Modeller?
|
@item What is the Interface Modeller?
|
||||||
|
|
||||||
|
Interface Modeller in its simplest form is an application for visually
|
||||||
|
constructing and prototyping graphical user interfaces. At a more
|
||||||
|
abstract level, it is a tool for connecting instances of Objective-C
|
||||||
|
classes to create a graph of objects; this graph is a model of an
|
||||||
|
executable program that Interface Modeller can save to a file to be
|
||||||
|
loaded and executed later outside of Interface Modeller.
|
||||||
|
|
||||||
@item What is its current state of development?
|
@item What is its current state of development?
|
||||||
|
|
||||||
It is in the planning stages.
|
It is in the specification stage; no code has been written yet. You
|
||||||
|
may read the current specifications at the GNUstep WWW pages.
|
||||||
|
|
||||||
@end enumerate
|
@end enumerate
|
||||||
@c GNUstep IM
|
@c GNUstep IM
|
||||||
|
|
Loading…
Reference in a new issue