Don't throw Objective C exception when quitting MacVim by ychin · Pull Request #1371 · macvim-dev/macvim

@ychin

Currently when quitting MacVim, MMVimController will throw an exception
in `sendMessage:`. This is because MMAppController's handler for
quitting simply closes the connection, terminates the Vim processes and
quit; it doesn't individually shut down each Vim controller cleanly.
This is actually ok because we are quitting the app anyway, and it's not
terrible to just let the OS clean up (applicationWillTerminate also has
a 5 second executation timer set by macOS), but we do need to make sure
Vim controllers won't be trying to handle the now invalid connections.

Currently the exceptions will be caught by an exception handler, but
it's still not great, and could be confused with a bug, especially if
logging is enabled.

Add a way to set `isInitialized` to NO when shutting down, so that the
controllers will be blocked from trying to send connections.

@ychin ychin deleted the no-exception-when-quitting branch

February 22, 2023 21:08

ychin added a commit that referenced this pull request

Jul 10, 2023
Updated to Vim 9.0.1677

Announcements
====================

Website
--------------------

The official website for MacVim is now https://macvim.org. Previously it just
forwarded to https://macvim-dev.github.io/macvim/. You can also read the MacVim
documentation at https://macvim.org/docs/gui_mac.txt.html. #1385

Features
====================

Updater / What's New page
--------------------

There is now a "What's New" page that will automatically be shown whenever
MacVim detected that it has been updated to a new version (can be disabled in
Settings). The page will also include all the release notes if you have
updated across multiple versions. This feature is useful for users who turned
on "Automatically install updates" or installs MacVim through other methods
like Homebrew but would still like to see the release notes when a new version
comes out. You can also access it through the Help menu. #1414

MacVim should now report its version in a much more consistent manner in the
"About MacVim" page and when the updater reports there is a new version. It
should look something like "r176 (Vim 9.0.1276)" where "r176" is the MacVim
release number and the 9.0.1276 is the bundled Vim version. #1293 #1393

Sparkle (updater for MacVim) is now updated to 2.4.2. #1416

New Vim features
--------------------

- New bundled colorschemes: wildcharm/retrobox/sorbet/zaibatsu (vim/vim#12163)
- File encryption now has a new `cryptmethod`: `xchacha20v2`, which is designed
  to be more forward compatible with future Vim versions than `xchacha20`.
  (v9.0.1481)
- `switchbuf` works for more commands. (v9.0.1546)
- Statusline now supports multiple alignment "%=" items. (v9.0.1300)
- New UTF-16 utility functions (`strutf16len` and `utf16idx`) (v9.0.1485)
- Misc 'smoothscroll' bugs fixes

General
====================

* Removed non-Unicode localization files, which helps cut down on app size. #1397
* Miscellaneous documentation fixes. #1415 #1375 #1386 #1363 (by @dkav)
* The disk image for MacVim (MacVim.dmg) is now in APFS and uses better
  compression for better efficiency. #1409

Fixes
====================

* Printing a file in macOS 13 Ventura (using `:hardcopy` or File→Print) should
  work again. #1390
* Fixed a broken symlink to XPCServices in the Sparkle framework. #1367
* Fixed MacVim to not throw (safe) Objective C exceptions when quitting. #1371
* Fixed welcome message not being aligned properly in Simplified Chinese and
  show the Vim 9 prompt. #1381
* Removed some unnecessary test files in the runtime folders which were
  included erroneously. #1418

Scripting
====================

- Scripting languages versions:
    - Python is now built against 3.11, up from 3.10.

Compatibility
====================

Requires macOS 10.9 or above. (10.9 - 10.12 requires downloading a
separate legacy build)

Script interfaces have compatibility with these versions:

- Lua 5.4
- Perl 5.30
- Python2 2.7
- Python3 3.11
- Ruby 3.2