ObjFW  History of src/OFSet.h of 71f54d7bb6236c61

History of file src/OFSet.h at check-in 71f54d7bb6236c61

2024-06-17
21:08
Always use <ObjFW/ObjFW.h> in documentation file: [409b98b629] check-in: [164f2fb4bf] user: js, branch: trunk, size: 7806 [annotate] [blame] [check-ins using] [diff]
2024-04-03
02:16
Change license to LGPLv3 only file: [2fb0412f03] check-in: [7413a728a7] user: js, branch: trunk, size: 7806 [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
Update copyright file: [dfe1ffa107] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 7598 [annotate] [blame] [check-ins using] [diff]
2023-08-13
22:02
OFSet: Add designated initializers file: [27d5fba5ea] check-in: [d0205355f5] user: js, branch: trunk, size: 7598 [annotate] [blame] [check-ins using] [diff]
2023-04-10
19:22
Remove OFSerialization

While the idea sounds nice that the tag name is the class, this means the
serialization includes whether something is mutable or immutable. This means
doing as much as making something immutable changes the serialization, which
can then cause issues after being deserialized. file: [b6b0fc8990] check-in: [6ce0093f8d] user: js, branch: trunk, size: 7422 [annotate] [blame] [check-ins using] [diff]

2023-01-06
09:04
Update copyright file: [e408900b6b] check-in: [8939cbdb52] user: js, branch: trunk, size: 7467 [annotate] [blame] [check-ins using] [diff]
2022-06-12
06:27
Remove a few useless methods file: [4c0dd3a76f] check-in: [6228b691b5] user: js, branch: trunk, size: 7467 [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
Update copyright file: [d5a622be48] check-in: [1a86b8175b] user: js, branch: trunk, size: 7998 [annotate] [blame] [check-ins using] [diff]
2021-04-17
03:21
Rename all blocks file: [b05430c060] check-in: [c4e0e56fa3] user: js, branch: new-naming-convention, size: 7998 [annotate] [blame] [check-ins using] [diff]
2021-04-07
20:52
Override -[objectEnumerator] in some classes

Classes using lightweight generics should also use them for the
enumerator to allow stronger typing. file: [14327ba57e] check-in: [f0f38b0f42] user: js, branch: trunk, size: 8017 [annotate] [blame] [check-ins using] [diff]

2021-03-07
15:07
*.h: Fold methods into one line where it fits file: [a377c99f36] check-in: [1948e7e972] user: js, branch: trunk, size: 7796 [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
Update copyright file: [17726306c1] check-in: [374e1a1bfa] user: js, branch: trunk, size: 7799 [annotate] [blame] [check-ins using] [diff]
2020-10-03
11:35
Use /** */ instead of /*! */ for documentation file: [18028f8bc4] check-in: [163a4a5a2e] user: js, branch: trunk, size: 7888 [annotate] [blame] [check-ins using] [diff]
2020-01-02
01:51
Update copyright file: [e80c92b359] check-in: [c7f0229795] user: js, branch: trunk, size: 7888 [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: [f80d14d494] check-in: [496695d778] user: js, branch: trunk, size: 7911 [annotate] [blame] [check-ins using] [diff]

2019-06-20
23:36
Document methods to override in class clusters file: [9f71c62224] check-in: [d537543238] user: js, branch: trunk, size: 7885 [annotate] [blame] [check-ins using] [diff]
2019-03-23
22:03
Add -[valueForKeyPath:] / -[setValue:forKeyPath:] file: [2986242031] check-in: [d7824704f9] user: js, branch: trunk, size: 7783 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [5e61cccf26] check-in: [0509d7a844] user: js, branch: trunk, size: 7971 [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
Update copyright notice file: [4e74e25bba] check-in: [7e5c81e186] user: js, branch: trunk, size: 7965 [annotate] [blame] [check-ins using] [diff]
2017-11-20
22:35
OFSetTests: Test all implementations file: [52573bc3f6] check-in: [7c8ac46f53] user: js, branch: trunk, size: 7942 [annotate] [blame] [check-ins using] [diff]
2017-11-18
18:50
Documentation: Use @brief for all properties file: [878ae2eb77] check-in: [cc3ad3ddd3] user: js, branch: trunk, size: 7930 [annotate] [blame] [check-ins using] [diff]
2017-10-29
21:58
Convert methods to properties where appropriate

This improves Swift compatibility. file: [62a20daa00] check-in: [f3ccf14461] user: js, branch: trunk, size: 7924 [annotate] [blame] [check-ins using] [diff]

2017-10-17
00:33
Do not use implicit method return types

Instead, explicitly declare them, as OF_ASSUME_NONNULL_{BEGIN,END} does
not apply to implicit return types. This means that after this commit,
all init methods have a nonnull return type, as they should have. file: [6c82eb5230] check-in: [2f4e0df8be] user: js, branch: trunk, size: 8193 [annotate] [blame] [check-ins using] [diff]

2017-10-01
14:05
Disable -Wnullable-to-nonnull-conversion again

It does not work well enough yet: While creating a lot of noise, it
fails to even find many of the obvious cases. Depending on the static
analyzer seems to be the better approach for now. file: [28701b2ea5] check-in: [e47c219327] user: js, branch: trunk, size: 8123 [annotate] [blame] [check-ins using] [diff]

2017-09-28
23:02
Enable -Wnullable-to-nonnull-conversion and adjust file: [968a9faa33] check-in: [2de9660312] user: js, branch: trunk, size: 8114 [annotate] [blame] [check-ins using] [diff]
2017-09-27
22:35
More nullability fixes file: [c9d70b7eb7] check-in: [697e3ecbf7] user: js, branch: trunk, size: 8123 [annotate] [blame] [check-ins using] [diff]
2017-06-05
18:56
Doxyfile: Add missing defines file: [b570ea6601] check-in: [4b6dfe02f2] user: js, branch: trunk, size: 8132 [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: [48306f95d4] check-in: [4af49a13c3] user: js, branch: trunk, size: 8143 [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: [0fe90e5221] check-in: [44f45c2e35] user: js, branch: trunk, size: 8127 [annotate] [blame] [check-ins using] [diff]

2016-06-05
20:37
Implement Key Value Coding for OFSet

If the key starts with an @, the @ is stripped and the super method is
called. Otherwise, this returns the value for all objects / sets the
value for all objects. file: [be2d24001b] check-in: [ef8d57bd4e] user: js, branch: trunk, size: 8121 [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
Update copyright

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

00:41
Update copyright

While at it, also update the mail address. file: [58c61ab64e] check-in: [2a27cf3000] user: js, branch: trunk, size: 7180 [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: [b3a46a1679] check-in: [d526d938d7] user: js, branch: trunk, size: 7176 [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: [cac22c2803] check-in: [b7097a67b6] user: js, branch: trunk, size: 7184 [annotate] [blame] [check-ins using] [diff]

2015-06-13
22:26
Add support for and use the new nullability file: [4f3cbb67f1] check-in: [9e76144ef8] user: js, branch: trunk, size: 7180 [annotate] [blame] [check-ins using] [diff]
2015-06-12
23:59
Add support for and use the new ObjC generics file: [da75a58c99] check-in: [5329fe7c1a] user: js, branch: trunk, size: 7083 [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
Update copyright file: [c4488446e4] check-in: [cfd374b906] user: js, branch: trunk, size: 5981 [annotate] [blame] [check-ins using] [diff]
2014-02-18
18:50
Documentation: Show correct imports file: [d36d2e8e15] check-in: [246cfe0807] user: js, branch: trunk, size: 5975 [annotate] [blame] [check-ins using] [diff]
2014-01-04
00:24
Update copyright. file: [2236735c3f] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 5934 [annotate] [blame] [check-ins using] [diff]
2013-05-04
12:04
OFSet: Add -[allObjects] and -[anyObject]. file: [94f5724138] check-in: [d1a7509701] user: js, branch: trunk, size: 5928 [annotate] [blame] [check-ins using] [diff]
2013-03-08
22:44
Document the block types.

This also removes "bool *stop" from some blocks where it does not make
sense. file: [a277fd200b] check-in: [e8473b9db8] user: js, branch: trunk, size: 5671 [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: [bbf8e3f8e2] check-in: [c5ef582958] user: js, branch: trunk, size: 5311 [annotate] [blame] [check-ins using] [diff]

2013-01-09
22:24
Update copyright. file: [a68cfc7c01] check-in: [813c00ccf0] user: js, branch: trunk, size: 5310 [annotate] [blame] [check-ins using] [diff]
2012-12-15
19:45
OFSet: Fix wrong argument type in interface. file: [b01baf3659] check-in: [b39e7c8bd1] user: js, branch: trunk, size: 5304 [annotate] [blame] [check-ins using] [diff]
2012-12-12
22:02
OFSet: Add a few new methods to create new sets. file: [7443a8dee9] check-in: [12fef9798a] user: js, branch: trunk, size: 5307 [annotate] [blame] [check-ins using] [diff]
2012-12-02
16:43
Add a warning about mutating objects in a set. file: [2a615a7348] check-in: [7da3f6be09] user: js, branch: trunk, size: 4674 [annotate] [blame] [check-ins using] [diff]
16:42
Add a warning about mutating objects in a set. file: [84fe8aa7db] check-in: [c07d060cd8] user: js, branch: 0.7, size: 4674 [annotate] [blame] [check-ins using] [diff]
2012-10-28
12:38
Switch to a headerdoc-compatible doc format. file: [45f4477f95] check-in: [1ad9565253] user: js, branch: trunk, size: 4526 [annotate] [blame] [check-ins using] [diff]
2012-10-09
15:07
Make use of instancetype. file: [e720d47024] check-in: [fb515e8e24] user: js, branch: trunk, size: 4526 [annotate] [blame] [check-ins using] [diff]
2012-03-29
07:57
Add a few "const" where they make sense. file: [ec53fbdca5] check-in: [89d53f2a9a] user: js, branch: trunk, size: 4456 [annotate] [blame] [check-ins using] [diff]
2012-03-28
09:25
Add +[OFSet setWithObjects:count:]. file: [3339e4633d] check-in: [5e98e61531] user: js, branch: trunk, size: 4444 [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: [889864d837] check-in: [99ed50a5e4] user: js, branch: 0.6, size: 3832 [annotate] [blame] [check-ins using] [diff]
2012-01-05
00:56
Update copyright. file: [bd79d5f4f9] check-in: [ce70e17b38] user: js, branch: trunk, size: 3697 [annotate] [blame] [check-ins using] [diff]
2011-10-31
21:18
Move placeholder interfaces from headers to implementation files.
This way they are not public anymore.
file: [e8a0550195] check-in: [6bdb2e4b01] user: js, branch: trunk, size: 3691 [annotate] [blame] [check-ins using] [diff]
2011-09-11
17:09
Documentation improvements. file: [adde5b4579] check-in: [8d554c0421] user: js, branch: trunk, size: 3733 [annotate] [blame] [check-ins using] [diff]
2011-09-09
10:50
Change documentation for abstract classes. file: [08e53a27f1] check-in: [eedcd6c7b2] user: js, branch: trunk, size: 3789 [annotate] [blame] [check-ins using] [diff]
2011-09-01
18:08
Add serialization and deserialization for OFSet and OFCountedSet. file: [c63fa846e0] check-in: [8d5ca84bc5] user: js, branch: trunk, size: 3767 [annotate] [blame] [check-ins using] [diff]
2011-08-31
16:01
Make OFSet and OFCountedSet abstract classes. file: [9364338508] check-in: [66b12bb66f] user: js, branch: trunk, size: 3718 [annotate] [blame] [check-ins using] [diff]
2011-08-21
11:03
Make OFDictionary an abstract class. file: [ed184131ea] check-in: [c0098f89fe] user: js, branch: trunk, size: 3763 [annotate] [blame] [check-ins using] [diff]
2011-07-26
21:42
Add OFCountedSet. file: [d4e9745629] check-in: [eb791d09d1] user: js, branch: trunk, size: 3743 [annotate] [blame] [check-ins using] [diff]
2011-07-21
23:56
Add -[enumerateObjectsUsingBlock:] and -[filteredSetUsingBlock:]. file: [ccc5bd9784] check-in: [3e6766ac10] user: js, branch: trunk, size: 3721 [annotate] [blame] [check-ins using] [diff]
2011-07-19
23:04
Add fast enumeration to OFSet. file: [a13751ccb0] check-in: [cbf0b4dd91] user: js, branch: trunk, size: 3101 [annotate] [blame] [check-ins using] [diff]
2011-07-18
22:53
Added: Add OFSet and OFMutableSet. file: [1df2b6e5f6] check-in: [8df328d503] user: js, branch: trunk, size: 3078 [annotate] [blame] [check-ins using]