From ff3f7be5fc9acb4604198486e572527f97d45ee7 Mon Sep 17 00:00:00 2001 From: theraven Date: Mon, 10 Jan 2011 15:11:50 +0000 Subject: [PATCH] Added 1.1 announcement. Committed some work-in-progress clang-specific build stuff (don't use this, it doesn't work correctly yet). --- ANNOUNCE | 16 ++++++++-------- ANNOUNCE.1.0 | 33 +++++++++++++++++++++++++++++++++ ANNOUNCE.1.1 | 33 +++++++++++++++++++++++++++++++++ Makefile.clang | 26 +++++++++++++------------- exports.txt | 17 ----------------- 5 files changed, 87 insertions(+), 38 deletions(-) create mode 100644 ANNOUNCE.1.0 create mode 100644 ANNOUNCE.1.1 diff --git a/ANNOUNCE b/ANNOUNCE index 730984d..68d0a2f 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,18 +1,20 @@ -GNUstep Objective-C Runtime 1.0 +GNUstep Objective-C Runtime 1.1 =============================== -This is the first official release of the GNUstep Objective-C runtime (a.k.a. +This is the second official release of the GNUstep Objective-C runtime (a.k.a. libobjc2). This runtime was designed to support the features of Objective-C 2 -for use with GNUstep and other Objective-C programs. +for use with GNUstep and other Objective-C programs. This release contains +minor bug fixes and provides compatibility with synthesised declared properties +from GCC 4.6 and recent versions of clang. You may obtain the code for this release from subversion at the following subversion branch: -svn://svn.gna.org/svn/gnustep/libs/libobjc2/1.0 +svn://svn.gna.org/svn/gnustep/libs/libobjc2/1.1 Alternatively, a tarball is available from: -http://download.gna.org/gnustep/libobjc2-1.0.tar.bz2 +http://download.gna.org/gnustep/libobjc2-1.1.tar.bz2 The runtime library is responsible for implementing the core features of the object model, as well as exposing introspection features to the user. The @@ -28,6 +30,4 @@ Clang 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 . A 1.1 release, -fixing any bugs that are encountered in wider deployment, is planned to -coincide with the next GNUstep release. +the GNUstep Developer mailing list . diff --git a/ANNOUNCE.1.0 b/ANNOUNCE.1.0 new file mode 100644 index 0000000..730984d --- /dev/null +++ b/ANNOUNCE.1.0 @@ -0,0 +1,33 @@ +GNUstep Objective-C Runtime 1.0 +=============================== + +This is the first official release of the GNUstep Objective-C runtime (a.k.a. +libobjc2). This runtime was designed to support the features of Objective-C 2 +for use with GNUstep and other Objective-C programs. + +You may obtain the code for this release from subversion at the following +subversion branch: + +svn://svn.gna.org/svn/gnustep/libs/libobjc2/1.0 + +Alternatively, a tarball is available from: + +http://download.gna.org/gnustep/libobjc2-1.0.tar.bz2 + +The runtime library is responsible for implementing the core features of the +object model, as well as exposing introspection features to the user. The +GNUstep runtime implements Apple's Objective-C Runtime APIs, and a small number +of GCC APIs for legacy compatibility. + +This library is based on the Étoilé Objective-C Runtime, an earlier research +prototype, and includes support for non-fragile instance variables, +type-dependent dispatch, and object planes. It is fully compatible with the +FSF's GCC Objective-C ABI and also implements a new ABI that is supported by +Clang 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 . A 1.1 release, +fixing any bugs that are encountered in wider deployment, is planned to +coincide with the next GNUstep release. diff --git a/ANNOUNCE.1.1 b/ANNOUNCE.1.1 new file mode 100644 index 0000000..68d0a2f --- /dev/null +++ b/ANNOUNCE.1.1 @@ -0,0 +1,33 @@ +GNUstep Objective-C Runtime 1.1 +=============================== + +This is the second official release of the GNUstep Objective-C runtime (a.k.a. +libobjc2). This runtime was designed to support the features of Objective-C 2 +for use with GNUstep and other Objective-C programs. This release contains +minor bug fixes and provides compatibility with synthesised declared properties +from GCC 4.6 and recent versions of clang. + +You may obtain the code for this release from subversion at the following +subversion branch: + +svn://svn.gna.org/svn/gnustep/libs/libobjc2/1.1 + +Alternatively, a tarball is available from: + +http://download.gna.org/gnustep/libobjc2-1.1.tar.bz2 + +The runtime library is responsible for implementing the core features of the +object model, as well as exposing introspection features to the user. The +GNUstep runtime implements Apple's Objective-C Runtime APIs, and a small number +of GCC APIs for legacy compatibility. + +This library is based on the Étoilé Objective-C Runtime, an earlier research +prototype, and includes support for non-fragile instance variables, +type-dependent dispatch, and object planes. It is fully compatible with the +FSF's GCC Objective-C ABI and also implements a new ABI that is supported by +Clang 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 . diff --git a/Makefile.clang b/Makefile.clang index d7de476..0b2c081 100644 --- a/Makefile.clang +++ b/Makefile.clang @@ -6,7 +6,7 @@ VERSION = 4 #CC=clang -CFLAGS += -fPIC +CFLAGS += -fPIC -g CPPFLAGS += -DTYPE_DEPENDENT_DISPATCH -DGNUSTEP CPPFLAGS += -D__OBJC_RUNTIME_INTERNAL__=1 -D_XOPEN_SOURCE=500 @@ -52,21 +52,20 @@ libobjc.a: libobjc.o @ld -r -s -o $@ libobjc.o libobjc.o: libobjc.bc - llc -O3 -filetype=obj -o libobjc.o libobjc.bc + @echo Generating native object code... + @llc -O3 -filetype=obj -o libobjc.o libobjc.bc -libobjc.bc: $(OBJECTS) +libobjc.bc: $(OBJECTS) exports.txt @echo Linking bitcode... - pwd - llvm-ld -internalize-public-api-file=../exports.txt -link-as-library -native -o libobjc.bc $(OBJECTS) + @llvm-ld -internalize -internalize-public-api-file=../exports.txt -link-as-library -native -o libobjc.bc $(OBJECTS) -.c.bc: obj - clang $(CPPFLAGS) $(CFLAGS) -emit-llvm -c $< -o $@ +.c.bc: + @echo Compiling $<... + @clang $(CPPFLAGS) $(CFLAGS) -emit-llvm -c $< -o $@ -.m.bc: obj - clang $(CPPFLAGS) $(CFLAGS) -emit-llvm -c $< -o $@ - -obj: - mkdir obj +.m.bc: + @echo Compiling $<... + @clang $(CPPFLAGS) $(CFLAGS) -emit-llvm -c $< -o $@ install: all install -m 444 libobjc.so.$(VERSION) $(LIB_DIR) @@ -76,4 +75,5 @@ install: all install -m 444 objc/*.h $(HEADER_DIR)/objc clean: - rm -f obj/* + @echo Cleaning... + @rm -f obj/* diff --git a/exports.txt b/exports.txt index bcf08c4..102a3aa 100644 --- a/exports.txt +++ b/exports.txt @@ -1,8 +1,3 @@ -.objc_sel_nameautorelease -.objc_sel_namecopy -.objc_sel_namedealloc -.objc_sel_namerelease -.objc_sel_nameretain _Block_copy _Block_object_assign _Block_object_dispose @@ -53,16 +48,12 @@ class_getSuperclass class_getVersion class_getWeakIvarLayout class_isMetaClass -class_pose_as class_replaceMethod class_respondsToSelector class_setIvarLayout class_setSuperclass class_setVersion class_setWeakIvarLayout -class_table_get_safe -class_table_insert -class_table_internal_create get_imp ivar_getName ivar_getOffset @@ -84,9 +75,6 @@ objc_allocateClassPair objc_atomic_malloc objc_calloc objc_check_abi_version -objc_collect_garbage_data -objc_compute_ivar_offsets -objc_copy_dtable_for_class objc_create_block_classes_as_subclasses_of objc_disposeClassPair objc_enumerationMutation @@ -102,10 +90,6 @@ objc_get_class objc_get_meta_class objc_get_slot objc_get_type_qualifiers -objc_init_buffered_statics -objc_init_load_messages_table -objc_init_protocols -objc_init_statics objc_layout_structure objc_layout_structure_get_info objc_layout_structure_next_member @@ -164,7 +148,6 @@ sel_get_type sel_get_typed_uid sel_get_uid sel_isEqual -sel_is_mapped sel_registerName sel_registerTypedName_np sel_register_name