-
Notifications
You must be signed in to change notification settings - Fork 60
Closed
Labels
bugSomething isn't workingSomething isn't workingdocumentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or request
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.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingdocumentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or request