Closed
Description
My work on fixing upstream issues, or at least opening new issues in this repo to track them.
objc
issues:
- mem::swap doesn't work with Objects SSheldon/rust-objc#6
- Tracked in Unstable:
extern type
support #73
- Tracked in Unstable:
- Adding a method isn't ergonomic SSheldon/rust-objc#12
- Tracked in Better class declaration #30
- Implement Encode for more types SSheldon/rust-objc#26
- The system has been improved in Add
RefEncode
, and makeEncode
bounds required #14, pointers to pointers now work. - And the rest is fixed by More
Encode
andRefEncode
implementations #52.
- The system has been improved in Add
- Should Object and other runtime types be Send/Sync? SSheldon/rust-objc#44
- In Add
objc_sys
crate #19 we ensure that the types are notSend
,Sync
andUnpin
by default - And then they were made the correct thing in
Send
andSync
fixes #94.
- In Add
- Sending messages is inefficient because of selector lookup SSheldon/rust-objc#49
- Tracked in Add static selectors #104
- Consider making objc no_std compatible SSheldon/rust-objc#51
- Worked on in More
no_std
support #6, Prepare for a time when we can make the cratesno_std
#152 and Remove libstd from objc-sys and block-sys #305. - Remaining is mostly C types from
std::os::raw
,CStr
andCString
- 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. - Unsure about stuff in
rc::autorelease
? - Conclusion: This will happen at some point, but it requires higher MSRV and more compiler support.
- Worked on in More
- Add custom derive for Encode SSheldon/rust-objc#52
- Tracked in
derive
macros #55
- Tracked in
- API for passing already nul-terminated strings to avoid allocation SSheldon/rust-objc#54
- Type register and method export attributes for objc in Rust like C# in xamarin? SSheldon/rust-objc#56
- The
extern_class!
andextern_methods!
macros basically do this
- The
- Unsound drop of uninitialised variable in Object::set_ivar. SSheldon/rust-objc#61
- sel! can no longer be specifically macro_used in versions 0.2.3+ SSheldon/rust-objc#69
- Already fixed upstream in Make objc macros compatible with
use macro!
SSheldon/rust-objc#76
- Already fixed upstream in Make objc macros compatible with
- More macros SSheldon/rust-objc#74
- Probably pretty future, tracked in Better class declaration #30
- Implement Default for WeakPtr? SSheldon/rust-objc#77
- Done in Id improvements #21
- Docs link is stale SSheldon/rust-objc#78
- Fixed in Improve documentation #13.
- Plan for higher-level bindings? SSheldon/rust-objc#79
- Mostly answered, rest is tracked in Improve
objc2::foundation
#67
- Mostly answered, rest is tracked in Improve
- Memory leaks when passing Drop objects to msg_send! SSheldon/rust-objc#80
- More ergonomic references SSheldon/rust-objc#95
- Done in Id improvements #21
- The future of the Objective-C crate ecosystem SSheldon/rust-objc#101
- The reason this repo exist
- Get Object from Class? SSheldon/rust-objc#106
- Answered
- Strange conflict between NSProcessInfo and NSScreen, causing segmentation fault. SSheldon/rust-objc#107
- Answered
- Is the underlying BOOL type a bool on Apple silicon SSheldon/rust-objc#110
- Answered
- How to call @available? SSheldon/rust-objc#111
- Moved to How do we handle availability? #266
- Soundness issue with
msg_send!
SSheldon/rust-objc#112 - iOS ClassDecl panic - Should I do something before a ClassDecl? SSheldon/rust-objc#113
- Answered and documented in Various small fixes #84
- How to import and use constants SSheldon/rust-objc#114
- Answered
- How to link struct from framework? SSheldon/rust-objc#115
- Answered
- How do you not cause memory leaks? SSheldon/rust-objc#117
- Answered
- How to use callback functions? SSheldon/rust-objc#118
- Answered
- Basic documentation code does not compile SSheldon/rust-objc#119
- Fixed by making macros hygenic
- Issue with callback functions SSheldon/rust-objc#120
- Answered
- Add separate macro for msg_send! that does not verify message types SSheldon/rust-objc#121
- Answered
objc
PRs:
- Use mbox instead of malloc_buf SSheldon/rust-objc#72
- Opened upstream Questions kennytm/mbox#20 for some changes I'd like to see.
- See also
malloced
,malloc-array
. - See also Features that require
libc
#500. - Conclusion: It's put behind a feature to cut down on dependencies (
mbox
/malloc_buf
requirelibc
).
- Change docs link to docs.rs SSheldon/rust-objc#81
- Fixed in Improve documentation #13.
- change from http to https SSheldon/rust-objc#88
- Fixed in Improve documentation #13.
- Derive Debug and PartialEq on a few more types SSheldon/rust-objc#93
- Fixed in Better follow API guidelines #102
- Run rustfmt and require it in CI SSheldon/rust-objc#96
- Fixed in Run
cargo fmt
#2
- Fixed in Run
- Redo reference counting SSheldon/rust-objc#98
- Moved to Id improvements #21.
- Cleanup CI SSheldon/rust-objc#99
- Fixed in Fix CI setup #5
- Faster
msg_send!
SSheldon/rust-objc#100 - Stop dereferencing
msg_send!
's first argument SSheldon/rust-objc#102- Replaced by Improve message sending #38
- Make autoreleasepool take the pool as a parameter SSheldon/rust-objc#103
- Add
unstable_extern_types
feature SSheldon/rust-objc#104- Moved to Unstable:
extern type
support #73
- Moved to Unstable:
-
MakeSel
an opaque struct likeIvar
,Method,
Class
,Protocol
andObject
SSheldon/rust-objc#105- I think I agree with @SSheldon here, this something we shouldn't do,
Sel
makes sense as a normalCopy
type
- I think I agree with @SSheldon here, this something we shouldn't do,
- increase number of MessageArguments impl tuples SSheldon/rust-objc#116
- Included in Webkit #355
- Add apple tvos support SSheldon/rust-objc#122
objc_foundation
:
- Make "into" methods take self with type Id<Self> SSheldon/rust-objc-foundation#1
- Tracked in
Id
conversion traits #48 / MakeId
#[fundamental]
#50
- Tracked in
- Guarantee that pointers to NSObjects can be encoded SSheldon/rust-objc-foundation#2
- Relicense under dual MIT/Apache-2.0 SSheldon/rust-objc-foundation#5
- Tracked in Relicense under trio MIT/Apache-2.0/Zlib #23.
- Violating soundness requirements SSheldon/rust-objc-foundation#10
- Tracked in Fix ownership in
objc2-foundation
#29.
- Tracked in Fix ownership in
- Casting to Object SSheldon/rust-objc-foundation#11
- Answered
- License File SSheldon/rust-objc-foundation#12
- Fixed by moving into this repo (which has a license file).
- memory leak in INSstring.as_str() SSheldon/rust-objc-foundation#15
- Tracked in Safer
NSString
#24.
- Tracked in Safer
- Link against gnustep-base on Linux SSheldon/rust-objc-foundation#6
- Merged into Fix CI setup #5.
block
still doesn't work, that is tracked elsewhere.
- Merged into Fix CI setup #5.
- add license file SSheldon/rust-objc-foundation#13
- Manually dereference
Id
SSheldon/rust-objc-foundation#14- Replaced by Improve message sending #38
- Basic version of NSError SSheldon/rust-objc-foundation#16
- Fixed in Add basic version of
NSError
#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!
#283
- Fixed in Add basic version of
objc_exception
:
- Relicense under dual MIT/Apache-2.0 SSheldon/rust-objc-exception#2
- Tracked in Relicense under trio MIT/Apache-2.0/Zlib #23.
- Fails to cross-compile for Apple Silicon SSheldon/rust-objc-exception#6
- Fixed in Fix CI setup #5 (which included Don't include objc headers in
exception.m
SSheldon/rust-objc-exception#8)
- Fixed in Fix CI setup #5 (which included Don't include objc headers in
- Add
no_std
support and migrate to 2018 edition SSheldon/rust-objc-exception#7- Fixed in Fix warnings, and other chores #3 and More
no_std
support #6.
- Fixed in Fix warnings, and other chores #3 and More
- Don't include objc headers in
exception.m
SSheldon/rust-objc-exception#8- Included in Fix CI setup #5.
- Use a struct to represent
Exception
instead of an uninhabited enum SSheldon/rust-objc-exception#9 - Make
throw
more efficient SSheldon/rust-objc-exception#10- Included in Fix CI setup #5.
- Use nightly features SSheldon/rust-objc-exception#11
- Mostly for prosperity.
- Will not compile with homebrew's GCC. SSheldon/rust-objc-exception#12
- I'm not sure if we can support GCC, or if their Objective-C support is too terrible?
- Moved to Support better cross compilation, as well as other compilers (GCC) #499
- cross compile from x86_64 linux to aarch64-apple-darwin SSheldon/rust-objc-exception#13
- Fixed in Fix CI setup #5
objc-encode
:
- Improve documentation SSheldon/rust-objc-encode#2
- Moved to Improve documentation #13.
- Implement Encode for arrays using const generics SSheldon/rust-objc-encode#3
- Change Encoding parameter sizes SSheldon/rust-objc-encode#4
- Moved to Change Encoding parameter sizes #11.
- Support architectures with pointer width 16 SSheldon/rust-objc-encode#5
- Use
str::strip_prefix
instead of customrm_prefix
function SSheldon/rust-objc-encode#6- Fixed in Fix warnings, and other chores #3.
- Implement
Encode
for unsized types as well SSheldon/rust-objc-encode#7 - Implement a to_string method for Encoding enum SSheldon/rust-objc-encode#8
- Answered
objc_id
:
- Convert a slice of Ids to references at zero-cost SSheldon/rust-objc-id#1
- Included in
Id
traits #41
- Included in
- Allow Option<Id<T>> to use the null pointer optimization SSheldon/rust-objc-id#2
- Done as part of Id improvements #21.
- Relicense under dual MIT/Apache-2.0 SSheldon/rust-objc-id#3
- Tracked in Relicense under trio MIT/Apache-2.0/Zlib #23.
- Default Id to shared by renaming {Id => OwnedId} and {ShareId => Id} SSheldon/rust-objc-id#4
- Id improvements #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!
- Consider setting an associated object to verify that owned Ids are unique SSheldon/rust-objc-id#5
- License File SSheldon/rust-objc-id#6
- Fixed by moving into this repo (which has a license file).
- add MIT license file SSheldon/rust-objc-id#7
- Fixed by moving into this repo (which has a license file).
- Fix
Send
andSync
implementations onId
andWeakId
SSheldon/rust-objc-id#8
block
Moved to #168.