59 Commits (7c23a07bb498d093b80e844230294e8c4a43fc51)

Author SHA1 Message Date
David Chisnall 7c23a07bb4 Various CMake cleanups and modernisations.
This adds a dependency on a version of CMake with support for Objective-C,
removing a number of hacks to make CMake work and introduces a few
modernisations:

 - Options use CMake's `option` mechanism.
 - A lot of things now use generator expressions, which should improve the
   things like the multi-config Ninja generator.
 - We no longer depend on hacks to build in CI.

At the same time, a few other things are simplified:

 - There is no longer support for building without C++ support and we depend on
   a C++ standard library, not just a runtime. This makes it possible to use
   more C++ features inside the runtime.
 - We no longer support clang-cl on Windows and instead require clang.exe.
 - Support for the Boehm GC has been removed.
3 years ago
David Chisnall 15ae929a2c Add libc++abi note to ANNOUNCE. 5 years ago
David Chisnall b685cc94eb Reset ANNOUNCE after 2.1 release. 5 years ago
David Chisnall e753b97615 Finish announcement for 2.1 release. 5 years ago
David Chisnall 48c875fa44 Update the release announcement for version 2.1 5 years ago
David Chisnall e5eaeae9ac Update ANNOUNCE. 7 years ago
David Chisnall d4438095ed Add note to ANNOUNCE about WinObjC. 7 years ago
David Chisnall 782b1ec3b3 Update some docs. 8 years ago
David Chisnall f0884dda76 Add some release notes. 8 years ago
David Chisnall c5cc4b9742 Update 2.0 release announcement. 8 years ago
David Chisnall e235ffbff1 Add some more release notes. 8 years ago
David Chisnall 2542638b23 Add a warning to the announcement. 8 years ago
David Chisnall 6d9f2a6586 Add some release announcement text. 8 years ago
David Chisnall 03141616ab Added notes to ANNOUNCE about the Thumb-2 work. 10 years ago
David Chisnall b952a21abe Add objc_msgSend for AArch64.
An interesting feature of the AArch64 ABI simplifies this code relative to other platforms.  AArch64 reserves an extra register (x8) for the address of struct returns, giving the
10 years ago
David Chisnall afc784175c Update release notes for last commit. 10 years ago
David Chisnall 666c2493ec Work in progress tweaks to the release announcement. 10 years ago
David Chisnall bdfcc0fc79 Fix copy and paste error in release announcement. 11 years ago
David Chisnall e232cdb0bd Updated URLs in the ANNOUNCE. 11 years ago
theraven f50bc6cf33 Added support for tracing message sends to the runtime.
Currently x86-64 only.
13 years ago
theraven 3e2176a824 Update ANNOUNCE to clean slate for next release. 13 years ago
theraven 95204ad094 Fixed svn URL for 1.7 release announcement. 13 years ago
theraven 8d954d1cb8 When linking libdispatch, register to create / destroy autorelease pools at the
correct time.  This fixes the intermittent problems when using libdispatch from
LanguageKit, among other things.
13 years ago
theraven ed84a2b0a2 Updated release announcement. 13 years ago
theraven dbe4ed41fa Updated release announcement. 13 years ago
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.
13 years ago
theraven d0562d2127 Added helper function for C++ non-POD type atomic properties.
Fixed prototypes of specialised property functions.
13 years ago
theraven 4c6f6dbdcf Updated WIP announcement for 1.7. 13 years ago
theraven abff244ef9 Started 1.6.1 release announcement, updated LLVM optimisations to work with LLVM 3.1. 14 years ago
theraven 1e30d5aea7 And a couple more tweaks. 14 years ago
theraven 167ac3f425 Small tweak to the wording of the release announcement. 14 years ago
theraven e22fb1164b Update the release announcement and enable -O3 in preparation for the release. 14 years ago
theraven 210e150ffb Updated the release announcement. 14 years ago
theraven 4796a41e4e Finished implementing the new runtime APIs. 14 years ago
theraven 5d3c047fa2 Finished implementing JavaScript-style prototypes. 15 years ago
theraven b54719abf1 Basic support for prototype-style object orientation (you can now add methods to an individual object). 15 years ago
theraven 8af52846b7 Small object (hidden in a pointer) support. 15 years ago
theraven f6d9318619 s/fifth/sixth 15 years ago
theraven 0c6c31acec Fix file locations for 1.5 release. 15 years ago
theraven ae7cefe382 Disable GC by default (lots of people moan that it doesn't compile)
Update ANNOUNCE.
15 years ago
theraven 3e88293f74 Added mention of ARC to ANNOUNCE. 15 years ago
theraven 0c72e2e418 Use typed allocations for the hash table entries. This makes sure that the GC won't treat the jump table bitfield as a pointer.
Store the refcount structures inside the hash table, rather than in a chained structure.  This uses less space and should be easier for the GC to scan (less cache used).
15 years ago
theraven 7deef6854a Tweaked release announcement to reflect the fact that GC is built by default unless explicitly disabled. 15 years ago
theraven 444688895a Updated Makefile to compile correctly again.
Added a really ugly hack so that the ABI versions of the three .m files are not checked.  This will (hopefully!) prevent the GC being enabled when libobjc is loaded after being compiled with -fobjc-gc.
15 years ago
theraven 9dcc66f7f6 Make sure that associated objects and blocks use GC-scanned memory in GC mode.
Blocks do not yet support __weak bound variables.  This needs fixing before the release.
15 years ago
theraven ad16172625 First pass at implementing Apple-compatible GC using Boehm. Still needs some tidying, but the following work:
- __strong pointers, preventing objects from being freed

_ __weak pointers are automatically freed when the last remaining __strong pointer goes away

- objc_gc_{retain,release}_np() functions, which can be used to implement CFRetain() and CFRelease() (adds an reference count - the object will not be collected until after its last retain is gone.
15 years ago
theraven 84fdd38b98 Some tweaks to the release announcement. 15 years ago
theraven 34d4c6b12e Updated release announcement. 15 years ago
theraven 649ce9dd7f Updated release announcement.
Made the LLVM optimisations build by default (if LLVM is installed).
15 years ago
theraven 975596f764 Updated documentation. 15 years ago