@@ -13,24 +13,27 @@ see that for related crates.
13
13
14
14
## Runtime Support
15
15
16
- This library is basically just a raw interface to the aptly specified [ Blocks
17
- ABI ] ( https://clang.llvm.org/docs/Block-ABI-Apple.html ) . However, different
18
- runtime implementations exist and act in slightly different ways (and have
19
- several different helper functions), the most important aspect being that the
20
- libraries are named differently, so the linking must take that into account.
21
-
22
- The user can choose the desired runtime by using the relevant cargo feature
23
- flags, see the following sections (might have to disable the default ` apple `
16
+ This library is a raw interface to the aptly specified [ Blocks ABI ] [ abi ] .
17
+ However, different runtime implementations exist and act in slightly different
18
+ ways (and have several different helper functions), the most important aspect
19
+ being that the libraries are named differently, so the linking must take that
20
+ into account.
21
+
22
+ You can choose the desired runtime by using the relevant cargo feature flags,
23
+ see the following sections (you might have to disable the default ` apple `
24
24
feature first). Note that if the ` objc-sys ` crate is present in the module
25
25
tree, this should have the same feature flag enabled as that.
26
26
27
27
28
+ [ abi ] : https://clang.llvm.org/docs/Block-ABI-Apple.html
29
+
30
+
28
31
### Apple's [ ` libclosure ` ] ( https://github.com/apple-oss-distributions/libclosure )
29
32
30
33
- Feature flag: ` apple ` .
31
34
32
- This is naturally the most sophisticated runtime, and it has quite a lot more
33
- features than the specification mandates. This is used by default.
35
+ This is the most sophisticated runtime, and it has quite a lot more features
36
+ than the specification mandates. It is used by default.
34
37
35
38
The minimum required operating system versions are as follows:
36
39
- macOS: ` 10.6 `
@@ -45,11 +48,11 @@ Though in practice Rust itself requires higher versions than this.
45
48
46
49
- Feature flag: ` compiler-rt ` .
47
50
48
- This is effectively just a copy of Apple's older (around macOS 10.6) runtime,
49
- and is now used in [ Swift's ` libdispatch ` ] and [ Swift's Foundation] as well.
51
+ This is a copy of Apple's older (around macOS 10.6) runtime, and is now used
52
+ in [ Swift's ` libdispatch ` ] and [ Swift's Foundation] as well.
50
53
51
- This can be easily used on many Linux systems with the ` libblocksruntime-dev `
52
- package.
54
+ The runtime and associated headers can be installed on many Linux systems with
55
+ the ` libblocksruntime-dev ` package.
53
56
54
57
Using this runtime probably won't work together with ` objc-sys ` crate.
55
58
@@ -77,8 +80,8 @@ Sources:
77
80
78
81
** Unstable: Hasn't been tested on Windows yet!**
79
82
80
- Essentially just [ a fork] ( https://github.com/microsoft/libobjc2 ) based on
81
- GNUStep's ` libobjc2 ` version 1.8.
83
+ [ A fork] ( https://github.com/microsoft/libobjc2 ) based on GNUStep's ` libobjc2 `
84
+ version 1.8.
82
85
83
86
84
87
### [ ` ObjFW ` ] ( https://github.com/ObjFW/ObjFW )
0 commit comments