My work on fixing upstream issues, or at least opening new issues in this repo to track them. ## `objc` issues: - [x] https://github.com/SSheldon/rust-objc/issues/6 - Tracked in https://github.com/madsmtm/objc2/pull/73 - [x] https://github.com/SSheldon/rust-objc/issues/12 - Tracked in https://github.com/madsmtm/objc2/issues/30 - [x] https://github.com/SSheldon/rust-objc/issues/26 - The system has been improved in https://github.com/madsmtm/objc2/pull/14, pointers to pointers now work. - And the rest is fixed by https://github.com/madsmtm/objc2/pull/52. - [x] https://github.com/SSheldon/rust-objc/issues/44 - In https://github.com/madsmtm/objc2/pull/19 we ensure that the types are not `Send`, `Sync` and `Unpin` by default - And then they were made the correct thing in https://github.com/madsmtm/objc2/pull/94. - [x] https://github.com/SSheldon/rust-objc/issues/49 - Tracked in https://github.com/madsmtm/objc2/pull/104 - [x] https://github.com/SSheldon/rust-objc/issues/51 - Worked on in https://github.com/madsmtm/objc2/pull/6, https://github.com/madsmtm/objc2/pull/152 and https://github.com/madsmtm/objc2/pull/305. - Remaining is mostly C types from `std::os::raw`, `CStr` and `CString` - see tracking issues https://github.com/rust-lang/rust/issues/94501 and https://github.com/rust-lang/rust/issues/98314. - Unsure about stuff in `rc::autorelease`? - Conclusion: This will happen at some point, but it requires higher MSRV and more compiler support. - [x] https://github.com/SSheldon/rust-objc/issues/52 - Tracked in https://github.com/madsmtm/objc2/issues/55 - [x] https://github.com/SSheldon/rust-objc/issues/54 - Tracked in https://github.com/madsmtm/objc2/pull/113 - [x] https://github.com/SSheldon/rust-objc/issues/56 - The `extern_class!` and `extern_methods!` macros basically do this - [x] https://github.com/SSheldon/rust-objc/issues/61 - Fixed by https://github.com/madsmtm/objc2/pull/14 - [x] https://github.com/SSheldon/rust-objc/issues/69 - Already fixed upstream in https://github.com/SSheldon/rust-objc/pull/76 - [x] https://github.com/SSheldon/rust-objc/issues/74 - Probably pretty future, tracked in https://github.com/madsmtm/objc2/issues/30 - [x] https://github.com/SSheldon/rust-objc/issues/77 - Done in https://github.com/madsmtm/objc2/pull/21 - [x] https://github.com/SSheldon/rust-objc/issues/78 - Fixed in https://github.com/madsmtm/objc2/pull/13. - [x] https://github.com/SSheldon/rust-objc/issues/79 - Mostly answered, rest is tracked in #67 - [x] https://github.com/SSheldon/rust-objc/issues/80 - Fixed by https://github.com/madsmtm/objc2/pull/14 - [x] https://github.com/SSheldon/rust-objc/issues/95 - Done in https://github.com/madsmtm/objc2/pull/21 - [x] https://github.com/SSheldon/rust-objc/issues/101 - The reason this repo exist - [x] https://github.com/SSheldon/rust-objc/issues/106 - Answered - [x] https://github.com/SSheldon/rust-objc/issues/107 - Answered - [x] https://github.com/SSheldon/rust-objc/issues/110 - Answered - [x] https://github.com/SSheldon/rust-objc/issues/111 - Moved to https://github.com/madsmtm/objc2/issues/266 - [x] https://github.com/SSheldon/rust-objc/issues/112 - Fixed in #150. - [x] https://github.com/SSheldon/rust-objc/issues/113 - Answered and documented in https://github.com/madsmtm/objc2/pull/84 - [x] https://github.com/SSheldon/rust-objc/issues/114 - Answered - [x] https://github.com/SSheldon/rust-objc/issues/115 - Answered - [x] https://github.com/SSheldon/rust-objc/issues/117 - Answered - [x] https://github.com/SSheldon/rust-objc/issues/118 - Answered - [x] https://github.com/SSheldon/rust-objc/issues/119 - Fixed by making macros hygenic - [x] https://github.com/SSheldon/rust-objc/issues/120 - Answered - [x] https://github.com/SSheldon/rust-objc/issues/121 - Answered ## `objc` PRs: - [x] https://github.com/SSheldon/rust-objc/pull/72 - Opened upstream https://github.com/kennytm/mbox/issues/20 for some changes I'd like to see. - See also [`malloced`](https://github.com/nvzqz/malloced), [`malloc-array`](https://github.com/notflan/rs-malloc-array). - See also https://github.com/madsmtm/objc2/issues/500. - Conclusion: It's put behind a feature to cut down on dependencies (`mbox`/`malloc_buf` require `libc`). - [x] https://github.com/SSheldon/rust-objc/pull/81 - Fixed in https://github.com/madsmtm/objc2/pull/13. - [x] https://github.com/SSheldon/rust-objc/pull/88 - Fixed in https://github.com/madsmtm/objc2/pull/13. - [x] https://github.com/SSheldon/rust-objc/pull/93 - Fixed in https://github.com/madsmtm/objc2/pull/102 - [x] https://github.com/SSheldon/rust-objc/pull/96 - Fixed in https://github.com/madsmtm/objc2/pull/2 - [x] https://github.com/SSheldon/rust-objc/pull/98 - Moved to https://github.com/madsmtm/objc2/pull/21. - [x] https://github.com/SSheldon/rust-objc/pull/99 - Fixed in https://github.com/madsmtm/objc2/pull/5 - [x] https://github.com/SSheldon/rust-objc/pull/100 - Moved to https://github.com/madsmtm/objc2/pull/15. - [x] https://github.com/SSheldon/rust-objc/pull/102 - Replaced by https://github.com/madsmtm/objc2/pull/38 - [x] https://github.com/SSheldon/rust-objc/pull/103 - Moved to https://github.com/madsmtm/objc2/pull/17. - [x] https://github.com/SSheldon/rust-objc/pull/104 - Moved to https://github.com/madsmtm/objc2/pull/73 - [x] ~https://github.com/SSheldon/rust-objc/pull/105~ - I think I agree with @SSheldon here, this something we shouldn't do, `Sel` makes sense as a normal `Copy` type - [x] https://github.com/SSheldon/rust-objc/pull/116 - Included in #355 - [x] https://github.com/SSheldon/rust-objc/pull/122 ## `objc_foundation`: - [x] https://github.com/SSheldon/rust-objc-foundation/issues/1 - Tracked in https://github.com/madsmtm/objc2/pull/48 / https://github.com/madsmtm/objc2/pull/50 - [x] https://github.com/SSheldon/rust-objc-foundation/issues/2 - Fixed in https://github.com/madsmtm/objc2/pull/14. - [x] https://github.com/SSheldon/rust-objc-foundation/issues/5 - Tracked in https://github.com/madsmtm/objc2/issues/23. - [x] https://github.com/SSheldon/rust-objc-foundation/issues/10 - Tracked in https://github.com/madsmtm/objc2/issues/29. - [x] https://github.com/SSheldon/rust-objc-foundation/issues/11 - Answered - [x] https://github.com/SSheldon/rust-objc-foundation/issues/12 - Fixed by moving into this repo (which has a license file). - [x] https://github.com/SSheldon/rust-objc-foundation/issues/15 - Tracked in https://github.com/madsmtm/objc2/issues/24. - [x] https://github.com/SSheldon/rust-objc-foundation/pull/6 - Merged into https://github.com/madsmtm/objc2/pull/5. `block` still doesn't work, that is tracked elsewhere. - [x] https://github.com/SSheldon/rust-objc-foundation/pull/13 - [x] https://github.com/SSheldon/rust-objc-foundation/pull/14 - Replaced by https://github.com/madsmtm/objc2/pull/38 - [x] https://github.com/SSheldon/rust-objc-foundation/pull/16 - Fixed in https://github.com/madsmtm/objc2/pull/221, further improvements to error handling in https://github.com/madsmtm/objc2/pull/276 and https://github.com/madsmtm/objc2/issues/283 ## `objc_exception`: - [x] https://github.com/SSheldon/rust-objc-exception/issues/2 - Tracked in https://github.com/madsmtm/objc2/issues/23. - [x] https://github.com/SSheldon/rust-objc-exception/issues/6 - Fixed in https://github.com/madsmtm/objc2/pull/5 (which included https://github.com/SSheldon/rust-objc-exception/pull/8) - [x] https://github.com/SSheldon/rust-objc-exception/pull/7 - Fixed in https://github.com/madsmtm/objc2/pull/3 and https://github.com/madsmtm/objc2/pull/6. - [x] https://github.com/SSheldon/rust-objc-exception/pull/8 - Included in https://github.com/madsmtm/objc2/pull/5. - [x] https://github.com/SSheldon/rust-objc-exception/pull/9 - Moved to https://github.com/madsmtm/objc2/pull/7. - [x] https://github.com/SSheldon/rust-objc-exception/pull/10 - Included in https://github.com/madsmtm/objc2/pull/5. - [x] https://github.com/SSheldon/rust-objc-exception/pull/11 - Mostly for prosperity. - [x] https://github.com/SSheldon/rust-objc-exception/issues/12 - I'm not sure if we can support GCC, or if their Objective-C support is too terrible? - Moved to https://github.com/madsmtm/objc2/issues/499 - [x] https://github.com/SSheldon/rust-objc-exception/issues/13 - Fixed in https://github.com/madsmtm/objc2/pull/5 ## `objc-encode`: - [x] https://github.com/SSheldon/rust-objc-encode/pull/2 - Moved to https://github.com/madsmtm/objc2/pull/13. - [x] https://github.com/SSheldon/rust-objc-encode/pull/3 - Moved to https://github.com/madsmtm/objc2/pull/10. - [x] https://github.com/SSheldon/rust-objc-encode/pull/4 - Moved to https://github.com/madsmtm/objc2/pull/11. - [x] https://github.com/SSheldon/rust-objc-encode/pull/5 - Moved to https://github.com/madsmtm/objc2/pull/12. - [x] https://github.com/SSheldon/rust-objc-encode/pull/6 - Fixed in https://github.com/madsmtm/objc2/pull/3. - [x] https://github.com/SSheldon/rust-objc-encode/pull/7 - Moved to https://github.com/madsmtm/objc2/pull/9. - [x] https://github.com/SSheldon/rust-objc-encode/pull/8 - Answered ## `objc_id`: - [x] https://github.com/SSheldon/rust-objc-id/issues/1 - Included in https://github.com/madsmtm/objc2/pull/41 - [x] https://github.com/SSheldon/rust-objc-id/issues/2 - Done as part of https://github.com/madsmtm/objc2/pull/21. - [x] https://github.com/SSheldon/rust-objc-id/issues/3 - Tracked in https://github.com/madsmtm/objc2/issues/23. - [x] https://github.com/SSheldon/rust-objc-id/issues/4 - https://github.com/madsmtm/objc2/pull/21 removed the default, then we can add a new one back later in a backwards-compatible way if we figure out that's desired! - [x] https://github.com/SSheldon/rust-objc-id/issues/5 - Tracked in https://github.com/madsmtm/objc2/pull/127 - [x] https://github.com/SSheldon/rust-objc-id/issues/6 - Fixed by moving into this repo (which has a license file). - [x] https://github.com/SSheldon/rust-objc-id/issues/7 - Fixed by moving into this repo (which has a license file). - [x] https://github.com/SSheldon/rust-objc-id/issues/8 - Moved to https://github.com/madsmtm/objc2/pull/8. ## `block` Moved to https://github.com/madsmtm/objc2/issues/168.
My work on fixing upstream issues, or at least opening new issues in this repo to track them.
objcissues:extern typesupport #73RefEncode, and makeEncodebounds required #14, pointers to pointers now work.EncodeandRefEncodeimplementations #52.objc_syscrate #19 we ensure that the types are notSend,SyncandUnpinby defaultSendandSyncfixes #94.no_stdsupport #6, Prepare for a time when we can make the cratesno_std#152 and Remove libstd from objc-sys and block-sys #305.std::os::raw,CStrandCString- see tracking issues Tracking Issue for core_ffi_c rust-lang/rust#94501 and Tracking Issue for feature(core_c_str) and feature(alloc_c_string) rust-lang/rust#98314.rc::autorelease?derivemacros #55terminateddependency and useNulTerminatedStrfor inputs #113extern_class!andextern_methods!macros basically do thisRefEncode, and makeEncodebounds required #14use macro!SSheldon/rust-objc#76objc2::foundation#67RefEncode, and makeEncodebounds required #14msg_send!SSheldon/rust-objc#112msg_send!is done #150.objcPRs:malloced,malloc-array.libc#500.mbox/malloc_bufrequirelibc).cargo fmt#2msg_send!SSheldon/rust-objc#100msgSendfunctions on apple devices #15.msg_send!'s first argument SSheldon/rust-objc#102autoreleasepooltake the pool as a parameter #17.unstable_extern_typesfeature SSheldon/rust-objc#104extern typesupport #73MakeSelan opaque struct likeIvar,Method,Class,ProtocolandObjectSSheldon/rust-objc#105Selmakes sense as a normalCopytypeobjc_foundation:Idconversion traits #48 / MakeId#[fundamental]#50RefEncode, and makeEncodebounds required #14.objc2-foundation#29.NSString#24.blockstill doesn't work, that is tracked elsewhere.IdSSheldon/rust-objc-foundation#14NSError#221, further improvements to error handling in Better error handling inmsg_send!andmsg_send_id!#276 and Support error return and out parameters indefine_class!#283objc_exception:exception.mSSheldon/rust-objc-exception#8)no_stdsupport and migrate to 2018 edition SSheldon/rust-objc-exception#7no_stdsupport #6.exception.mSSheldon/rust-objc-exception#8Exceptioninstead of an uninhabited enum SSheldon/rust-objc-exception#9throwmore efficient SSheldon/rust-objc-exception#10objc-encode:Encodefor arrays using const generics #10.str::strip_prefixinstead of customrm_prefixfunction SSheldon/rust-objc-encode#6Encodefor unsized types as well SSheldon/rust-objc-encode#7Encodefor unsized types as well #9.objc_id:Idtraits #41Ids' ownership is correct using associated objects #127SendandSyncimplementations onIdandWeakIdSSheldon/rust-objc-id#8SendandSyncimplementations onIdandWeakId#8.blockMoved to #168.