mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-12 09:01:05 +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
75de7725a0
commit
7e98d506e6
11 changed files with 206 additions and 301 deletions
|
@ -40,7 +40,6 @@ include $(srcdir)/../Makeconf
|
||||||
include $(srcdir)/../Version
|
include $(srcdir)/../Version
|
||||||
|
|
||||||
TEXI_FILES = \
|
TEXI_FILES = \
|
||||||
advertisement.texi \
|
|
||||||
announce.texi \
|
announce.texi \
|
||||||
install.texi \
|
install.texi \
|
||||||
gnustep-base.texi \
|
gnustep-base.texi \
|
||||||
|
@ -58,31 +57,31 @@ TODO INSTALL NEWS README ANNOUNCE ADVERTISEMENT
|
||||||
all:
|
all:
|
||||||
|
|
||||||
info: $(TEXT_FILES)
|
info: $(TEXT_FILES)
|
||||||
dvi: libobjects.dvi objective-c.dvi
|
dvi: gnustep-base.dvi objective-c.dvi
|
||||||
|
|
||||||
version.texi: $(srcdir)/../Version
|
version.texi: $(srcdir)/../Version
|
||||||
rm -f version.texi
|
rm -f version.texi
|
||||||
echo '@set OBJECTS_VERSION' $(OBJECTS_VERSION) \
|
echo '@set GNUSTEP_BASE_VERSION' $(VERSION) \
|
||||||
> version.texi
|
> version.texi
|
||||||
echo '@set OBJECTS_GCC_VERSION' $(OBJECTS_GCC_VERSION) \
|
echo '@set GNUSTEP_BASE_GCC_VERSION' $(GCC_VERSION) \
|
||||||
>> version.texi
|
>> version.texi
|
||||||
if [ $(OBJECTS_FTP_MACHINE) ]; then \
|
if [ $(FTP_MACHINE) ]; then \
|
||||||
echo '@set OBJECTS_FTP_MACHINE' $(OBJECTS_FTP_MACHINE) \
|
echo '@set GNUSTEP_BASE_FTP_MACHINE' $(FTP_MACHINE) \
|
||||||
>> version.texi; fi
|
>> version.texi; fi
|
||||||
if [ $(OBJECTS_FTP_DIRECTORY) ]; then \
|
if [ $(FTP_DIRECTORY) ]; then \
|
||||||
echo '@set OBJECTS_FTP_DIRECTORY' $(OBJECTS_FTP_DIRECTORY) \
|
echo '@set GNUSTEP_BASE_FTP_DIRECTORY' $(FTP_DIRECTORY) \
|
||||||
>> version.texi; fi
|
>> version.texi; fi
|
||||||
|
|
||||||
libobjects.dvi: libobjects.texi version.texi
|
gnustep-base.dvi: gnustep-base.texi version.texi
|
||||||
$(TEXI2DVI) $(srcdir)/libobjects.texi
|
$(TEXI2DVI) $(srcdir)/gnustep-base.texi
|
||||||
objective-c.dvi: objective-c.texi
|
objective-c.dvi: objective-c.texi
|
||||||
$(TEXI2DVI) $(srcdir)/objective-c.texi
|
$(TEXI2DVI) $(srcdir)/objective-c.texi
|
||||||
|
|
||||||
MAKEINFO_FLAGS = -I $(srcdir)
|
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.
|
@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
|
objective-c.info: objective-c.texi
|
||||||
@echo Sorry, makeinfo does not yet support Objective C documentation.
|
@echo Sorry, makeinfo does not yet support Objective C documentation.
|
||||||
:$(MAKEINFO) $(MAKEINFO_FLAGS) $(srcdir)/objective-c.texi
|
:$(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.
|
# Make substitutions for @email{} and @url{} before passing to makeinfo.
|
||||||
# These substitution scripts could be cleaned up.
|
# These substitution scripts could be cleaned up.
|
||||||
GNUstep-FAQ: gnustep-faq.texi version.texi
|
Gnustep-FAQ: gnustep-faq.texi version.texi
|
||||||
rm -f GNUstep-FAQ.texi
|
rm -f Gnustep-FAQ.texi
|
||||||
sed -e 's,@email{\([^}]*\)},<\1>,g' \
|
sed -e 's,@email{\([^}]*\)},<\1>,g' \
|
||||||
$(srcdir)/gnustep-faq.texi \
|
$(srcdir)/gnustep-faq.texi \
|
||||||
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
|
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
|
||||||
> GNUstep-FAQ.texi
|
> Gnustep-FAQ.texi
|
||||||
$(MAKEINFO) $(MAKEINFO_FLAGS) -o $@ \
|
$(MAKEINFO) $(MAKEINFO_FLAGS) -o $@ \
|
||||||
--no-header --no-split GNUstep-FAQ.texi
|
--no-header --no-split Gnustep-FAQ.texi
|
||||||
rm -f GNUstep-FAQ.texi
|
rm -f Gnustep-FAQ.texi
|
||||||
# Make substitutions for @email{} and @url{}, and add @br{} before @item
|
# Make substitutions for @email{} and @url{}, and add @br{} before @item
|
||||||
# before passing to texi2html. Note: I think that this `@br{}' should
|
# before passing to texi2html. Note: I think that this `@br{}' should
|
||||||
# actually be a `@br', but the extra `{}' is necessary to work around a
|
# actually be a `@br', but the extra `{}' is necessary to work around a
|
||||||
# bug in texi@html.
|
# bug in texi@html.
|
||||||
# These substitution scripts could be cleaned up.
|
# These substitution scripts could be cleaned up.
|
||||||
GNUstep-FAQ.html: gnustep-faq.texi version.texi
|
Gnustep-FAQ.html: gnustep-faq.texi version.texi
|
||||||
rm -f GNUstep-FAQ.texi
|
rm -f Gnustep-FAQ.texi
|
||||||
sed -e 's,@email{\([^}]*\)},<A HREF="mailto:\1">\1</A>,g' \
|
sed -e 's,@email{\([^}]*\)},<A HREF="mailto:\1">\1</A>,g' \
|
||||||
$(srcdir)/gnustep-faq.texi \
|
$(srcdir)/gnustep-faq.texi \
|
||||||
| sed -e 's,@url{\([^}]*\)},<A HREF="\1">\1</A>,g' \
|
| sed -e 's,@url{\([^}]*\)},<A HREF="\1">\1</A>,g' \
|
||||||
| sed -e 's,^ *$$,@br{},g' \
|
| sed -e 's,^ *$$,@br{},g' \
|
||||||
> GNUstep-FAQ.texi
|
> Gnustep-FAQ.texi
|
||||||
texi2html -expandinfo $(MAKEINFO_FLAGS) GNUstep-FAQ.texi
|
texi2html -expandinfo $(MAKEINFO_FLAGS) Gnustep-FAQ.texi
|
||||||
|
|
||||||
# | awk -- '/@item/ { print "@br{}" } /@end itemize/ { print "@br{}" } ; { print }' \
|
# | 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 \
|
DIST_FILES = $(RCS_FILES) texinfo.tex \
|
||||||
$(TOP_DOC_FILES) ANNOUNCE ADVERTISEMENT TODO
|
$(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:
|
install:
|
||||||
uninstall:
|
uninstall:
|
||||||
|
|
||||||
|
@ -150,17 +149,17 @@ clean: mostlyclean
|
||||||
rm -f version.texi
|
rm -f version.texi
|
||||||
rm -f $(TEXT_FILES)
|
rm -f $(TEXT_FILES)
|
||||||
rm -f *.info
|
rm -f *.info
|
||||||
rm -f libobjects.dvi libobjects.aux libobjects.log \
|
rm -f gnustep-base.dvi gnustep-base.aux gnustep-base.log \
|
||||||
libobjects.toc libobjects.cl \
|
gnustep-base.toc gnustep-base.cl \
|
||||||
libobjects.cp libobjects.cps libobjects.fn libobjects.fns \
|
gnustep-base.cp gnustep-base.cps gnustep-base.fn gnustep-base.fns \
|
||||||
libobjects.ky libobjects.pg libobjects.pr libobjects.tp \
|
gnustep-base.ky gnustep-base.pg gnustep-base.pr gnustep-base.tp \
|
||||||
libobjects.vr
|
gnustep-base.vr
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f Makefile
|
rm -f Makefile
|
||||||
|
|
||||||
realclean: distclean
|
realclean: distclean
|
||||||
rm -f libobjects.info version.texi \
|
rm -f gnustep-base.info version.texi \
|
||||||
README TODO INSTALL NEWS ANNOUNCE
|
README TODO INSTALL NEWS ANNOUNCE
|
||||||
|
|
||||||
copy-dist: $(DIST_FILES)
|
copy-dist: $(DIST_FILES)
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
@chapter GNU Objective-C Class Library
|
@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
|
@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
|
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.
|
Objective C.
|
||||||
|
|
||||||
The library features collection objects for maintaining groups of
|
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:
|
The library is available by anonymous ftp at URL:
|
||||||
@smallexample
|
@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
|
@end smallexample
|
||||||
Since @samp{prep} is heavily loaded, you are encouraged to use GNU
|
Since @samp{prep} is heavily loaded, you are encouraged to use GNU
|
||||||
mirror sites.
|
mirror sites.
|
||||||
|
@ -146,7 +146,7 @@ be placed at @samp{ftp://alpha.gnu.ai.mit.edu/gnu}.
|
||||||
|
|
||||||
@section GNUStep
|
@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
|
common classes: List, HashTable, Storage, NXStringTable. In the future
|
||||||
it will also contain the foundation kit classes for GNUStep. Progress
|
it will also contain the foundation kit classes for GNUStep. Progress
|
||||||
is already being made on this front.
|
is already being made on this front.
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
@chapter Gnustep Base Library
|
@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
|
@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.
|
available.
|
||||||
|
|
||||||
@section What is the Gnustep Base Library?
|
@section What is the Gnustep Base Library?
|
||||||
|
@ -35,21 +35,21 @@ distribution.
|
||||||
|
|
||||||
@section Where can you get it? How can you compile it?
|
@section Where can you get it? How can you compile it?
|
||||||
|
|
||||||
@ifset OBJECTS_FTP_MACHINE
|
@ifset GNUSTEP_BASE_FTP_MACHINE
|
||||||
The libobjects-@value{OBJECTS_VERSION}.tar.gz distribution file has been
|
The libgnustep-base-@value{GNUSTEP_BASE_VERSION}.tar.gz distribution file has been
|
||||||
placed on @samp{@value{OBJECTS_FTP_MACHINE}} in
|
placed on @samp{@value{GNUSTEP_BASE_FTP_MACHINE}} in
|
||||||
@samp{@value{OBJECTS_FTP_DIRECTORY}}.
|
@samp{@value{GNUSTEP_BASE_FTP_DIRECTORY}}.
|
||||||
@end ifset
|
@end ifset
|
||||||
@ifclear OBJECTS_FTP_MACHINE
|
@ifclear GNUSTEP_BASE_FTP_MACHINE
|
||||||
The libobjects-@value{OBJECTS_VERSION}.tar.gz distribution file has not
|
The libgnustep-base-@value{GNUSTEP_BASE_VERSION}.tar.gz distribution file has not
|
||||||
been made available by anonymous ftp.
|
been made available by anonymous ftp.
|
||||||
@end ifclear
|
@end ifclear
|
||||||
|
|
||||||
More information about the library, including a list of machines on
|
More information about the library, including a list of machines on
|
||||||
which it has been successfully compiled and used, can be found at
|
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
|
library does not work with the NEXTSTEP 3.2 compiler because that
|
||||||
version of NeXT's cc cannot handle nested functions. Until a later
|
version of NeXT's cc cannot handle nested functions. Until a later
|
||||||
release from NeXT, NEXTSTEP users will have to install gcc. See the
|
release from NeXT, NEXTSTEP users will have to install gcc. See the
|
||||||
|
|
|
@ -1,25 +1,24 @@
|
||||||
@ifset FAQ_ONLY
|
@ifset FAQ_ONLY
|
||||||
@chapter Frequently Asked Questions with Answers
|
@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
|
@include version.texi
|
||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@enumerate
|
@enumerate
|
||||||
|
|
||||||
|
|
||||||
@item Why not separate the GNU classes from the NS* foundation
|
@item Why not separate the GNU classes from the NS* foundation
|
||||||
classes?
|
classes?
|
||||||
|
|
||||||
They are intimately intertwinned---not in a messy way, but for good
|
They are intimately intertwinned---not in a messy way, but for good
|
||||||
reasons. ...explain more detail...
|
reasons. ...explain more detail...
|
||||||
|
|
||||||
|
|
||||||
@item I'm trying to compile an Objective C program on Linux, and it's not
|
@item I'm trying to compile an Objective C program on Linux, and it's not
|
||||||
working.
|
working.
|
||||||
|
|
||||||
Link with @samp{-lieee}.
|
Link with @samp{-lieee}.
|
||||||
|
|
||||||
|
|
||||||
@item What are the differences and improvements of the GNU base classes
|
@item What are the differences and improvements of the GNU base classes
|
||||||
over the NS* foundation classes?
|
over the NS* foundation classes?
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
@c %**start of header
|
@c %**start of header
|
||||||
@settitle User's Guide to the GNU Objective-C Class Library
|
@settitle User's Guide to the GNU Objective-C Class Library
|
||||||
@setfilename libobjects.info
|
@setfilename libgnustep-base.info
|
||||||
@c %**end of header
|
@c %**end of header
|
||||||
@defcodeindex cl
|
@defcodeindex cl
|
||||||
@defcodeindex pr
|
@defcodeindex pr
|
||||||
|
@ -19,7 +19,7 @@ END-INFO-DIR-ENTRY
|
||||||
@end format
|
@end format
|
||||||
@end ifinfo
|
@end ifinfo
|
||||||
|
|
||||||
@c set the vars LIBOBJECTS_VERSION and GCC_VERSION
|
@c set the vars GNUSTEP_BASE_VERSION and GCC_VERSION
|
||||||
@include version.texi
|
@include version.texi
|
||||||
|
|
||||||
@ifinfo
|
@ifinfo
|
||||||
|
@ -65,7 +65,7 @@ Free Software Foundation instead of in the original English.
|
||||||
@title GNU Objective C Class Library
|
@title GNU Objective C Class Library
|
||||||
@sp 3
|
@sp 3
|
||||||
@c @subtitle last updated Oct 26, 1993
|
@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})
|
@subtitle (for use with @samp{gcc} version @value{GCC_VERSION})
|
||||||
@author Andrew Kachites McCallum (mccallum@@gnu.ai.mit.edu)
|
@author Andrew Kachites McCallum (mccallum@@gnu.ai.mit.edu)
|
||||||
@page
|
@page
|
||||||
|
@ -97,12 +97,12 @@ be performing a valuable service if you report any bugs you encounter.}
|
||||||
@ignore
|
@ignore
|
||||||
saved copy
|
saved copy
|
||||||
* Copying:: GNU Library Public License says how you can copy
|
* Copying:: GNU Library Public License says how you can copy
|
||||||
and share libobjects.
|
and share libgnustep-base.
|
||||||
* Contributors:: People who have contributed to libobjects.
|
* Contributors:: People who have contributed to libgnustep-base.
|
||||||
* Installation:: How to configure, compile and install libobjects.
|
* Installation:: How to configure, compile and install libgnustep-base.
|
||||||
* Trouble:: If you have trouble installing libobjects.
|
* Trouble:: If you have trouble installing libgnustep-base.
|
||||||
|
|
||||||
* Overview:: libobjects in brief.
|
* Overview:: libgnustep-base in brief.
|
||||||
* Organization:: The heirarchy of protocols and classes.
|
* Organization:: The heirarchy of protocols and classes.
|
||||||
* Conventions:: Stylistic conventions and design philosophy.
|
* Conventions:: Stylistic conventions and design philosophy.
|
||||||
* Content Types:: Collections can contain C types as well as objects.
|
* Content Types:: Collections can contain C types as well as objects.
|
||||||
|
@ -133,8 +133,8 @@ saved copy
|
||||||
@top Libobjects
|
@top Libobjects
|
||||||
|
|
||||||
This manual documents how to install and use the GNU Objective-C
|
This manual documents how to install and use the GNU Objective-C
|
||||||
Class Library (or @samp{libobjects}), version
|
Class Library (or @samp{libgnustep-base}), version
|
||||||
@value{LIBOBJECTS_VERSION}, for use with @samp{gcc} version
|
@value{GNUSTEP_BASE_VERSION}, for use with @samp{gcc} version
|
||||||
@value{GCC_VERSION}.
|
@value{GCC_VERSION}.
|
||||||
|
|
||||||
It is nothing but a skeleton now, mostly containing rough notes.
|
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
|
@end ifinfo
|
||||||
@menu
|
@menu
|
||||||
* Copying:: GNU Library Public License says how you can copy
|
* Copying:: GNU Library Public License says how you can copy
|
||||||
and share libobjects.
|
and share libgnustep-base.
|
||||||
* Contributors:: People who have contributed to libobjects.
|
* Contributors:: People who have contributed to libgnustep-base.
|
||||||
* Installation:: How to configure, compile and install libobjects.
|
* Installation:: How to configure, compile and install libgnustep-base.
|
||||||
* Trouble:: If you have trouble installing libobjects.
|
* Trouble:: If you have trouble installing libgnustep-base.
|
||||||
|
|
||||||
* Overview:: libobjects in brief.
|
* Overview:: libgnustep-base in brief.
|
||||||
* Organization:: The heirarchy of protocols and classes.
|
* Organization:: The heirarchy of protocols and classes.
|
||||||
* Conventions:: Stylistic conventions and design philosophy.
|
* Conventions:: Stylistic conventions and design philosophy.
|
||||||
* Content Types:: Collections can contain C types as well as objects.
|
* 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.
|
class heirarchies, and wrote the otherwise unattributed classes.
|
||||||
|
|
||||||
@item
|
@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
|
writing the GNU Objective-C runtime. He also contributed the GapArray
|
||||||
and Storage classes. He also wrote patches to texinfo that make
|
and Storage classes. He also wrote patches to texinfo that make
|
||||||
@code{deftypemethod} possible.
|
@code{deftypemethod} possible.
|
||||||
|
@ -1261,7 +1261,7 @@ rest of the library.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
Acceptance of contributions means that the code is accepted for adaptation
|
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
|
in code. Very often, this merely entails formatting, maintenance of various
|
||||||
conventions, etc. Contributors are always given authorship credit and shown
|
conventions, etc. Contributors are always given authorship credit and shown
|
||||||
the final version for approval.
|
the final version for approval.
|
||||||
|
@ -1277,7 +1277,7 @@ support is strongly encouraged.
|
||||||
|
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Extensions, comments, and suggested modifications of existing libobjects
|
Extensions, comments, and suggested modifications of existing libgnustep-base
|
||||||
features are also very welcome.
|
features are also very welcome.
|
||||||
|
|
||||||
@node Protocol Index, Class Index, Projects, Top
|
@node Protocol Index, Class Index, Projects, Top
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
@c A FAQ for GNUstep
|
@c A FAQ for Gnustep
|
||||||
@c
|
@c
|
||||||
@c This file uses the special commands @url{} and @email{}. They are
|
@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
|
@setfilename Gnustep-FAQ.info
|
||||||
@settitle GNUstep Frequently Asked Questions with Answers
|
@settitle Gnustep Frequently Asked Questions with Answers
|
||||||
|
|
||||||
@iftex
|
@iftex
|
||||||
@global@let@email=@i
|
@global@let@email=@i
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
@c @end ifinfo
|
@c @end ifinfo
|
||||||
|
|
||||||
@iftex
|
@iftex
|
||||||
@chapter GNUstep Frequently Asked Questions with Answers
|
@chapter Gnustep Frequently Asked Questions with Answers
|
||||||
@end iftex
|
@end iftex
|
||||||
|
|
||||||
Maintained by Andrew McCallum @email{mccallum@@gnu.ai.mit.edu}, with
|
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.
|
Last updated 26 March 1996.
|
||||||
The most up-to-date version of this FAQ is
|
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}.
|
Please send corrections to @email{mccallum@@gnu.ai.mit.edu}.
|
||||||
|
|
||||||
The intended audience of this FAQ is future and present code developers
|
The intended audience of this FAQ is future and present code developers
|
||||||
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
|
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
|
technical details and organization, (2) the functionality is coded and
|
||||||
working now. This FAQ is intended to provide a succinct document in
|
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
|
@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
|
Software Inc.'s OpenStep Standard. The project is not finished, however
|
||||||
some components are useable now.
|
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
|
@itemize @bullet
|
||||||
|
|
||||||
@item GNU Objective C Compiler and Objective C Runtime Library -
|
@item GNU Objective C Compiler and Objective C Runtime Library -
|
||||||
Although not actually a sub-project the GNUstep, GCC and the GNU
|
Although not actually a sub-project the Gnustep, GCC and the GNU
|
||||||
Objective C Runtime Library are integral to GNUstep, since they are used
|
Objective C Runtime Library are integral to Gnustep, since they are used
|
||||||
to make every GNU Objective C program.
|
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
|
strings, collections, archiving support and distributed objects
|
||||||
messaging. (Including functionality similar to OpenStep's
|
messaging. (Including functionality similar to OpenStep's
|
||||||
@samp{FoundationKit}.)
|
@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
|
Graphical User Interface (GUI). This includes buttons, sliders, text
|
||||||
fields, windows, menus, etc. (Including functionality similar to
|
fields, windows, menus, etc. (Including functionality similar to
|
||||||
OpenStep's @samp{AppKit}.)
|
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
|
graphics to the screen, and receives events from the keyboard and
|
||||||
mouse. It is based on GhostScript.
|
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.
|
graphically assembling application interfaces.
|
||||||
|
|
||||||
@end itemize
|
@end itemize
|
||||||
|
@ -80,8 +80,8 @@ graphically assembling application interfaces.
|
||||||
More detailed information about each of these sub-projects can be found
|
More detailed information about each of these sub-projects can be found
|
||||||
in their own sections below.
|
in their own sections below.
|
||||||
|
|
||||||
There are several projects related to GNUstep that are not officially
|
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.
|
part of the GNU project and Gnustep, but may become so in the future.
|
||||||
These include: the @samp{G3DKit} project, (contact Thomas Engle
|
These include: the @samp{G3DKit} project, (contact Thomas Engle
|
||||||
@email{tsengel@@cip.informatik.uni-erlangen.de}); an application library
|
@email{tsengel@@cip.informatik.uni-erlangen.de}); an application library
|
||||||
based on OpenGL, (contact Georg Tuparev
|
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
|
code management and development environment, (contact unknown). If you
|
||||||
know of others, please contact the FAQ maintainer.
|
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
|
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).
|
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
|
@itemize @bullet
|
||||||
@item texinfo at @url{http://www.dartmouth.edu/~ajones/Projects}.
|
@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/}.
|
@item PostScript and RTF at @url{ftp://ftp.next.com/pub/OpenStepSpec/}.
|
||||||
@end itemize
|
@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
|
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
|
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
|
@itemize @bullet
|
||||||
|
|
||||||
|
@ -129,17 +129,17 @@ excellent, long service as user, tester, and code contributor to both
|
||||||
the Base Library and the GUI Library.
|
the Base Library and the GUI Library.
|
||||||
|
|
||||||
@item Andrew McCallum @email{mccallum@@gnu.ai.mit.edu} was appointed chief
|
@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
|
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
|
version 0.8; he has been working on GNU Objective C and the Base Library
|
||||||
since 1993.
|
since 1993.
|
||||||
|
|
||||||
@item Pascal Forget @email{pascal@@wsc.com} is working on the GUI
|
@item Pascal Forget @email{pascal@@wsc.com} is working on the GUI
|
||||||
Library in conjunction with Scott Christley. He has worked with Randy
|
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
|
@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.
|
GhostScript, including pswrap work.
|
||||||
|
|
||||||
@item Scott Christley @email{scottc@@net-community.com} is in charge of
|
@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
|
@end itemize
|
||||||
|
|
||||||
There are many others who have made significant contributions to
|
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
|
Thorup @email{krab@@next.com} and Paul Kunz
|
||||||
@email{paul_kunz@@slac.stanford.edu}). For more information about
|
@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
|
There are also several others who have contributed individual classes to
|
||||||
GNUstep, but who are not actively contributing to general GNUstep work.
|
Gnustep, but who are not actively contributing to general Gnustep work.
|
||||||
This list is not intended to be a complete list of GNUstep code
|
This list is not intended to be a complete list of Gnustep code
|
||||||
contributors; that information is available in each of the GNUstep code
|
contributors; that information is available in each of the Gnustep code
|
||||||
packages.
|
packages.
|
||||||
|
|
||||||
There are also other code developers who are writing Objective C code
|
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
|
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
|
GNU project and Gnustep. We hope that some of these projects will join
|
||||||
the GNU project and GNUstep in the future.
|
the GNU project and Gnustep in the future.
|
||||||
|
|
||||||
Please send corrections to the FAQ maintainer.
|
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
|
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
|
@url{http://www.NMR.EMBL-Heidelberg.DE/Gnustep}, that contains many
|
||||||
useful pointers. The technical information in this FAQ may be more up
|
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
|
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:
|
There are several mailing lists:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
|
|
||||||
@item @email{discussion@@gnustep.org} is a mailing list for general
|
@item @email{discussion@@Gnustep.org} is a mailing list for general
|
||||||
discussion of GNUstep developments. Announcements about GNUstep
|
discussion of Gnustep developments. Announcements about Gnustep
|
||||||
progress are also made there. The list is maintained by Georg Tuparev
|
progress are also made there. The list is maintained by Georg Tuparev
|
||||||
@email{Tuparev@@EMBL-Heidelberg.de}.
|
@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
|
@item @email{webmasters@@Gnustep.org} is a mailing list for discussion of
|
||||||
the GNUstep WWW site.
|
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.
|
library for drawing 3D graphics; it is based on OpenGL and RenderMan.
|
||||||
The Free Software Foundation is hoping that this work can become an
|
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
|
@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
|
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
|
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
|
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
|
With free software, you should never, ever, believe promises about when
|
||||||
a project will be finished. ...However, that said: there are certain
|
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.
|
libraries working by the end of Summer 1996.
|
||||||
|
|
||||||
@item @b{How can I help?}
|
@item @b{How can I help?}
|
||||||
|
|
||||||
If you have a specific piece of functionality that you would like to
|
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
|
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}.
|
Andrew McCallum @email{mccallum@@gnu.ai.mit.edu}.
|
||||||
|
|
||||||
@end enumerate
|
@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.
|
found below.
|
||||||
|
|
||||||
@section GNU Objective C Compiler and Objective C Runtime Library
|
@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
|
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
|
the C variable types for the method's return and argument values. Among
|
||||||
other uses, selector-types is extrememly helpful for fast distributed
|
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
|
@item Many of the GNU functions have different names than their
|
||||||
corresponding NeXT functions; the GNU names conform to the GNU coding
|
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
|
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
|
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
|
are currently thread-safe backends for DEC OSF/1, Solaris, IRIX, and
|
||||||
WindowsNT. Volunteers are solicited for writing additional back-ends,
|
WindowsNT. Volunteers are solicited for writing additional back-ends,
|
||||||
especially one for Linux.
|
especially one for Linux.
|
||||||
|
@ -327,13 +327,13 @@ especially one for Linux.
|
||||||
@c GNU Compiler and Objective C Runtime Library
|
@c GNU Compiler and Objective C Runtime Library
|
||||||
|
|
||||||
|
|
||||||
@section GNUstep Base Library
|
@section Gnustep Base Library
|
||||||
|
|
||||||
@enumerate
|
@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,
|
Objective C objects. For example, it includes classes for strings,
|
||||||
collections, byte streams, typed coders, invocations, notifications,
|
collections, byte streams, typed coders, invocations, notifications,
|
||||||
notification dispatchers, times, network ports, remote object messaging
|
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.
|
featureful GNU classes.
|
||||||
|
|
||||||
There is more (although perhaps out-of-date) information available at
|
There is more (although perhaps out-of-date) information available at
|
||||||
the libobjects homepage at
|
the Gnustep Base Library homepage at
|
||||||
@url{http://www.cs.rochester.edu/u/mccallum/libobjects}.
|
@url{http://www.cs.rochester.edu/u/mccallum/gnustep-base}.
|
||||||
|
|
||||||
|
|
||||||
@item @b{What is its current state of development?}
|
@item @b{What is its current state of development?}
|
||||||
|
@ -383,7 +383,7 @@ It contains several enhancements:
|
||||||
@enumerate
|
@enumerate
|
||||||
|
|
||||||
@item OpenStep has a single NSInvocation class, which is based on
|
@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
|
heirarchy of Invocation classes with various capabilities. Two of the
|
||||||
Invocation subclasses can cause C functions to be called, instead of
|
Invocation subclasses can cause C functions to be called, instead of
|
||||||
sending messages to objects; these subclasses are useful when one would
|
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.
|
that is useful for enumerations.
|
||||||
|
|
||||||
@item I have been told that OpenStep's NSNotificationCenter is slow.
|
@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
|
linked lists and hash tables in such a way that it should be
|
||||||
comparatively very fast.
|
comparatively very fast.
|
||||||
|
|
||||||
OpenStep notifications must be method selectors sent to objects.
|
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
|
advantage of the flexbility and context-holding capability of Invocation
|
||||||
objects.
|
objects.
|
||||||
|
|
||||||
@item OpenStep takes a disconnected ``class forest'' approach to
|
@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
|
however they are build from underlying GNU collection classes that are
|
||||||
organized as a deep class heirarchy. Because of the deep heirarchy,
|
organized as a deep class heirarchy. Because of the deep heirarchy,
|
||||||
there is a built-in uniformity of method names, and there are common
|
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
|
@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
|
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
|
separation between frontend and backend. Different backends are
|
||||||
provided. One backend writes in human-readable and human-editable ASCII
|
provided. One backend writes in human-readable and human-editable ASCII
|
||||||
text, (including programmer-provided text name labels for each of the
|
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
|
``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
|
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
|
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
|
objects takes advantage of the superior GNU Objective C runtime, which
|
||||||
includes the method type locally with the selector. Since the method
|
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
|
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
|
@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
|
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
|
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
|
to send a message when thread safe---not even one instruction more is
|
||||||
required for a thread-safe message send. Mutual exclusion locks are
|
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}.
|
@url{ftp://alpha.gnu.ai.mit.edu}.
|
||||||
|
|
||||||
The most recent developer's snapshot can be obtained from
|
The most recent developer's snapshot can be obtained from
|
||||||
@url{ftp://ftp.cs.rochester.edu/pub/u/mccallum/libobjects}. These
|
@url{ftp://ftp.cs.rochester.edu/pub/u/mccallum/gnustep-base}. These
|
||||||
releases are there for exchange between active GNUstep coders, and for
|
releases are there for exchange between active Gnustep coders, and for
|
||||||
curious code-readers, not for naive users; read the README.first file in
|
curious code-readers, not for naive users; read the README.first file in
|
||||||
the FTP directory.
|
the FTP directory.
|
||||||
|
|
||||||
|
|
||||||
@end enumerate
|
@end enumerate
|
||||||
@c GNUstep Base Library
|
@c Gnustep Base Library
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@section GNUstep GUI Library
|
@section Gnustep GUI Library
|
||||||
|
|
||||||
@enumerate
|
@enumerate
|
||||||
|
|
||||||
|
|
||||||
@item @b{What is the GUI Library?}
|
@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
|
graphical applications. For example, it includes classes for drawing
|
||||||
and manipulating graphics objects on the screen: windows, menus,
|
and manipulating graphics objects on the screen: windows, menus,
|
||||||
buttons, sliders, text fields, and events. There are also many
|
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}
|
It provides functionality that aims to implement the @samp{AppKit}
|
||||||
portion of the OpenStep standard. However the implementation has
|
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.}
|
@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
|
front-end contains the majority of implementation, but leaves out the
|
||||||
low-level drawing and event code. A back-end can override whatever
|
low-level drawing and event code. A back-end can override whatever
|
||||||
methods necessary in order to implement low-level drawing event
|
methods necessary in order to implement low-level drawing event
|
||||||
receiving. Different back-ends will make GNUstep available on various
|
receiving. Different back-ends will make Gnustep available on various
|
||||||
platforms. The default GNU back-end will run on top of X Windows and
|
platforms. The default GNU back-end will run on top of X Windows and
|
||||||
the DisplayGhostScript Server. Other back-ends could allow GNUstep to
|
the DisplayGhostScript Server. Other back-ends could allow Gnustep to
|
||||||
run on OpenGL, OS/2, and WIN32 graphics/event platforms. Much work
|
run on OpenGL, OS/2, and WIN32 graphics/event platforms. Much work
|
||||||
will be saved by this clean separation between front- and back-end,
|
will be saved by this clean separation between front- and back-end,
|
||||||
because it allows different platforms to share the large amount of
|
because it allows different platforms to share the large amount of
|
||||||
|
@ -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}.
|
able to find it in @url{ftp://alpha.gnu.ai.mit.edu/gnu}.
|
||||||
|
|
||||||
@end enumerate
|
@end enumerate
|
||||||
@c GNUstep GUI Library
|
@c Gnustep GUI Library
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@section GNUstep DisplayGhostScript Server
|
@section Gnustep DisplayGhostScript Server
|
||||||
|
|
||||||
@enumerate
|
@enumerate
|
||||||
|
|
||||||
|
@ -652,11 +652,11 @@ able to find it in @url{ftp://alpha.gnu.ai.mit.edu/gnu}.
|
||||||
|
|
||||||
|
|
||||||
@end enumerate
|
@end enumerate
|
||||||
@c GNUstep DisplayGhostScript Server
|
@c Gnustep DisplayGhostScript Server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@section GNUstep Interface Modeller Application
|
@section Gnustep Interface Modeller Application
|
||||||
|
|
||||||
@enumerate
|
@enumerate
|
||||||
|
|
||||||
|
@ -673,17 +673,17 @@ loaded and executed later outside of Interface Modeller.
|
||||||
@item @b{What is its current state of development?}
|
@item @b{What is its current state of development?}
|
||||||
|
|
||||||
It is in the specification stage; no code has been written yet. The
|
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
|
@end enumerate
|
||||||
@c GNUstep IM
|
@c Gnustep IM
|
||||||
|
|
||||||
|
|
||||||
@ignore
|
@ignore
|
||||||
[Notes to FAQ contributors: Be succinct. Stick to the facts. Emphasize
|
[Notes to FAQ contributors: Be succinct. Stick to the facts. Emphasize
|
||||||
technical features that are already implemented; avoid writing about
|
technical features that are already implemented; avoid writing about
|
||||||
vague features without concrete ideas about their implementation. Your
|
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.]
|
managers or publicity people.]
|
||||||
@end ignore
|
@end ignore
|
||||||
|
|
||||||
|
|
|
@ -2,27 +2,27 @@
|
||||||
@c If this package does not come with, e.g., installable documentation or
|
@c If this package does not come with, e.g., installable documentation or
|
||||||
@c data files, please ignore the references to them below.
|
@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
|
@include version.texi
|
||||||
|
|
||||||
@ifset INSTALL_ONLY
|
@ifset INSTALL_ONLY
|
||||||
This file documents the installation of the GNU Objective C
|
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
|
Foundation, Inc. You may copy, distribute, and modify it freely as long
|
||||||
as you preserve this copyright notice and permission notice.
|
as you preserve this copyright notice and permission notice.
|
||||||
@chapter Installing @samp{libobjects}
|
@chapter Installing @samp{libgnustep-base}
|
||||||
@end ifset
|
@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:
|
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:
|
like this:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
cd gcc-2.7.2
|
cd gcc-2.7.2
|
||||||
patch -p0 <../libobjects/objc.patch
|
patch -p0 <../gnustep-base/objc.patch
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
then
|
then
|
||||||
|
@ -55,7 +55,7 @@ Patch the @samp{gcc} Objective C runtime with objc.patch.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
Install @samp{gcc}. The library requires gcc version
|
Install @samp{gcc}. The library requires gcc version
|
||||||
@value{OBJECTS_GCC_VERSION} or later.
|
@value{GNUSTEP_BASE_GCC_VERSION} or later.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
Configure the package for your system. In the directory that this file
|
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
|
@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
|
library does not work with the NEXTSTEP 3.2 compiler because that
|
||||||
version of NeXT's cc cannot handle nested functions. Until a later
|
version of NeXT's cc cannot handle nested functions. Until a later
|
||||||
release from NeXT, NEXTSTEP users will have to install gcc. See the
|
release from NeXT, NEXTSTEP users will have to install gcc. See the
|
||||||
|
|
|
@ -3,16 +3,27 @@
|
||||||
@chapter News about Gnustep Base Library
|
@chapter News about Gnustep Base Library
|
||||||
|
|
||||||
The currently released version of the library is
|
The currently released version of the library is
|
||||||
@samp{@value{OBJECTS_VERSION}}.
|
@samp{@value{GNUSTEP_BASE_VERSION}}.
|
||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@section Noteworthy changes since version @samp{0.1.19}
|
@section Noteworthy changes since version @samp{0.1.19}
|
||||||
|
|
||||||
@itemize @bullet
|
@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
|
@item The library now requires a patch to gcc-2.7.2. The patch adds
|
||||||
thread-safe features to the GNU Objective C runtime.
|
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,
|
@item The NSHashTable and NSMapTable functions have been implemented,
|
||||||
thanks to Albin Jones <albin.jones@@dartmouth.edu>. Albin has also
|
thanks to Albin Jones <albin.jones@@dartmouth.edu>. Albin has also
|
||||||
implemented underlying GNU functions that provide functions for arrays
|
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>.
|
Christley <scottc@@net-community.com>.
|
||||||
|
|
||||||
@item A RunLoop class has been implemented, and is used for listening to
|
@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
|
Port objects. It is used for Distributed Objects. There is also an
|
||||||
finished, and its interfaces may be changed in the near future.
|
NSRunLoop class based on RunLoop.
|
||||||
|
|
||||||
@item The NSTimer class has been implemented, although its use with
|
@item The NSTimer class has been implemented, although its use with
|
||||||
RunLoops is currently disabled.
|
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
|
@item Port class heirarchy has been overhauled. There are now classes
|
||||||
for TCP ports, UDP ports, and Mach ports. Only the TCP ports are
|
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
|
@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
|
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
|
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
|
backends into Coder to get different style low-level formats for
|
||||||
archiving.
|
archiving.
|
||||||
|
|
||||||
|
Floats and doubles are now encoded more efficiently.
|
||||||
|
|
||||||
NSArchiver is built on top of Coder. You can actually send all the
|
NSArchiver is built on top of Coder. You can actually send all the
|
||||||
Coder methods to NSArchiver and vice-versa.
|
Coder methods to NSArchiver and vice-versa.
|
||||||
|
|
||||||
GNU classes BinaryCoder and TextCoder are gone.
|
GNU classes BinaryCoder and TextCoder are gone.
|
||||||
|
|
||||||
|
@item ...and many bug fixes.
|
||||||
|
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@c ====================================================================
|
@c ====================================================================
|
||||||
|
@ -238,7 +254,7 @@ heirarchy. Next I'll do NSDictionary in a similar style.
|
||||||
@item
|
@item
|
||||||
From Adam Fedor, there is a new patch to the gcc Objective C runtime
|
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
|
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
|
@item
|
||||||
Several bug fixes, including two serious ones in Collection deallocation
|
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
|
@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
|
(See the end of the file @samp{DISCUSSION} for the background on this
|
||||||
name choice.) Several file names changed to reflect this. GNU class
|
name choice.) Several file names changed to reflect this. GNU class
|
||||||
interfaces are now included with @samp{objects} prefix,
|
interfaces are now included with @samp{objects} prefix,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
@chapter GNU Objective-C Class Library README
|
@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
|
@include version.texi
|
||||||
|
|
||||||
Here is some introductory info to get you started:
|
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
|
@section Preparing to write code
|
||||||
|
|
||||||
Preliminary documentation is available via @samp{texinfo} in the files
|
Preliminary documentation is available via @samp{texinfo} in the files
|
||||||
@samp{libobjects.info} and @samp{libobjects.texi}. The info file was
|
@samp{gnustep-base.info} and @samp{gnustep-base.texi}. Because texinfo
|
||||||
created from the texi file using an modified version of @samp{makeinfo}
|
doesn't yet handle @code{@@deftypemethod}, this documentation cannot yet
|
||||||
available by anonymous ftp from @samp{iesd.auc.dk:pub/ObjC}.
|
be compiled into more readable forms.
|
||||||
|
|
||||||
The documentation isn't much to speak of so far. Better documentation
|
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
|
will be forthcoming, but the library needs to settle first. For now I
|
||||||
recommend skipping libobjects.info and reading the header files instead.
|
recommend skipping @file{gnustep-base.info} and reading the header files
|
||||||
The headers for the GNU classes are in @file{./objects}; the headers for
|
instead. The headers for the classes are in @file{./src/include} and
|
||||||
the NeXT-compatible classes are in @file{./objc} and
|
@file{./src/objc}.
|
||||||
@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
|
|
||||||
|
|
||||||
|
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
|
@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
|
The GNU classes included in this version of the library fall into six
|
||||||
categories: collections, strings, magnitudes, streams, coders and
|
categories: collections, strings, magnitudes, streams, coders and
|
||||||
distributed object support.
|
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:
|
daunting, but actually, a lot can be done with just a few key methods:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
- (Connection*) newRegisteringAtName: (const char*)name
|
- (Connection*) newRegisteringAtName: name
|
||||||
withRootObject: anObj;
|
withRootObject: anObj;
|
||||||
For registering your server object with the network.
|
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
|
method, so that your server can start handling requests from
|
||||||
clients.
|
clients.
|
||||||
|
|
||||||
- (Proxy*) rootProxyAtName: (const char*)name
|
- (Proxy*) rootProxyAtName: name
|
||||||
onHost: (const char*)host;
|
onHost: host;
|
||||||
For connecting to a remote server. You get a proxy object for
|
For connecting to a remote server. You get a proxy object for
|
||||||
the remote server object, which, for messaging purposes, you
|
the remote server object, which, for messaging purposes, you
|
||||||
can treat as if it were local.
|
can treat as if it were local.
|
||||||
@end smallexample
|
@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
|
@section Where else to look
|
||||||
|
|
||||||
@subsection Examples
|
@subsection Examples
|
||||||
|
@ -270,9 +162,8 @@ distributed object version of ``Hello, world''.
|
||||||
complex demonstration of distributed objects, with multiple clients,
|
complex demonstration of distributed objects, with multiple clients,
|
||||||
connection delegates, and invalidation notification.
|
connection delegates, and invalidation notification.
|
||||||
|
|
||||||
@item @samp{port-server.m} and @samp{port-client.m} show a simple use of
|
@item @samp{tcpport-server.m} and @samp{tcpport-client.m} show a simple
|
||||||
Port objects. Be warned, however, the interface to Port objects will
|
use of TcpPort objects.
|
||||||
likely change in the near future.
|
|
||||||
|
|
||||||
@end itemize
|
@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.
|
could be better. Send me bug reports.
|
||||||
|
|
||||||
@item
|
@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.
|
framework, I'd be happy to include them.
|
||||||
|
|
||||||
@end itemize
|
@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.
|
sort of way that Smalltalk does. Talk to me. mccallum@@gnu.ai.mit.edu.
|
||||||
|
|
||||||
@item See
|
@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.
|
a list of the claimed and unclaimed GNUStep Foundation classes.
|
||||||
|
|
||||||
@end itemize
|
@end itemize
|
||||||
|
@ -115,7 +115,7 @@ completely reimplemented. ...and a lot more...
|
||||||
Fix all the subclassResponsibility comments in objects/*.h
|
Fix all the subclassResponsibility comments in objects/*.h
|
||||||
|
|
||||||
@item
|
@item
|
||||||
I will finish libobjects documentation.
|
I will finish gnustep-base documentation.
|
||||||
|
|
||||||
@end itemize
|
@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.>>
|
version of what we've just been discussing in email.>>
|
||||||
|
|
||||||
@item
|
@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?
|
is taken verbatim. Is this a problem?
|
||||||
|
|
||||||
@item
|
@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:
|
@item Correct:
|
||||||
@itemize +
|
@itemize +
|
||||||
@item (@file{src/array.m}) @samp{objects_array_dealloc}
|
@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
|
@end itemize
|
||||||
|
|
||||||
@item Improve the error handling of:
|
@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
|
@itemize @bullet
|
||||||
@item Strengthen my resolve on the correctness of:
|
@item Strengthen my resolve on the correctness of:
|
||||||
@itemize +
|
@itemize +
|
||||||
@item (@file{src/cbs-char-p.m}) @samp{_OBJECTS_NOT_A_CHAR_P_MARKER}
|
@item (@file{src/cbs-char-p.m}) @samp{_GNUSTEP_BASE_NOT_A_CHAR_P_MARKER}
|
||||||
@item (@file{src/cbs-id.m}) @samp{_OBJECTS_NOT_AN_ID_MARKER}
|
@item (@file{src/cbs-id.m}) @samp{_GNUSTEP_BASE_NOT_AN_ID_MARKER}
|
||||||
@item (@file{src/cbs-int-p.m}) @samp{_OBJECTS_NOT_AN_INT_P_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-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_rightsize}
|
||||||
@item (@file{src/hash.m}) @samp{objects_hash_all_elements}
|
@item (@file{src/hash.m}) @samp{objects_hash_all_elements}
|
||||||
@item (@file{src/map.m}) @samp{objects_map_rightsize}
|
@item (@file{src/map.m}) @samp{objects_map_rightsize}
|
||||||
|
|
Loading…
Reference in a new issue