File tree Expand file tree Collapse file tree 6 files changed +18
-4
lines changed Expand file tree Collapse file tree 6 files changed +18
-4
lines changed Original file line number Diff line number Diff line change @@ -584,6 +584,8 @@ jobs:
584
584
ASMFLAGS : ${{ matrix.cflags }}
585
585
LDFLAGS : ${{ matrix.cflags }}
586
586
ARGS : --no-default-features --features=std,${{ matrix.runtime }}
587
+ # http://wiki.gnustep.org/index.php/Building_GNUstep_under_Debian_FreeBSD#installing_gnustep-make
588
+ RUNTIME_VERSION : gnustep-${{ matrix.libobjc2 }}
587
589
588
590
steps :
589
591
- uses : actions/checkout@v3
Original file line number Diff line number Diff line change @@ -122,6 +122,10 @@ impl AttributeParser<'_, '_> {
122
122
}
123
123
}
124
124
125
+ /// We completely ignore `__kindof` in Rust as it is done in Swift, since
126
+ /// it only exists to allow legacy Objective-C code to continue compiling.
127
+ ///
128
+ /// See <https://lapcatsoftware.com/articles/kindof.html>
125
129
fn is_kindof ( & mut self , position : ParsePosition ) -> bool {
126
130
self . strip ( "__kindof" , position)
127
131
}
Original file line number Diff line number Diff line change @@ -171,6 +171,7 @@ fn main() {
171
171
// The fragile runtime is expected on i686-apple-darwin, see:
172
172
// https://github.com/llvm/llvm-project/blob/release/13.x/clang/lib/Driver/ToolChains/Darwin.h#L228-L231
173
173
// https://github.com/llvm/llvm-project/blob/release/13.x/clang/lib/Driver/ToolChains/Clang.cpp#L3639-L3640
174
+ // https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtVersionsPlatforms.html
174
175
( MacOS ( version) , "x86" ) => format ! ( "macosx-fragile-{version}" ) ,
175
176
( MacOS ( version) , _) => format ! ( "macosx-{version}" ) ,
176
177
( IOS ( version) , _) => format ! ( "ios-{version}" ) ,
Original file line number Diff line number Diff line change 2
2
//!
3
3
//! These bindings contain almost no documentation, so it is highly
4
4
//! recommended to read the documentation of the original libraries:
5
- //! - Apple's [official documentation][apple].
5
+ //! - Apple's [documentation about the Objective-C runtime][runtime-guide].
6
+ //! - Apple's [runtime reference][apple].
6
7
//! - Apple's `objc4` [source code][objc4], in particular `runtime.h`.
7
8
//! - GNUStep's `libobjc2` [source code][libobjc2], in particular `runtime.h`.
8
9
//!
9
10
//! See also the [`README.md`](https://crates.io/crates/objc-sys) for more
10
11
//! background information, and for how to configure the desired runtime.
11
12
//!
13
+ //! [runtime-guide]: https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Introduction/Introduction.html
12
14
//! [apple]: https://developer.apple.com/documentation/objectivec/objective-c_runtime?language=objc
13
15
//! [libobjc2]: https://github.com/gnustep/libobjc2/tree/v2.1/objc
14
16
//! [objc4]: https://github.com/apple-oss-distributions/objc4
Original file line number Diff line number Diff line change @@ -45,6 +45,7 @@ extern_c_unwind! {
45
45
extern_c ! {
46
46
#[ cfg( any( doc, not( objfw) ) ) ]
47
47
pub fn imp_getBlock( imp: IMP ) -> * mut objc_object;
48
+ // See also <https://landonf.org/code/objc/imp_implementationWithBlock.20110413.html>
48
49
#[ cfg( any( doc, not( objfw) ) ) ]
49
50
pub fn imp_implementationWithBlock( block: * mut objc_object) -> IMP ;
50
51
#[ cfg( any( doc, not( objfw) ) ) ]
Original file line number Diff line number Diff line change @@ -35,6 +35,10 @@ macro_rules! conditional_try {
35
35
} } ;
36
36
}
37
37
38
+ // More information on how objc_msgSend works:
39
+ // <https://web.archive.org/web/20200118080513/http://www.friday.com/bbum/2009/12/18/objc_msgsend-part-1-the-road-map/>
40
+ // <https://www.mikeash.com/pyblog/objc_msgsends-new-prototype.html>
41
+ // <https://www.mikeash.com/pyblog/friday-qa-2012-11-16-lets-build-objc_msgsend.html>
38
42
#[ cfg( feature = "apple" ) ]
39
43
mod msg_send_primitive {
40
44
#[ allow( unused_imports) ]
@@ -340,13 +344,13 @@ pub unsafe trait MessageReceiver: private::Sealed + Sized {
340
344
/// Sends a message to the receiver with the given selector and arguments.
341
345
///
342
346
/// The correct version of `objc_msgSend` will be chosen based on the
343
- /// return type. For more information, see the section on "Sending
344
- /// Messages" in Apple's [documentation][runtime ].
347
+ /// return type. For more information, see [ the Messaging section in
348
+ /// Apple's Objective-C Runtime Programming Guide][guide-messaging ].
345
349
///
346
350
/// If the selector is known at compile-time, it is recommended to use the
347
351
/// [`msg_send!`] macro rather than this method.
348
352
///
349
- /// [runtime ]: https://developer.apple.com/documentation/objectivec/objective-c_runtime?language=objc
353
+ /// [guide-messaging ]: https://developer.apple.com/library/archive/ documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtHowMessagingWorks.html
350
354
///
351
355
///
352
356
/// # Safety
You can’t perform that action at this time.
0 commit comments