ObjFW  History of src/runtime/runtime-private.h of a534a0deb5518021

History of file src/runtime/runtime-private.h at check-in a534a0deb5518021

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
runtime.h: Never undefine _Nullable / _Nonnull file: [69fcb5506f] check-in: [5116a3709c] user: js, branch: trunk, size: 7249 [annotate] [blame] [check-ins using] [diff]
20:59
runtime-private.h: Define _Nullable if missing file: [732df9cb69] check-in: [60c8a351c8] user: js, branch: trunk, size: 6863 [annotate] [blame] [check-ins using] [diff]
2017-05-14
14:18
Add nullability annotations to remaining headers

This explicitly excludes threading.h, as adding nullability annotations
requires adding them everywhere in the file. However, the types in there
are implementation defined, and might be pointers or not: Adding none
when it's a pointer would be an error, and adding one when it's not a
pointer would be an error, too. file: [1aa5ac440a] check-in: [c5b3c8ea87] user: js, branch: trunk, size: 6657 [annotate] [blame] [check-ins using] [diff]

2017-05-07
20:10
Small code style change

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

2017-04-02
15:30
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. file: [8959ceec24] check-in: [4e40a57efa] user: js, branch: trunk, size: 5785 [annotate] [blame] [check-ins using] [diff]

2017-01-09
17:36
Update copyright

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

2016-03-28
23:43
Style consistency changes

Multiline preprocessor directives now always indent the continued lines
by 4 spaces. The only exception are defines that define to code blocks:
Those are still indented by a tab in order to align with the rest of the
code. file: [c0bf05887e] check-in: [543eb96c02] user: js, branch: trunk, size: 5835 [annotate] [blame] [check-ins using] [diff]

2016-02-07
20:34
Add lookup-asm-mips64-elf.S file: [c0ea96e247] check-in: [68d4a17534] user: js, branch: trunk, size: 5826 [annotate] [blame] [check-ins using] [diff]
2016-01-06
00:08
Add lookup-asm-arm64-elf.S file: [bae86bc27a] check-in: [fd4a416f66] user: js, branch: trunk, size: 5797 [annotate] [blame] [check-ins using] [diff]
2016-01-05
22:00
(u)int_fast*_t -> (u)int*_t

(U)INT_FAST*_MAX is broken on Android, which makes (u)int_fast*_t
dangerous to use while it does not provide any real speed benefit. file: [26a5f2070f] check-in: [d3158d091f] user: js, branch: trunk, size: 5776 [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
Update copyright

While at it, also update the mail address. file: [569575cc7f] check-in: [cec0f072f8] user: js, branch: 0.8, size: 5971 [annotate] [blame] [check-ins using] [diff]

00:41
Update copyright

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

2015-11-05
23:35
Add lookup-asm-sparc64-elf.S file: [0363a19b87] check-in: [a3075d81d4] user: js, branch: trunk, size: 5782 [annotate] [blame] [check-ins using] [diff]
2015-10-19
22:15
Add platform.h & make platform defines consistent file: [b5cdf1c42f] check-in: [1ba08eebc5] user: js, branch: trunk, size: 5756 [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
Update copyright file: [b380561a47] check-in: [cfd374b906] user: js, branch: trunk, size: 5967 [annotate] [blame] [check-ins using] [diff]
2014-05-15
15:46
Minor style corrections file: [31a1b9496e] check-in: [478119cde4] user: js, branch: trunk, size: 5961 [annotate] [blame] [check-ins using] [diff]
15:32
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 file: [bdd53fa1db] check-in: [1ebb9eb7b3] user: js, branch: trunk, size: 5963 [annotate] [blame] [check-ins using] [diff]

2014-05-02
22:49
Only use SPARC assembly if __arch64__ is undefined file: [fa7e7433b3] check-in: [8b9ea05af4] user: js, branch: trunk, size: 5770 [annotate] [blame] [check-ins using] [diff]
21:10
Add lookup-asm-sparc-elf.S file: [b4f3550173] check-in: [4c90c26c75] user: js, branch: trunk, size: 5712 [annotate] [blame] [check-ins using] [diff]
2014-04-06
14:40
runtime/hashtable.m: Add support for deletion file: [0c1f32cf47] check-in: [c2d9134d88] user: js, branch: trunk, size: 5690 [annotate] [blame] [check-ins using] [diff]
2014-03-22
17:56
Generalize runtime/hashtable.m file: [75ef745292] check-in: [8d930f2067] user: js, branch: trunk, size: 5561 [annotate] [blame] [check-ins using] [diff]
2014-02-22
01:14
Rename AMD64 to x86_64 file: [0e0bd3f946] check-in: [05f4b0a4f0] user: js, branch: trunk, size: 5375 [annotate] [blame] [check-ins using] [diff]
2014-02-19
14:31
Add lookup-asm-amd64-win64.S file: [bccc1d0efc] check-in: [80ab671cf4] user: js, branch: trunk, size: 5375 [annotate] [blame] [check-ins using] [diff]
2014-01-19
12:00
Add lookup-asm-ppc-macho.S. file: [adca3c814b] check-in: [d80d091b0e] user: js, branch: trunk, size: 5352 [annotate] [blame] [check-ins using] [diff]
2014-01-15
18:53
lookup-asm: Clean up local labels. file: [a16b73d2bd] check-in: [f4cf33fee6] user: js, branch: trunk, size: 5343 [annotate] [blame] [check-ins using] [diff]
2014-01-04
00:24
Update copyright. file: [0b262e3de6] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 5346 [annotate] [blame] [check-ins using] [diff]
2013-12-19
20:15
runtime: New API for internal unregister methods. file: [448c2c1e1b] check-in: [b4231b1df9] user: js, branch: trunk, size: 5340 [annotate] [blame] [check-ins using] [diff]
2013-12-06
02:35
Add x86/Win32 assembly lookup implementation. file: [d3d6b58a3c] check-in: [b527914a91] user: js, branch: trunk, size: 5260 [annotate] [blame] [check-ins using] [diff]
00:52
Add a fast path for objc_classname_to_class().

This should improve the performance for the GCC ABI, as
objc_classname_to_class() is used for all sorts of class lookups, e.g.
objc_lookup_class().

As this performance improvement needs RAM, it is only used after 128
calls into objc_classname_to_class(), so that if the ObjFW ABI is used
and the user does not call into objc_getClass() or similar in a loop, no
memory is wasted.

Runtime internal usage of objc_classname_to_class() does not use the
fast path and does not count as a call into objc_classname_to_class().
The reason for this is that if the runtime calls
objc_classname_to_class(), it already has the lock and thus the
performance gain would be small, but it would waste memory. file: [3c88a5e1a9] check-in: [84a724dd4b] user: js, branch: trunk, size: 5194 [annotate] [blame] [check-ins using] [diff]

2013-11-22
23:24
runtime: Add support for non-fragile ivars. file: [ceb0d6303e] check-in: [3780f1462e] user: js, branch: trunk, size: 5188 [annotate] [blame] [check-ins using] [diff]
2013-07-24
22:56
lookup-asm-mips-elf.S: Support PIC.

This also improves the check for the ABI. file: [a0b575feaf] check-in: [8108a32927] user: js, branch: trunk, size: 5193 [annotate] [blame] [check-ins using] [diff]

2013-07-08
15:43
Check for ASM lookup at compile time.

Checking at configure time can potentially break universal builds. file: [630ce5911a] check-in: [a4f1bd6c08] user: js, branch: trunk, size: 5120 [annotate] [blame] [check-ins using] [diff]

2013-03-09
10:07
Save some space in the dtables. file: [291ac1241b] check-in: [55c399cda6] user: js, branch: trunk, size: 4740 [annotate] [blame] [check-ins using] [diff]
09:24
Fix objc_exit() and add it to tests. file: [987c0ee218] check-in: [7baf58021d] user: js, branch: trunk, size: 4779 [annotate] [blame] [check-ins using] [diff]
2013-03-04
17:20
Replace BOOL with bool.

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

2013-01-12
20:53
Clean up the feature #ifdef mess. file: [c43269a3b6] check-in: [b8ce2359f3] user: js, branch: trunk, size: 4743 [annotate] [blame] [check-ins using] [diff]
20:21
Fix --disable-threads. file: [29ce1db052] check-in: [85b8efadbc] user: js, branch: trunk, size: 4738 [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
Update copyright. file: [07b7985b92] check-in: [813c00ccf0] user: js, branch: trunk, size: 4690 [annotate] [blame] [check-ins using] [diff]
2012-12-28
02:46
Make 16 bit selector UIDs the default. file: [8504443dc5] check-in: [511a372fb8] user: js, branch: trunk, size: 4684 [annotate] [blame] [check-ins using] [diff]
2012-08-05
10:45
Add of_rmutex_t, a reentrant mutex implementation. file: [8b51aa0f01] check-in: [1cb3d9fef9] user: js, branch: trunk, size: 4686 [annotate] [blame] [check-ins using] [diff]
2012-07-31
11:26
runtime: Export structs for properties. file: [84eb751cc1] check-in: [8a366ec6f7] user: js, branch: trunk, size: 5040 [annotate] [blame] [check-ins using] [diff]
2012-07-17
01:09
Rename ERROR() to OBJC_ERROR().

ERROR seems to be defined on MinGW32 and it's likely that it's also used
on other systems, thus it's better to prefix it with OBJC_. file: [fdc49ba79e] check-in: [345eb93240] user: js, branch: trunk, size: 5256 [annotate] [blame] [check-ins using] [diff]

2012-05-10
18:38
Return objects as void* instead of const void*. file: [3a008110cb] check-in: [bc531024f5] user: js, branch: runtime, size: 5251 [annotate] [blame] [check-ins using] [diff]
18:21
objc_hashtable_alloc() -> objc_hashtable_new().

For consistency. file: [cfeaa72523] check-in: [963db3089f] user: js, branch: runtime, size: 5249 [annotate] [blame] [check-ins using] [diff]

2012-05-09
13:55
Initialize classes on the first dispatch.

This is no longer done in objc_msg_lookup() and thus allows direct class
references. file: [0a8ea1ad61] check-in: [dcf845546a] user: js, branch: runtime, size: 5251 [annotate] [blame] [check-ins using] [diff]

2012-05-08
20:30
Add support for 16 bit selector UIDs. file: [33a45d5cce] check-in: [fef47937e5] user: js, branch: runtime, size: 5209 [annotate] [blame] [check-ins using] [diff]
2012-04-21
13:05
Properly copy methods from superclass first. file: [7dea8609ad] check-in: [8c368f8f38] user: js, branch: runtime, size: 4989 [annotate] [blame] [check-ins using] [diff]
2012-04-20
19:02
Don't use the lower 8 bits for runtime flags.

It seems Clang sets flags in the lower 8 bits, so they shouldn't be used
for flags that the runtime sets. file: [e12f9f95c1] check-in: [1b3d035041] user: js, branch: runtime, size: 4979 [annotate] [blame] [check-ins using] [diff]

2012-04-18
18:00
Split OBJC_CLASS_INFO_INITIALIZED.

We now have OBJC_CLASS_INFO_{SETUP,LOADED,INITIALIZED}. file: [5779ba0dc9] check-in: [5a719c9b1f] user: js, branch: runtime, size: 4974 [annotate] [blame] [check-ins using] [diff]

2012-04-06
12:14
Make objc_msg_lookup_super public. file: [8f5d45afbf] check-in: [10b3fbc5fc] user: js, branch: runtime, size: 4903 [annotate] [blame] [check-ins using] [diff]
2012-03-04
23:48
Better dissection of what should be public and private. file: [76682de6f9] check-in: [31e7b3d756] user: js, branch: runtime, size: 4955 [annotate] [blame] [check-ins using] [diff]
20:20
Added: Import and integrate ObjFW-RT. file: [5494f2f715] check-in: [129f90b580] user: js, branch: runtime, size: 4931 [annotate] [blame] [check-ins using]