mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Doc changes and other updates.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2606 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
7ee87703c2
commit
1da36bb26e
15 changed files with 237 additions and 443 deletions
22
ChangeLog
22
ChangeLog
|
@ -1,3 +1,25 @@
|
|||
Fri Oct 31 15:16:46 1997 Adam Fedor <fedor@doc.com>
|
||||
|
||||
* NSBundle.README: Removed obsolete file.
|
||||
* README.threads: Likewise.
|
||||
* RELEASE-NOTES: Likewise.
|
||||
* GNUmakefile: Remove obsolete files from DIST. Make Tools the
|
||||
second build target.
|
||||
|
||||
* Tools/GNUmakefile: Include tool.make and make dread, etc as
|
||||
tools.
|
||||
* Tools/Makefile.preamble: Add uninstalled includes and libraries
|
||||
from ../src.
|
||||
|
||||
* Tools/dremove.m: Add errno.h.
|
||||
|
||||
* doc/GNUmakefile: Remove unneeded top-level text files.
|
||||
* doc/announce.texi: Update.
|
||||
* doc/install.texi: Likewise.
|
||||
* doc/news.texi: Likewise.
|
||||
* doc/readme.texi: Likewise.
|
||||
* doc/todo.texi: Likewise.
|
||||
|
||||
Fri Oct 31 10:26:16 1997 Adam Fedor <fedor@doc.com>
|
||||
|
||||
* GNUmakefile: Renamed from Makefile.
|
||||
|
|
|
@ -50,8 +50,8 @@ version.texi \
|
|||
NSZone.texi
|
||||
|
||||
TEXT_FILES = \
|
||||
TODO INSTALL NEWS CODING-STANDARDS README ANNOUNCE ADVERTISEMENT \
|
||||
GNUstep-FAQ
|
||||
TODO INSTALL NEWS CODING-STANDARDS README ANNOUNCE
|
||||
|
||||
INFO_FILES = gnustep-base.info
|
||||
PS_FILES = gnustep-base.dvi
|
||||
HTML_FILES =
|
||||
|
|
|
@ -81,8 +81,6 @@ after-clean::
|
|||
|
||||
srcdir=.
|
||||
|
||||
all:: text
|
||||
|
||||
text: $(TEXT_FILES)
|
||||
info: version.texi $(INFO_FILES)
|
||||
ps: $(PS_FILES)
|
||||
|
|
|
@ -10,8 +10,8 @@ available.
|
|||
|
||||
@include base-desc.texi
|
||||
|
||||
There is more information available at the GNUstep Base Library homepage
|
||||
at @samp{http://www.cs.rochester.edu/u/mccallum/gnustep-base}.
|
||||
There is more information available at the GNUstep homepage
|
||||
at @samp{http://www.gnustep.org}.
|
||||
|
||||
@ignore
|
||||
So that developers of non-free, commercial programs can use the library,
|
||||
|
@ -24,9 +24,6 @@ For more details, see the @samp{README} file that comes with the
|
|||
distribution.
|
||||
@end ignore
|
||||
|
||||
@c @section What's new in this release?
|
||||
@include news.texi
|
||||
|
||||
@section Where can you get it? How can you compile it?
|
||||
|
||||
@ifset GNUSTEP_BASE_FTP_MACHINE
|
||||
|
@ -39,10 +36,6 @@ The libgnustep-base-@value{GNUSTEP_BASE_VERSION}.tar.gz distribution file has no
|
|||
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/libgnustep-base}.
|
||||
|
||||
The library requires gcc @value{GNUSTEP_BASE_GCC_VERSION} or higher.
|
||||
Significant sections of the library do not work with the NeXT runtime,
|
||||
so we recommend using gcc instead of NeXT's cc. See the @samp{INSTALL}
|
||||
|
@ -56,7 +49,7 @@ For info about FTP via email, send email to
|
|||
with line one @samp{help} and line two @samp{quit}.
|
||||
|
||||
The most recent (not necessarily tested) snapshots of the library will
|
||||
be placed in @samp{ftp://alpha.gnu.ai.mit.edu/gnu}.
|
||||
be placed in @samp{ftp://alpha.gnu.org/gnu/gnustep}.
|
||||
|
||||
@display
|
||||
Happy Hacking!
|
||||
|
|
|
@ -13,245 +13,154 @@ as you preserve this copyright notice and permission notice.
|
|||
@chapter Installing @samp{libgnustep-base}
|
||||
@end ifset
|
||||
|
||||
Most of the information below is also included in the general GNUstep
|
||||
installation instruction GNUstep-HOWTO located at the same ftp sites
|
||||
as this library, notable @file{ftp://ftp.gnustep.org/pub/gnustep}.
|
||||
To compile and install @samp{libgnustep-base}:
|
||||
|
||||
@enumerate
|
||||
|
||||
@item
|
||||
If you are running GNU/Linux, first install pthreads. A copy that is
|
||||
known to work with GNU Objective C can be found at
|
||||
@file{ftp://ftp.ocbi.com/pub/GNUstep/pthreads.tar.gz}
|
||||
I ignored the installation instructions, and instead did the following:
|
||||
Get and compile GNU make, if you don't already have GNU make.
|
||||
|
||||
@example
|
||||
cd pthreads-0.9.2
|
||||
tar -cf - lib | (cd /usr/local ; tar -xvf -)
|
||||
tar -cf - include | (cd /usr/local ; tar -xvf -)
|
||||
mkdirs /usr/local/src/linux_threads/kits/pthreads-0.9.2/lib/pthreads
|
||||
cd !$ ; ln -s /usr/local/lib/libpthreads.so.1 .
|
||||
cd /usr/local/lib ; ln -s libpthreads.so.1 libpthreads.so
|
||||
cd /usr/src
|
||||
tar fvxz make-XXX.tar.gz
|
||||
cd make-XXX
|
||||
./configure
|
||||
make
|
||||
su root
|
||||
make install
|
||||
@end example
|
||||
|
||||
(And on my system, I also had to comment out the code between
|
||||
@code{#ifndef _TIMESPEC_} and the following @code{#endif} in
|
||||
@file{/usr/local/include/pthreads/typedefs.h}.)
|
||||
|
||||
@item
|
||||
Then install the GNU Objective C runtime patch (both gcc-2.7.2-objc.diff
|
||||
and gcc-2.7.2.1-objc.diff are included with this gnustep-base release),
|
||||
possibly like this:
|
||||
Decide where you want the GNUstep files to go, and use this as
|
||||
an argument to configure in the makefile package. If you don't choose
|
||||
a location, the default is /usr/GNUstep. The example below shows how
|
||||
to configure the packages for installation in /usr/local/GNUstep.
|
||||
|
||||
@example
|
||||
cd gcc-2.7.2.1
|
||||
patch -p1 < ../gstep-base*/gcc-2.7.2.1-objc.diff
|
||||
rm -f objc/list.h
|
||||
tar fvxz gstep-make-XXXXXX.tar.gz
|
||||
cd gstep-make-XXXXXX
|
||||
./configure --prefix=/usr/local/GNUstep
|
||||
su root
|
||||
make install
|
||||
@end example
|
||||
|
||||
When I did this, patch exited with code 5, but the only rejects were in
|
||||
documentation files, not source files.
|
||||
After this you should add the shell script GNUstep.sh in the makefile
|
||||
package to you initialization file (such as .profile). For instance:
|
||||
|
||||
@example
|
||||
. /usr/local/GNUstep/Makefiles/GNUstep.sh
|
||||
@end example
|
||||
|
||||
in your .profile file will work. It defines environment variables that
|
||||
are needed to find GNUstep files and executables. Users of csh neet
|
||||
to change the GNUstep.sh script so it will work with csh. Read the
|
||||
README for more info.
|
||||
|
||||
GNUstep packages will automatically install in this directory structure. You
|
||||
can install other packages (such as gcc) in the same structure if you specify
|
||||
the GNUstep system root as the prefix when you configure the package.
|
||||
|
||||
@example
|
||||
./configure --prefix=$GNUSTEP_SYSTEM_ROOT
|
||||
@end example
|
||||
|
||||
@item
|
||||
Make and install gcc, possibly like this:
|
||||
For Linux/GNU systems on Intel x86 processors, the PCThreads library is
|
||||
known to work with GNUstep. PCThreads version 1.1.0 is an enhanced version
|
||||
of PCThread 1.0.0 with better support for GNUstep.
|
||||
|
||||
@example
|
||||
./configure --prefix=/usr/local
|
||||
make OBJC_THREAD_FILE=thr-pthreads
|
||||
make OBJC_THREAD_FILE=thr-pthreads install
|
||||
cd /usr/src
|
||||
tar fvxz pcthreads-1.1.0.tar.gz
|
||||
cd pcthreads-1.1.0
|
||||
./configure
|
||||
make
|
||||
su root
|
||||
make install
|
||||
@end example
|
||||
|
||||
If you are not sure that threads are available on your system, and you
|
||||
don't need to use threads, you can substitute @samp{thr-single} for
|
||||
@samp{thr-pthreads}.
|
||||
If you are using the GNUstep makefile package and wish PCThreads to be
|
||||
installed with the GNUstep directory structure; then you should specify the
|
||||
GNUstep system root as the prefix when you configure the package.
|
||||
|
||||
@example
|
||||
./configure --prefix=$GNUSTEP_SYSTEM_ROOT
|
||||
@end example
|
||||
|
||||
@item
|
||||
The following commands assume that all the aforementioned files have been
|
||||
copied to the /usr/src directory on your machine.
|
||||
|
||||
@example
|
||||
1. Uncompress gcc:
|
||||
|
||||
cd /usr/src
|
||||
tar fvxz gcc-2.7.2.1.tar.gz
|
||||
|
||||
2. Apply the Objective-C runtime patch. Go inside the GCC directory and issue
|
||||
the command (Make sure you have the correct patch for the version of gcc):
|
||||
|
||||
cd gcc-2.7.2.1
|
||||
cat gcc-2.7.2.1-objc.diff | patch -p1
|
||||
|
||||
3. Configure the gcc compiler's makefile for your machine:
|
||||
|
||||
./configure
|
||||
|
||||
If you are using the GNUstep makefile package and wish gcc to be
|
||||
installed with the GNUstep directory structure; then you should specify the
|
||||
GNUstep system root as the prefix when you configure the package.
|
||||
|
||||
./configure --prefix=$GNUSTEP_SYSTEM_ROOT
|
||||
|
||||
4. Compile gcc
|
||||
|
||||
4.1 With a single-threaded Objective-C runtime:
|
||||
|
||||
make OBJC_THREAD_FILE=thr-single
|
||||
|
||||
or
|
||||
|
||||
4.2 With thread support appropriate for your system
|
||||
|
||||
make
|
||||
|
||||
or
|
||||
|
||||
4.3 With PCThreads support (Linux/GNU)
|
||||
|
||||
make OBJC_THREAD_FILE=thr-pthreads
|
||||
|
||||
5. Wait
|
||||
|
||||
If you have a Pentium Pro, go drink a coffee.
|
||||
If you have a fast Pentium, count from 0 to 100 in your head.
|
||||
If you have a slow Pentium, go eat a bagel.
|
||||
If you have a 486, go watch the news.
|
||||
If you have a 386, come back tomorrow.
|
||||
|
||||
6. Install gcc
|
||||
|
||||
su root
|
||||
make install
|
||||
|
||||
7. Delete the gcc directory if you're low on disk space
|
||||
|
||||
rm -rf /usr/src/gcc-2.7.2.1
|
||||
@end example
|
||||
|
||||
@item
|
||||
Then configure and make libgnustep-base:
|
||||
|
||||
@example
|
||||
./configure --prefix=/usr/local
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
@end example
|
||||
|
||||
Alternatively, if you are running GNU/Linux and have an older version of
|
||||
libc, then the Objective C runtime will not work unless you pass
|
||||
@samp{-lieee} to the linker. If you use the pthreads library that will
|
||||
also have to be linked in. You can do that like this:
|
||||
|
||||
@example
|
||||
LIBS="-lieee -lpthreads" ./configure --prefix=/usr/local
|
||||
make
|
||||
make install
|
||||
@end example
|
||||
|
||||
If you don't have @samp{libieee.a} on your system, @file{configure} will
|
||||
say
|
||||
@example
|
||||
configure: error: installation or configuration problem:
|
||||
C compiler cannot create executables.
|
||||
@end example
|
||||
|
||||
If you are running on a NeXT machine, @samp{gcc} probably configured
|
||||
itself to use the NeXT Objective C runtime by default. Currently
|
||||
GNUstep only supports the GNU runtime. To make @samp{gcc} use the GNU
|
||||
runtime, set @samp{CFLAGS} before you runtime configure. For example:
|
||||
|
||||
@example
|
||||
CFLAGS=-fgnu-runtime ./configure
|
||||
@end example
|
||||
|
||||
If your system supports dynamically loaded shared libraries, you can
|
||||
request the building and installation of a @samp{.so} version of the
|
||||
library by passing @samp{--enable-shared} to @samp{configure}. If in
|
||||
doubt, do not include this option.
|
||||
|
||||
If you have trouble with the Makefile, it may be that our makefiles use
|
||||
features that your @code{make} does not support; use GNU make.
|
||||
|
||||
@item
|
||||
Then install libgnustep-base:
|
||||
|
||||
@example
|
||||
make install
|
||||
@end example
|
||||
|
||||
If you set any environment variables when running @samp{make} to build
|
||||
libgnustep-base, you should set them again here; for example:
|
||||
|
||||
@example
|
||||
CFLAGS=-fgnu-runtime ./configure
|
||||
@end example
|
||||
|
||||
@end enumerate
|
||||
|
||||
Here are general instructions for @file{configure}, that explain
|
||||
@file{configure}'s options.
|
||||
|
||||
@enumerate
|
||||
|
||||
@item
|
||||
Configure the package for your system. In the directory that this file
|
||||
is in, type @samp{./configure}. If you're using @samp{csh} on an old
|
||||
version of System V, you might need to type @samp{sh configure} instead
|
||||
to prevent @samp{csh} from trying to execute @samp{configure} itself.
|
||||
|
||||
The @samp{configure} shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation, and creates
|
||||
the Makefile(s) (one in each subdirectory of the source directory). In
|
||||
some packages it creates a C header file containing system-dependent
|
||||
definitions. It also creates a file @samp{config.status} that you can
|
||||
run in the future to recreate the current configuration.
|
||||
|
||||
Running @samp{configure} takes less than a minute or two. While it is
|
||||
running, it prints some messages that tell what it is doing. If you
|
||||
don't want to see the messages, run @samp{configure} with its standard
|
||||
output redirected to @samp{/dev/null}; for example:
|
||||
@smallexample
|
||||
./configure >/dev/null
|
||||
@end smallexample
|
||||
|
||||
To compile the package in a different directory from the one containing
|
||||
the source code, you must use a version of make that supports the VPATH
|
||||
variable, such as GNU make. @samp{cd} to the directory where you want
|
||||
the object files and executables to go and run @samp{configure}.
|
||||
@samp{configure} automatically checks for the source code in the
|
||||
directory that @samp{configure} is in and in @samp{..}. If for some
|
||||
reason @samp{configure} is not in the source code directory that you are
|
||||
configuring, then it will report that it can't find the source code. In
|
||||
that case, run @samp{configure} with the option @samp{--srcdir=DIR},
|
||||
where DIR is the directory that contains the source code.
|
||||
|
||||
By default, @samp{make install} will install the package's files in
|
||||
/usr/local/bin, /usr/local/lib, /usr/local/man, etc. You can specify
|
||||
an installation prefix other than /usr/local by giving @samp{configure} the
|
||||
option @samp{--prefix=PATH}. Alternately, you can do so by giving a value
|
||||
for the @samp{prefix} variable when you run @samp{make}, e.g.,
|
||||
@smallexample
|
||||
make prefix=/usr/gnu
|
||||
@end smallexample
|
||||
|
||||
You can specify separate installation prefixes for architecture-specific
|
||||
files and architecture-independent files. If you give @samp{configure}
|
||||
the option @samp{--exec_prefix=PATH} or set the @samp{make} variable
|
||||
@samp{exec_prefix} to PATH, the package will use PATH as the prefix for
|
||||
installing programs and libraries. Data files and documentation will
|
||||
still use the regular prefix. Normally, all files are installed using
|
||||
the regular prefix.
|
||||
|
||||
You can tell @samp{configure} to figure out the configuration for your
|
||||
system, and record it in @samp{config.status}, without actually
|
||||
configuring the package (creating @samp{Makefile}s and perhaps a
|
||||
configuration header file). To do this, give @samp{configure} the
|
||||
@samp{--no-create} option. Later, you can run @samp{./config.status} to
|
||||
actually configure the package. This option is useful mainly in
|
||||
@samp{Makefile} rules for updating @samp{config.status} and
|
||||
@samp{Makefile}. You can also give @samp{config.status} the
|
||||
@samp{--recheck} option, which makes it re-run @samp{configure} with the
|
||||
same arguments you used before. This is useful if you change
|
||||
@samp{configure}.
|
||||
|
||||
@samp{configure} ignores any other arguments that you give it.
|
||||
|
||||
If your system requires unusual options for compilation or linking that
|
||||
@samp{configure} doesn't know about, you can give @samp{configure}
|
||||
initial values for some variables by setting them in the environment.
|
||||
In Bourne-compatible shells, you can do that on the command line like
|
||||
this:
|
||||
@smallexample
|
||||
CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure
|
||||
@end smallexample
|
||||
|
||||
The @samp{make} variables that you might want to override with environment
|
||||
variables when running @samp{configure} are:
|
||||
|
||||
(For these variables, any value given in the environment overrides the
|
||||
value that @samp{configure} would choose:)
|
||||
@table @samp
|
||||
|
||||
@item CC
|
||||
C compiler program. Default is @samp{cc}, or @samp{gcc} if @samp{gcc}
|
||||
is in your PATH.
|
||||
|
||||
@item INSTALL
|
||||
Program to use to install files.
|
||||
Default is @samp{install} if you have it, @samp{install.sh} otherwise.
|
||||
@end table
|
||||
|
||||
|
||||
(For these variables, any value given in the environment is added to
|
||||
the value that @samp{configure} chooses:)
|
||||
@table @samp
|
||||
|
||||
@item DEFS
|
||||
Configuration options, in the form @samp{-Dfoo -Dbar ...}
|
||||
|
||||
@item LIBS
|
||||
Libraries to link with, in the form @samp{-lfoo -lbar ...}
|
||||
@end table
|
||||
|
||||
If you need to do unusual things to compile the package, we encourage
|
||||
you to figure out how @samp{configure} could check whether to do them, and
|
||||
mail diffs or instructions to the address given in the @samp{README} so we
|
||||
can include them in the next release.
|
||||
|
||||
|
||||
@item
|
||||
Type @samp{make} to compile the package. If you want, you can override
|
||||
the @samp{make} variables @samp{CFLAGS} and @samp{LDFLAGS} like this:
|
||||
@smallexample
|
||||
make CFLAGS=-O2 LDFLAGS=-s
|
||||
@end smallexample
|
||||
|
||||
You will get some warnings from @samp{#warning} lines I've added to the
|
||||
code. Ignore them.
|
||||
|
||||
You may get some warnings like @samp{stdobjects.m:0: warning:
|
||||
`_OBJC_SELECTOR_TABLE' defined but not used}. Ignore them.
|
||||
They are bogus warnings due to a bug in cc1obj.
|
||||
|
||||
You may get some warnings like @samp{ar: filename BinaryTreeEltNode.o
|
||||
truncated to BinaryTreeEltNo}. Ignore them.
|
||||
|
||||
|
||||
@item
|
||||
If you want to compile the self-tests, cd to @samp{checks} and type
|
||||
@samp{make}. If you want to compile the examples, cd to @samp{examples}
|
||||
|
@ -273,3 +182,11 @@ need it if you want to regenerate @samp{configure} using a newer version
|
|||
of @samp{autoconf}.
|
||||
|
||||
@end enumerate
|
||||
|
||||
|
||||
Notes:
|
||||
|
||||
If you are running GNU/Linux and have an older version of
|
||||
libc, then the Objective C runtime will not work unless you pass
|
||||
@samp{-lieee} to the linker.
|
||||
|
||||
|
|
|
@ -6,6 +6,39 @@ The currently released version of the library is
|
|||
@samp{@value{GNUSTEP_BASE_VERSION}}.
|
||||
@end ifset
|
||||
|
||||
@section Noteworthy changes since version @samp{0.2.1}
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item Use the new GNUstep Makefile Package to compile the library, tools
|
||||
checks, and everything else.
|
||||
|
||||
@item NSData implemented as a class cluster including a class to
|
||||
allocate shared VM memory.
|
||||
|
||||
@item Big NSTimeZone improvements, as well as inclusion of time zone files,
|
||||
from Yoo C. Chung <wacko@@laplace.snu.ac.kr>.
|
||||
|
||||
@item Major improvements to distributed objects and many related clases
|
||||
from Richard Frith-Macdonald <richard@@brainstorm.co.uk>. Also added a
|
||||
nameserver.
|
||||
|
||||
@item Major rewrite of NSString, include Unicode strings from Stevo
|
||||
Crvenkovski <stevoc@@lotus.mpt.com.mk>
|
||||
|
||||
@item A rewrite of the NSBundle class from Adam Fedor <fedor@@gnu.org>.
|
||||
|
||||
@item Addition of a C-language style stream package.
|
||||
|
||||
@item Better support for threads and locking.
|
||||
|
||||
@item Support for running on Windows from Scott Christley
|
||||
<scottc@@net-community.com>
|
||||
|
||||
@item Many, many, many, many bug fixes and new classes.
|
||||
|
||||
@end itemize
|
||||
|
||||
@section Noteworthy changes since version @samp{0.1.19}
|
||||
|
||||
@itemize @bullet
|
||||
|
|
|
@ -9,9 +9,6 @@ Here is some introductory info to get you started:
|
|||
|
||||
@section Initial reading
|
||||
|
||||
The file @file{doc/GNUstep-FAQ} contains a brief overview of the
|
||||
library. It also tells you where to get the most recent version.
|
||||
|
||||
The file @samp{NEWS} has the library's feature history.
|
||||
|
||||
The file @samp{INSTALL} gives instructions for installing the library.
|
||||
|
@ -103,72 +100,12 @@ separately.
|
|||
@samp{NotificationDispatcher}
|
||||
@end ignore
|
||||
|
||||
@item The distributed object support classes are @samp{Connection},
|
||||
@samp{Proxy}, @samp{ConnectedCoder}, @samp{Port} and @samp{TcpPort}.
|
||||
@item The distributed object support classes are @samp{NSConnection},
|
||||
@samp{NSProxy}, @samp{ConnectedCoder}, @samp{Port} and @samp{TcpPort}.
|
||||
This version of the distributed objects only works with sockets. A Mach
|
||||
port back-end should be on the way.
|
||||
|
||||
See @file{doc/GNUstep-FAQ} for a detailed description of the cabilities
|
||||
and non-capabilities of GNU Distributed Objects.
|
||||
|
||||
To begin using distributed objects, you only need to know about
|
||||
@samp{Connection} class. You can see the full (documented!) interface
|
||||
in @samp{src/include/Connection.h}. The long list of methods may be a
|
||||
little daunting, but actually, a lot can be done with just a few key
|
||||
methods:
|
||||
|
||||
@smallexample
|
||||
- (Connection*) newRegisteringAtName: name
|
||||
withRootObject: anObj;
|
||||
For registering your server object with the network.
|
||||
|
||||
- (void) runConnection;
|
||||
For running the connection object returned by the above
|
||||
method, so that your server can start handling requests from
|
||||
clients.
|
||||
|
||||
- (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
|
||||
|
||||
@section Where else to look
|
||||
|
||||
@subsection Examples
|
||||
|
||||
A few simple example programs can be found in @samp{examples}.
|
||||
Read and enjoy. To compile them (after having compiled the library),
|
||||
type @samp{make} in the @samp{examples} directory.
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item @samp{dictionary.m} demonstrates the basic features of the
|
||||
Dictionary object.
|
||||
|
||||
@item @samp{stdio-stream.m} creates a StdioStream object that points to
|
||||
a file, writes to the file, then reads from the file.
|
||||
|
||||
@item @samp{textcoding.m} shows how you can archive an object to a file
|
||||
in a human-readable text format, and then read it back in again. This
|
||||
format is handy for editing archived objects with a text editor, and is
|
||||
great when you want to modify/create an archive using a scripting
|
||||
language like @samp{perl} or @samp{awk}.
|
||||
|
||||
@item @samp{first-server.m} and @samp{first-client.m} show the
|
||||
distributed object version of ``Hello, world''.
|
||||
|
||||
@item @samp{second-server.m} and @samp{second-client.m} contain a more
|
||||
complex demonstration of distributed objects, with multiple clients,
|
||||
connection delegates, and invalidation notification.
|
||||
|
||||
@item @samp{tcpport-server.m} and @samp{tcpport-client.m} show a simple
|
||||
use of TcpPort objects.
|
||||
|
||||
@end itemize
|
||||
|
||||
@subsection Test Programs
|
||||
@section Test Programs
|
||||
|
||||
Some of the programs I've used to test the library are in
|
||||
@samp{./checks}. Many of them are pretty messy, (desperately trying to
|
||||
|
@ -198,5 +135,8 @@ framework, I'd be happy to include them.
|
|||
@example
|
||||
Happy hacking!
|
||||
Andrew McCallum
|
||||
mccallum@@gnu.ai.mit.edu
|
||||
mccallum@@gnu.org
|
||||
|
||||
Adam Fedor
|
||||
fedor@@gnu.org
|
||||
@end example
|
||||
|
|
|
@ -4,11 +4,13 @@
|
|||
@include version.texi
|
||||
@end ifset
|
||||
|
||||
This TODO list is out of date.
|
||||
|
||||
@section Projects Looking for Volunteers
|
||||
|
||||
If you think you can do one of these projects, please let me know. Your
|
||||
help is greatly appreciated. Send email to
|
||||
@samp{mccallum@@gnu.ai.mit.edu}.
|
||||
@samp{mccallum@@gnu.org}.
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
|
@ -16,13 +18,6 @@ help is greatly appreciated. Send email to
|
|||
Richard Frith-Macdonald <richard@@brainstorm.co.uk>, who has volunteered
|
||||
to coordinate these efforts.)
|
||||
|
||||
@item Write a proper name server for Port's. Currently we're just
|
||||
hashing the name to a socket port number---we could get unwanted hash
|
||||
collisions. This will also allow us to name a SocketPort after it's
|
||||
been created. (Contact Richard Frith-Macdonald
|
||||
<richard@@brainstorm.co.uk>, who has volunteered to coordinate these
|
||||
efforts.)
|
||||
|
||||
@ignore
|
||||
@item Add some features to the compiler:
|
||||
@enumerate
|
||||
|
@ -38,19 +33,9 @@ argument to @@encode() and get a type string like the selector types.
|
|||
@end enumerate
|
||||
@end ignore
|
||||
|
||||
@item Improve the code to deal with `%@@' in printf-style format strings
|
||||
for systems that do not have the GNU C library. See src/NSString.m for
|
||||
the current implementation, which does not handle formatting modifiers.
|
||||
(Those with the GNU C Library can just use
|
||||
@samp{register_printf_function}.)
|
||||
|
||||
@item Implement efficient SmallInt and SmallFloat classes in the same
|
||||
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
|
||||
a list of the claimed and unclaimed GNUStep Foundation classes.
|
||||
|
||||
@end itemize
|
||||
|
||||
|
||||
|
@ -58,11 +43,6 @@ a list of the claimed and unclaimed GNUStep Foundation classes.
|
|||
|
||||
@itemize @bullet
|
||||
|
||||
@item Overhaul the string classes.
|
||||
|
||||
@item Make sets/dictionaries hashtables/maps copy their keys, not retain
|
||||
them. This is specified in the OpenStep standard.
|
||||
|
||||
@item Separate core and non-core code in NSDictionary, NSSet, etc, the
|
||||
same way I did for NSArray.
|
||||
|
||||
|
@ -114,13 +94,6 @@ version for many of the classes.
|
|||
@item Possibly change implementation of @code{-(int)compare:anObject}
|
||||
for Collection. How should non-Indexed collections be ordered?
|
||||
|
||||
@item
|
||||
Finish HashTable.m. Implement freeKeys:values: (What is this supposed
|
||||
to do anyway?). Handle archiving of atom string, "%", keys.
|
||||
|
||||
@item
|
||||
Finish Time.m. Many methods are not yet implemented.
|
||||
|
||||
@item
|
||||
Many implementations could be made more efficient. The library hasn't
|
||||
been efficiency tuned very much. Overridding more methods in certain
|
||||
|
|
|
@ -38,18 +38,16 @@ DIST_FILES = \
|
|||
config/config.nested.c config/config.nextcc.h config/config.nextrt.m \
|
||||
config/config.vsprintf.c \
|
||||
README.ULTRIX README.ucblib \
|
||||
STATUS RELEASE-NOTES \
|
||||
COPYING COPYING.LIB ChangeLog \
|
||||
STATUS COPYING COPYING.LIB ChangeLog \
|
||||
configure Version \
|
||||
config.guess mkinstalldirs install-sh config.sub \
|
||||
NSBundle.README \
|
||||
gcc-2.7.2-objc.diff \
|
||||
gcc-2.7.2.1-objc.diff
|
||||
|
||||
#
|
||||
# The list of subproject directories
|
||||
#
|
||||
SUBPROJECTS = Tools src doc checks examples NSCharacterSets NSTimeZones admin
|
||||
SUBPROJECTS = src Tools doc checks examples NSCharacterSets NSTimeZones admin
|
||||
|
||||
-include Makefile.preamble
|
||||
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
|
||||
NSBundle is a class that provides a simple front-end to the dynamic
|
||||
linking capabilities of a computer system. It allows one to more
|
||||
easily locate and load data and object files at run-time. Object files
|
||||
can include both simple functions as well as additional classes that
|
||||
the program may use.
|
||||
|
||||
NSBundle locates files within bundles. A bundle is essentially a
|
||||
directory that contains text files, data files, and object files (which
|
||||
contain C functions and Objective-C classes). Usually the bundle
|
||||
directory has the extension "bundle" and the main object file that
|
||||
resides in the directory has the same name as the bundle directory,
|
||||
without any extension.
|
||||
|
||||
The NSBundle class provided with GNUstep Base Library is meant to run
|
||||
on a variety of systems. However, some set-up is required to use it.
|
||||
Currently it has been tested on only a few systems that support
|
||||
dynamic linking -- Linux, SunOS, Solaris. It should work on HP, but I
|
||||
haven't been able to get it to work yet.
|
||||
|
||||
NSBundle problems:
|
||||
|
||||
NSBundle does not necessarily work on all systems. You cannot link in
|
||||
bundles on systems that do not support dynamic linking, although you
|
||||
can use the other facilities of NSBundle, such as locating data files
|
||||
within a bundle.
|
||||
|
||||
If NSBundle does not work on systems that do support dynamic linking,
|
||||
it is likely that the Makefile package has not been configured to make
|
||||
bundles on your system and/or that the GNUstep Base Library did not
|
||||
link in the correct header file to use dynamic linking. Diagnosing and
|
||||
fixing these problems is not trivial and requires some knowledge of
|
||||
dynamic linking, object file formats and the Objective-C
|
||||
runtime. Contact Adam Fedor <fedor@gnu.org> for help.
|
|
@ -1,47 +0,0 @@
|
|||
Return-Path: mccallum@ux2.sp.cs.cmu.edu
|
||||
Received: from tera.jprc.com (tera.jprc.com [207.86.147.221])
|
||||
by sandbox.jprc.com (8.8.5/8.8.5) with SMTP id MAA25547
|
||||
for <mccallum@sandbox.jprc.com>; Tue, 20 May 1997 12:59:00 -0400
|
||||
Resent-Message-Id: <199705201659.MAA25547@sandbox.jprc.com>
|
||||
Received: from complex.jprc.com (complex.jprc.com [207.86.147.34]) by tera.jprc.com (NTMail 3.02.10) with ESMTP id na043797 for <mccallum@sandbox.jprc.com>; Tue, 20 May 1997 13:06:12 -0400
|
||||
Received: from UX2.SP.cs.cmu.edu (UX2.SP.cs.cmu.edu [128.2.198.102]) by complex.jprc.com (NTMail 3.02.10) with ESMTP id ea039706 for <mccallum@jprc.com>; Tue, 20 May 1997 12:56:58 -0400
|
||||
Received: from RI.CMU.EDU by ux2.sp.cs.cmu.edu id ab19713; 20 May 97 12:57 EDT
|
||||
Received: from churchy.gnu.ai.mit.edu by RI.CMU.EDU id aa11471;
|
||||
20 May 97 12:57:03 EDT
|
||||
Received: from pluto by churchy.gnu.ai.mit.edu (8.8.5/8.6.12GNU) with ESMTP id MAA16968 for <gnustep-dev@gnu.ai.mit.edu>; Tue, 20 May 1997 12:56:28 -0400 (EDT)
|
||||
Received: by pluto
|
||||
id m0wTsFr-0000ViC
|
||||
(Debian Smail-3.2 1996-Jul-4 #2); Wed, 21 May 1997 01:59:19 +0900 (KST)
|
||||
Sender: "Yoo C. Chung" <wacko@laplace.snu.ac.kr>
|
||||
Sender: wacko@pluto.ai.mit.edu
|
||||
To: Adam Fedor <fedor@doc.com>
|
||||
Cc: GNUStep Developer <gnustep-dev@gnu.ai.mit.edu>
|
||||
Subject: Re: Threads on sparc-sun-solaris2.5.1
|
||||
References: <3381D457.3812@doc.com>
|
||||
From: "Yoo C. Chung" <wacko@laplace.snu.ac.kr>
|
||||
Date: 21 May 1997 01:59:18 +0900
|
||||
In-Reply-To: Adam Fedor's message of Tue, 20 May 1997 11:41:59 -0500
|
||||
Message-ID: <87oha6hyft.fsf@laplace.snu.ac.kr>
|
||||
Lines: 17
|
||||
X-Mailer: Gnus v5.4.37/XEmacs 19.15
|
||||
Resent-Date: Tue, 20 May 97 12:57:40 EDT
|
||||
Resent-From: mccallum@ux2.sp.cs.cmu.edu
|
||||
Resent-To: mccallum@jprc.com
|
||||
|
||||
Adam Fedor <fedor@doc.com> writes:
|
||||
|
||||
> Has anyone ever tested threads on a Solaris computer? It appears that
|
||||
> you can't retreive thread data -- thr-solaris.c:objc_get_thread_data
|
||||
> always returns NULL.
|
||||
>
|
||||
> Perhaps someone can try to run thread-except (from gstep-base/checks) to
|
||||
> see if you get a segmentation fault trying to reset the exception
|
||||
> handler from the data stored in the thread.
|
||||
|
||||
On Solaris you need to link in the thread library with -lthread. (It
|
||||
would have saved me a lot of grief if they had just let me have a lot
|
||||
of undefined symbol errors when linking without the thread library.)
|
||||
|
||||
--
|
||||
Yoo C. Chung <http://plaza.snu.ac.kr/~wacko/>
|
||||
School of Electrical Engineering, Seoul National University
|
|
@ -1,20 +0,0 @@
|
|||
We are now using the latest Objective C runtime patches from Scott
|
||||
Christley. Unfortunately, they runtime changes and the corresponding
|
||||
required GNUstep Base Library changes are not compatible with the old
|
||||
runtime. That is, you must install the new runtime patches in order
|
||||
to compile this version of the GNUstepBase Library.
|
||||
|
||||
|
||||
|
||||
|
||||
Each thread now has their own exception handler and assertion handler.
|
||||
(I haven't tested the assertion handler, though it should probably
|
||||
work).
|
||||
|
||||
The biggest change with this patch is that the zone functions use
|
||||
objc_malloc() to get more memory and that the default zone can be set
|
||||
by the user with NSSetDefaultMallocZone().
|
||||
|
||||
I've extended the functionality of zones. Now one can obtain memory
|
||||
statistics and also check for integrity. There is also more detailed
|
||||
documentation, which I've sent in a separate message.
|
|
@ -26,16 +26,18 @@ GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_SYSTEM_ROOT)
|
|||
include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/common.make
|
||||
|
||||
# The application to be compiled
|
||||
OBJC_PROGRAM_NAME = gdomap dread dwrite dremove
|
||||
TOOL_NAME = dread dwrite dremove
|
||||
OBJC_PROGRAM_NAME = gdomap
|
||||
|
||||
# The source files to be compiled
|
||||
gdomap_C_FILES = gdomap.c
|
||||
dread_C_FILES = dread.c
|
||||
dremove_C_FILES = dremove.c
|
||||
dwrite_C_FILES = dwrite.c
|
||||
dread_OBJC_FILES = dread.m
|
||||
dremove_OBJC_FILES = dremove.m
|
||||
dwrite_OBJC_FILES = dwrite.m
|
||||
|
||||
-include Makefile.preamble
|
||||
|
||||
include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/objc.make
|
||||
include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/tool.make
|
||||
|
||||
-include Makefile.postamble
|
||||
|
|
|
@ -1,3 +1,27 @@
|
|||
#
|
||||
# Tools makefile for the GNUstep Base Library
|
||||
#
|
||||
# Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
#
|
||||
# Written by: Scott Christley <scottc@net-community.com>
|
||||
#
|
||||
# This file is part of the GNUstep Base Library.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Library General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Library General Public
|
||||
# License along with this library; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile.preamble
|
||||
#
|
||||
|
@ -12,32 +36,26 @@
|
|||
#
|
||||
|
||||
# Additional flags to pass to the preprocessor
|
||||
ADDITIONAL_CPPFLAGS +=
|
||||
#ADDITIONAL_CPPFLAGS +=
|
||||
|
||||
# Additional flags to pass to the Objective-C compiler
|
||||
ADDITIONAL_OBJCFLAGS +=
|
||||
#ADDITIONAL_OBJCFLAGS +=
|
||||
|
||||
# Additional flags to pass to the C compiler
|
||||
ADDITIONAL_CFLAGS +=
|
||||
#ADDITIONAL_CFLAGS +=
|
||||
|
||||
# Additional include directories the compiler should search
|
||||
ADDITIONAL_INCLUDE_DIRS +=
|
||||
ADDITIONAL_INCLUDE_DIRS += -I../src
|
||||
|
||||
# Additional LDFLAGS to pass to the linker
|
||||
# ADDITIONAL_LDFLAGS +=
|
||||
#ADDITIONAL_LDFLAGS +=
|
||||
|
||||
# Additional library directories the linker should search
|
||||
ADDITIONAL_LIB_DIRS +=
|
||||
|
||||
# Additional libraries when linking tools
|
||||
ADDITIONAL_TOOL_LIBS +=
|
||||
|
||||
# Additional libraries when linking applications
|
||||
ADDITIONAL_GUI_LIBS +=
|
||||
ADDITIONAL_LIB_DIRS += -L../src/$(GNUSTEP_OBJ_DIR)
|
||||
|
||||
#
|
||||
# Flags dealing with installing and uninstalling
|
||||
#
|
||||
|
||||
# Additional directories to be created during installation
|
||||
ADDITIONAL_INSTALL_DIRS +=
|
||||
#ADDITIONAL_INSTALL_DIRS +=
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <Foundation/NSString.h>
|
||||
#include <Foundation/NSProcessInfo.h>
|
||||
#include <Foundation/NSUserDefaults.h>
|
||||
#include <errno.h>
|
||||
|
||||
|
||||
int
|
||||
|
|
Loading…
Reference in a new issue