Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add objc_sys crate #19

Merged
merged 36 commits into from
Sep 8, 2021
Merged

Add objc_sys crate #19

merged 36 commits into from
Sep 8, 2021

Commits on Sep 5, 2021

  1. Configuration menu
    Copy the full SHA
    a626c49 View commit details
    Browse the repository at this point in the history
  2. sys: Rename types to match original header files and docs

    Types:
    - Imp -> IMP
    - Object -> objc_object
    - Sel -> objc_selector
    - Protocol -> objc_protocol
    - Class -> objc_class
    - Ivar -> objc_ivar
    - Method -> objc_method
    
    New type aliases:
    - id
    - SEL
    - Class
    - Ivar
    - Method
    - Protocol (alias of objc_protocol, not a pointer)
    madsmtm committed Sep 5, 2021
    Configuration menu
    Copy the full SHA
    62cf446 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b80be65 View commit details
    Browse the repository at this point in the history
  4. sys: Add more types

    madsmtm committed Sep 5, 2021
    Configuration menu
    Copy the full SHA
    9e64aeb View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    915d582 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    7d5ad7d View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    316cf28 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    254a6ed View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    96a80f0 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    052bcd6 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    cbad530 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    cbba512 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    fc4f4f7 View commit details
    Browse the repository at this point in the history
  14. sys: Use preferred types in bindings

    Makes it possible to assign which pointers are mutable and which are immutable.
    madsmtm committed Sep 5, 2021
    Configuration menu
    Copy the full SHA
    5446efa View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    75d42b4 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    b736cb5 View commit details
    Browse the repository at this point in the history
  17. sys: Update variable names and const-ness

    Also remove redundant (the original) function definitions
    madsmtm committed Sep 5, 2021
    Configuration menu
    Copy the full SHA
    6cf189a View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    ea55781 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    7309ada View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    9028470 View commit details
    Browse the repository at this point in the history
  21. Specify the "links" key in objc_sys

    Makes it possible for downstream users to customize the linking to libobjc, see https://doc.rust-lang.org/cargo/reference/build-scripts.html#overriding-build-scripts
    madsmtm committed Sep 5, 2021
    Configuration menu
    Copy the full SHA
    b8a54e5 View commit details
    Browse the repository at this point in the history
  22. sys: Add generated GNUStep libobjc2 bindings from v1.7

    This is the lowest version we'll target because they added support for the `objc_msgSend` family of functions which we might want to use (instead of the current `objc_msg_lookup`). Alternatively we could have chosen v1.6, but they're both from 2013 so it's kinda moot at this point. v1.5 is missing lots of functionality.
    
    Commit gnustep/libobjc2@50a797f
    madsmtm committed Sep 5, 2021
    Configuration menu
    Copy the full SHA
    a0f01d7 View commit details
    Browse the repository at this point in the history
  23. sys: Generate GNUStep libobjc2 bindings from v2.1

    This can be used to see the main differences in the objc API from v1.7 to v2.1; in essence, the API we'll be using haven't actually changed!
    
    Commit gnustep/libobjc2@282486d
    madsmtm committed Sep 5, 2021
    Configuration menu
    Copy the full SHA
    3c01d3a View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    1327d24 View commit details
    Browse the repository at this point in the history
  25. sys: Verify that GNUStep supports all ARC functions

    Also add objc_retainAutoreleaseReturnValue that I missed in 052bcd6
    madsmtm committed Sep 5, 2021
    Configuration menu
    Copy the full SHA
    2d19c5f View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    6b9f624 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    87504cd View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    39faf9e View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    513ed03 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    4d72245 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    98ae6d3 View commit details
    Browse the repository at this point in the history
  32. Make objc_sys::IMP nullable

    Probably all of the underlying APIs can handle NULL values, so not having this possibility is restricting.
    
    And most of them can sometimes _return_ a NULL value, so not handling that is unsound!
    madsmtm committed Sep 5, 2021
    Configuration menu
    Copy the full SHA
    a275174 View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2021

  1. sys: Fix GNUStep imports

    madsmtm committed Sep 6, 2021
    Configuration menu
    Copy the full SHA
    216b1b4 View commit details
    Browse the repository at this point in the history
  2. sys: Fix a few mistakes

    madsmtm committed Sep 6, 2021
    Configuration menu
    Copy the full SHA
    991b50f View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2021

  1. sys: Add a few comments mentioning private functions in objc-abi.h

    It's unclear how much these are part of the ABI stability, and whether they're actually useful
    madsmtm committed Sep 7, 2021
    Configuration menu
    Copy the full SHA
    e63fc13 View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2021

  1. sys: Add README

    madsmtm committed Sep 8, 2021
    Configuration menu
    Copy the full SHA
    a97a2ea View commit details
    Browse the repository at this point in the history