diff --git a/ANNOUNCE b/ANNOUNCE index 49222fa..2c6f517 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -10,8 +10,8 @@ release include: - Support for small objects (ones hidden inside a pointer). On 32-bit systems, the runtime permits one small object class, on 64-bit systems it permits 4. - This is used by GNUstep for small NSNumber instances, and these are used by - LanguageKit for message sending to small integers. + This is used by GNUstep for small NSNumber and NSString instances, and these + are used by LanguageKit for message sending to small integers. - Support for prototype-style object orientation. You can now add methods, as well as associated references, to individual objects, as well as cloning @@ -23,7 +23,14 @@ release include: and results in a 10% smaller total binary size. - A fully maintained POSIX Makefile to make bootstrapping builds and packaging - easier. + easier. This will be used automatically if GNUstep Make is not installled. + +- Improvements to the included LLVM optimisation passes. Testing on a 2.8GHz + Xeon, a loop of 200,000,000 class messages took 0.8 seconds with all + optimisations enabled (including speculative inlining). With -Os, the test + took 2 seconds. With explicit IMP caching in the source code, the test took + 1.2 seconds. For reference, the same test using the GCC Objective-C runtime + took 11 seconds (when compiled with either Clang/LLVM or GCC). Various features of this release required some per-platform assembly code. For the 1.6.0 release, ARM, x86 and x86-64 (with the SysV ABI, not with the Win64 @@ -51,6 +58,6 @@ FSF's GCC Objective-C ABI and also implements a new ABI that is supported by Clang and Étoilé's LanguageKit and is required for some of the newer features. Although the runtime has been tested by several people, and is being used -extensively by the Étoilé project, it is entirely new (MIT licensed) code and -may still contain bugs. If you come across any problems, please report them to -the GNUstep Developer mailing list . +extensively by the Étoilé project, it is relatively new code and may still +contain bugs. If you come across any problems, please report them to the +GNUstep Developer mailing list . diff --git a/Makefile b/Makefile index 3b89ea4..1adb717 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,8 @@ CPPFLAGS += -D__OBJC_RUNTIME_INTERNAL__=1 -D_XOPEN_SOURCE=500 -D__BSD_VISIBLE=1 # Suppress warnings about incorrect selectors CPPFLAGS += -DNO_SELECTOR_MISMATCH_WARNINGS # Some helpful flags for debugging. -CPPFLAGS += -g -O0 -fno-inline +#CPPFLAGS += -g -O0 -fno-inline +CPPFLAGS += -O3 PREFIX?= /usr/local LIB_DIR= ${PREFIX}/lib