ObjFW  History of src/macros.h of cec0f072f847e4abde0d40220df2f057b608b6b51de39960136b812b2a3f7917

History of file src/macros.h at check-in cec0f072f847e4abde0d40220df2f057b608b6b51de39960136b812b2a3f7917

2024-08-30
19:41
Add forwardingTargetForSelector: for ARM64/Win64 file: [f36695b45c] check-in: [55450a564e] user: js, branch: trunk, size: 26143 [annotate] [blame] [check-ins using] [diff]
2024-08-26
21:12
Fix compiling with DJGPP file: [cdc40153f2] check-in: [c540d53637] user: js, branch: 1.1, size: 25919 [annotate] [blame] [check-ins using] [diff]
21:12
Fix compiling with DJGPP file: [250be4f66f] check-in: [dd49efb579] user: js, branch: trunk, size: 26122 [annotate] [blame] [check-ins using] [diff]
2024-08-19
21:42
forwardingTargetForSelector: for PowerPC 64/ELF v2 file: [135cc5084f] check-in: [119b311a62] user: js, branch: trunk, size: 26091 [annotate] [blame] [check-ins using] [diff]
2024-07-27
23:33
forwardingTargetForSelector: for LoongArch 64/ELF file: [e8d271f2ea] check-in: [573f1ca9aa] user: js, branch: trunk, size: 26060 [annotate] [blame] [check-ins using] [diff]
2024-05-27
23:25
Add forwardingTargetForSelector: for RISC-V 64/ELF file: [279bb31779] check-in: [76c7c09f34] user: js, branch: trunk, size: 26033 [annotate] [blame] [check-ins using] [diff]
22:11
forwardingTargetForSelector: for MIPS64-N64/ELF file: [829cf14e23] check-in: [1786dab1c0] user: js, branch: trunk, size: 26004 [annotate] [blame] [check-ins using] [diff]
2024-05-09
10:21
Use unsigned long for bit sets

This should be more efficient on some architectures.

As a nice side effect, this is also what Linux does in some userspace
APIs, so after this change, these macros can be used for this as well
(and Linux interestingly does not provide similar macros in the
userspace headers). file: [3c8f4714cc] check-in: [96f946d7ad] user: js, branch: trunk, size: 25972 [annotate] [blame] [check-ins using] [diff]

2024-05-01
15:19
Document a lot of undocumented functions & macros

Also fixes Doxygen not creating documentation for `static OF_INLINE`
functions. file: [e71e68e9ff] check-in: [0c3c3b6efa] user: js, branch: trunk, size: 25888 [annotate] [blame] [check-ins using] [diff]

2024-04-29
21:42
Properly hide private symbols file: [b827bb1ce0] check-in: [f16bccc7b3] user: js, branch: trunk, size: 19875 [annotate] [blame] [check-ins using] [diff]
2024-04-03
02:16
Change license to LGPLv3 only file: [7e3d0a019b] check-in: [7413a728a7] user: js, branch: trunk, size: 19756 [annotate] [blame] [check-ins using] [diff]
2024-04-02
03:21
Only align OFVector4D where necessary

Changing the alignment of OFVector4D globally (as was done previously)
would have technically been an ABI break in extremely rare cases.
However, since we only need the alignment for the methods added after
1.0, it's better to only have the alignment there and get back to full
ABI compatibility with 1.0. file: [d86f5f8b91] check-in: [1af54eb2c2] user: js, branch: trunk, size: 19548 [annotate] [blame] [check-ins using] [diff]

2024-02-13
22:06
Don't use max_align_t for OF_BIGGEST_ALIGNMENT

Now that we use SSE in some inline assembly, it needs to be at least 16.
However, _Alignof(max_align_t) can be just 8. file: [1147a05908] check-in: [c80075f6e4] user: js, branch: trunk, size: 19543 [annotate] [blame] [check-ins using] [diff]

2024-02-03
11:41
Update copyright file: [a9c95c99e1] check-in: [7324ec8590] user: js, branch: 1.0, size: 18922 [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
Update copyright file: [f9c11c2712] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 19444 [annotate] [blame] [check-ins using] [diff]
2023-11-09
21:09
Use named operands for __asm__ file: [779db83f80] check-in: [1b22456db6] user: js, branch: trunk, size: 19444 [annotate] [blame] [check-ins using] [diff]
2023-11-03
00:16
OFMatrix4x4: SSE4.1 for -[transformVectors:count:]

This requires the vectors to be 16 byte aligned. In order to achieve
this, the OFVector4D type is changed to have an alignment of 16 bytes.
However, this does *not* break ABI because the only method actually
requiring 16 byte alignment is -[transformVectors:count:], which was not
in ObjFW 1.0. Hence binaries compiled for ObjFW 1.0 have no 16 byte
alignment for OFVector4D, but also cannot ever call into any code that
needs it. (-[transformedVector:] calls into -[transformVectors:count:],
but creates a properly aligned copy that it passes.) file: [c4d1f32dd0] check-in: [7f304f573b] user: js, branch: trunk, size: 19412 [annotate] [blame] [check-ins using] [diff]

2023-10-26
20:05
Make OF_DEPRECATED work with Apple GCC 4.0.1 file: [d9f6837658] check-in: [d62ec447d0] user: js, branch: trunk, size: 19340 [annotate] [blame] [check-ins using] [diff]
19:42
Make headers compatible with -masm=intel file: [36c9f66b6e] check-in: [a1ab43e0b3] user: js, branch: trunk, size: 19195 [annotate] [blame] [check-ins using] [diff]
2023-10-15
14:59
macros.h: Add missing #else

Nothing breaks, but just in case we ever have an Objective-C compiler
that is not GCC-compatible. file: [8e5d433333] check-in: [f2891af000] user: js, branch: trunk, size: 19157 [annotate] [blame] [check-ins using] [diff]

14:53
macros.h: Add OF_DEPRECATED file: [1006063eb3] check-in: [b84438dcfd] user: js, branch: trunk, size: 19100 [annotate] [blame] [check-ins using] [diff]
2023-09-06
19:01
Fix headers for ObjC++ file: [caf7b03bf1] check-in: [c98df52cff] user: js, branch: trunk, size: 18922 [annotate] [blame] [check-ins using] [diff]
2023-08-30
11:45
Merge trunk into branch "amiga-library" file: [bf1dc0fc01] check-in: [5ea06b70ce] user: js, branch: amiga-library, size: 18971 [annotate] [blame] [check-ins using] [diff]
2023-08-09
09:08
Add OF_SINGLETON_METHODS file: [50c6f2e2c4] check-in: [36310f6263] user: js, branch: trunk, size: 18851 [annotate] [blame] [check-ins using] [diff]
2023-07-15
20:57
Merge trunk into branch "amiga-library" file: [f7fda82d09] check-in: [860b0bf1e9] user: js, branch: amiga-library, size: 18591 [annotate] [blame] [check-ins using] [diff]
2023-04-22
20:22
Rename x86_64 to AMD64

It's just a less awkward name and also what the BSDs use. file: [4191bc0c4c] check-in: [b7a4e61b88] user: js, branch: trunk, size: 18471 [annotate] [blame] [check-ins using] [diff]

2023-01-06
09:04
Update copyright file: [73ff2f7764] check-in: [8939cbdb52] user: js, branch: trunk, size: 18478 [annotate] [blame] [check-ins using] [diff]
2022-11-16
01:31
Merge trunk into branch "amiga-library" file: [20d23907ce] check-in: [3c13b15751] user: js, branch: amiga-library, size: 18598 [annotate] [blame] [check-ins using] [diff]
01:27
Add OFAssert()

This uses the same format as OFEnsure(). file: [07933aec14] check-in: [c86b8f10f0] user: js, branch: trunk, size: 18478 [annotate] [blame] [check-ins using] [diff]

2022-11-15
23:09
Merge trunk into branch "amiga-library" file: [f91adbff97] check-in: [a151c9797b] user: js, branch: amiga-library, size: 18501 [annotate] [blame] [check-ins using] [diff]
23:04
Use OFLog() for OFEnsure() file: [8379d699e4] check-in: [18caed047e] user: js, branch: trunk, size: 18381 [annotate] [blame] [check-ins using] [diff]
2022-11-06
19:16
Merge trunk into branch "amiga-library" file: [f1f0c6d274] check-in: [82bc531357] user: js, branch: amiga-library, size: 18453 [annotate] [blame] [check-ins using] [diff]
2022-11-05
18:38
More consistency in how pragmas are used file: [4ca2ebbb7b] check-in: [a0c049d8f1] user: js, branch: trunk, size: 18333 [annotate] [blame] [check-ins using] [diff]
2022-10-18
22:17
Merge trunk into branch "amiga-library" file: [2d8d92328b] check-in: [ac19ed9d40] user: js, branch: amiga-library, size: 18424 [annotate] [blame] [check-ins using] [diff]
2022-06-06
07:06
Always implement dummy for OF_UNAVAILABLE methods

GCC now supports the attribute, but still complains if the method is not
implemented, so always implement it with a method that throws. file: [60a41b82a1] check-in: [e53c0160a8] user: js, branch: trunk, size: 18304 [annotate] [blame] [check-ins using] [diff]

2022-02-12
07:46
Update copyright file: [5676813928] check-in: [1a86b8175b] user: js, branch: trunk, size: 18333 [annotate] [blame] [check-ins using] [diff]
2021-12-07
19:01
Use UINT*_C for swap macros file: [adb87dd5b5] check-in: [de72eaa6ea] user: js, branch: trunk, size: 18333 [annotate] [blame] [check-ins using] [diff]
2021-05-09
14:45
Merge trunk into branch "amiga-library"

All necessary changes to adjust for the changes made in trunk are
included in the merge commit. file: [e163f96b10] check-in: [3c88df0ce4] user: js, branch: amiga-library, size: 18267 [annotate] [blame] [check-ins using] [diff]

2021-05-01
02:39
Fix compiling for AmigaOS file: [13da37c718] check-in: [171f3ba831] user: js, branch: trunk, size: 18147 [annotate] [blame] [check-ins using] [diff]
2021-04-30
21:23
Make OFHashSeed private file: [22f8070f90] check-in: [39863b3503] user: js, branch: trunk, size: 18147 [annotate] [blame] [check-ins using] [diff]
2021-04-25
19:41
OFStrdup -> OFStrDup and slightly change behavior file: [3a3771fba4] check-in: [fd51df7022] user: js, branch: trunk, size: 18898 [annotate] [blame] [check-ins using] [diff]
2021-04-18
21:12
OF_RETAIN_COUNT_MAX -> OFMaxRetainCount file: [8f5f38092b] check-in: [b06b86d6f9] user: js, branch: new-naming-convention, size: 19137 [annotate] [blame] [check-ins using] [diff]
15:55
Rename all functions in macros.h file: [6bedc85a12] check-in: [7392685ffc] user: js, branch: new-naming-convention, size: 19140 [annotate] [blame] [check-ins using] [diff]
13:24
Rename remaining functions in OFObject.h file: [1a042f165d] check-in: [d9f8960fc5] user: js, branch: new-naming-convention, size: 21201 [annotate] [blame] [check-ins using] [diff]
2021-04-17
01:24
OF_NOT_FOUND -> OFNotFound file: [4a71564d16] check-in: [83dc0fe6e5] user: js, branch: new-naming-convention, size: 21211 [annotate] [blame] [check-ins using] [diff]
00:31
of_byte_order_t -> OFByteOrder file: [805464ce2e] check-in: [1046d10a20] user: js, branch: new-naming-convention, size: 21241 [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:06
Update copyright file: [9c93ab715b] check-in: [27b401c7c2] user: js, branch: amiga-library, size: 21519 [annotate] [blame] [check-ins using] [diff]
22:04
Update copyright file: [77087818b9] check-in: [374e1a1bfa] user: js, branch: trunk, size: 21389 [annotate] [blame] [check-ins using] [diff]
2020-12-22
21:42
Merge trunk into branch "amiga-library" file: [2f38259464] check-in: [a58aa8e069] user: js, branch: amiga-library, size: 21608 [annotate] [blame] [check-ins using] [diff]
2020-12-21
19:42
Make objc_error() more generic file: [c797af37de] check-in: [abe75c42dc] user: js, branch: trunk, size: 21478 [annotate] [blame] [check-ins using] [diff]
2020-12-20
11:30
Merge trunk into branch "amiga-library" file: [56e1068319] check-in: [1ff8c1e62d] user: js, branch: amiga-library, size: 21476 [annotate] [blame] [check-ins using] [diff]
03:06
Let OF_ENSURE use OBJC_ERROR in runtime file: [42109558ee] check-in: [8f271bed22] user: js, branch: trunk, size: 21346 [annotate] [blame] [check-ins using] [diff]
2020-12-18
11:04
Merge trunk into branch "amiga-library" file: [d7e143910e] check-in: [3fdb99cfd0] user: js, branch: amiga-library, size: 21267 [annotate] [blame] [check-ins using] [diff]
2020-12-12
22:31
Remove OF_*_ASM defines

Duplicating defines for every CPU architecture is not very useful. file: [365b468ef6] check-in: [c859e2230c] user: js, branch: trunk, size: 21137 [annotate] [blame] [check-ins using] [diff]

21:25
Pass errno to Amiga library file: [9f0be8e20b] check-in: [1712033509] user: js, branch: amiga-library, size: 21693 [annotate] [blame] [check-ins using] [diff]
2020-11-29
00:59
of_bitset_*: Use CHAR_BIT instead of 8 file: [7383bf6570] check-in: [b46492384a] user: js, branch: trunk, size: 21563 [annotate] [blame] [check-ins using] [diff]
2020-10-10
14:27
OFObject: Change type of -[hash] to unsigned long

The internal hash is still 32 bit in most places, but this way, it is at
least not baked into the API and ABI and can be upgraded later, should
that ever be necessary. file: [43e7dc4d8f] check-in: [aeb403a1ed] user: js, branch: trunk, size: 21501 [annotate] [blame] [check-ins using] [diff]

2020-09-29
21:36
Merge support for tagged pointers file: [76df5e8f5b] check-in: [b4039f9a85] user: js, branch: trunk, size: 21492 [annotate] [blame] [check-ins using] [diff]
2020-09-26
21:58
Don't require __COUNTER__ for OF_RESERVE_IVARS

__COUNTER__ does not exist in GCC 4.2, and Apple GCC 4.2 is still the
newest compiler available for macOS 10.5. file: [0f3365fd01] check-in: [ef614a225d] user: js, branch: trunk, size: 21485 [annotate] [blame] [check-ins using] [diff]

2020-07-25
18:32
OFDate: Also ignore -Wunknown-pragmas

This makes old versions of Clang happy which don't know about
-Wobjc-designated-initializers. file: [98097ba1eb] check-in: [94c7e3e8f3] user: js, branch: tagged-pointers, size: 21490 [annotate] [blame] [check-ins using] [diff]

2020-07-12
09:49
Make of_random() a function

When arc4random() is unavailable, either random() or rand() is used and
both need to be seeded. If of_random() is a macro, it needs to be
(re)seeded every time, as it's unknown whether it has already been
seeded. As it is seeded with gettimeofday() due to the lack of a better
initial seed, this means every call returns the first state for the
current time, which is very predictable. random() and rand() are both
not cryptographic, but this should at least make it a little bit better
now. file: [41e131467f] check-in: [c1fe4b2b77] user: js, branch: trunk, size: 21483 [annotate] [blame] [check-ins using] [diff]

2020-07-05
10:25
Add forwardingTargetForSelector: for SPARC/ELF file: [975aa82042] check-in: [0c8a6fdf2a] user: js, branch: trunk, size: 22023 [annotate] [blame] [check-ins using] [diff]
2020-06-28
15:19
Only use objc_direct(_members) with Apple runtime

This first needs to be enabled in Clang for the ObjFW runtime. file: [3627a6abf3] check-in: [96b35d19c5] user: js, branch: trunk, size: 22002 [annotate] [blame] [check-ins using] [diff]

2020-06-25
21:51
Add OF_DIRECT and OF_DIRECT_MEMBERS file: [f608bdd307] check-in: [f9236a1d6c] user: js, branch: trunk, size: 21944 [annotate] [blame] [check-ins using] [diff]
2020-06-05
00:17
Add of_init() for Amiga .library file: [af30b6d7a6] check-in: [964b5ed33c] user: js, branch: amiga-library, size: 21998 [annotate] [blame] [check-ins using] [diff]
2020-06-04
23:01
Add initial amiga-{library,glue,end}.m

These are based on runtime/amiga-{library,glue,end}.m. file: [f9a566d40b] check-in: [f6ab72da6e] user: js, branch: amiga-library, size: 21962 [annotate] [blame] [check-ins using] [diff]

2020-04-21
19:51
Fix AmigaOS and devkitPro build file: [b900515d8a] check-in: [d57a77b9cd] user: js, branch: trunk, size: 21669 [annotate] [blame] [check-ins using] [diff]
2020-04-19
14:52
Reduce usage of unions file: [0ec579f5ac] check-in: [e0459c419c] user: js, branch: trunk, size: 21657 [annotate] [blame] [check-ins using] [diff]
2020-04-11
19:31
Make OFObject.h and OFString.h C-safe file: [798f22e9e5] check-in: [6e7e19252b] user: js, branch: trunk, size: 21257 [annotate] [blame] [check-ins using] [diff]
2020-01-02
01:51
Update copyright file: [9bed6604d9] check-in: [c7f0229795] user: js, branch: trunk, size: 21197 [annotate] [blame] [check-ins using] [diff]
2019-09-29
19:35
Either restrict subclassing or reserve ivar space

This allows ABI stability with the fragile ABI. file: [fff954ce5f] check-in: [496695d778] user: js, branch: trunk, size: 21194 [annotate] [blame] [check-ins using] [diff]

2019-09-01
15:20
Use u suffix on a few constants file: [6430489c6f] check-in: [b7badc68a0] user: js, branch: trunk, size: 20872 [annotate] [blame] [check-ins using] [diff]
2019-06-17
00:38
Remove underscores from library & framework names

This is more compatible with the various conventions used on various
systems. file: [e1abebe584] check-in: [79fe29dbf4] user: js, branch: trunk, size: 20869 [annotate] [blame] [check-ins using] [diff]

2019-04-22
16:53
OFString_UTF8: Improved range checks file: [989f46865e] check-in: [0b962df002] user: js, branch: trunk, size: 20872 [annotate] [blame] [check-ins using] [diff]
2019-02-07
21:31
More style improvements file: [6558af17e7] check-in: [754bf24742] user: js, branch: trunk, size: 20868 [annotate] [blame] [check-ins using] [diff]
2019-01-27
16:20
Work around buggy thread_local on AIX file: [ac7aa6dc5d] check-in: [d0f3116147] user: js, branch: trunk, size: 20859 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [17a538a6f0] check-in: [0509d7a844] user: js, branch: trunk, size: 20703 [annotate] [blame] [check-ins using] [diff]
2018-07-29
16:16
macros.h: Fix a typo file: [422632f048] check-in: [9383a4cf4a] user: js, branch: trunk, size: 20697 [annotate] [blame] [check-ins using] [diff]
2018-07-28
17:46
macros.h: Fix missing ) and #include file: [cec5f5d20d] check-in: [d0b636d965] user: js, branch: trunk, size: 20695 [annotate] [blame] [check-ins using] [diff]
16:48
macros.h: Add of_random()

This does *NOT* provide cryptographically secure randomness! file: [3f9a87cf9e] check-in: [a2a06d372a] user: js, branch: trunk, size: 20670 [annotate] [blame] [check-ins using] [diff]

2018-03-11
12:55
Remove OF_PATH_* macros

These were way too simplistic, as paths differ in more than just that on
various operating systems. file: [9420a38fbf] check-in: [156b850131] user: js, branch: trunk, size: 20135 [annotate] [blame] [check-ins using] [diff]

2018-02-16
23:58
Add of_ascii_isdigit() file: [0a54ffbbce] check-in: [b34c78251b] user: js, branch: trunk, size: 20552 [annotate] [blame] [check-ins using] [diff]
2018-02-11
12:15
Make OFNumber a subclass of OFValue file: [579cf46e72] check-in: [612cd94090] user: js, branch: trunk, size: 20471 [annotate] [blame] [check-ins using] [diff]
2018-01-21
22:16
Allow building the runtime as a .framework

This also renames ObjFW-RT to ObjFW_RT, as hyphens should not be in
framework names. file: [6b06f3d8b7] check-in: [0f42b0eafd] user: js, branch: trunk, size: 20442 [annotate] [blame] [check-ins using] [diff]

02:20
Allow boxing of most structs file: [eade3d2bc3] check-in: [88b19eae2c] user: js, branch: trunk, size: 20442 [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
Update copyright notice file: [3d82ab1985] check-in: [7e5c81e186] user: js, branch: trunk, size: 20316 [annotate] [blame] [check-ins using] [diff]
2017-12-23
18:21
Disable compiler TLS on iOS 9 simulator file: [0b9271918b] check-in: [d654e38e7e] user: js, branch: trunk, size: 20293 [annotate] [blame] [check-ins using] [diff]
2017-11-13
23:06
macros.h: Reduce OF_INVALID_INIT_METHOD code size file: [63c7ed2d2c] check-in: [1d41fff819] user: js, branch: trunk, size: 20050 [annotate] [blame] [check-ins using] [diff]
22:19
Only use OF_WARN_UNUSED_RESULT with Clang

GCC does not support it. file: [58ba402fca] check-in: [f12043ee28] user: js, branch: trunk, size: 20087 [annotate] [blame] [check-ins using] [diff]

2017-11-05
18:01
Add OFCharacterSet file: [4089255adf] check-in: [7c30d6a2e2] user: js, branch: trunk, size: 20056 [annotate] [blame] [check-ins using] [diff]
02:58
Add OF_WARN_UNUSED_RESULT file: [66bafa72fb] check-in: [7c79db860d] user: js, branch: trunk, size: 20038 [annotate] [blame] [check-ins using] [diff]
2017-10-30
00:23
Add class properties where appropriate

This improves Swift compatibility. file: [059976bd73] check-in: [a2e849c681] user: js, branch: trunk, size: 19936 [annotate] [blame] [check-ins using] [diff]

2017-10-29
22:22
macros.h: Add OF_SWIFT_NAME file: [4bf3aa81bc] check-in: [68b3d08ac1] user: js, branch: trunk, size: 19855 [annotate] [blame] [check-ins using] [diff]
00:41
Fix conversion between URL and path on Win32

This also adds -[OFURL fileSystemRepresentation] to correctly convert a
URL back to a path in the local file system. file: [40aa2d8e24] check-in: [b83d1414b1] user: js, branch: trunk, size: 19709 [annotate] [blame] [check-ins using] [diff]

2017-10-22
15:05
Make Apple GCC with -Wshadow happy file: [298ad747ab] check-in: [a06354b42a] user: js, branch: trunk, size: 19674 [annotate] [blame] [check-ins using] [diff]
14:09
Make Apple GCC with -Wshadow happy file: [ed1d1a5d46] check-in: [31c0f5b89e] user: js, branch: 0.90, size: 16524 [annotate] [blame] [check-ins using] [diff]
2017-10-15
23:05
Two minor cleanups - no functional change file: [15e6f8eafc] check-in: [4465a415f1] user: js, branch: trunk, size: 19692 [annotate] [blame] [check-ins using] [diff]
22:51
Rename __GCC_VERSION__ to OF_GCC_VERSION

__GCC_VERSION__ is reserved and could be used by GCC in the future. file: [62a0be4bea] check-in: [d6fa7f9bf6] user: js, branch: 0.90, size: 16542 [annotate] [blame] [check-ins using] [diff]

22:49
Rename __GCC_VERSION__ to OF_GCC_VERSION

__GCC_VERSION__ is reserved and could be used by GCC in the future. file: [52d18b1a04] check-in: [60214356c2] user: js, branch: trunk, size: 19871 [annotate] [blame] [check-ins using] [diff]

2017-10-01
14:14
Backport nullability fixes from master file: [aa4d0729bb] check-in: [f37b373a95] user: js, branch: 0.90, size: 16546 [annotate] [blame] [check-ins using] [diff]
2017-09-28
23:02
Enable -Wnullable-to-nonnull-conversion and adjust file: [ffa2588354] check-in: [2de9660312] user: js, branch: trunk, size: 19875 [annotate] [blame] [check-ins using] [diff]
2017-09-11
16:17
Add missing OF_ITANIUM_ASM define file: [7f6db52639] check-in: [48f514d397] user: js, branch: trunk, size: 19641 [annotate] [blame] [check-ins using] [diff]
2017-09-10
20:39
Add of_{sizeof,alignof}_type_encoding() file: [ecbe0f344d] check-in: [b03cff2f49] user: js, branch: trunk, size: 19589 [annotate] [blame] [check-ins using] [diff]
2017-08-22
20:08
Add OF_PA_RISC and OF_PA_RISC_ASM defines file: [cd2ed094ac] check-in: [68b27968f7] user: js, branch: trunk, size: 19499 [annotate] [blame] [check-ins using] [diff]
2017-08-19
22:47
Add forwardingTargetForSelector: for SPARC64/ELF file: [dd08d3d070] check-in: [38813c380c] user: js, branch: trunk, size: 19447 [annotate] [blame] [check-ins using] [diff]
2017-08-13
13:48
Add functions to read & write BE/LE value pointers file: [b2dbaa72d1] check-in: [6202189a07] user: js, branch: trunk, size: 19424 [annotate] [blame] [check-ins using] [diff]
2017-07-09
15:29
runtime: Rename include to ObjFW-RT.h file: [8a33280748] check-in: [5bb771755d] user: js, branch: trunk, size: 16492 [annotate] [blame] [check-ins using] [diff]
2017-06-10
11:46
macros.h: Add of_ascii_isspace() file: [4e6153e065] check-in: [dbdc125802] user: js, branch: trunk, size: 16416 [annotate] [blame] [check-ins using] [diff]
2017-05-29
21:55
macros.h: Add OF_ALIGNAS file: [1a378051a0] check-in: [c2a2107f79] user: js, branch: trunk, size: 16274 [annotate] [blame] [check-ins using] [diff]
2017-05-14
01:30
macros.h: Add null_unspecified file: [92a3d178cb] check-in: [03963d9304] user: js, branch: trunk, size: 16118 [annotate] [blame] [check-ins using] [diff]
2017-05-13
16:56
Fix compilation with GCC file: [45a38ec43d] check-in: [4df6ab6bca] user: js, branch: trunk, size: 16092 [annotate] [blame] [check-ins using] [diff]
2017-05-08
21:37
Add OF_DESIGNATED_INITIALIZER & OF_METHOD_FAMILY file: [9127ca3dee] check-in: [469a496cd2] user: js, branch: trunk, size: 16041 [annotate] [blame] [check-ins using] [diff]
2017-05-07
23:14
Add OF_UNAVAILABLE file: [bccd9112c7] check-in: [16c05e87e1] user: js, branch: trunk, size: 15690 [annotate] [blame] [check-ins using] [diff]
20:10
Small code style change

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

2017-05-01
18:48
Add OF_NULL_RESETTABLE_PROPERTY file: [acbe9b9b4a] check-in: [3faceccdd3] user: js, branch: trunk, size: 15605 [annotate] [blame] [check-ins using] [diff]
2017-04-14
23:27
Fix using OF_{CON,DE}STRUCTOR multiple times file: [c14ef81c9f] check-in: [544663e733] user: js, branch: trunk, size: 15495 [annotate] [blame] [check-ins using] [diff]
2017-04-02
02:02
Add OF_WEAK_REF() file: [b2cfcb1101] check-in: [126632e200] user: js, branch: trunk, size: 15337 [annotate] [blame] [check-ins using] [diff]
01:06
Add OF_CONSTRUCTOR() / OF_DESTRUCTOR() file: [35fb899dee] check-in: [d07c56a8bb] user: js, branch: trunk, size: 15251 [annotate] [blame] [check-ins using] [diff]
2017-03-20
22:50
of_explicit_memset(): Add explicit cast for C++ file: [db7b5a88fe] check-in: [1ff91c7491] user: js, branch: trunk, size: 15017 [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: [7f5d9116f6] check-in: [44f45c2e35] user: js, branch: trunk, size: 14992 [annotate] [blame] [check-ins using] [diff]

2017-01-08
20:14
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. file: [e92edaa214] check-in: [f57765b5c6] user: js, branch: trunk, size: 14986 [annotate] [blame] [check-ins using] [diff]

2017-01-07
00:37
Add of_ascii_{to{upper,lower},is{alpha,alnum}}

These are independent of the locale and work on the ASCII character set.

Unlike the C ones, these are 8-bit safe, meaning if a character > 0x7F
is passed, is{alpha,alnum} returns false and to{upper,lower} returns the
original character. file: [49ab80b017] check-in: [d9eb7b50b3] user: js, branch: trunk, size: 15181 [annotate] [blame] [check-ins using] [diff]

2016-10-08
15:57
Implement scrypt file: [63bde433c3] check-in: [dcff33c798] user: js, branch: trunk, size: 14748 [annotate] [blame] [check-ins using] [diff]
2016-09-12
00:27
Add OF_DEALLOC_UNSUPPORTED macro file: [54a3501810] check-in: [13f4c6c678] user: js, branch: trunk, size: 14537 [annotate] [blame] [check-ins using] [diff]
2016-07-03
12:19
Add forwardingTargetForSelector: for x86_64/Mach-O

This is for the ObjFW runtime - for the Apple runtime, this did already
exist. file: [a0cafa1d2d] check-in: [d9c9a3d0bc] user: js, branch: trunk, size: 14052 [annotate] [blame] [check-ins using] [diff]

2016-06-06
20:57
macros.h: Define OF_MIPS64_ASM on MIPS64 file: [e0ab1242a0] check-in: [a2a47a8757] user: js, branch: trunk, size: 13839 [annotate] [blame] [check-ins using] [diff]
20:56
Make OF_INVALID_INIT_METHOD compatible with ARC file: [e1b8fc06c1] check-in: [29d691e834] user: js, branch: trunk, size: 13789 [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: [96b0f326a5] check-in: [543eb96c02] user: js, branch: trunk, size: 13651 [annotate] [blame] [check-ins using] [diff]

2016-03-20
10:55
undef __{unsafe_unretained,bridge,autoreleasing}

Newer versions of Clang have these as built-in defines, even when ARC is
disabled. file: [c42b7644a0] check-in: [ea5a19118a] user: js, branch: 0.8, size: 15108 [annotate] [blame] [check-ins using] [diff]

10:53
macros.h: Adjust a comment

This was not limited to Android, but also happens with newer versions of
Clang on all platforms. file: [207b43dc6a] check-in: [826c9570d3] user: js, branch: trunk, size: 13613 [annotate] [blame] [check-ins using] [diff]

2016-01-20
00:19
Add forwardingTargetForSelector: for ARM64/ELF

This has only been tested on Android so far. file: [f5907cb050] check-in: [7e6bad326c] user: js, branch: trunk, size: 13683 [annotate] [blame] [check-ins using] [diff]

2016-01-05
17:11
undef __{unsafe_unretained,bridge,autoreleasing}

It seems Clang has these as built-in defines when cross-compiling for
Android, even when ARC is disabled. file: [9f039167db] check-in: [3d11f9ee8f] user: js, branch: trunk, size: 13659 [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
Update copyright

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

00:41
Update copyright

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

2015-11-29
14:26
Remove defines we no longer need

Now that we require GCC >= 4.6, those features are always available. file: [bcbd739063] check-in: [be8db49635] user: js, branch: trunk, size: 13405 [annotate] [blame] [check-ins using] [diff]

11:43
Make properties a requirement and clean up code

This increases the required GCC version from 4.0 to 4.6 (exception:
Apple GCC, which already supports this with >= 4.0 starting with OS X
10.5). Since even GCC 4.6 is really old by now, there is no point in
still supporting something even older and making the code ugly because
of that. While some hardware and OS support was dropped from GCC 4.6
compared to GCC 4.0, there is nothing in there that would be an
interesting target with the exception of BeOS maybe - but a port to BeOS
can also be achieved using the Haiku support. The other dropped OSes are
mostly old versions of OSes while newer ones are still being supported
(and those newer versions of those OSes still support the same
hardware). file: [d6041f701d] check-in: [48980f2297] user: js, branch: trunk, size: 13786 [annotate] [blame] [check-ins using] [diff]

2015-11-21
18:35
Remove OF_NULLABLE / OF_NONNULL

Now that Clang switched to use _Nullable and _Nonnull instead of
__nullable / __nonnull, there is no longer a conflict with glibc, which
means we can just define _Nullable / _Nonnull to nothing if they are not
understood by the compiler (which did not work with __nullable /
__nonnull due to this conflict).

This also defines _Null_unspecified to nothing if unavailable. file: [9c39f051f0] check-in: [d526d938d7] user: js, branch: trunk, size: 14074 [annotate] [blame] [check-ins using] [diff]

2015-10-19
22:15
Add platform.h & make platform defines consistent file: [2ef46745a0] check-in: [1ba08eebc5] user: js, branch: trunk, size: 14111 [annotate] [blame] [check-ins using] [diff]
2015-10-17
22:50
Add +[OFSystemInfo supportsMXU] file: [57b5109a4c] check-in: [7399e9b249] user: js, branch: trunk, size: 15428 [annotate] [blame] [check-ins using] [diff]
15:06
Fix a missing include file: [c4da03627b] check-in: [2e73c5fb65] user: js, branch: trunk, size: 15304 [annotate] [blame] [check-ins using] [diff]
10:59
Add a port registry for the Wii

This is necessary as the Wii does not allow picking a random free port,
and thus we need to track which ports are used. file: [a7d0bdefbc] check-in: [ed4549ddd3] user: js, branch: trunk, size: 15283 [annotate] [blame] [check-ins using] [diff]

2015-10-01
20:34
Use _Nullable instead of __nullable

Same for _Nonnull / __nonnull.

Apple implemented it as __nullable / __nonnull in their version of Clang
and sent that for upstreaming. My inital comments about this being a
potential problem and to better use _Nullable / _Nonnull had been
rejected as being too late, so I assumed it stayed that way. But
apparently, it has been changed to _Nullable / _Nonnull before the 3.7.0
release. file: [a5359bc24a] check-in: [2fb22c605b] user: js, branch: trunk, size: 14924 [annotate] [blame] [check-ins using] [diff]

2015-06-28
16:28
Add OF_SUBCLASSING_RESTRICTED file: [1619f8ecc0] check-in: [5116342c0a] user: js, branch: trunk, size: 14926 [annotate] [blame] [check-ins using] [diff]
2015-06-17
22:11
Add OF_NULLABLE_PROPERTY

This is necessary to make GCC (>= 4.6 and Apple GCC) happy as they don't
like the list of property attributes ending in a comma. file: [67aef400e2] check-in: [80e1a9655b] user: js, branch: trunk, size: 14737 [annotate] [blame] [check-ins using] [diff]

2015-06-14
10:45
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. file: [6f2726fb11] check-in: [b7097a67b6] user: js, branch: trunk, size: 14648 [annotate] [blame] [check-ins using] [diff]

2015-06-13
22:26
Add support for and use the new nullability file: [6ce9a1b05b] check-in: [9e76144ef8] user: js, branch: trunk, size: 14584 [annotate] [blame] [check-ins using] [diff]
01:02
Add OF_KINDOF file: [73c4a25692] check-in: [320d776ded] user: js, branch: trunk, size: 14263 [annotate] [blame] [check-ins using] [diff]
2015-06-12
23:59
Add support for and use the new ObjC generics file: [602c2a02eb] check-in: [5329fe7c1a] user: js, branch: trunk, size: 14154 [annotate] [blame] [check-ins using] [diff]
2015-05-02
23:52
OF_ENSURE: Wrap in do / while (0) file: [f975939415] check-in: [e1b2c4bb1e] user: js, branch: trunk, size: 14017 [annotate] [blame] [check-ins using] [diff]
2015-03-30
21:33
Add OF_NO_RETURN_FUNC

OF_NO_RETURN_FUNC is defined when __attribute__((__noreturn__)) is
supported for functions, whereas OF_NO_RETURN is only defined when it is
supported for both functions and methods. file: [d141131552] check-in: [ffb39d1df6] user: js, branch: trunk, size: 13962 [annotate] [blame] [check-ins using] [diff]

2015-02-01
00:47
Reduce code size for OF_UNRECOGNIZED_SELECTOR file: [620c867f01] check-in: [e0c84651d6] user: js, branch: trunk, size: 13878 [annotate] [blame] [check-ins using] [diff]
2015-01-29
21:25
OF_RO[LR]: Correctly handle bits % sizeof * 8 == 0 file: [e67b80b7e5] check-in: [ee4b0920da] user: js, branch: trunk, size: 13906 [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
Update copyright file: [28504c42f6] check-in: [cfd374b906] user: js, branch: trunk, size: 13794 [annotate] [blame] [check-ins using] [diff]
2014-07-19
09:55
Don't use C11's noreturn

It causes just too much trouble: It breaks with some old versions of
Clang, where noreturn does not work correctly, and OS X headers break if
noreturn is defined, requiring an ugly and fragile workaround. It's just
not worth the trouble it causes, as the same functionality is available
through __attribute__((__noreturn__)). file: [d03270f705] check-in: [716b1fc2b3] user: js, branch: trunk, size: 13788 [annotate] [blame] [check-ins using] [diff]

2014-06-21
21:43
Move all macros from OFObject.h to macros.h

This means that OFObject.h imports macros.h now, making it unnecessary
to manually import macros.h in almost every file. And while at it, also
import autorelease.h in OFObject.h, so that this doesn't need to be
manually imported in almost every file as well. file: [605fc19a18] check-in: [13ee56edf3] user: js, branch: trunk, size: 14324 [annotate] [blame] [check-ins using] [diff]

2014-05-14
20:28
Always use __foo__ instead of foo for attributes file: [d84414160a] check-in: [e35b10115e] user: js, branch: trunk, size: 10588 [annotate] [blame] [check-ins using] [diff]
2014-05-06
21:38
Add a few OF_CONST_FUNC file: [4a0014aee6] check-in: [cbff518f16] user: js, branch: trunk, size: 10580 [annotate] [blame] [check-ins using] [diff]
2014-05-05
02:43
Add OF_NO_RETURN and OF_UNREACHABLE file: [c9c04d682a] check-in: [b885b6fdfa] user: js, branch: trunk, size: 10523 [annotate] [blame] [check-ins using] [diff]
02:13
Check for and use __builtin_bswap{16,32,64} file: [8621e81b30] check-in: [2729104cf6] user: js, branch: trunk, size: 10372 [annotate] [blame] [check-ins using] [diff]
2014-03-19
18:05
macros.h: Never define static_assert to assert

static_asserts can be used in places where asserts won't work and take
two parameters, while asserts only take one. file: [9ad949e286] check-in: [61369b9d26] user: js, branch: trunk, size: 10165 [annotate] [blame] [check-ins using] [diff]

2014-03-05
01:36
Add OF_ROUND_UP_POW2 macro file: [76ff6117a8] check-in: [ae9f0dc0e0] user: js, branch: trunk, size: 10208 [annotate] [blame] [check-ins using] [diff]
2014-02-22
01:14
Rename AMD64 to x86_64 file: [e55751e201] check-in: [05f4b0a4f0] user: js, branch: trunk, size: 10128 [annotate] [blame] [check-ins using] [diff]
2014-02-21
01:03
of_strdup: Add explicit cast for C++ compatibility file: [0fd9e55556] check-in: [33676cd3a9] user: js, branch: trunk, size: 10124 [annotate] [blame] [check-ins using] [diff]
2014-02-18
15:07
macros.h: Add OF_ARM64_ASM define file: [05f8092242] check-in: [efcf24c8ba] user: js, branch: trunk, size: 10117 [annotate] [blame] [check-ins using] [diff]
2014-02-13
23:26
Use -std=c11 instead of -std=gnu11

Not using -std=gnu11 means _GNU_SOURCE does not get defined anymore,
therefore this commit also adds the required feature defines for glibc.

Additionally, this adds of_strdup in macros.h, as strdup is an
extension. file: [3858acab50] check-in: [2f5af58573] user: js, branch: trunk, size: 10044 [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
Update copyright. file: [f7dad7806c] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 9811 [annotate] [blame] [check-ins using] [diff]
2013-12-07
17:30
macros.h: Add OF_BIGGEST_ALIGNMENT.

When the compiler supports C11, _Alignof(max_align_t) is used; otherwise
the __BIGGEST_ALIGNMENT__ define is tried with a fallback to 16. file: [d51c5fe23d] check-in: [fdfb2be253] user: js, branch: trunk, size: 9805 [annotate] [blame] [check-ins using] [diff]

16:56
macros.h: Make sure static_assert is defined. file: [4fb27cba60] check-in: [71ebf4e8fe] user: js, branch: trunk, size: 9612 [annotate] [blame] [check-ins using] [diff]
2013-12-05
21:26
Check for iOS in configure instead of macros.h.

The initial reason to do this in macros.h was that it would be
theoretically possible to do a universal build targeting OS X and iOS,
but in practice, they are too different as they use a different SDK,
therefore this does not make much sense. file: [abc861d5c4] check-in: [8602025532] user: js, branch: trunk, size: 9431 [annotate] [blame] [check-ins using] [diff]

2013-12-01
11:50
Clean up the path delimiter mess. file: [4a09bf3501] check-in: [00dbb47969] user: js, branch: trunk, size: 9642 [annotate] [blame] [check-ins using] [diff]
02:08
Port to DOS/DJGPP.

The port was much easier than expected. The only changes that were
required were defining the missing lrint() and useconds_t, the rest was
optional (like using backslashes for paths, even though slashes work
fine). file: [dcc14d0966] check-in: [a0b63a8df4] user: js, branch: trunk, size: 9541 [annotate] [blame] [check-ins using] [diff]

2013-11-30
19:53
OFThread.m: Move #ifdefs.

The reason is that the symbol nanosleep is available now on Win32, but
is part of the pthreads wrapper, which we don't use. file: [1065db52e2] check-in: [bd2389b6b8] user: js, branch: trunk, size: 9512 [annotate] [blame] [check-ins using] [diff]

2013-11-23
01:27
Add OF_UNRECOGNIZED_SELECTOR. file: [9204081dd6] check-in: [6e19bd47ee] user: js, branch: trunk, size: 9511 [annotate] [blame] [check-ins using] [diff]
01:12
Add OF_INVALID_INIT_METHOD. file: [0bb7e4c204] check-in: [35dafd5c57] user: js, branch: trunk, size: 9423 [annotate] [blame] [check-ins using] [diff]
2013-08-15
19:00
Move private methods into private headers. file: [086b67ded9] check-in: [1d7a1cbca0] user: js, branch: trunk, size: 9235 [annotate] [blame] [check-ins using] [diff]
2013-07-09
00:20
Add forwardingTargetForSelector: for ARM/ELF.

Currently, no methods returning structs are supported, see the comment
in OFObject. file: [1a66d76e58] check-in: [27daad1290] user: js, branch: trunk, size: 9563 [annotate] [blame] [check-ins using] [diff]

2013-07-08
16:00
Add a define to indicate forwarding stret is safe. file: [4fa25a7f6a] check-in: [b63feee32d] user: js, branch: trunk, size: 9517 [annotate] [blame] [check-ins using] [diff]
15:30
Check for forwarding at compile time.

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

2013-06-28
19:55
Fix FP endianess for universal builds. file: [171260d70c] check-in: [d9bd480b94] user: js, branch: trunk, size: 9123 [annotate] [blame] [check-ins using] [diff]
2013-06-26
17:18
Revive the PSP port. file: [b1f9e2924b] check-in: [530decab01] user: js, branch: trunk, size: 9132 [annotate] [blame] [check-ins using] [diff]
2013-05-04
10:05
OFMapTable: Minor corrections. file: [533552d659] check-in: [8a194de51c] user: js, branch: trunk, size: 9186 [annotate] [blame] [check-ins using] [diff]
2013-02-24
10:41
Update to BinaryPack1pre2. file: [03ac2254d3] check-in: [c4df7d61b6] user: js, branch: trunk, size: 9170 [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
Update copyright. file: [b86826e574] check-in: [813c00ccf0] user: js, branch: trunk, size: 9169 [annotate] [blame] [check-ins using] [diff]
2013-01-03
22:26
OFMapTable: Rotate hashes randomly.

This makes the map table use the full range of the hash and not only the
least significant bits, making it harder for an attacker to find
collisions. file: [19f9d4c0fa] check-in: [7cebeaa808] user: js, branch: trunk, size: 9163 [annotate] [blame] [check-ins using] [diff]

2012-12-26
19:55
Add -[OFString stringByStandardizing(URL)Path]. file: [60645bf692] check-in: [b98fd10000] user: js, branch: trunk, size: 9010 [annotate] [blame] [check-ins using] [diff]
2012-12-06
11:00
OFMapTable: Rotate hash by a random number of bits

By rotating the hash by a random number of bits, an attacker needs to
find collisions on the full 32 bits of the hash and not only on the
lower n bits that are actually used by the map table, as an attacker
can't know which bits are actually used for the map table. file: [6b2bc955be] check-in: [4857107479] user: js, branch: trunk, size: 9039 [annotate] [blame] [check-ins using] [diff]

00:14
Improve -[hash] of OFNumber and OFObject. file: [ba733f14be] check-in: [ac51f5f0cf] user: js, branch: trunk, size: 8886 [annotate] [blame] [check-ins using] [diff]
2012-12-04
09:19
Randomize hashes.

This prevents DoSing hashtables by creating conflicts deliberately. file: [419a2f32d2] check-in: [f60e4012b7] user: js, branch: trunk, size: 8880 [annotate] [blame] [check-ins using] [diff]

2012-11-30
16:09
Make runtime API more similar to Apple's.

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

2012-10-13
21:06
of_bswap* -> OF_BSWAP*.

This makes it clear that multiple evaluation of parameters is possible. file: [1ed7809f51] check-in: [1cb8fee5c3] user: js, branch: trunk, size: 8945 [annotate] [blame] [check-ins using] [diff]

19:30
of_endianess_t -> of_byte_order_t. file: [c89d0aa05c] check-in: [255fd75828] user: js, branch: trunk, size: 9211 [annotate] [blame] [check-ins using] [diff]
2012-10-03
15:41
Move definition of restricted to OFObject.h. file: [037045a86a] check-in: [7239333455] user: js, branch: trunk, size: 9207 [annotate] [blame] [check-ins using] [diff]
2012-08-19
21:27
Fix types for of_{dimension,rectangle,point}(). file: [427e7a37b9] check-in: [a82ee4d8c7] user: js, branch: trunk, size: 9319 [annotate] [blame] [check-ins using] [diff]
2012-07-20
23:46
Fix the ARM architecture detection mess. file: [df40a393e9] check-in: [7e7d14b815] user: js, branch: trunk, size: 9303 [annotate] [blame] [check-ins using] [diff]
2012-07-19
01:56
Only use rev(16) when __ARM_ARCH_6__ is defined. file: [60c9e97976] check-in: [db8a3bb7ac] user: js, branch: trunk, size: 8659 [annotate] [blame] [check-ins using] [diff]
2012-07-16
23:49
Add OF_ENSURE.

This is to be used when the condition includes a statement that needs to
be executed, as with assert, this would not be executed anymore when
NDEBUG is defined. file: [f51fb05aa2] check-in: [417b213d41] user: js, branch: trunk, size: 8605 [annotate] [blame] [check-ins using] [diff]

22:44
Don't require extra parentheses for OF_(UN)LIKELY. file: [8665430981] check-in: [ff8b2a6c29] user: js, branch: trunk, size: 8385 [annotate] [blame] [check-ins using] [diff]
2012-07-03
15:50
Merge branch 'runtime'

* runtime: (76 commits)
runtime: Add exception handling.
... file: [cf167a3135] check-in: [4c4fdb3429] user: js, branch: trunk, size: 8381 [annotate] [blame] [check-ins using] [diff]

2012-06-11
23:08
Add OF_PATH_PARENT_DIR. file: [18b872fc74] check-in: [bfd8f4cfec] user: js, branch: trunk, size: 8762 [annotate] [blame] [check-ins using] [diff]
2012-03-23
12:04
Merge branch 'master' into runtime file: [5266d93197] check-in: [3719e10281] user: js, branch: runtime, size: 8348 [annotate] [blame] [check-ins using] [diff]
2012-03-21
17:33
objc_setProperty(): Use a signed char for copy.

No more abusing a poor BOOL... file: [ef3c33f2fd] check-in: [d989794cc2] user: js, branch: trunk, size: 8729 [annotate] [blame] [check-ins using] [diff]

2012-03-17
14:26
Move definition of __BIGGEST_ALIGNMENT__ to macros.h. file: [a584e5dfec] check-in: [2d4a63cfcb] user: js, branch: trunk, size: 8722 [annotate] [blame] [check-ins using] [diff]
2012-03-13
20:18
Move objc_{set,get}Property() declarations to macros.h. file: [422d3d7cb2] check-in: [92da2a3a5b] user: js, branch: trunk, size: 8593 [annotate] [blame] [check-ins using] [diff]
2012-03-04
19:42
Remove all code for the GNU runtime. file: [52ea94e401] check-in: [7f0b0c9811] user: js, branch: runtime, size: 8091 [annotate] [blame] [check-ins using] [diff]
2012-02-25
11:24
Always define __STDC_{CONSTANT,LIMIT}_MACROS before libc includes.
This is necessary for ObjC++.
file: [d255a09914] check-in: [99ed50a5e4] user: js, branch: 0.6, size: 8472 [annotate] [blame] [check-ins using] [diff]
2012-01-05
00:56
Update copyright. file: [e095ab78b7] check-in: [ce70e17b38] user: js, branch: trunk, size: 8607 [annotate] [blame] [check-ins using] [diff]
2011-09-17
19:18
Make hashes independant of endianess in OF{Float,Double}{Vector,Matrix}.

Also removes unnecessary OF_HASH_ADD_INT* macros (except
OF_HASH_ADD_INT32 which was often used to hash hashes and is now called
OF_HASH_ADD_HASH). file: [fee9f03105] check-in: [f3db074478] user: js, branch: trunk, size: 8601 [annotate] [blame] [check-ins using] [diff]

2011-07-24
20:05
Add a few defines for runtime methods so they always have the same name. file: [d6db7501d8] check-in: [c7bc7b93d9] user: js, branch: trunk, size: 9248 [annotate] [blame] [check-ins using] [diff]
2011-07-15
10:30
Make sure restrict is always defined.

This way, we also don't need -std=gnu99 in objfw-config anymore.

Fixes ObjC++, for which -std=gnu99 is invalid and where there is no
restrict. file: [7481fee224] check-in: [77fe5572fe] user: js, branch: trunk, size: 8727 [annotate] [blame] [check-ins using] [diff]

2011-07-08
20:07
Rename OF_PATH_DELIM to OF_PATH_DELIMITER. file: [dbe9648eca] check-in: [7d9efc3924] user: js, branch: trunk, size: 8615 [annotate] [blame] [check-ins using] [diff]
2011-06-30
20:44
Don't use _NSGetEnviron or environ on iOS. file: [0a4450faa7] check-in: [5af02ce36a] user: js, branch: 0.5, size: 6220 [annotate] [blame] [check-ins using] [diff]
2011-06-26
00:30
Don't use _NSGetEnviron or environ on iOS. file: [9584592c80] check-in: [932c2eb049] user: js, branch: trunk, size: 8607 [annotate] [blame] [check-ins using] [diff]
2011-06-25
20:47
Fix a possible warning in macros.h. file: [763676dccc] check-in: [4b0f1639b4] user: js, branch: 0.5, size: 6010 [annotate] [blame] [check-ins using] [diff]
20:47
Fix a possible warning in macros.h. file: [fb95ceb8de] check-in: [b0b3a22b9a] user: js, branch: trunk, size: 8397 [annotate] [blame] [check-ins using] [diff]
2011-06-15
21:38
We need OFObject.h in macros.h now for of_{point,dimension,rectangle}_t. file: [d83f16de45] check-in: [674acc5082] user: js, branch: trunk, size: 8373 [annotate] [blame] [check-ins using] [diff]
2011-06-13
23:53
Add of_range(). file: [5405f50b68] check-in: [a9c38eb137] user: js, branch: trunk, size: 8375 [annotate] [blame] [check-ins using] [diff]
23:52
Add of_{point,dimension,rectangle}(). file: [8e57c109c4] check-in: [6f357e67bd] user: js, branch: trunk, size: 8249 [annotate] [blame] [check-ins using] [diff]
2011-06-07
14:10
Small changes to OF_SETTER/OF_GETTER. file: [e25630d4fc] check-in: [ff3d9a9225] user: js, branch: 0.5, size: 5986 [annotate] [blame] [check-ins using] [diff]
14:10
Small changes to OF_SETTER/OF_GETTER. file: [3b292be428] check-in: [9e2ea02a08] user: js, branch: trunk, size: 7818 [annotate] [blame] [check-ins using] [diff]
2011-06-06
03:19
Always use unions to access a float as a uint32_t. file: [9c903dee26] check-in: [4b8e8836c8] user: js, branch: trunk, size: 7812 [annotate] [blame] [check-ins using] [diff]
2011-06-05
18:07
Add methods for byte swapping floats and doubles. file: [793bb737f0] check-in: [2be6a03c5a] user: js, branch: trunk, size: 7768 [annotate] [blame] [check-ins using] [diff]
2011-06-04
16:02
Add OF_HASH_ADD_INT{16,32,64}. file: [93351baa39] check-in: [871fcf6e0b] user: js, branch: trunk, size: 7099 [annotate] [blame] [check-ins using] [diff]
2011-05-21
18:10
Better way to define OF_ENDIANESS_NATIVE. file: [d5e29a8d9f] check-in: [e52a53d668] user: js, branch: trunk, size: 6172 [annotate] [blame] [check-ins using] [diff]
18:04
Make sure OF_ENDIANESS_NATIVE is always defined. file: [d826a851e9] check-in: [0158f764e3] user: js, branch: trunk, size: 6300 [annotate] [blame] [check-ins using] [diff]
2011-05-15
17:00
Make it possible to specify the byte order for Unicode / UTF-16. file: [6f620278d4] check-in: [3dad5e5803] user: js, branch: trunk, size: 6146 [annotate] [blame] [check-ins using] [diff]
2011-05-08
13:10
Fix a typo in OFMD5Hash.m. file: [9fafdeca9d] check-in: [b8052b3f65] user: js, branch: trunk, size: 6028 [annotate] [blame] [check-ins using] [diff]
2011-04-23
00:11
More style improvements. file: [eef3962225] check-in: [d8c31454b4] user: js, branch: trunk, size: 6010 [annotate] [blame] [check-ins using] [diff]
2011-03-11
13:02
Make it easier to generate getters and setters. file: [ab000dd8bb] check-in: [2c72efb4e7] user: js, branch: trunk, size: 5980 [annotate] [blame] [check-ins using] [diff]
2011-02-09
18:55
Initial PSP port.

Does compile with --disable-threads --disable-shared, but does not link
yet. file: [957228cdfe] check-in: [d230ac577d] user: js, branch: trunk, size: 5698 [annotate] [blame] [check-ins using] [diff]

2011-02-05
11:57
Fix a typo. file: [00f7754073] check-in: [6fe8882d64] user: js, branch: trunk, size: 5644 [annotate] [blame] [check-ins using] [diff]
2011-02-01
21:41
Define __STDC_CONSTANT_MACROS if not defined. file: [23260691a6] check-in: [0ca438498e] user: js, branch: trunk, size: 5644 [annotate] [blame] [check-ins using] [diff]
20:53
Rename OF_BSWAP_* to of_bswap_* as they are not really macros. file: [faed5c9c98] check-in: [8384ca4273] user: js, branch: trunk, size: 5574 [annotate] [blame] [check-ins using] [diff]
2011-01-01
20:19
Change license. file: [67131af672] check-in: [da6b3d26cb] user: js, branch: trunk, size: 5554 [annotate] [blame] [check-ins using] [diff]
2010-11-21
00:52
Use __attribute__((const)) where useful. file: [0f503553d9] check-in: [ef8b7bb44e] user: js, branch: trunk, size: 5298 [annotate] [blame] [check-ins using] [diff]
2010-10-26
18:24
Define __STDC_LIMIT_MACROS for C++ compatibility. file: [c5676bbe71] check-in: [f9316e0692] user: js, branch: trunk, size: 5145 [annotate] [blame] [check-ins using] [diff]
2010-10-21
20:01
Make sure Jenkins' hash always interprets the byte as unsigned. file: [e799d166ec] check-in: [2552db2c1c] user: js, branch: trunk, size: 5080 [annotate] [blame] [check-ins using] [diff]
2010-08-25
21:35
Assembly implementation for atomic operations (x86 and AMD64). file: [d5b97d5660] check-in: [bd2eef5fe1] user: js, branch: trunk, size: 5072 [annotate] [blame] [check-ins using] [diff]
2010-04-22
09:05
Add OF_PATH_DELIM to macros.h. file: [4ed7c72a5b] check-in: [d931239e25] user: js, branch: trunk, size: 4924 [annotate] [blame] [check-ins using] [diff]
2010-04-10
13:46
Improve OF_ROL. file: [fc4c29980c] check-in: [11489e7218] user: js, branch: trunk, size: 4840 [annotate] [blame] [check-ins using] [diff]
13:32
Prevent repeated evaluation of i in OF_BSWAP{16,32,64}_CONST. file: [0c7fd6a945] check-in: [c5b72902da] user: js, branch: trunk, size: 4775 [annotate] [blame] [check-ins using] [diff]
2010-04-08
21:22
Extra parentheses for OF_BSWAP{16,32,64}_CONST. file: [92c862e4a0] check-in: [8fa3b3b737] user: js, branch: trunk, size: 4841 [annotate] [blame] [check-ins using] [diff]
2010-04-01
22:15
Use __asm__ instead of asm to prevent conflicts. file: [869ffd926c] check-in: [3588e29b9c] user: js, branch: trunk, size: 4813 [annotate] [blame] [check-ins using] [diff]
2010-02-19
16:36
Update copyright. file: [2804045e97] check-in: [42886185fd] user: js, branch: trunk, size: 4776 [annotate] [blame] [check-ins using] [diff]
2010-02-02
18:58
Added: Rename OFMacros.h to macros.h, as it's not a class. file: [423a04e77c] check-in: [832188d759] user: js, branch: trunk, size: 4776 [annotate] [blame] [check-ins using]