theraven
57a9acb13c
Some test case cleanups.
2013-02-28 14:41:51 +00:00
theraven
aad22cb092
Fix method_setImplementation bug.
2013-02-28 14:31:53 +00:00
theraven
58a574b34f
Fixed a great many property introspection bugs and added test case.
...
Test case by Jean-Charles Bertin!
2013-02-28 14:09:00 +00:00
theraven
8cce906a41
Hopefully fix the build on crazy libc implementations.
2013-02-11 14:51:20 +00:00
theraven
c73b7a2f0b
Mark all libobjc2 headers as system headers when not compiling the runtime
...
itself. This makes clang hide warnings.
2013-01-31 17:40:53 +00:00
theraven
7218882f7e
Apparently clang 3.2 had the same bug as 3.1...
2013-01-30 18:48:34 +00:00
theraven
3fbdbe4d02
Work around a bug in clang 3.1 that declares objc_msgSend_stret as a builtin
...
with the wrong signature.
2013-01-29 13:07:04 +00:00
theraven
197dbaba7c
Add building / installation instructions for libobjc2.
2013-01-15 15:40:02 +00:00
theraven
9e93a413d1
Print some memory usage statistics on exit if LIBOBJC_MEMORY_PROFILE is
...
defined.
2013-01-15 12:40:24 +00:00
theraven
0e90d9645d
Tweak the ManyManySelectors test case so that it doesn't hit a pathological
...
case in the selector hashing function and use insane amounts of memory.
2013-01-15 12:38:42 +00:00
theraven
1b7a492ab2
Fix a small memory leak of selector names when registering selectors with the
...
same name but different types.
2013-01-14 18:13:48 +00:00
theraven
d7df8c415b
Move the selector table to being protected by a mutex for reads so that we can
...
recover memory from the smaller ones. Selector lookups are not on the critical
path for message sends, so the cost of the extra memory is likely to be larger
than the cost of acquiring a lock in sel_getName().
2013-01-14 16:06:38 +00:00
theraven
eb234ea26a
Fix the case where the number of selectors grows to more than 2^16 and we need
...
to fall back to 3-level dtables.
Added a test case that registers far more selectors than a sane program
contains and tries to use them.
2013-01-14 15:07:23 +00:00
theraven
1a386c9efd
Fix the GOT-relative addressing in 32-bit message sends.
...
Thanks to Banlu for helping track this down.
2013-01-14 14:59:01 +00:00
theraven
8ee95e805a
Install the message.h header.
2013-01-14 10:51:57 +00:00
theraven
ffa7dbad8d
Cleaner version of the last fix.
2013-01-14 10:41:41 +00:00
theraven
fb2e6756f6
Fix (and add test case for) a bug where objc_allocateClassPair() failed if the
...
superclass had not yet been loaded.
2013-01-14 10:34:17 +00:00
theraven
ae3b44ac78
Fix clang's stupid warning to work around a bug in OS X headers...
2013-01-13 17:31:50 +00:00
theraven
63bdbc9440
Add another missing file...
2013-01-13 17:21:16 +00:00
theraven
0b883f2cc2
Add missing test.
2013-01-13 11:23:36 +00:00
theraven
ca25388b37
Fix a lock-order reversal where one thread calls some dtable-manipulating
...
function while another is initializing.
2013-01-12 16:29:20 +00:00
theraven
65e3dc736c
Added test of forwarding mechanisms.
2013-01-12 15:49:39 +00:00
theraven
b757ea9ffb
Tidied up tests, made them work with make as well as ninja generators for
...
CMake.
2013-01-12 13:24:21 +00:00
theraven
6317b79a10
Implemented the new exception ABI, and a load of tests for it. This is used by
...
clang trunk if -fobjc-runtime-1.7 is specified and provides significantly
better interoperability with foreign exceptions.
Note: Most of the exception tests will not pass with gcc or clang < 3.3. They
test things that are impossible to implement quite correctly with the
GCC-compatible exception ABI.
Also updated the release notes to reflect recent improvements.
2013-01-12 13:17:36 +00:00
qmathe
7e5d437065
Restored r35794 changes (that were removed in r35893) but applied them to the
...
GNUMakefile rather than the Makefile.
This fixes segfaults in programs compiled with Clang using -fobjc-nonfragile-abi
on Linux x86-32, for a GNUmakefile-based build with GNUstep Make active.
2013-01-11 13:35:42 +00:00
theraven
0dcb0885bf
Update opts to work with LLVM trunk (3.3).
2013-01-10 09:22:25 +00:00
theraven
aeb0c913b9
Enabled property attribute test, fixed failure.
2013-01-09 21:50:11 +00:00
theraven
ef5f8b744d
Added more test cases.
2013-01-09 21:42:16 +00:00
theraven
bcf6e32311
Make it possible to disable building the tests.
2013-01-09 19:02:00 +00:00
theraven
d1336543d8
Build with exceptions (fixes the issue with crashes where +initialize throws)
...
Start adding the tests to CMake.
2013-01-09 19:00:17 +00:00
theraven
d1f3463ac7
Make sure that there is always a comma between T and V in property attributes.
2013-01-09 18:56:05 +00:00
theraven
95aef24803
Fix crash in ARC assignment.
...
Reported by Banlu Name-of-the-week!
2013-01-05 16:13:23 +00:00
theraven
c6614a218c
Install libobjcxx if we're building it.
2013-01-02 14:30:02 +00:00
theraven
86d07fa024
Install libobjcxx, if it's built.
2012-12-23 11:47:07 +00:00
theraven
ee927d20a5
Remove definitions that don't appear to be needed anymore.
2012-12-23 10:53:38 +00:00
theraven
c98014b667
Actually commit the disabling of the llvm opts, and not the output from cmake
...
help...
2012-12-23 10:31:16 +00:00
theraven
be2ee54190
Default building the LLVM optimisations to off if the LLVM CMake module is not
...
found.
2012-12-23 10:15:10 +00:00
theraven
150aa4ef19
Fix linkage in libobjc.
2012-12-22 16:43:17 +00:00
theraven
db3cbec65a
Make sure that the asm files are built. Add a configuration option for the include headers so OpenBSD can put them in include/gnustep/objc/
2012-12-22 11:35:29 +00:00
theraven
a5cc173310
Correctly handle the case of GNUstep config not existing.
2012-12-22 11:12:42 +00:00
theraven
651962702a
Add uninstall target to CMake.
2012-12-22 11:04:20 +00:00
theraven
5cd0a37e27
Change how we do GOT-relative relocations in objc_msgSend on i386 to make gas
...
happier.
2012-12-22 09:31:41 +00:00
theraven
bfc1a2ed11
Add a flag for setting the library name.
2012-12-22 09:22:12 +00:00
theraven
501d5b9828
Set the C++ runtime to nothing if it is not found.
2012-12-22 09:18:18 +00:00
theraven
2841400e0c
Add CPack configuration to CMakeLists.txt. RPMs, DEBs and tarballs can now be built directly from the build system.
2012-12-18 11:57:55 +00:00
theraven
080107e2db
Correctly pass the LLVM version in to the LLVM passes as they are built.
2012-12-17 19:29:39 +00:00
theraven
a5b4ab9937
Specify the current runtime version to target if the compiler supports this
...
flag. This means that the .m files in the runtime will take advantage of
features of this runtime when compiled with a recent clang.
2012-12-17 16:11:56 +00:00
theraven
d0562d2127
Added helper function for C++ non-POD type atomic properties.
...
Fixed prototypes of specialised property functions.
2012-12-17 15:51:19 +00:00
theraven
a9be008911
Add optimised special-case property function.
2012-12-17 12:52:16 +00:00
theraven
3c7d6f8fd9
Fix merging CFLAGS.
2012-12-14 09:40:39 +00:00