Skip to content

Epic: Build universal app to support Apple Silicon #1136

Closed
@ychin

Description

@ychin

We need to get an universal app built for MacVim that will work both on Apple Silicon / M1 Macs. Currently MacVim is buildable under Apple Silicon, but the binary release is only x86 and will work in Apple Silicon under Rosetta. This is usually not a big deal but it's less efficient, and it makes it impossible to interface with native Python / Ruby / etc in plugins.

Tracking some tasks that we need to do or dependencies:

  • Set up CI support for Apple Silicon #1263
  • Homebrew support for Apple Silicon. We mostly need it to work for external packages like gettext and other scripting languages.
    • They already support Apple Silicon in unofficial manner, with /opt/homebrew/ currently the tentative folder for arm64 packages (since Homebrew is planning to only support thin binaries for now, they have to put these packages at a difference place).
  • Support for building universal x86 / Apple Silicon (arm64) app #1150
    • Modify CI build scripts to generate universal app. MacVim itself is easy via a single Xcode setting, but to build Vim itself we need to either get the compiler to generate universal binary or use lipo to stitch it together. Also, it's unclear if each CI instance builds their own non-universal app and we combine them in a later CI step, or each CI builds an universal app separately (which is annoying because then we need to cross-compile with all the dependencies available).
  • Update Homebrew-core's formula, so brew install macvim also gets Apple Silicon version.
  • Documentation for users for how to use this, turn on/off, configure scripting languages.
    • Thinking more about this, I don't know what this actually means. MacVim works right now and there really isn't much you need to know about as a user. Just crossing this off.

Metadata

Metadata

Assignees

No one assigned

    Labels

    EpicLarge tasks to be split up into smaller chunksInfrastructureNon-app infrastructure issues, e.g. CI

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions