Stuff for new release

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@39569 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
rfm 2016-03-20 13:54:19 +00:00
parent 1eb08aef48
commit 03952f1e96
11 changed files with 343 additions and 461 deletions

View file

@ -1,7 +1,7 @@
1 Announcement
**************
The GNUstep Base Library, version 1.24.8, is now available.
The GNUstep Base Library, version 1.24.9, is now available.
1.1 What is the GNUstep Base Library?
=====================================
@ -16,33 +16,25 @@ remote object messaging support (distributed objects), and event loops.
portion of the OpenStep standard (the Foundation library).
There is more information available at the GNUstep homepage at
`http://www.gnustep.org'.
'http://www.gnustep.org'.
1.2 Noteworthy changes in version `1.24.8'
1.2 Noteworthy changes in version '1.24.9'
==========================================
* Performance optimisations (particularly in the use of tiny string
objects by the new objc runtime on 64bit systems).
* Thread naming and logging of threads by NSLog() has been made
consistent with the latest OSX releases, making debugging of
multithreaded code a little easier.
* Sergei Golovin has added NSURLConnection regression tests (while
fixing a few bugs there).
* Niels added support for generics
* Support for 'ng' runtime library (latest language features enabled)
* Performance optimisations and improved diagnostic messages
* Garbage Collection deprecated (support to be removed)
* As usual, this release also contains an update to include the most
recent international timezone data.
* Various other bugfixes.
1.3 Where can you get it? How can you compile it?
=================================================
1.3 Where can you get it? How can you compile it?
==================================================
The gnustep-base-1.24.9.tar.gz distribution file has been placed at
<ftp://ftp.gnustep.org/pub/gnustep/core>.
The gnustep-base-1.24.8.tar.gz distribution file has been placed at
`ftp://ftp.gnustep.org/pub/gnustep/core'.
Please log bug reports on the GNUstep project page
`http://savannah.gnu.org/bugs/?group=gnustep' or send bug reports to
Please log bug reports on the GNUstep project page
<http://savannah.gnu.org/bugs/?group=gnustep> or send bug reports to
<bug-gnustep@gnu.org>.

View file

@ -1,3 +1,16 @@
2016-03-20 Richard Frith-Macdonald <rfm@gnu.org>
* Documentation/ReleaseNotes.gsdoc:
* Documentation/news.texi:
* ANNOUNCE:
* NEWS:
* NSTimeZones/NSTimeZones.tar:
* Tools/AGSParser.m:
* Version:
Update version for new release. Add short news/announce entries.
Update timezone information to latest IANA data.
Add simple support for generics to autogsdoc.
2016-03-18 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSUserDefaults.m: Wait longer for locks on slow systems
@ -194,6 +207,7 @@
an object at the end of the array.
2016-02-22 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/Foundation/NSObjCRuntime.h: Add macros for backwards-
compatible generics annotations. Also define instancetype if necessary.
* Headers/Foundation/NSArray.h:

View file

@ -29,6 +29,19 @@ notice and this notice are preserved.
migrate to using a newer version of the library.
</p>
<section>
<heading>Version 1.24.9</heading>
<p>A new stable (bugfix) release.<br />
Niels added support for generics.<br />
Support for 'ng' runtime library (latest language features
enabled)<br />
Performance optimisations and improved diagnostic messages.<br />
Garbage Collection deprecated (support to be removed).<br />
As usual, this release also contains an update to include the
most recent international timezone data.
</p>
</section>
<section>
<heading>Version 1.24.8</heading>
<p>A new stable (bugfix) release.<br />

View file

@ -11,6 +11,18 @@ The currently released version of the library is
See the @url{ReleaseNotes.html} document for more information.
@end ifclear
@section Noteworthy changes in version @samp{1.24.9}
@itemize @bullet
@item Niels added support for generics
@item Support for 'ng' runtime library (latest language features enabled)
@item Performance optimisations and improved diagnostic messages
@item Garbage Collection deprecated (support to be removed)
@item As usual, this release also contains an update to include the
most recent international timezone data.
@end itemize
@ifclear ANNOUNCE-ONLY
@section Noteworthy changes in version @samp{1.24.8}
@itemize @bullet
@item Performance optimisations (particularly in the use of tiny string
@ -25,8 +37,6 @@ most recent international timezone data.
@item Various other bugfixes.
@end itemize
@ifclear ANNOUNCE-ONLY
@section Noteworthy changes in version @samp{1.24.7}
@itemize @bullet

View file

@ -311,19 +311,22 @@ typedef NSUInteger NSDirectoryEnumerationOptions;
/**
* Returns an array of NSURL of the contents of the specified directory. <br>
* The listing is shallow and does not recurse into subdirectories.
* The special files '.' and '..' are excluded but it can return hidden files. <br>
* The only <i>mask</i> option supported is NSDirectoryEnumerationSkipsHiddenFiles.<br>
* The special files '.' and '..' are excluded but it can return
* hidden files.<br>
* The only mask option supported is
* NSDirectoryEnumerationSkipsHiddenFiles.<br>
* The current implementation handles only files and property keys are ignored.
*/
- (NSArray*) contentsOfDirectoryAtURL:(NSURL*)url
includingPropertiesForKeys:(NSArray*)keys
options:(NSDirectoryEnumerationOptions)mask
error:(NSError **)error;
- (NSArray*) contentsOfDirectoryAtURL: (NSURL*)url
includingPropertiesForKeys: (NSArray*)keys
options: (NSDirectoryEnumerationOptions)mask
error: (NSError **)error;
#endif
#if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
/**
* Returns an array of NSStrings of the contents of the specified directory.<br />
* Returns an array of NSStrings of the contents of the
* specified directory.<br />
* The listing does <strong>not</strong> recursively list subdirectories.<br />
* The special files '.' and '..' are not listed.<br />
* Indicates an error by returning nil (eg. if path is not a directory or

84
INSTALL
View file

@ -1,11 +1,11 @@
0.1 Introduction
================
1 Introduction
==============
If you are installing this package as part of the GNUstep core packages,
read the file GNUstep-HOWTO for more complete instructions on how to
install the entire GNUstep package (including this library).
GNUstep-HOWTO is located in the gnustep-make package or at
`http://www.gnustep.org'
<http://www.gnustep.org>
This version of gnustep-base requires gnustep-make version 2.0.0 or
higher.
@ -13,17 +13,11 @@ higher.
Other external libraries that you may need to install include:
* ffi (HIGHLY RECOMMENDED)
* icu (HIGHLY RECOMMENDED)
* gnutls (HIGHLY RECOMMENDED)
* libxml2 (RECOMMENDED)
* libxslt (OPTIONAL)
* iconv (OPTIONAL, not needed if you have glibc)
* openssl (OPTIONAL, not needed if you have gnutls)
If you are installing the GNUstep libraries individually, make sure
@ -36,7 +30,7 @@ and you have sourced the makefile script:
are going to use graphical applications.
When you configure this library, make sure you use the same
configuration options as with gstep-make. Some additional options to
configuration options as with gstep-make. Some additional options to
configure are described below.
Quick installation instructions:
@ -51,36 +45,36 @@ configure are described below.
make
make install
0.2 Configuration
=================
2 Configuration
===============
Configuration is performed by running the `configure' program at a
shell prompt. You may want to use some of the optional arguments to the
`configure' program. Type `configure --help' for a list of these. It is
not likely that you will need to use the `--prefix' option, since
Configuration is performed by running the 'configure' program at a shell
prompt. You may want to use some of the optional arguments to the
'configure' program. Type 'configure --help' for a list of these. It
is not likely that you will need to use the '--prefix' option, since
gstep-base will automatically install in the directory specified by the
`GNUSTEP_SYSTEM_ROOT' environment variable (specified when you
installed gnustep-make).
'GNUSTEP_SYSTEM_ROOT' environment variable (specified when you installed
gnustep-make).
Some configuration options for the base library need to be specified
when configuring the gnustep-make package. In most cases, it is a good
when configuring the gnustep-make package. In most cases, it is a good
idea to specify the same configuration options when configuring both
packages, just to make sure.
Also make sure you've read the machine-specific instructions for your
particular operating system and CPU. These instructions come with the
GNUstep-HOWTO and are also located at the GNUstep web site at
`http://www.gnustep.org'.
<http://www.gnustep.org>.
0.2.1 Reading Command-Line Arguments
------------------------------------
2.1 Reading Command-Line Arguments
----------------------------------
There are two features that change how GNUstep gets access to
command-line arguments and environment variables (normally passed to
the program in the `main()' function. These features are
`--enable-pass-arguments' and the `--enable-fake-main' option(s).
command-line arguments and environment variables (normally passed to the
program in the 'main()' function. These features are
'--enable-pass-arguments' and the '--enable-fake-main' option(s).
The fake-main option _secretly_ renames the `main()' function and
The fake-main option _secretly_ renames the 'main()' function and
substitutes it's own function which stores the command line arguments
before calling the real main.
@ -90,54 +84,54 @@ line
[NSProcessInfo initializeWithArguments:argv count:argc environment:env];
in the `main()' function of their program.
in the 'main()' function of their program.
Normally, the configure script will determine if a program can read
process information directly from the system (for use by the class
NSProcessInfo) and enable or disable the fake-main hack automatically,
but if you find that configure is not doing this correctly, you can
force the fake-main hack to be used, which will always work. Note that
force the fake-main hack to be used, which will always work. Note that
if the fake-main hack is enabled, you need to include the header file
GSConfig.h in you main program - this is done by default if you include
NSObject.h or Foundation.h. If you want to avoid the whole idea of the
fake-main hack, you can use the pass-arguments option. In this case you
NSObject.h or Foundation.h. If you want to avoid the whole idea of the
fake-main hack, you can use the pass-arguments option. In this case you
will be forced to call the NSProcessInfo initializeWithArguments method
to pass the program arguments to NSProcessInfo (This would be done
automatically if you use the NSApplicationMain function in a gui
application).
0.2.2 FFI Library
-----------------
2.2 FFI Library
---------------
GNUstep's NSInvocations and Distributed Objects code involves detailed
manipulation of the stack and function calls using a library that
implements a Foreign-Function Interface (FFI), such as the libffi
library. Use of libffi is automatically enabled if the libffi library
library. Use of libffi is automatically enabled if the libffi library
is found (and the same with ffcall, although libffi takes precedence),
unless specifically disabled with `--disable-do'.
unless specifically disabled with '--disable-do'.
0.2.3 OpenSSL
-------------
2.3 OpenSSL
-----------
While GNUstep base has full support for HTTPS/TLS using gnustls, it also
has optional support for using the OpenSSL libraries for secure URL
connections (though only with the NSURL classes). This functionality is
connections (though only with the NSURL classes). This functionality is
compiled as a separate bundle since the OpenSSL license is not
compatible with GPL, and in the hopes that if someone writes an openssl
replacement, it can quickly be used by creating another bundle. The
replacement, it can quickly be used by creating another bundle. The
openssl libraries need to be installed for this to work.
0.3 Compilation
===============
3 Compilation
=============
To compile this library, type make. After this is complete, type make
install (make sure you are the root user). Some additional options you
can use with make are `debug=yes' to make a debugging version of the
library and `shared=no' to make a static version of the library. See
To compile this library, type make. After this is complete, type make
install (make sure you are the root user). Some additional options you
can use with make are 'debug=yes' to make a debugging version of the
library and 'shared=no' to make a static version of the library. See
the gstep-make package for more information on these options.
If you can't install gstep-base as root, be sure to edit the
`Tools/gdomap.h' file and uncomment the last line.
'Tools/gdomap.h' file and uncomment the last line.
Copyright (C) 2005 Free Software Foundation

572
NEWS

File diff suppressed because it is too large Load diff

Binary file not shown.

29
README
View file

@ -7,16 +7,16 @@ object collections, byte streams, typed coders, invocations,
notifications, notification dispatchers, moments in time, network ports,
remote object messaging support (distributed objects), and event loops.
It provides functionality that aims to implement the non-graphical
It provides functionality that aims to implement the non-graphical
portion of the Apple's Cocoa frameworks (the Foundation library) which
came from the OpenStep standard.
1.1 Initial reading
===================
The file `NEWS' has the library's feature history.
The file 'NEWS' has the library's feature history.
The files `INSTALL' or `GNUstep-HOWTO' (from the web site) gives
The files 'INSTALL' or 'GNUstep-HOWTO' (from the web site) gives
instructions for installing the library.
1.2 License
@ -24,19 +24,19 @@ instructions for installing the library.
The GNUstep libraries and library resources are covered under the GNU
Lesser Public License. This means you can use these libraries in any
program (even non-free programs). If you distribute the libraries along
program (even non-free programs). If you distribute the libraries along
with your program, you must make the improvements you have made to the
libraries freely available. You should read the COPYING.LIB file for
more information. All files in the `Source', `Headers'
`NSCharacterSets', `NSTimeZones', `Resources', and `SSL' directories
and subdirectories under this are covered under the LGPL.
libraries freely available. You should read the COPYING.LIB file for
more information. All files in the 'Source', 'Headers'
'NSCharacterSets', 'NSTimeZones', 'Resources', and 'SSL' directories and
subdirectories under this are covered under the LGPL.
GNUstep tools, test programs, and other files are covered under the
GNU Public License. This means if you make changes to these programs,
you cannot charge a fee, other than distribution fees, for others to
use the program. You should read the COPYING file for more information.
All files in the `Documentation', `Examples', `Tools', `config', and
`macosx' directories are covered under the GPL.
GNU Public License. This means if you make changes to these programs,
you cannot charge a fee, other than distribution fees, for others to use
the program. You should read the COPYING file for more information.
All files in the 'Documentation', 'Examples', 'Tools', 'config', and
'macosx' directories are covered under the GPL.
With GNUstep-Base, we strongly recommend the use of the ffcall
libraries, which provides stack frame handling for NSInvocation and
@ -51,10 +51,9 @@ are under GNU LGPL" (Text in quotes provided by the author of ffcall).
could be better.
Please log bug reports on the GNUstep project page
`http://savannah.gnu.org/bugs/?group=gnustep' or send bug reports
<http://savannah.gnu.org/bugs/?group=gnustep> or send bug reports
to <bug-gnustep@gnu.org>.
Happy hacking!
Copyright (C) 2005 Free Software Foundation

View file

@ -2424,6 +2424,7 @@ fail:
* whitespace and try again.
* If we read end of data, or anything which is invalid inside an
* identifier, we return nil.
* If we read a GS_GENERIC... macro, we return its first argument.
*/
- (NSString*) parseIdentifier
{
@ -2445,6 +2446,28 @@ try:
tmp = [[NSString alloc] initWithCharacters: &buffer[start]
length: pos - start];
if ([tmp isEqual: @"GS_GENERIC_CLASS"]
|| [tmp isEqual: @"GS_GENERIC_TYPE"])
{
[self skipSpaces];
if (pos < length && buffer[pos] == '(')
{
pos++;
/* Found a GS_GENERIC_ macro ... the first
* identifier inside the macro arguments is the
* name we want to return.
*/
RELEASE(tmp);
tmp = RETAIN([self parseIdentifier]);
while (pos < length)
{
if (buffer[pos++] == ')')
{
break;
}
}
}
}
val = [wordMap objectForKey: tmp];
if (val == nil)
{

View file

@ -7,9 +7,9 @@ GCC_VERSION=4.0.0
# The version number of this release.
MAJOR_VERSION=1
MINOR_VERSION=24
SUBMINOR_VERSION=8
SUBMINOR_VERSION=9
# numeric value should match above
VERSION_NUMBER=124.8
VERSION_NUMBER=124.9
GNUSTEP_BASE_VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION}
VERSION=${GNUSTEP_BASE_VERSION}