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:
mccallum 1996-04-18 00:23:58 +00:00
parent 96f91ec6db
commit aeffc25b6a
11 changed files with 206 additions and 301 deletions

View file

@ -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)

View file

@ -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.

View file

@ -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

View file

@ -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?

View file

@ -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

View file

@ -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

View file

@ -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

View 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

View file

@ -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,

View file

@ -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

View file

@ -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}