ObjFW  History of src/runtime/runtime.h of c3581d80a255c3f5

History of the file that is called src/runtime/runtime.h at check-in c3581d80a255c3f5

2017-07-09
15:29
Deleted: runtime: Rename include to ObjFW-RT.h (check-in: [5bb771755d] user: js, branch: trunk, size: 0)
2017-05-16
23:22
[134f947253] part of check-in [5116a3709c] runtime.h: Never undefine _Nullable / _Nonnull (check-in: [5116a3709c] user: js, branch: trunk, size: 9093) [annotate] [blame] [check-ins using] [diff]
2017-05-14
02:15
[c2bf2e5fcb] part of check-in [8c7e612885] runtime: Add nullability annotations (check-in: [8c7e612885] user: js, branch: trunk, size: 8465) [annotate] [blame] [check-ins using] [diff]
2017-05-13
22:38
[5f553e5436] part of check-in [504e13cf00] Reduce retain + autorelease (check-in: [504e13cf00] user: js, branch: trunk, size: 6909) [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
[bd21f431a6] part of check-in [4af49a13c3] Small code style change

Casts are now written like types in variable declarations. (check-in: [4af49a13c3] user: js, branch: trunk, size: 7068) [annotate] [blame] [check-ins using] [diff]

2017-04-02
15:30
[35cbcdf16d] part of check-in [4e40a57efa] Make __objc_exec_class() take a void*

This is necessary for ObjC++ with GCC, as otherwise, this generates an
error. Since the objc_abi_module struct is private anyway, there is not
much reason to have the argument of that type. (check-in: [4e40a57efa] user: js, branch: trunk, size: 7045) [annotate] [blame] [check-ins using] [diff]

2017-01-09
17:36
[dffb928599] part of check-in [44f45c2e35] Update copyright

Forgot to add 2017, even though I already did quite some changes in
2017. (check-in: [44f45c2e35] user: js, branch: trunk, size: 7063) [annotate] [blame] [check-ins using] [diff]

2017-01-08
20:14
[33b194a33a] part of check-in [f57765b5c6] Clean up the dllexport mess a little

For many of those, it's not actually required to declare them dllexport.
Declaring them at all is enough to prevent Clang from using its implicit
declaration that is dllimport. (check-in: [f57765b5c6] user: js, branch: trunk, size: 7057) [annotate] [blame] [check-ins using] [diff]

2016-07-03
12:01
[3f8b6a0471] part of check-in [5e267364ae] runtime: Add objc_enumerationMutation()

This was provided by OFObject before, but should actually be provided by
the runtime, as the compiler can generate code calling into it. (check-in: [5e267364ae] user: js, branch: trunk, size: 6446) [annotate] [blame] [check-ins using] [diff]

11:24
[ee48ca9342] part of check-in [d4cae4c963] runtime: Add class_addMethod()

Also moves out some stuff to functions to be reusable by
class_addMethod(). (check-in: [d4cae4c963] user: js, branch: trunk, size: 6335) [annotate] [blame] [check-ins using] [diff]

2016-07-02
22:26
[ddc272f296] part of check-in [5088c339bf] runtime: Add objc_{allocate,register}ClassPair (check-in: [5088c339bf] user: js, branch: trunk, size: 6276) [annotate] [blame] [check-ins using] [diff]
2016-05-28
23:02
[a4ce0a161a] part of check-in [03e6d6db98] Add support for zeroing weak references (check-in: [03e6d6db98] user: js, branch: trunk, size: 6013) [annotate] [blame] [check-ins using] [diff]
2016-01-03
00:41
[6046b12ca6] part of check-in [2a27cf3000] Update copyright

While at it, also update the mail address. (check-in: [2a27cf3000] user: js, branch: trunk, size: 5970) [annotate] [blame] [check-ins using] [diff]

2015-06-14
10:45
[abe66d7e40] part of check-in [b7097a67b6] Add OF_NONNULL / OF_NULLABLE and use that instead

Using __nonnull directly doesn't work on systems using glibc, as glibc
defines __nonnull as a parameterized define. While this does not fix the
problem of Clang introducing __nonnull even though it conflicts with
glibc, this at least means it's possible again to compile things with
versions of Clang that don't support __nonnull on systems with glibc. (check-in: [b7097a67b6] user: js, branch: trunk, size: 5966) [annotate] [blame] [check-ins using] [diff]

2015-01-03
20:57
[d6e7a5e1d6] part of check-in [cfd374b906] Update copyright (check-in: [cfd374b906] user: js, branch: trunk, size: 5966) [annotate] [blame] [check-ins using] [diff]
2014-05-15
15:32
[eb23c8ebea] part of check-in [1ebb9eb7b3] Multiple dtable / sparse array improvements

* dtable.m is now the old sparse array, using IMP as type for values and
thus not violating the C standard anymore (functions may not be stored
in void*)
* New sparsearray.m which can work with any size, based on the sparse
array from the fast path of class.m
* Fast path of class.m now uses the new sparsearray.m (check-in: [1ebb9eb7b3] user: js, branch: trunk, size: 5960) [annotate] [blame] [check-ins using] [diff]

2014-05-14
20:28
[e5c437ae29] part of check-in [e35b10115e] Always use __foo__ instead of foo for attributes (check-in: [e35b10115e] user: js, branch: trunk, size: 5969) [annotate] [blame] [check-ins using] [diff]
2014-02-12
00:10
[b35afd5ad2] part of check-in [bb26fbe4b8] Add property introspection (check-in: [bb26fbe4b8] user: js, branch: trunk, size: 5961) [annotate] [blame] [check-ins using] [diff]
2014-01-13
13:28
[d678a70fe3] part of check-in [7c0fa1fa85] Remove class_isKindOfClass().

This was never used and is not part of the Apple runtime either. (check-in: [7c0fa1fa85] user: js, branch: trunk, size: 5684) [annotate] [blame] [check-ins using] [diff]

2014-01-05
22:31
[0f2d559e1c] part of check-in [3cd9d0ad69] Change behaviour of class_getMethodImplementation.

It behaves like in the Apple runtime now. (check-in: [3cd9d0ad69] user: js, branch: trunk, size: 5731) [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
[ea4bfdaaf7] part of check-in [3b97fc3cd9] Update copyright. (check-in: [3b97fc3cd9] user: js, branch: trunk, size: 5671) [annotate] [blame] [check-ins using] [diff]
2013-12-27
02:07
[86f17c06b0] part of check-in [0c332aa2d2] Rework forwarding API and ABI.

It matches the Apple API and ABI now and the forwarding handler itself
determines whether it should forward or not.

This moves handling of +[resolve{Class,Instance}Method:] to the runtime
and allows adding new kinds of forwarding without changing the runtime.

Also fixes a potential stack problem in the forwarding for MIPS. (check-in: [0c332aa2d2] user: js, branch: trunk, size: 5665) [annotate] [blame] [check-ins using] [diff]

2013-12-20
00:14
[bd61ad8aad] part of check-in [2dec88a9d5] runtime: More consistency in the API. (check-in: [2dec88a9d5] user: js, branch: trunk, size: 5711) [annotate] [blame] [check-ins using] [diff]
2013-12-19
22:21
[eb0edb48c5] part of check-in [035fa09270] runtime: Add objc_{get,copy}ClassList(). (check-in: [035fa09270] user: js, branch: trunk, size: 5637) [annotate] [blame] [check-ins using] [diff]
20:15
[dda778658d] part of check-in [b4231b1df9] runtime: New API for internal unregister methods. (check-in: [b4231b1df9] user: js, branch: trunk, size: 5527) [annotate] [blame] [check-ins using] [diff]
2013-11-23
01:38
[b39bf61658] part of check-in [48df0f966f] Add OF_ROOT_CLASS. (check-in: [48df0f966f] user: js, branch: trunk, size: 5526) [annotate] [blame] [check-ins using] [diff]
2013-11-22
23:24
[ced3444651] part of check-in [3780f1462e] runtime: Add support for non-fragile ivars. (check-in: [3780f1462e] user: js, branch: trunk, size: 5291) [annotate] [blame] [check-ins using] [diff]
2013-07-26
15:21
[8b0a6c7397] part of check-in [9713ad857d] Add support for objc_msg_lookup_stret.

The assembly implementations of the lookup and forwarding still need to
be adjusted. Those just alias to the non-stret version for now so that
linking works, meaning the behaviour is still the same as without
support for objc_msg_lookup_stret for now. (check-in: [9713ad857d] user: js, branch: trunk, size: 5296) [annotate] [blame] [check-ins using] [diff]

2013-07-23
20:46
[d76a124e2f] part of check-in [26f6bd3396] configure: Fix warning about missing spinlocks.

Also includes a few style improvements for runtime.h. (check-in: [26f6bd3396] user: js, branch: trunk, size: 5137) [annotate] [blame] [check-ins using] [diff]

2013-03-04
17:20
[32f939b80e] part of check-in [c5ef582958] Replace BOOL with bool.

The only places where BOOL is left are those where they are required by
the ABI. (check-in: [c5ef582958] user: js, branch: trunk, size: 5141) [annotate] [blame] [check-ins using] [diff]

2013-01-15
01:49
[577c4aab36] part of check-in [94b66c350d] runtime.h: Add extern "C". (check-in: [94b66c350d] user: js, branch: trunk, size: 5120) [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
[707672b98c] part of check-in [813c00ccf0] Update copyright. (check-in: [813c00ccf0] user: js, branch: trunk, size: 5053) [annotate] [blame] [check-ins using] [diff]
2012-12-06
01:19
[16313bd3af] part of check-in [7fe9b2e320] Don't inline runtime functions. (check-in: [7fe9b2e320] user: js, branch: trunk, size: 5047) [annotate] [blame] [check-ins using] [diff]
01:08
[537e4b3b12] part of check-in [caea9cb377] runtime.h: Remove functions which are elsewhere. (check-in: [caea9cb377] user: js, branch: 0.7, size: 5511) [annotate] [blame] [check-ins using] [diff]
01:08
[311da7e0b4] part of check-in [5c5ae52ccd] runtime.h: Remove functions which are elsewhere. (check-in: [5c5ae52ccd] user: js, branch: trunk, size: 5549) [annotate] [blame] [check-ins using] [diff]
2012-11-30
16:09
[d874182359] part of check-in [120caad331] Make runtime API more similar to Apple's.

This makes it easier to use runtime functions in portable code. (check-in: [120caad331] user: js, branch: trunk, size: 5637) [annotate] [blame] [check-ins using] [diff]

15:37
[865d6eebac] part of check-in [2b0389eeeb] Remove functions from runtime.h that don't exist. (check-in: [2b0389eeeb] user: js, branch: trunk, size: 5599) [annotate] [blame] [check-ins using] [diff]
2012-09-06
19:13
[995079990b] part of check-in [20c584252c] Add objc_{construct,destruct}Instance(). (check-in: [20c584252c] user: js, branch: trunk, size: 5672) [annotate] [blame] [check-ins using] [diff]
2012-08-19
21:27
[b190fb62d1] part of check-in [bab9dd49fe] Add more ARC type qualifiers. (check-in: [bab9dd49fe] user: js, branch: trunk, size: 5584) [annotate] [blame] [check-ins using] [diff]
2012-08-11
11:55
[802118dfd1] part of check-in [c2a3a3e078] runtime.h: Fix C++. (check-in: [c2a3a3e078] user: js, branch: trunk, size: 5412) [annotate] [blame] [check-ins using] [diff]
2012-08-06
20:27
[47cf79266e] part of check-in [0b32d65e0c] Make class_isMetaClass() ARC-compatible.

Also adds a missing OF_RETURNS_INNER_POINTER. (check-in: [0b32d65e0c] user: js, branch: trunk, size: 5394) [annotate] [blame] [check-ins using] [diff]

2012-08-05
16:52
[03d74b30fd] part of check-in [8f02ff02dc] Fix a possible race condition in initialize_class. (check-in: [8f02ff02dc] user: js, branch: trunk, size: 5360) [annotate] [blame] [check-ins using] [diff]
2012-08-04
00:50
[1dc0fb3f7f] part of check-in [d690b3e135] runtime.h: Properly check for __has_feature. (check-in: [d690b3e135] user: js, branch: trunk, size: 5323) [annotate] [blame] [check-ins using] [diff]
2012-08-03
20:49
[da40cdf48e] part of check-in [c50d4f7837] Add class_isMetaClass(). (check-in: [c50d4f7837] user: js, branch: trunk, size: 5291) [annotate] [blame] [check-ins using] [diff]
18:45
[db1c5610a1] part of check-in [881cfff24e] Add ARC type qualifiers. (check-in: [881cfff24e] user: js, branch: trunk, size: 5144) [annotate] [blame] [check-ins using] [diff]
2012-07-31
11:26
[50de71845f] part of check-in [8a366ec6f7] runtime: Export structs for properties. (check-in: [8a366ec6f7] user: js, branch: trunk, size: 4981) [annotate] [blame] [check-ins using] [diff]
2012-07-17
19:44
[557d11af3b] part of check-in [7cab5285df] Export structs for ivar introspection. (check-in: [7cab5285df] user: js, branch: trunk, size: 4147) [annotate] [blame] [check-ins using] [diff]
2012-07-14
20:00
[10b66bd071] part of check-in [f5927f8a84] New autorelease pools.

This uses the runtime's autorelease pools and implements autorelease
pools in the ObjFW runtime. It therefore uses ObjFW's autorelease pools
when using the ObjFW runtime and Apple's autorelease pools when using
the Apple runtime.

These new pools should be ARC-compatible now and finally, it should be
possible to mix OFAutoreleasePools and NSAutoreleasePools again, even
@autoreleasepool is allowed in the mix now. This also means the old
bridge to NSAutoreleasePool should not be required anymore, as both use
the runtime's autorelease pools now.

As a bonus, it's significantly faster to use the ObjFW runtime with
ObjFW's autorelease pools than to use Apple's runtime with Apple's
autorelease pools, as a quick benchmark using OFXMLParser on large files
showed. (Note: This is not only due to the different autorelease pools,
but also due to the fact that even with the same autorelease pools it is
faster using the ObjFW runtime, as can be seen in versions prior to this
commit.) (check-in: [f5927f8a84] user: js, branch: trunk, size: 3978) [annotate] [blame] [check-ins using] [diff]

2012-07-12
02:04
[dd41eb5b33] part of check-in [52ddac07da] Let object_setClass() return the old class. (check-in: [52ddac07da] user: js, branch: trunk, size: 3820) [annotate] [blame] [check-ins using] [diff]
01:11
[ce76e78d32] part of check-in [9514bfbc12] Add object_{set,get}Class(Name). (check-in: [9514bfbc12] user: js, branch: trunk, size: 3782) [annotate] [blame] [check-ins using] [diff]
2012-07-03
15:44
[37bafc00ae] part of check-in [a230197b48] runtime: Add exception handling. (check-in: [a230197b48] user: js, branch: runtime, size: 3423) [annotate] [blame] [check-ins using] [diff]
2012-04-08
14:14
[97bbb9569f] part of check-in [b8744d8d68] Add protocol_{getName,isEqual,conformsToProtocol}. (check-in: [b8744d8d68] user: js, branch: runtime, size: 3257) [annotate] [blame] [check-ins using] [diff]
14:06
[a7ea76e777] part of check-in [df24f80ab0] Don't have any methods in Protocol.

Messaging protocols is deprecated and unreliable. Thus we shouldn't do
it in the runtime either. (check-in: [df24f80ab0] user: js, branch: runtime, size: 3094) [annotate] [blame] [check-ins using] [diff]

2012-04-06
17:43
[117a048a91] part of check-in [5b29d50e2e] objc_abi_protocol_list does not exist anymore. (check-in: [5b29d50e2e] user: js, branch: runtime, size: 3066) [annotate] [blame] [check-ins using] [diff]
12:14
[7dcff464ae] part of check-in [10b3fbc5fc] Make objc_msg_lookup_super public. (check-in: [10b3fbc5fc] user: js, branch: runtime, size: 3070) [annotate] [blame] [check-ins using] [diff]
2012-03-23
14:54
[a509668aea] part of check-in [46105d56c7] Add class_getMethodImplementation(). (check-in: [46105d56c7] user: js, branch: runtime, size: 2963) [annotate] [blame] [check-ins using] [diff]
2012-03-06
16:24
[5e1f1b3197] part of check-in [2e39765aa2] objc_replace_{class,instance}_method() -> class_replaceMethod(). (check-in: [2e39765aa2] user: js, branch: runtime, size: 3004) [annotate] [blame] [check-ins using] [diff]
2012-03-05
00:01
[bd5f7c0ee0] part of check-in [7215a36f5a] Add sel_isEqual(). (check-in: [7215a36f5a] user: js, branch: runtime, size: 3055) [annotate] [blame] [check-ins using] [diff]
2012-03-04
23:48
[95328bedcc] part of check-in [31e7b3d756] Better dissection of what should be public and private. (check-in: [31e7b3d756] user: js, branch: runtime, size: 3020) [annotate] [blame] [check-ins using] [diff]
20:20
Added: [92e1b049bf] part of check-in [129f90b580] Import and integrate ObjFW-RT. (check-in: [129f90b580] user: js, branch: runtime, size: 2687) [annotate] [blame] [check-ins using]