mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Updated names from libobjects to libgnustep-base.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1459 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
96f91ec6db
commit
aeffc25b6a
11 changed files with 206 additions and 301 deletions
|
@ -40,7 +40,6 @@ include $(srcdir)/../Makeconf
|
|||
include $(srcdir)/../Version
|
||||
|
||||
TEXI_FILES = \
|
||||
advertisement.texi \
|
||||
announce.texi \
|
||||
install.texi \
|
||||
gnustep-base.texi \
|
||||
|
@ -58,31 +57,31 @@ TODO INSTALL NEWS README ANNOUNCE ADVERTISEMENT
|
|||
all:
|
||||
|
||||
info: $(TEXT_FILES)
|
||||
dvi: libobjects.dvi objective-c.dvi
|
||||
dvi: gnustep-base.dvi objective-c.dvi
|
||||
|
||||
version.texi: $(srcdir)/../Version
|
||||
rm -f version.texi
|
||||
echo '@set OBJECTS_VERSION' $(OBJECTS_VERSION) \
|
||||
echo '@set GNUSTEP_BASE_VERSION' $(VERSION) \
|
||||
> version.texi
|
||||
echo '@set OBJECTS_GCC_VERSION' $(OBJECTS_GCC_VERSION) \
|
||||
echo '@set GNUSTEP_BASE_GCC_VERSION' $(GCC_VERSION) \
|
||||
>> version.texi
|
||||
if [ $(OBJECTS_FTP_MACHINE) ]; then \
|
||||
echo '@set OBJECTS_FTP_MACHINE' $(OBJECTS_FTP_MACHINE) \
|
||||
if [ $(FTP_MACHINE) ]; then \
|
||||
echo '@set GNUSTEP_BASE_FTP_MACHINE' $(FTP_MACHINE) \
|
||||
>> version.texi; fi
|
||||
if [ $(OBJECTS_FTP_DIRECTORY) ]; then \
|
||||
echo '@set OBJECTS_FTP_DIRECTORY' $(OBJECTS_FTP_DIRECTORY) \
|
||||
if [ $(FTP_DIRECTORY) ]; then \
|
||||
echo '@set GNUSTEP_BASE_FTP_DIRECTORY' $(FTP_DIRECTORY) \
|
||||
>> version.texi; fi
|
||||
|
||||
libobjects.dvi: libobjects.texi version.texi
|
||||
$(TEXI2DVI) $(srcdir)/libobjects.texi
|
||||
gnustep-base.dvi: gnustep-base.texi version.texi
|
||||
$(TEXI2DVI) $(srcdir)/gnustep-base.texi
|
||||
objective-c.dvi: objective-c.texi
|
||||
$(TEXI2DVI) $(srcdir)/objective-c.texi
|
||||
|
||||
MAKEINFO_FLAGS = -I $(srcdir)
|
||||
|
||||
libobjects.info: libobjects.texi todo.texi version.texi
|
||||
gnustep-base.info: gnustep-base.texi todo.texi version.texi
|
||||
@echo Sorry, makeinfo does not yet support Objective C documentation.
|
||||
:$(MAKEINFO) $(MAKEINFO_FLAGS) $(srcdir)/libobjects.texi
|
||||
:$(MAKEINFO) $(MAKEINFO_FLAGS) $(srcdir)/gnustep-base.texi
|
||||
objective-c.info: objective-c.texi
|
||||
@echo Sorry, makeinfo does not yet support Objective C documentation.
|
||||
:$(MAKEINFO) $(MAKEINFO_FLAGS) $(srcdir)/objective-c.texi
|
||||
|
@ -107,28 +106,28 @@ ADVERTISEMENT: advertisement.texi version.texi
|
|||
|
||||
# Make substitutions for @email{} and @url{} before passing to makeinfo.
|
||||
# These substitution scripts could be cleaned up.
|
||||
GNUstep-FAQ: gnustep-faq.texi version.texi
|
||||
rm -f GNUstep-FAQ.texi
|
||||
Gnustep-FAQ: gnustep-faq.texi version.texi
|
||||
rm -f Gnustep-FAQ.texi
|
||||
sed -e 's,@email{\([^}]*\)},<\1>,g' \
|
||||
$(srcdir)/gnustep-faq.texi \
|
||||
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
|
||||
> GNUstep-FAQ.texi
|
||||
> Gnustep-FAQ.texi
|
||||
$(MAKEINFO) $(MAKEINFO_FLAGS) -o $@ \
|
||||
--no-header --no-split GNUstep-FAQ.texi
|
||||
rm -f GNUstep-FAQ.texi
|
||||
--no-header --no-split Gnustep-FAQ.texi
|
||||
rm -f Gnustep-FAQ.texi
|
||||
# Make substitutions for @email{} and @url{}, and add @br{} before @item
|
||||
# before passing to texi2html. Note: I think that this `@br{}' should
|
||||
# actually be a `@br', but the extra `{}' is necessary to work around a
|
||||
# bug in texi@html.
|
||||
# These substitution scripts could be cleaned up.
|
||||
GNUstep-FAQ.html: gnustep-faq.texi version.texi
|
||||
rm -f GNUstep-FAQ.texi
|
||||
Gnustep-FAQ.html: gnustep-faq.texi version.texi
|
||||
rm -f Gnustep-FAQ.texi
|
||||
sed -e 's,@email{\([^}]*\)},<A HREF="mailto:\1">\1</A>,g' \
|
||||
$(srcdir)/gnustep-faq.texi \
|
||||
| sed -e 's,@url{\([^}]*\)},<A HREF="\1">\1</A>,g' \
|
||||
| sed -e 's,^ *$$,@br{},g' \
|
||||
> GNUstep-FAQ.texi
|
||||
texi2html -expandinfo $(MAKEINFO_FLAGS) GNUstep-FAQ.texi
|
||||
> Gnustep-FAQ.texi
|
||||
texi2html -expandinfo $(MAKEINFO_FLAGS) Gnustep-FAQ.texi
|
||||
|
||||
# | awk -- '/@item/ { print "@br{}" } /@end itemize/ { print "@br{}" } ; { print }' \
|
||||
|
||||
|
@ -139,7 +138,7 @@ RCS_FILES = $(TEXI_FILES) Makefile.in
|
|||
DIST_FILES = $(RCS_FILES) texinfo.tex \
|
||||
$(TOP_DOC_FILES) ANNOUNCE ADVERTISEMENT TODO
|
||||
|
||||
# In the future we'll want to install libobjects.info and objective-c.info.
|
||||
# In the future we'll want to install gnustep-base.info and objective-c.info.
|
||||
install:
|
||||
uninstall:
|
||||
|
||||
|
@ -150,17 +149,17 @@ clean: mostlyclean
|
|||
rm -f version.texi
|
||||
rm -f $(TEXT_FILES)
|
||||
rm -f *.info
|
||||
rm -f libobjects.dvi libobjects.aux libobjects.log \
|
||||
libobjects.toc libobjects.cl \
|
||||
libobjects.cp libobjects.cps libobjects.fn libobjects.fns \
|
||||
libobjects.ky libobjects.pg libobjects.pr libobjects.tp \
|
||||
libobjects.vr
|
||||
rm -f gnustep-base.dvi gnustep-base.aux gnustep-base.log \
|
||||
gnustep-base.toc gnustep-base.cl \
|
||||
gnustep-base.cp gnustep-base.cps gnustep-base.fn gnustep-base.fns \
|
||||
gnustep-base.ky gnustep-base.pg gnustep-base.pr gnustep-base.tp \
|
||||
gnustep-base.vr
|
||||
|
||||
distclean: clean
|
||||
rm -f Makefile
|
||||
|
||||
realclean: distclean
|
||||
rm -f libobjects.info version.texi \
|
||||
rm -f gnustep-base.info version.texi \
|
||||
README TODO INSTALL NEWS ANNOUNCE
|
||||
|
||||
copy-dist: $(DIST_FILES)
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@chapter GNU Objective-C Class Library
|
||||
|
||||
@c set the vars OBJECTS_VERSION and GCC_VERSION
|
||||
@c set the vars GNUSTEP_BASE_VERSION and GCC_VERSION
|
||||
@include version.texi
|
||||
|
||||
The Gnustep Base Library (libobjects) is a library of
|
||||
The Gnustep Base Library (libgnustep-base) is a library of
|
||||
general-purpose, non-graphical Objective C objects written by Andrew
|
||||
McCallum. What `libg++' is to GNU's C++, `libobjects' is to GNU's
|
||||
McCallum. What `libg++' is to GNU's C++, `libgnustep-base' is to GNU's
|
||||
Objective C.
|
||||
|
||||
The library features collection objects for maintaining groups of
|
||||
|
@ -134,7 +134,7 @@ does *not* do:
|
|||
|
||||
The library is available by anonymous ftp at URL:
|
||||
@smallexample
|
||||
ftp://prep.ai.mit.edu/pub/gnu/libobjects-@value{OBJECTS_VERSION}.tar.gz
|
||||
ftp://prep.ai.mit.edu/pub/gnu/libgnustep-base-@value{GNUSTEP_BASE_VERSION}.tar.gz
|
||||
@end smallexample
|
||||
Since @samp{prep} is heavily loaded, you are encouraged to use GNU
|
||||
mirror sites.
|
||||
|
@ -146,7 +146,7 @@ be placed at @samp{ftp://alpha.gnu.ai.mit.edu/gnu}.
|
|||
|
||||
@section GNUStep
|
||||
|
||||
The @samp{libobjects} library already contains many of the GNUStep
|
||||
The @samp{libgnustep-base} library already contains many of the GNUStep
|
||||
common classes: List, HashTable, Storage, NXStringTable. In the future
|
||||
it will also contain the foundation kit classes for GNUStep. Progress
|
||||
is already being made on this front.
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
@chapter Gnustep Base Library
|
||||
|
||||
@c set the vars OBJECTS_VERSION and OBJECTS_GCC_VERSION
|
||||
@c set the vars GNUSTEP_BASE_VERSION and GNUSTEP_BASE_GCC_VERSION
|
||||
@include version.texi
|
||||
|
||||
The Gnustep Base Library, version @value{OBJECTS_VERSION}, is now
|
||||
The Gnustep Base Library, version @value{GNUSTEP_BASE_VERSION}, is now
|
||||
available.
|
||||
|
||||
@section What is the Gnustep Base Library?
|
||||
|
@ -35,21 +35,21 @@ distribution.
|
|||
|
||||
@section Where can you get it? How can you compile it?
|
||||
|
||||
@ifset OBJECTS_FTP_MACHINE
|
||||
The libobjects-@value{OBJECTS_VERSION}.tar.gz distribution file has been
|
||||
placed on @samp{@value{OBJECTS_FTP_MACHINE}} in
|
||||
@samp{@value{OBJECTS_FTP_DIRECTORY}}.
|
||||
@ifset GNUSTEP_BASE_FTP_MACHINE
|
||||
The libgnustep-base-@value{GNUSTEP_BASE_VERSION}.tar.gz distribution file has been
|
||||
placed on @samp{@value{GNUSTEP_BASE_FTP_MACHINE}} in
|
||||
@samp{@value{GNUSTEP_BASE_FTP_DIRECTORY}}.
|
||||
@end ifset
|
||||
@ifclear OBJECTS_FTP_MACHINE
|
||||
The libobjects-@value{OBJECTS_VERSION}.tar.gz distribution file has not
|
||||
@ifclear GNUSTEP_BASE_FTP_MACHINE
|
||||
The libgnustep-base-@value{GNUSTEP_BASE_VERSION}.tar.gz distribution file has not
|
||||
been made available by anonymous ftp.
|
||||
@end ifclear
|
||||
|
||||
More information about the library, including a list of machines on
|
||||
which it has been successfully compiled and used, can be found at
|
||||
@samp{http://www.cs.rochester.edu/u/mccallum/libobjects}.
|
||||
@samp{http://www.cs.rochester.edu/u/mccallum/libgnustep-base}.
|
||||
|
||||
The library requires gcc @value{OBJECTS_GCC_VERSION} or higher. The
|
||||
The library requires gcc @value{GNUSTEP_BASE_GCC_VERSION} or higher. The
|
||||
library does not work with the NEXTSTEP 3.2 compiler because that
|
||||
version of NeXT's cc cannot handle nested functions. Until a later
|
||||
release from NeXT, NEXTSTEP users will have to install gcc. See the
|
||||
|
|
|
@ -1,25 +1,24 @@
|
|||
@ifset FAQ_ONLY
|
||||
@chapter Frequently Asked Questions with Answers
|
||||
@c set the vars GNUSTEP_BASE_VERSION and GCC_VERSION
|
||||
@c set the vars GNUSTEP_BASE_VERSION and GNUSTEP_BASE_GCC_VERSION
|
||||
@include version.texi
|
||||
@end ifset
|
||||
|
||||
@enumerate
|
||||
|
||||
|
||||
@item Why not separate the GNU classes from the NS* foundation
|
||||
classes?
|
||||
|
||||
They are intimately intertwinned---not in a messy way, but for good
|
||||
reasons. ...explain more detail...
|
||||
|
||||
|
||||
|
||||
@item I'm trying to compile an Objective C program on Linux, and it's not
|
||||
working.
|
||||
|
||||
Link with @samp{-lieee}.
|
||||
|
||||
|
||||
|
||||
@item What are the differences and improvements of the GNU base classes
|
||||
over the NS* foundation classes?
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
@c %**start of header
|
||||
@settitle User's Guide to the GNU Objective-C Class Library
|
||||
@setfilename libobjects.info
|
||||
@setfilename libgnustep-base.info
|
||||
@c %**end of header
|
||||
@defcodeindex cl
|
||||
@defcodeindex pr
|
||||
|
@ -19,7 +19,7 @@ END-INFO-DIR-ENTRY
|
|||
@end format
|
||||
@end ifinfo
|
||||
|
||||
@c set the vars LIBOBJECTS_VERSION and GCC_VERSION
|
||||
@c set the vars GNUSTEP_BASE_VERSION and GCC_VERSION
|
||||
@include version.texi
|
||||
|
||||
@ifinfo
|
||||
|
@ -65,7 +65,7 @@ Free Software Foundation instead of in the original English.
|
|||
@title GNU Objective C Class Library
|
||||
@sp 3
|
||||
@c @subtitle last updated Oct 26, 1993
|
||||
@subtitle Version @value{OBJECTS_VERSION}
|
||||
@subtitle Version @value{GNUSTEP_BASE_VERSION}
|
||||
@subtitle (for use with @samp{gcc} version @value{GCC_VERSION})
|
||||
@author Andrew Kachites McCallum (mccallum@@gnu.ai.mit.edu)
|
||||
@page
|
||||
|
@ -97,12 +97,12 @@ be performing a valuable service if you report any bugs you encounter.}
|
|||
@ignore
|
||||
saved copy
|
||||
* Copying:: GNU Library Public License says how you can copy
|
||||
and share libobjects.
|
||||
* Contributors:: People who have contributed to libobjects.
|
||||
* Installation:: How to configure, compile and install libobjects.
|
||||
* Trouble:: If you have trouble installing libobjects.
|
||||
and share libgnustep-base.
|
||||
* Contributors:: People who have contributed to libgnustep-base.
|
||||
* Installation:: How to configure, compile and install libgnustep-base.
|
||||
* Trouble:: If you have trouble installing libgnustep-base.
|
||||
|
||||
* Overview:: libobjects in brief.
|
||||
* Overview:: libgnustep-base in brief.
|
||||
* Organization:: The heirarchy of protocols and classes.
|
||||
* Conventions:: Stylistic conventions and design philosophy.
|
||||
* Content Types:: Collections can contain C types as well as objects.
|
||||
|
@ -133,8 +133,8 @@ saved copy
|
|||
@top Libobjects
|
||||
|
||||
This manual documents how to install and use the GNU Objective-C
|
||||
Class Library (or @samp{libobjects}), version
|
||||
@value{LIBOBJECTS_VERSION}, for use with @samp{gcc} version
|
||||
Class Library (or @samp{libgnustep-base}), version
|
||||
@value{GNUSTEP_BASE_VERSION}, for use with @samp{gcc} version
|
||||
@value{GCC_VERSION}.
|
||||
|
||||
It is nothing but a skeleton now, mostly containing rough notes.
|
||||
|
@ -143,12 +143,12 @@ In the future it will be fleshed out and the text will be polished.
|
|||
@end ifinfo
|
||||
@menu
|
||||
* Copying:: GNU Library Public License says how you can copy
|
||||
and share libobjects.
|
||||
* Contributors:: People who have contributed to libobjects.
|
||||
* Installation:: How to configure, compile and install libobjects.
|
||||
* Trouble:: If you have trouble installing libobjects.
|
||||
and share libgnustep-base.
|
||||
* Contributors:: People who have contributed to libgnustep-base.
|
||||
* Installation:: How to configure, compile and install libgnustep-base.
|
||||
* Trouble:: If you have trouble installing libgnustep-base.
|
||||
|
||||
* Overview:: libobjects in brief.
|
||||
* Overview:: libgnustep-base in brief.
|
||||
* Organization:: The heirarchy of protocols and classes.
|
||||
* Conventions:: Stylistic conventions and design philosophy.
|
||||
* Content Types:: Collections can contain C types as well as objects.
|
||||
|
@ -189,7 +189,7 @@ Andrew McCallum <mccallum@@gnu.ai.mit.edu> designed the protocol and
|
|||
class heirarchies, and wrote the otherwise unattributed classes.
|
||||
|
||||
@item
|
||||
Kresten Krab Thorup <Kresten_Thorup@@NeXT.COM> made libobjects possible by
|
||||
Kresten Krab Thorup <Kresten_Thorup@@NeXT.COM> made libgnustep-base possible by
|
||||
writing the GNU Objective-C runtime. He also contributed the GapArray
|
||||
and Storage classes. He also wrote patches to texinfo that make
|
||||
@code{deftypemethod} possible.
|
||||
|
@ -1261,7 +1261,7 @@ rest of the library.
|
|||
|
||||
@item
|
||||
Acceptance of contributions means that the code is accepted for adaptation
|
||||
into libobjects. FSF must reserve the right to make various editorial changes
|
||||
into libgnustep-base. FSF must reserve the right to make various editorial changes
|
||||
in code. Very often, this merely entails formatting, maintenance of various
|
||||
conventions, etc. Contributors are always given authorship credit and shown
|
||||
the final version for approval.
|
||||
|
@ -1277,7 +1277,7 @@ support is strongly encouraged.
|
|||
|
||||
@end itemize
|
||||
|
||||
Extensions, comments, and suggested modifications of existing libobjects
|
||||
Extensions, comments, and suggested modifications of existing libgnustep-base
|
||||
features are also very welcome.
|
||||
|
||||
@node Protocol Index, Class Index, Projects, Top
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
@c A FAQ for GNUstep
|
||||
@c A FAQ for Gnustep
|
||||
@c
|
||||
@c This file uses the special commands @url{} and @email{}. They are
|
||||
@c handled by the libobjects/doc/Makefile.
|
||||
@c handled by the doc/Makefile.
|
||||
|
||||
@setfilename GNUstep-FAQ.info
|
||||
@settitle GNUstep Frequently Asked Questions with Answers
|
||||
@setfilename Gnustep-FAQ.info
|
||||
@settitle Gnustep Frequently Asked Questions with Answers
|
||||
|
||||
@iftex
|
||||
@global@let@email=@i
|
||||
|
@ -17,7 +17,7 @@
|
|||
@c @end ifinfo
|
||||
|
||||
@iftex
|
||||
@chapter GNUstep Frequently Asked Questions with Answers
|
||||
@chapter Gnustep Frequently Asked Questions with Answers
|
||||
@end iftex
|
||||
|
||||
Maintained by Andrew McCallum @email{mccallum@@gnu.ai.mit.edu}, with
|
||||
|
@ -27,52 +27,52 @@ contributions by Pascal Forget @email{pascal@@wsc.com}, Scott Christley
|
|||
|
||||
Last updated 26 March 1996.
|
||||
The most up-to-date version of this FAQ is
|
||||
available at @url{ftp://ftp.cs.rochester.edu/pub/u/mccallum/libobjects}.
|
||||
available at @url{ftp://ftp.cs.rochester.edu/pub/u/mccallum/gnustep-base}.
|
||||
Please send corrections to @email{mccallum@@gnu.ai.mit.edu}.
|
||||
|
||||
The intended audience of this FAQ is future and present code developers
|
||||
for GNUstep. This FAQ serves a purpose complementary to the GNUstep WWW
|
||||
for Gnustep. This FAQ serves a purpose complementary to the Gnustep WWW
|
||||
pages---since it is written and maintained directly by those writing
|
||||
code for GNUstep, it emphasizes (although not exclusively): (1)
|
||||
code for Gnustep, it emphasizes (although not exclusively): (1)
|
||||
technical details and organization, (2) the functionality is coded and
|
||||
working now. This FAQ is intended to provide a succinct document in
|
||||
which to find GNUstep information without hype.
|
||||
which to find Gnustep information without hype.
|
||||
|
||||
@section GNUstep General Information
|
||||
@section Gnustep General Information
|
||||
|
||||
@enumerate
|
||||
|
||||
|
||||
@item @b{What is GNUstep?}
|
||||
@item @b{What is Gnustep?}
|
||||
|
||||
GNUstep is the Free Software Foundation's effort to implement NeXT
|
||||
Gnustep is the Free Software Foundation's effort to implement NeXT
|
||||
Software Inc.'s OpenStep Standard. The project is not finished, however
|
||||
some components are useable now.
|
||||
|
||||
The GNUstep project consists of the following sub-projects:
|
||||
The Gnustep project consists of the following sub-projects:
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item GNU Objective C Compiler and Objective C Runtime Library -
|
||||
Although not actually a sub-project the GNUstep, GCC and the GNU
|
||||
Objective C Runtime Library are integral to GNUstep, since they are used
|
||||
Although not actually a sub-project the Gnustep, GCC and the GNU
|
||||
Objective C Runtime Library are integral to Gnustep, since they are used
|
||||
to make every GNU Objective C program.
|
||||
|
||||
@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
|
||||
messaging. (Including functionality similar to OpenStep's
|
||||
@samp{FoundationKit}.)
|
||||
|
||||
@item GNUstep GUI Library - Code for graphical objects used in making a
|
||||
@item Gnustep GUI Library - Code for graphical objects used in making a
|
||||
Graphical User Interface (GUI). This includes buttons, sliders, text
|
||||
fields, windows, menus, etc. (Including functionality similar to
|
||||
OpenStep's @samp{AppKit}.)
|
||||
|
||||
@item GNUstep DisplayGhostScript Server - A server that draws PostScript
|
||||
@item Gnustep DisplayGhostScript Server - A server that draws PostScript
|
||||
graphics to the screen, and receives events from the keyboard and
|
||||
mouse. It is based on GhostScript.
|
||||
|
||||
@item GNUstep Interface Modeller Application - An application for
|
||||
@item Gnustep Interface Modeller Application - An application for
|
||||
graphically assembling application interfaces.
|
||||
|
||||
@end itemize
|
||||
|
@ -80,8 +80,8 @@ graphically assembling application interfaces.
|
|||
More detailed information about each of these sub-projects can be found
|
||||
in their own sections below.
|
||||
|
||||
There are several projects related to GNUstep that are not officially
|
||||
part of the GNU project and GNUstep, but may become so in the future.
|
||||
There are several projects related to Gnustep that are not officially
|
||||
part of the GNU project and Gnustep, but may become so in the future.
|
||||
These include: the @samp{G3DKit} project, (contact Thomas Engle
|
||||
@email{tsengel@@cip.informatik.uni-erlangen.de}); an application library
|
||||
based on OpenGL, (contact Georg Tuparev
|
||||
|
@ -89,7 +89,7 @@ based on OpenGL, (contact Georg Tuparev
|
|||
code management and development environment, (contact unknown). If you
|
||||
know of others, please contact the FAQ maintainer.
|
||||
|
||||
The initial target platforms for GNUstep are Linux and other UN*X's.
|
||||
The initial target platforms for Gnustep are Linux and other UN*X's.
|
||||
There has been some OS/2 WARP work, but I have not seen any ongoing work
|
||||
on this platform yet, (contact McCallum if you are interested).
|
||||
|
||||
|
@ -110,17 +110,17 @@ You can obtain a copy of the OpenStep standard in
|
|||
|
||||
@itemize @bullet
|
||||
@item texinfo at @url{http://www.dartmouth.edu/~ajones/Projects}.
|
||||
@item HTML at @url{http://www.nmr.embl-heidelberg.de/GNUstep/GNUOpenStep}.
|
||||
@item HTML at @url{http://www.nmr.embl-heidelberg.de/Gnustep/GNUOpenStep}.
|
||||
@item PostScript and RTF at @url{ftp://ftp.next.com/pub/OpenStepSpec/}.
|
||||
@end itemize
|
||||
|
||||
|
||||
@item @b{Who is currently involved in writing GNUstep code?}
|
||||
@item @b{Who is currently involved in writing Gnustep code?}
|
||||
|
||||
For the sake of being social and getting to know each other, here is a
|
||||
list of the folks who are currently, actively contributing GNUstep code.
|
||||
list of the folks who are currently, actively contributing Gnustep code.
|
||||
The list includes a brief descriptions of each person's background and
|
||||
involvement in the GNUstep coding efforts.
|
||||
involvement in the Gnustep coding efforts.
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
|
@ -129,17 +129,17 @@ excellent, long service as user, tester, and code contributor to both
|
|||
the Base Library and the GUI Library.
|
||||
|
||||
@item Andrew McCallum @email{mccallum@@gnu.ai.mit.edu} was appointed chief
|
||||
maintainer of the GNUstep project by Richard Stallman in January 1996.
|
||||
maintainer of the Gnustep project by Richard Stallman in January 1996.
|
||||
He has been involved and hacking in the NeXT community since NeXTSTEP
|
||||
version 0.8; he has been working on GNU Objective C and the Base Library
|
||||
since 1993.
|
||||
|
||||
@item Pascal Forget @email{pascal@@wsc.com} is working on the GUI
|
||||
Library in conjunction with Scott Christley. He has worked with Randy
|
||||
Chapman's DisplayGhostScript and X Windows as a GNUstep GUI backend.
|
||||
Chapman's DisplayGhostScript and X Windows as a Gnustep GUI backend.
|
||||
|
||||
@item Randy Chapman @email{chapman@@u.washington.edu} has been working
|
||||
on the GNUstep DisplayGhostScript Server, adding DPS extensions to
|
||||
on the Gnustep DisplayGhostScript Server, adding DPS extensions to
|
||||
GhostScript, including pswrap work.
|
||||
|
||||
@item Scott Christley @email{scottc@@net-community.com} is in charge of
|
||||
|
@ -150,58 +150,58 @@ has already written much of the GUI Library frontend.
|
|||
@end itemize
|
||||
|
||||
There are many others who have made significant contributions to
|
||||
GNUstep, but who are not currently contributing code, (such as Kresten
|
||||
Gnustep, but who are not currently contributing code, (such as Kresten
|
||||
Thorup @email{krab@@next.com} and Paul Kunz
|
||||
@email{paul_kunz@@slac.stanford.edu}). For more information about
|
||||
GNUstep history, see the GNUstep WWW pages.
|
||||
Gnustep history, see the Gnustep WWW pages.
|
||||
|
||||
There are also several others who have contributed individual classes to
|
||||
GNUstep, but who are not actively contributing to general GNUstep work.
|
||||
This list is not intended to be a complete list of GNUstep code
|
||||
contributors; that information is available in each of the GNUstep code
|
||||
Gnustep, but who are not actively contributing to general Gnustep work.
|
||||
This list is not intended to be a complete list of Gnustep code
|
||||
contributors; that information is available in each of the Gnustep code
|
||||
packages.
|
||||
|
||||
There are also other code developers who are writing Objective C code
|
||||
related to GNUstep, but for projects that are not officially part of the
|
||||
GNU project and GNUstep. We hope that some of these projects will join
|
||||
the GNU project and GNUstep in the future.
|
||||
related to Gnustep, but for projects that are not officially part of the
|
||||
GNU project and Gnustep. We hope that some of these projects will join
|
||||
the GNU project and Gnustep in the future.
|
||||
|
||||
Please send corrections to the FAQ maintainer.
|
||||
|
||||
|
||||
@item @b{Is there a WWW site for GNUstep? Are there mailing lists for GNUstep?}
|
||||
@item @b{Is there a WWW site for Gnustep? Are there mailing lists for Gnustep?}
|
||||
|
||||
There is a WWW site at @url{http://www.gnustep.org}, (and its mirror
|
||||
@url{http://www.NMR.EMBL-Heidelberg.DE/GNUstep}, that contains many
|
||||
There is a WWW site at @url{http://www.Gnustep.org}, (and its mirror
|
||||
@url{http://www.NMR.EMBL-Heidelberg.DE/Gnustep}, that contains many
|
||||
useful pointers. The technical information in this FAQ may be more up
|
||||
to date than the WWW pages since this FAQ is maintained directly by the
|
||||
people who are developing GNUstep code.
|
||||
people who are developing Gnustep code.
|
||||
|
||||
There are several mailing lists:
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item @email{discussion@@gnustep.org} is a mailing list for general
|
||||
discussion of GNUstep developments. Announcements about GNUstep
|
||||
@item @email{discussion@@Gnustep.org} is a mailing list for general
|
||||
discussion of Gnustep developments. Announcements about Gnustep
|
||||
progress are also made there. The list is maintained by Georg Tuparev
|
||||
@email{Tuparev@@EMBL-Heidelberg.de}.
|
||||
|
||||
To join, send mail to @email{discussion-request@@gnustep.org}.
|
||||
To join, send mail to @email{discussion-request@@Gnustep.org}.
|
||||
|
||||
@item @email{webmasters@@gnustep.org} is a mailing list for discussion of
|
||||
the GNUstep WWW site.
|
||||
@item @email{webmasters@@Gnustep.org} is a mailing list for discussion of
|
||||
the Gnustep WWW site.
|
||||
|
||||
To join, send mail to @email{webmasters-request@@gnustep.org}.
|
||||
To join, send mail to @email{webmasters-request@@Gnustep.org}.
|
||||
|
||||
@item @email{g3dkit@@gnustep.org} is a mailing list for discussion of a
|
||||
@item @email{g3dkit@@Gnustep.org} is a mailing list for discussion of a
|
||||
library for drawing 3D graphics; it is based on OpenGL and RenderMan.
|
||||
The Free Software Foundation is hoping that this work can become an
|
||||
official part of the GNU project and the GNUstep project.
|
||||
official part of the GNU project and the Gnustep project.
|
||||
|
||||
To join, send mail to @email{g3dkit@@gnustep.org}.
|
||||
To join, send mail to @email{g3dkit@@Gnustep.org}.
|
||||
|
||||
@item There is also a private mailing list for the core active
|
||||
developers of GNUstep. Those people who contribute large sections of
|
||||
developers of Gnustep. Those people who contribute large sections of
|
||||
code and who are interested in making and planning further contributions
|
||||
may be invited to join. We apologize in advance, but, for the sake of
|
||||
efficient communication, the list is not open to people who are not
|
||||
|
@ -229,20 +229,20 @@ can be found below.
|
|||
|
||||
With free software, you should never, ever, believe promises about when
|
||||
a project will be finished. ...However, that said: there are certain
|
||||
GNUstep developers that are counting on having useful Base and GUI
|
||||
Gnustep developers that are counting on having useful Base and GUI
|
||||
libraries working by the end of Summer 1996.
|
||||
|
||||
@item @b{How can I help?}
|
||||
|
||||
If you have a specific piece of functionality that you would like to
|
||||
contribute, or if you would like to ask for suggestions about what
|
||||
coding work you can do to help, contact the GNUstep Chief Maintainer,
|
||||
coding work you can do to help, contact the Gnustep Chief Maintainer,
|
||||
Andrew McCallum @email{mccallum@@gnu.ai.mit.edu}.
|
||||
|
||||
@end enumerate
|
||||
@c GNUstep General
|
||||
@c Gnustep General
|
||||
|
||||
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.
|
||||
|
||||
@section GNU Objective C Compiler and Objective C Runtime Library
|
||||
|
@ -289,7 +289,7 @@ initialization and when @samp{+poseAs:} is called.
|
|||
selector; NeXT's does not. A selector-type is a string that describes
|
||||
the C variable types for the method's return and argument values. Among
|
||||
other uses, selector-types is extrememly helpful for fast distributed
|
||||
objects implementations, (see GNUstep Base Library Section, below).
|
||||
objects implementations, (see Gnustep Base Library Section, below).
|
||||
|
||||
@item Many of the GNU functions have different names than their
|
||||
corresponding NeXT functions; the GNU names conform to the GNU coding
|
||||
|
@ -318,7 +318,7 @@ Objective C Runtime runs on all, platforms on which GCC runs.
|
|||
|
||||
GCC version 2.7.2 does not contain the thread-safe features, but the
|
||||
next version of GCC will. A patch for thread-safe features is provided
|
||||
with the latest developer snaphots of the GNUstep Base Library. There
|
||||
with the latest developer snaphots of the Gnustep Base Library. There
|
||||
are currently thread-safe backends for DEC OSF/1, Solaris, IRIX, and
|
||||
WindowsNT. Volunteers are solicited for writing additional back-ends,
|
||||
especially one for Linux.
|
||||
|
@ -327,13 +327,13 @@ especially one for Linux.
|
|||
@c GNU Compiler and Objective C Runtime Library
|
||||
|
||||
|
||||
@section GNUstep Base Library
|
||||
@section Gnustep Base Library
|
||||
|
||||
@enumerate
|
||||
|
||||
@item @b{What is the GNUstep Base Library?}
|
||||
@item @b{What is the Gnustep Base Library?}
|
||||
|
||||
The GNUstep Base Library is a library of general-purpose, non-graphical
|
||||
The Gnustep Base Library is a library of general-purpose, non-graphical
|
||||
Objective C objects. For example, it includes classes for strings,
|
||||
collections, byte streams, typed coders, invocations, notifications,
|
||||
notification dispatchers, times, network ports, remote object messaging
|
||||
|
@ -345,8 +345,8 @@ the @samp{NS*} classes are implemented as wrappers around more
|
|||
featureful GNU classes.
|
||||
|
||||
There is more (although perhaps out-of-date) information available at
|
||||
the libobjects homepage at
|
||||
@url{http://www.cs.rochester.edu/u/mccallum/libobjects}.
|
||||
the Gnustep Base Library homepage at
|
||||
@url{http://www.cs.rochester.edu/u/mccallum/gnustep-base}.
|
||||
|
||||
|
||||
@item @b{What is its current state of development?}
|
||||
|
@ -383,7 +383,7 @@ It contains several enhancements:
|
|||
@enumerate
|
||||
|
||||
@item OpenStep has a single NSInvocation class, which is based on
|
||||
sending a message to an object. The GNUstep Base Library has a
|
||||
sending a message to an object. The Gnustep Base Library has a
|
||||
heirarchy of Invocation classes with various capabilities. Two of the
|
||||
Invocation subclasses can cause C functions to be called, instead of
|
||||
sending messages to objects; these subclasses are useful when one would
|
||||
|
@ -396,17 +396,17 @@ All of them respond to a new method called @samp{-invokeWithObject:}
|
|||
that is useful for enumerations.
|
||||
|
||||
@item I have been told that OpenStep's NSNotificationCenter is slow.
|
||||
GNUstep's NotificationDispatcher class is based on interesting use of
|
||||
Gnustep's NotificationDispatcher class is based on interesting use of
|
||||
linked lists and hash tables in such a way that it should be
|
||||
comparatively very fast.
|
||||
|
||||
OpenStep notifications must be method selectors sent to objects.
|
||||
GNUstep notifications can invoke an Invocation instead, thus taking
|
||||
Gnustep notifications can invoke an Invocation instead, thus taking
|
||||
advantage of the flexbility and context-holding capability of Invocation
|
||||
objects.
|
||||
|
||||
@item OpenStep takes a disconnected ``class forest'' approach to
|
||||
collection classes. GNUstep has all the OpenStep collection classes,
|
||||
collection classes. Gnustep has all the OpenStep collection classes,
|
||||
however they are build from underlying GNU collection classes that are
|
||||
organized as a deep class heirarchy. Because of the deep heirarchy,
|
||||
there is a built-in uniformity of method names, and there are common
|
||||
|
@ -418,7 +418,7 @@ variety of enumeration methods based on invocations.
|
|||
|
||||
@item OpenStep's archiving mechanism provides only one choice of backend
|
||||
format. By backend format, I mean a format for writing C types, such as
|
||||
ints, floats and C strings. The GNUstep archiving mechanism has a clear
|
||||
ints, floats and C strings. The Gnustep archiving mechanism has a clear
|
||||
separation between frontend and backend. Different backends are
|
||||
provided. One backend writes in human-readable and human-editable ASCII
|
||||
text, (including programmer-provided text name labels for each of the
|
||||
|
@ -444,7 +444,7 @@ are found in the coded stream.
|
|||
``hops'' when sending and responding to each new method---one to send
|
||||
the request, one for the server to request the method type from the
|
||||
client, one for the client to respond with the method type, and one to
|
||||
respond with the return value of the method call. GNUstep distributed
|
||||
respond with the return value of the method call. Gnustep distributed
|
||||
objects takes advantage of the superior GNU Objective C runtime, which
|
||||
includes the method type locally with the selector. Since the method
|
||||
type can already be found on the server, there is no need to ask the
|
||||
|
@ -453,7 +453,7 @@ hops.
|
|||
|
||||
@item NeXT's Objective C runtime becomes very slow when thread-safety is
|
||||
turned on since the runtime must acquire a global mutual-exclusion lock
|
||||
each time an Objective C message is sent. GNUstep takes advantage of
|
||||
each time an Objective C message is sent. Gnustep takes advantage of
|
||||
the superior GNU Objective C runtime, which is requires zero extra time
|
||||
to send a message when thread safe---not even one instruction more is
|
||||
required for a thread-safe message send. Mutual exclusion locks are
|
||||
|
@ -556,25 +556,25 @@ The most recently released alpha version can be obtained from
|
|||
@url{ftp://alpha.gnu.ai.mit.edu}.
|
||||
|
||||
The most recent developer's snapshot can be obtained from
|
||||
@url{ftp://ftp.cs.rochester.edu/pub/u/mccallum/libobjects}. These
|
||||
releases are there for exchange between active GNUstep coders, and for
|
||||
@url{ftp://ftp.cs.rochester.edu/pub/u/mccallum/gnustep-base}. These
|
||||
releases are there for exchange between active Gnustep coders, and for
|
||||
curious code-readers, not for naive users; read the README.first file in
|
||||
the FTP directory.
|
||||
|
||||
|
||||
@end enumerate
|
||||
@c GNUstep Base Library
|
||||
@c Gnustep Base Library
|
||||
|
||||
|
||||
|
||||
@section GNUstep GUI Library
|
||||
@section Gnustep GUI Library
|
||||
|
||||
@enumerate
|
||||
|
||||
|
||||
@item @b{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 drawing
|
||||
and manipulating graphics objects on the screen: windows, menus,
|
||||
buttons, sliders, text fields, and events. There are also many
|
||||
|
@ -585,18 +585,18 @@ context-dependent help, spell checking.
|
|||
|
||||
It provides functionality that aims to implement the @samp{AppKit}
|
||||
portion of the OpenStep standard. However the implementation has
|
||||
been written to take advantage of GNUstep enhancements wherever possible.
|
||||
been written to take advantage of Gnustep enhancements wherever possible.
|
||||
|
||||
|
||||
@item @b{Explain the organization of the front- and back-ends.}
|
||||
|
||||
The GNUstep GUI Library is divided into a front- and back-end. The
|
||||
The Gnustep GUI Library is divided into a front- and back-end. The
|
||||
front-end contains the majority of implementation, but leaves out the
|
||||
low-level drawing and event code. A back-end can override whatever
|
||||
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
|
||||
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, and WIN32 graphics/event platforms. Much work
|
||||
will be saved by this clean separation between front- and back-end,
|
||||
because it allows different platforms to share the large amount of
|
||||
|
@ -634,11 +634,11 @@ It is not yet publically available. When it is available you will be
|
|||
able to find it in @url{ftp://alpha.gnu.ai.mit.edu/gnu}.
|
||||
|
||||
@end enumerate
|
||||
@c GNUstep GUI Library
|
||||
@c Gnustep GUI Library
|
||||
|
||||
|
||||
|
||||
@section GNUstep DisplayGhostScript Server
|
||||
@section Gnustep DisplayGhostScript Server
|
||||
|
||||
@enumerate
|
||||
|
||||
|
@ -652,11 +652,11 @@ able to find it in @url{ftp://alpha.gnu.ai.mit.edu/gnu}.
|
|||
|
||||
|
||||
@end enumerate
|
||||
@c GNUstep DisplayGhostScript Server
|
||||
@c Gnustep DisplayGhostScript Server
|
||||
|
||||
|
||||
|
||||
@section GNUstep Interface Modeller Application
|
||||
@section Gnustep Interface Modeller Application
|
||||
|
||||
@enumerate
|
||||
|
||||
|
@ -673,17 +673,17 @@ loaded and executed later outside of Interface Modeller.
|
|||
@item @b{What is its current state of development?}
|
||||
|
||||
It is in the specification stage; no code has been written yet. The
|
||||
current specifications are available through the GNUstep WWW pages.
|
||||
current specifications are available through the Gnustep WWW pages.
|
||||
|
||||
@end enumerate
|
||||
@c GNUstep IM
|
||||
@c Gnustep IM
|
||||
|
||||
|
||||
@ignore
|
||||
[Notes to FAQ contributors: Be succinct. Stick to the facts. Emphasize
|
||||
technical features that are already implemented; avoid writing about
|
||||
vague features without concrete ideas about their implementation. Your
|
||||
audience is future and present code contributors to GNUstep, not
|
||||
audience is future and present code contributors to Gnustep, not
|
||||
managers or publicity people.]
|
||||
@end ignore
|
||||
|
||||
|
|
|
@ -2,27 +2,27 @@
|
|||
@c If this package does not come with, e.g., installable documentation or
|
||||
@c data files, please ignore the references to them below.
|
||||
|
||||
@c set the vars OBJECTS_VERSION and OBJECTS_GCC_VERSION
|
||||
@c set the vars GNUSTEP_BASE_VERSION and GNUSTEP_BASE_GCC_VERSION
|
||||
@include version.texi
|
||||
|
||||
@ifset INSTALL_ONLY
|
||||
This file documents the installation of the GNU Objective C
|
||||
Class Library, @samp{libobjects}. Copyright (C) 1993, 1994, 1996 Free Software
|
||||
Class Library, @samp{libgnustep-base}. Copyright (C) 1993, 1994, 1996 Free Software
|
||||
Foundation, Inc. You may copy, distribute, and modify it freely as long
|
||||
as you preserve this copyright notice and permission notice.
|
||||
@chapter Installing @samp{libobjects}
|
||||
@chapter Installing @samp{libgnustep-base}
|
||||
@end ifset
|
||||
|
||||
To compile and install @samp{libobjects}:
|
||||
To compile and install @samp{libgnustep-base}:
|
||||
|
||||
Here is a quick-and-dirty example of installation commands:
|
||||
|
||||
First install the GNU Objective C runtime patch, objc.patch; possibly
|
||||
First install the GNU Objective C runtime patch, objc.patch, possibly
|
||||
like this:
|
||||
|
||||
@example
|
||||
cd gcc-2.7.2
|
||||
patch -p0 <../libobjects/objc.patch
|
||||
patch -p0 <../gnustep-base/objc.patch
|
||||
@end example
|
||||
|
||||
then
|
||||
|
@ -55,7 +55,7 @@ Patch the @samp{gcc} Objective C runtime with objc.patch.
|
|||
|
||||
@item
|
||||
Install @samp{gcc}. The library requires gcc version
|
||||
@value{OBJECTS_GCC_VERSION} or later.
|
||||
@value{GNUSTEP_BASE_GCC_VERSION} or later.
|
||||
|
||||
@item
|
||||
Configure the package for your system. In the directory that this file
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
@c set the vars OBJECTS_VERSION and OBJECTS_GCC_VERSION
|
||||
@c set the vars GNUSTEP_BASE_VERSION and GNUSTEP_BASE_GCC_VERSION
|
||||
@include version.texi
|
||||
|
||||
The library requires gcc @value{OBJECTS_GCC_VERSION} or higher. The
|
||||
The library requires gcc @value{GNUSTEP_BASE_GCC_VERSION} or higher. The
|
||||
library does not work with the NEXTSTEP 3.2 compiler because that
|
||||
version of NeXT's cc cannot handle nested functions. Until a later
|
||||
release from NeXT, NEXTSTEP users will have to install gcc. See the
|
||||
|
|
|
@ -3,16 +3,27 @@
|
|||
@chapter News about Gnustep Base Library
|
||||
|
||||
The currently released version of the library is
|
||||
@samp{@value{OBJECTS_VERSION}}.
|
||||
@samp{@value{GNUSTEP_BASE_VERSION}}.
|
||||
@end ifset
|
||||
|
||||
@section Noteworthy changes since version @samp{0.1.19}
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item The library has changed its name from @samp{libgnustep-base} to
|
||||
@samp{libgnustep-base}. The Apr 17 ChangeLog entry contains a list of
|
||||
the way various other names were changed.
|
||||
|
||||
@item The library now requires a patch to gcc-2.7.2. The patch adds
|
||||
thread-safe features to the GNU Objective C runtime.
|
||||
|
||||
@item Distributed Objects is much improved. Exceptions in the server
|
||||
are sent back to the client. Ungracefully closed connections are
|
||||
gracefully handled.
|
||||
|
||||
@item The mframe and behavior functions have been overhauled and
|
||||
better commented.
|
||||
|
||||
@item The NSHashTable and NSMapTable functions have been implemented,
|
||||
thanks to Albin Jones <albin.jones@@dartmouth.edu>. Albin has also
|
||||
implemented underlying GNU functions that provide functions for arrays
|
||||
|
@ -22,8 +33,8 @@ and linked lists of C-type variables.
|
|||
Christley <scottc@@net-community.com>.
|
||||
|
||||
@item A RunLoop class has been implemented, and is used for listening to
|
||||
Port objects. It is used for Distributed Objects. The class is not
|
||||
finished, and its interfaces may be changed in the near future.
|
||||
Port objects. It is used for Distributed Objects. There is also an
|
||||
NSRunLoop class based on RunLoop.
|
||||
|
||||
@item The NSTimer class has been implemented, although its use with
|
||||
RunLoops is currently disabled.
|
||||
|
@ -49,10 +60,11 @@ There is a new set of rich enumeration methods based on Invocations.
|
|||
|
||||
@item Port class heirarchy has been overhauled. There are now classes
|
||||
for TCP ports, UDP ports, and Mach ports. Only the TCP ports are
|
||||
currently working.
|
||||
currently functional.
|
||||
|
||||
@item GNU-style archiving has had an overhaul, and the GNUstep
|
||||
NSArchiver class is functional, but not strongly tested.
|
||||
NSArchiver class is functional, but not strongly tested. It does not
|
||||
yet call -awakeUsingCoder:.
|
||||
|
||||
I have separated the high-level archiving of groups of objects from the
|
||||
low-level format of how C-types are written. There are several new
|
||||
|
@ -62,11 +74,15 @@ concrete subclasses: BinaryCStream, and TextCStream. Plug these
|
|||
backends into Coder to get different style low-level formats for
|
||||
archiving.
|
||||
|
||||
Floats and doubles are now encoded more efficiently.
|
||||
|
||||
NSArchiver is built on top of Coder. You can actually send all the
|
||||
Coder methods to NSArchiver and vice-versa.
|
||||
|
||||
GNU classes BinaryCoder and TextCoder are gone.
|
||||
|
||||
@item ...and many bug fixes.
|
||||
|
||||
@end itemize
|
||||
|
||||
@c ====================================================================
|
||||
|
@ -238,7 +254,7 @@ heirarchy. Next I'll do NSDictionary in a similar style.
|
|||
@item
|
||||
From Adam Fedor, there is a new patch to the gcc Objective C runtime
|
||||
that aids dynamic linking. You'll have to apply this patch and
|
||||
reinstall the runtime before you can compile this version of libobjects.
|
||||
reinstall the runtime before you can compile this version of libgnustep-base.
|
||||
|
||||
@item
|
||||
Several bug fixes, including two serious ones in Collection deallocation
|
||||
|
@ -335,7 +351,7 @@ README.ULTRIX. Time.m patched for Solaris 2.4. test12.m free fix.
|
|||
|
||||
@itemize @bullet
|
||||
|
||||
@item Renamed the library from @samp{libcoll} to @samp{libobjects}.
|
||||
@item Renamed the library from @samp{libcoll} to @samp{libgnustep-base}.
|
||||
(See the end of the file @samp{DISCUSSION} for the background on this
|
||||
name choice.) Several file names changed to reflect this. GNU class
|
||||
interfaces are now included with @samp{objects} prefix,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@chapter GNU Objective-C Class Library README
|
||||
|
||||
@c set the vars OBJECTS_VERSION and GCC_VERSION
|
||||
@c set the vars GNUSTEP_BASE_VERSION and GCC_VERSION
|
||||
@include version.texi
|
||||
|
||||
Here is some introductory info to get you started:
|
||||
|
@ -17,77 +17,24 @@ The file @samp{INSTALL} gives instructions for installing the library.
|
|||
@section Preparing to write code
|
||||
|
||||
Preliminary documentation is available via @samp{texinfo} in the files
|
||||
@samp{libobjects.info} and @samp{libobjects.texi}. The info file was
|
||||
created from the texi file using an modified version of @samp{makeinfo}
|
||||
available by anonymous ftp from @samp{iesd.auc.dk:pub/ObjC}.
|
||||
@samp{gnustep-base.info} and @samp{gnustep-base.texi}. Because texinfo
|
||||
doesn't yet handle @code{@@deftypemethod}, this documentation cannot yet
|
||||
be compiled into more readable forms.
|
||||
|
||||
The documentation isn't much to speak of so far. Better documentation
|
||||
will be forthcoming, but the library needs to settle first. For now I
|
||||
recommend skipping libobjects.info and reading the header files instead.
|
||||
The headers for the GNU classes are in @file{./objects}; the headers for
|
||||
the NeXT-compatible classes are in @file{./objc} and
|
||||
@file{./Foundation}.
|
||||
|
||||
The overview of classes below should help you see the big picture as you
|
||||
read the source.
|
||||
|
||||
|
||||
@section The Class Heirarchy
|
||||
|
||||
Here is the class inheritance heirarchy. All protocols end with
|
||||
"ing"; all collection protocols end with "Collecting". All collection
|
||||
abtract superclasses (classes which are not usable without
|
||||
subclassing) end with "Collection";
|
||||
|
||||
@example
|
||||
NSObject
|
||||
Collection <Collecting>
|
||||
Set
|
||||
Bag
|
||||
KeyedCollection <KeyedCollecting>
|
||||
Dictionary
|
||||
MappedCollector
|
||||
IndexedCollection <IndexedCollecting>
|
||||
Array
|
||||
Stack
|
||||
GapArray
|
||||
CircularArray
|
||||
Queue
|
||||
Heap
|
||||
LinkedList
|
||||
BinaryTree
|
||||
RBTree
|
||||
EltNodeCollector
|
||||
String
|
||||
LinkedListNode
|
||||
LinkedListEltNode
|
||||
BinaryTreeNode
|
||||
BinaryTreeEltNode
|
||||
RBTreeNode
|
||||
RBTreeEltNode
|
||||
Stream
|
||||
StdioStream
|
||||
MemoryStream
|
||||
Coder
|
||||
TextCoder
|
||||
BinaryCoder
|
||||
ConnectedCoder
|
||||
RetainingNotifier
|
||||
Port
|
||||
SocketPort
|
||||
Connection
|
||||
Magnitude
|
||||
Time
|
||||
Random
|
||||
RNGBerkeley <RandomGenerating>
|
||||
RNGAdditiveCongruential <RandomGenerating>
|
||||
DelegatePool
|
||||
Proxy
|
||||
@end example
|
||||
recommend skipping @file{gnustep-base.info} and reading the header files
|
||||
instead. The headers for the classes are in @file{./src/include} and
|
||||
@file{./src/objc}.
|
||||
|
||||
The Gnustep FAQ also contains much useful information, including an
|
||||
outline of the class heirarchy. The FAQ can be found in
|
||||
@file{./doc/Gnustep-FAQ}.
|
||||
|
||||
@section Overview of the classes
|
||||
|
||||
[This section needs updating -mccallum Apr 17 1996.]
|
||||
|
||||
The GNU classes included in this version of the library fall into six
|
||||
categories: collections, strings, magnitudes, streams, coders and
|
||||
distributed object support.
|
||||
|
@ -170,7 +117,7 @@ To begin using distributed objects, you only need to know about
|
|||
daunting, but actually, a lot can be done with just a few key methods:
|
||||
|
||||
@smallexample
|
||||
- (Connection*) newRegisteringAtName: (const char*)name
|
||||
- (Connection*) newRegisteringAtName: name
|
||||
withRootObject: anObj;
|
||||
For registering your server object with the network.
|
||||
|
||||
|
@ -179,68 +126,13 @@ daunting, but actually, a lot can be done with just a few key methods:
|
|||
method, so that your server can start handling requests from
|
||||
clients.
|
||||
|
||||
- (Proxy*) rootProxyAtName: (const char*)name
|
||||
onHost: (const char*)host;
|
||||
- (Proxy*) rootProxyAtName: name
|
||||
onHost: host;
|
||||
For connecting to a remote server. You get a proxy object for
|
||||
the remote server object, which, for messaging purposes, you
|
||||
can treat as if it were local.
|
||||
@end smallexample
|
||||
|
||||
Here is a partial list of what the current distributed objects system
|
||||
can do:
|
||||
@smallexample
|
||||
- It can pass and return all simple C types, including char*, float
|
||||
and double, both by value and by reference.
|
||||
- It can pass structures by value and by reference, return
|
||||
structures by reference. The structures can contain arrays.
|
||||
- It obeys all the type qualifiers: oneway, in, out, inout, const.
|
||||
- It can pass and return objects, either bycopy or with proxies.
|
||||
An object encoded multiple times in a single message is properly
|
||||
decoded on the other side.
|
||||
- Proxies to remote objects are automatically created as they are
|
||||
returned. Proxies passed back where they came from are decoded
|
||||
as the correct local object.
|
||||
- It can wait for an incoming message and timeout after a
|
||||
specified period.
|
||||
- A server can handle multiple clients.
|
||||
- The server will ask its delegate before making new connections.
|
||||
- The server can make call-back requests of the client, and keep
|
||||
it all straight even when the server has multiple clients.
|
||||
- A client will automatically form a connection to another client
|
||||
if an object from the other client is vended to it. (i.e. Always
|
||||
make a direct connection rather than forwarding messages twice,
|
||||
once into the server, from there out to the other client.)
|
||||
- The server will clean up its connection to a client if the client
|
||||
says goodbye (i.e. if the client connection is freed).
|
||||
- When the connection is being freed it will send a invalidation
|
||||
notification message to those objects that have registered for
|
||||
such notification.
|
||||
- Servers and clients can be on different machines of different
|
||||
architectures; byte-order and all other architecture-dependent
|
||||
nits are taken care of for you. You can have SPARC, i386, m68k,
|
||||
and MIPS machines all distributed-object'ing away together in
|
||||
one big web of client-server connections!
|
||||
@end smallexample
|
||||
|
||||
Here is a partial list of what the current distributed objects system
|
||||
does *not* do:
|
||||
@smallexample
|
||||
- Run multi-threaded.
|
||||
- Detect port deaths (due to remote application crash, for example)
|
||||
and do something graceful.
|
||||
- Send exceptions in the server back to the client.
|
||||
- Send messages with vararg arguments.
|
||||
- Return structures by value.
|
||||
- Use Mach ports, pass Mach ports, pass Mach virtual memory.
|
||||
- Send messages more reliably than UDP. It does detect reply
|
||||
timeouts and message-out-of-order conditions, but it's reaction
|
||||
is simply to abort.
|
||||
- Claim to be thoroughly tested.
|
||||
@end smallexample
|
||||
|
||||
@end itemize
|
||||
|
||||
|
||||
@section Where else to look
|
||||
|
||||
@subsection Examples
|
||||
|
@ -270,9 +162,8 @@ distributed object version of ``Hello, world''.
|
|||
complex demonstration of distributed objects, with multiple clients,
|
||||
connection delegates, and invalidation notification.
|
||||
|
||||
@item @samp{port-server.m} and @samp{port-client.m} show a simple use of
|
||||
Port objects. Be warned, however, the interface to Port objects will
|
||||
likely change in the near future.
|
||||
@item @samp{tcpport-server.m} and @samp{tcpport-client.m} show a simple
|
||||
use of TcpPort objects.
|
||||
|
||||
@end itemize
|
||||
|
||||
|
@ -298,7 +189,7 @@ Give me feedback! Tell me what you like; tell me what you think
|
|||
could be better. Send me bug reports.
|
||||
|
||||
@item
|
||||
Donate classes. If you write classes that fit in the libobjects
|
||||
Donate classes. If you write classes that fit in the libgnustep-base
|
||||
framework, I'd be happy to include them.
|
||||
|
||||
@end itemize
|
||||
|
|
|
@ -42,7 +42,7 @@ Library can just use @samp{register_printf_function}.
|
|||
sort of way that Smalltalk does. Talk to me. mccallum@@gnu.ai.mit.edu.
|
||||
|
||||
@item See
|
||||
http://www.cs.rochester.edu/u/mccallum/libobjects/volunteers.html for
|
||||
http://www.cs.rochester.edu/u/mccallum/libgnustep-base/volunteers.html for
|
||||
a list of the claimed and unclaimed GNUStep Foundation classes.
|
||||
|
||||
@end itemize
|
||||
|
@ -115,7 +115,7 @@ completely reimplemented. ...and a lot more...
|
|||
Fix all the subclassResponsibility comments in objects/*.h
|
||||
|
||||
@item
|
||||
I will finish libobjects documentation.
|
||||
I will finish gnustep-base documentation.
|
||||
|
||||
@end itemize
|
||||
|
||||
|
@ -145,7 +145,7 @@ even get called. <<ObjC insiders: This is a less well-expressed
|
|||
version of what we've just been discussing in email.>>
|
||||
|
||||
@item
|
||||
I created libobjects.texi by copying libg++.texi. Some of the text
|
||||
I created libgnustep-base.texi by copying libg++.texi. Some of the text
|
||||
is taken verbatim. Is this a problem?
|
||||
|
||||
@item
|
||||
|
@ -216,7 +216,7 @@ I'm sure that there're other things to do, but these are the ones I know now:
|
|||
@item Correct:
|
||||
@itemize +
|
||||
@item (@file{src/array.m}) @samp{objects_array_dealloc}
|
||||
@item (@file{src/cbs-int.m}) @samp{_OBJECTS_NOT_AN_INT_MARKER}
|
||||
@item (@file{src/cbs-int.m}) @samp{_GNUSTEP_BASE_NOT_AN_INT_MARKER}
|
||||
@end itemize
|
||||
|
||||
@item Improve the error handling of:
|
||||
|
@ -233,11 +233,11 @@ I'm sure that there're other things to do, but these are the ones I know now:
|
|||
@itemize @bullet
|
||||
@item Strengthen my resolve on the correctness of:
|
||||
@itemize +
|
||||
@item (@file{src/cbs-char-p.m}) @samp{_OBJECTS_NOT_A_CHAR_P_MARKER}
|
||||
@item (@file{src/cbs-id.m}) @samp{_OBJECTS_NOT_AN_ID_MARKER}
|
||||
@item (@file{src/cbs-int-p.m}) @samp{_OBJECTS_NOT_AN_INT_P_MARKER}
|
||||
@item (@file{src/cbs-char-p.m}) @samp{_GNUSTEP_BASE_NOT_A_CHAR_P_MARKER}
|
||||
@item (@file{src/cbs-id.m}) @samp{_GNUSTEP_BASE_NOT_AN_ID_MARKER}
|
||||
@item (@file{src/cbs-int-p.m}) @samp{_GNUSTEP_BASE_NOT_AN_INT_P_MARKER}
|
||||
@item (@file{src/cbs-int-p.m}) @samp{objects_int_p_is_equal}
|
||||
@item (@file{src/cbs-void-p.m}) @samp{_OBJECTS_NOT_A_VOID_P_MARKER}
|
||||
@item (@file{src/cbs-void-p.m}) @samp{_GNUSTEP_BASE_NOT_A_VOID_P_MARKER}
|
||||
@item (@file{src/hash.m}) @samp{objects_hash_rightsize}
|
||||
@item (@file{src/hash.m}) @samp{objects_hash_all_elements}
|
||||
@item (@file{src/map.m}) @samp{objects_map_rightsize}
|
||||
|
|
Loading…
Reference in a new issue