Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Software Desktops (Apple) OS X Operating Systems iMac Apple Hardware Technology

Apple Starts Alerting Users That It Will End 32-Bit App Support On the Mac (techcrunch.com) 267

An anonymous reader quotes a report from TechCrunch: Tomorrow at midnight PT, Apple will begin issuing an alert box when you open a 32-bit app in MacOS 10.13.4. It's a one-time (per app) alert, designed to help MacOS make the full transition to 64-bit. At some unspecified time in the future, the operating system will end its support for 32-bit technology meaning those apps that haven't been updated just won't work. That time, mind you, is not tomorrow, but the company's hoping that this messaging will help light a fire under users and developers to upgrade before that day comes. Says the company on its help page, "To ensure that the apps you purchase are as advanced as the Mac you run them on, all future Mac software will eventually be required to be 64-bit." As the company notes, the transition's been a long time coming. The company started making it 10 or so years ago with the Power Mac G5 desktop, so it hasn't exactly been an overnight ask for developers. Of course, if you've got older, non-supported software in your arsenal, the eventual end-of-lifing could put a severe damper on your workflow. For those users, there will no doubt be some shades of the transition from OS 9 to OS X in all of this.
This discussion has been archived. No new comments can be posted.

Apple Starts Alerting Users That It Will End 32-Bit App Support On the Mac

Comments Filter:
  • why? (Score:2, Interesting)

    by Anonymous Coward

    To save a few GB in system libs? I realize that there are arch improvements in amd64 but that's no reason to break compatibility.

    • Re: (Score:3, Interesting)

      by drinkypoo ( 153816 )

      To save a few GB in system libs? I realize that there are arch improvements in amd64 but that's no reason to break compatibility.

      It's probably actually to reduce testing. It's still dumb. You're gonna have to run a VM to run 32 bit software. Even Microsoft is better at back compatibility than that. But Apple has never been shy about forcing its customers to spend more money, because they repeatedly demonstrate a willingness to do that — and they often give it to Apple.

      • You're gonna have to run a VM to run 32 bit software

        What 32-bit software?

        Even Microsoft is better at back compatibility than that

        The first version of Windows to support 32-bit x86 applications was Windows NT 3.1. It ran on a 386. Since then, Windows has been collecting 32-bit applications and it's only recently that a large enough proportion of the installed base has been running 64-bit Windows on 64-bit processors that it's made sense to switch.

        In contrast, the first version of OS X to support 32-bit x86 applications was Mac OS X 10.4, which also added support for 64-bit x86 applications in a point release.

      • by phayes ( 202222 )

        The Microsoft mantra: Never remove obsolete possibly exploitable system code. Somebody somewhere might be upset if his old minesweeper game that he coded 20+ years ago and refuses to recompile or update no longer works...

        Hoarding [wikipedia.org] is an illness.

      • No, so they can switch to their A-series processors in Macs without having to go through compatibility for 32-bit.

        I think I still have a very small arsenal of tools that are 32-bit only from 2005(?) when the first intel Macs came out. Personally not nearly as big of a deal for me as them phasing out 32-bit apps for the iPad.

      • To save a few GB in system libs? I realize that there are arch improvements in amd64 but that's no reason to break compatibility.

        It's probably actually to reduce testing. It's still dumb. You're gonna have to run a VM to run 32 bit software. Even Microsoft is better at back compatibility than that. But Apple has never been shy about forcing its customers to spend more money, because they repeatedly demonstrate a willingness to do that — and they often give it to Apple.

        Huh? I am not aware of a single piece of software that I still run that requires 32 bit support which is the only way this change can affect me and cost me money. Products get obsoleted and dropped and if you are expecting eternal backwards compatibility from Apple you are out of luck.

    • Re:why? (Score:4, Interesting)

      by KiloByte ( 825081 ) on Thursday April 12, 2018 @05:49AM (#56422895)

      I realize that there are arch improvements in amd64 but that's no reason to break compatibility.

      64-bit on x86 royally sucks. Beside unavoidable issues related to 64-bit in general (twice as big pointers, thus any pointer-heavy structure taking twice as much memory, thus cache lines), on x86 in particular it's a dirty hack.

      To get slower than amd64, you'd need an ancient register-starved ABI that passes way too much on stack, can't use floating point efficiently, may not pass 64-bit arguments when you actually need them, etc -- ie, i386.

      Compare this with a modern 32-bit ABI on x86 (ie, x32). An average program takes ~2/3 memory to run, speed depending on how much pointers you use, but +7% is typical, over 40% in certain cases.

      On architecture families that were designed with 64-bit in mind, most of this benefit disappears, but on x86 sane 32-bit wins handily.

      • by Bert64 ( 520050 )

        The x32 ABI is part of amd64, most 32bit x86 software uses the i386 abi.

      • Re:why? (Score:5, Interesting)

        by TheRaven64 ( 641858 ) on Thursday April 12, 2018 @06:30AM (#56423047) Journal

        Compare this with a modern 32-bit ABI on x86 (ie, x32). An average program takes ~2/3 memory to run, speed depending on how much pointers you use, but +7% is typical, over 40% in certain cases.

        I'd be very interested in where you get those numbers from. I work on a research architecture that uses 128-bit pointers and we find that in most cases your DRAM traffic increases by under 10% going from 64-bit to 128-bit. A 7% performance delta sounds about what I'd expect, but 2/3 more memory doesn't. That implies that around 2/3 of your memory is pointers - our measurements indicate that for most workloads (including most of SPEC) it's closer to 10-20% and the number goes down for more performance-critical workloads because developers try very hard to avoid pointer chasing (because it doesn't play well with modern pipelines) in such code.

        With my FreeBSD hat on, I did a little bit of analysis of the x32 ABI and concluded that it is better for most systems only if you don't use the x64 ABI for anything. The performance hit from reduced cache sharing between processes for common shared libraries was greater than the performance win from x32. This was the same result that Sun Research found on SPARC 20 years earlier: the 32-bit ABI was better if everything used it, but if you use 1-2 64-bit programs then you lose more then you gain.

        This is even more true on something like macOS, where there's a big shared memory region where all of the common system libraries are pre-loaded and then accessed via a per-process offset (and where the kernel is set up so that all mappings of this region share leaf page table entries and so reduce cache pressure on TLB misses).

    • Re:why? (Score:5, Informative)

      by TheRaven64 ( 641858 ) on Thursday April 12, 2018 @05:49AM (#56422897) Journal

      I had a look in activity monitor and I have 3 32-bit processes running and I found 3. Two were part of novaterm, which I installed years ago to do HP TouchPad development and haven't used since HP abandoned WebOS, but which I apparently left installing some daemons. The remaining one was the Android File Transfer agent, because apparently I haven't updated Android File Transfer since 2012 and it doesn't auto-update. After a small cleanup, I am now running none.

      There's actually only one 32-bit application that I do care about: WINE. There's no reason that WINE couldn't be made to launch 32-bit Windows apps as a 64-bit binary though: it already includes its own program launcher and thunks for calling from Windows libraries into host-system ones.

      The benefit is not just saving a few GBs of system libs. It's not having to do QA on any 32-bit versions of software. Apple's 64-bit Objective-C ABI is very different to its 32-bit one (small objects are hidden in pointers, reference counts are embedded in isa pointers, and so on). Making sure that none of the 100MBs or so of Objective-C frameworks that they ship have different observable behaviour with the different pointer sizes is a significant testing overhead. It's also a noticeable memory overhead if you run one app that pulls in the 32-bit versions of all of the system libraries. Even just the small set that you need to link to for any GUI application that adds up to around 50MB of object code, which is not shared with any of the 64-bit processes and so consumes L1 icache and L2/L3 cache space, making everything else slower.

      • by fgouget ( 925644 )

        There's actually only one 32-bit application that I do care about: WINE. There's no reason that WINE couldn't be made to launch 32-bit Windows apps as a 64-bit binary though: it already includes its own program launcher and thunks for calling from Windows libraries into host-system ones.

        Having a 64 bit Wine handle 32 bit Windows applications means converting pointer sizes on the way in and again on the way out. For instance take the CreateProcess() [microsoft.com] API. It takes no fewer than 7 pointers as parameters. Not only that but 3 of those point to structures that themselves contain at least one pointer to another structure. Also every time an API returns a pointer to some data, Wine would have to ensure that pointer fits into the 4 GB address space of the 32 bit Windows process. And then you have c

        • In fairness though, any apps that are still 32-bit were probably written for much older hardware and would probably run without much difficulty with the additional pointer work.

        • Having a 64 bit Wine handle 32 bit Windows applications means converting pointer sizes on the way in and again on the way out

          That's true, but in and out of what?

          For instance take the CreateProcess() [microsoft.com] API.

          And most of its implementation in WINE is in a PE/COFF binary that will be compiled in 32-bit mode. Only things that call system libraries will need translation.

      • I was curious too. My main culprit is WebEx/GlobalMeet - I'm assuming that Cisco can successfully do a 64-bit build at some point.

    • The rumors mill is that Apple will be releasing a new chip to replace Intel. Changing chips with new instruction sets, breaks compatibility like nothing else.
      I expect if Apple to switch chips they would want to keep backwards compatibility so they will have a converter for the previous binary format. So getting people off the old 32bit format will help prep them for the switch to the new chip.

      Also to note Apple only had a small time with 32bit intel CPU. About a year or so. So unlike Linux and Windows th

    • by MrLint ( 519792 )

      When you put this together with they Apple wants to make their own cpu line for all their HW this starts to make 'sense'. A new CPU, 64 bity only, all the old libs they dont need to convert support or shim. Again its another cog in the apple's 1 OS for all its devices masterplan.

  • Short lived (Score:4, Informative)

    by Bert64 ( 520050 ) <.moc.eeznerif.todhsals. .ta. .treb.> on Thursday April 12, 2018 @06:16AM (#56423001) Homepage

    The 32bit x86 version of MacOS was very short lived and was arguably a mistake...
    Availability of 64bit PPC hardware to run OSX predates the 32bit x86 version, so they actually took a step backwards. The only non 64bit x86 macs are the very first model laptops, IIRC even the first gen mac pro was 64bit from the start.

    Apple should never have supported 32bit x86 at all, and should have moved directly from PPC64 to x86_64.

    • Availability of 64bit PPC hardware to run OSX predates the 32bit x86 version, so they actually took a step backwards.

      My memory is a bit fuzzy. When they shipped the G5, they supported 64-bit processes, but didn't provide 64-bit versions of any of the GUI libraries, so things that wanted to run 64-bit code needed to do it in a separate process. Did they ship a 64-bit version of Cocoa for PowerPC before they supported it on x86, or was it released at the same time for both?

      The only non 64bit x86 macs are the very first model laptops, IIRC even the first gen mac pro was 64bit from the start.

      The Mac Mini was 32-bit for about 18 months. It was Mac Mini owners that were the loudest to complain when 10.7 dropped support for 32-bit CPUs.

    • The 32bit x86 version of MacOS was very short lived and was arguably a mistake... Availability of 64bit PPC hardware to run OSX predates the 32bit x86 version, so they actually took a step backwards. The only non 64bit x86 macs are the very first model laptops, IIRC even the first gen mac pro was 64bit from the start.

      Apple should never have supported 32bit x86 at all, and should have moved directly from PPC64 to x86_64.

      It was in 2007, right ? I find this acceptable. Hindsight 20/20, you know.

      However, I can't find any good excuse to Microsoft for releasing Windows 10 in 32bit in 64bit in 2015.

      • by tepples ( 727027 )

        I can't find any good excuse to Microsoft for releasing Windows 10 in 32bit in 64bit in 2015.

        Dell is still selling new PCs with 2 GB of RAM. What benefit does x86-64 have over x86 on a machine with 2 GB of RAM? Does the increased register count outweigh the additional data cache misses from larger pointers, particularly on a system without the so-called "x32" ABI?

      • Enterprise usage say old hardware that needs 32 bit drivers? or some apps that only work in 32 bit mode?

  • I think this is a good move, if only Microsoft would do the same.

    But, there is some of internal corporate proprietary applications that will start failing when this happens, I can name two of the top of my head. They all use 32 bit java and are designed to work on Linux, MAC and Windows. Until Windows removes 32 bit support, this will make it quite hard for people to use MACs in a corporate environment.
    • by enjar ( 249223 )
      I was really hoping they would have taken 32-bit out behind the barn and ended it with Windows 10, but they didn't. My company dropped support for 32-bit Windows a few years ago. Even with PAE and other tricks it was consuming an inordinate amount of people's time and resources in terms of regular build failures due to resource limitations, and our customers had largely moved on since the work they used our software for would rapidly exhaust win32's limits, anyway. Microsoft introduced a 64-bit variant for
    • by Megane ( 129182 )

      32 bit java

      But muh run anywhere! There's no reason that a JRE couldn't use an interpreter compiled for 64-bit, at which point the host CPU becomes irrelevant. Apple is just trying to kick out x86, not everything that is in some way "32-bit".

  • I lost access to so many of my older games when they killed Rosetta-- I'm about to lose a lot more when Apple kills off 32 bit.

    And I just played Company of Heroes yesterday.

    • I lost access to so many of my older games when they killed Rosetta

      Yeah that was super annoying and rude.

      I'm about to lose a lot more when Apple kills off 32 bit.

      OK, that's your own fault, you should have known to not trust Apple backwards compatibility by now.

      • I suppose that if I really cared about backwards compatibility, I would be using "32 bit extensions and a graphical shell [on top of] a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company, that can't stand 1 bit of competition."

  • I'm sure someone will build a 32bit emulator so you can keep running your software.
  • Apps that are not 64-bit are pretty rare if you are running OSX 10.13x ... most apps broke when 10.4x was released, then 10.6x, and again when 10.10x was released. You can't submit 32-bit apps to the Mac App Store (as of January this year) so anything there should be good to go.

    If you have "legacy apps" that run in 32bit mode you probably have a "legacy computer" with a "legacy version of OSX" to run them on (ideally not connected to the internet). So this won't affect you at all. Go! Sneakernet!

    Back Compat

    • by Megane ( 129182 )

      (ideally not connected to the internet)

      The modem/gateway for my Uverse does some screwy shit on the LAN that completely hoses anything running 10.4. I had a couple of old PPC computers (mostly an original Mac Mini) that I wanted to run 10.4 on, but they would go zombie after just a few hours. It does other screwy shit to my LAN (like capriciously refusing to forward packets between wired and wifi, caching ancient IPv6 temporary addresses, and applying the WAN speed limits when I talk to my static IP computers) that I'm going to go back to running my own 10.x.x.x LAN when I have the time.

  • , Apple themselves made the mistake to ship the first Intel Mac's with 32-bit only Intel Core (1) Duo, so, Also this saves only a few hundred MB, I would much prefer if they kept a copy of 32 bit system libraries so that vintage software games, and office productivity fluff would still work.
  • Bring on the 33-bit apps!

  • ... if a person is still using a 32 bit version of an application on a 64-bit OS, then it might just be the case that the app itself is a legacy application for which no 64-bit version was created (possibly by a company that is no longer actively developing it), and the person using the app genuinely needs the functionality provided by that application for some purpose that no alternative software has ever been able to provide.

    I can easily imagine that announcing support for 32 bit applications will be d

    • I can easily imagine that announcing support for 32 bit applications will be discontinued will cause no small number of people to retaliate to this by simply no longer performing or accepting any system updates, because they perceive that their need for that continued functionality is more important than having the latest and greatest that Apple puts out.

      And that should be fine. Considering that most 32-bit OSX apps were last built around 2006, most people who were very concerned about legacy compatibility and tested unchanging functionality won't even notice that you can't use an OS released more than 12 years after the application was built.

    • by ledow ( 319597 )

      Yeah, but that's what was said about everything from DOS apps, 16-bit apps, apps built against WinG, apps which expected full permissions, etc. etc. etc.

      Either you're actively developing something, or you're not. If you are, it should just be a case of "recompile" - you don't even need to provide support of bugfixes if you don't want to, just recompile the old app.

      But if you're not... then it's just a timebomb anyway, and if it's at all critical you probably want active development for security etc. issue

  • I remember the good old days when 32-bit apps that were "32-bit clean" were the happenin' cool kids.

    And Apple 16 vs. 32-bit messy/clean was a breath of clarity compared to the PC's Eeny Tiny Mini Small Medium Large Huge and Gigundoid memory models (on a computer where 640k was enough ram for anybody.)

  • So I have this silver hammer that has worked nicely for years. Then my post office raised the first class stamp rate and declared that my hammers won't work anymore.

    This is arbitrary and pernicious. There is no good reason that Apple doesn't offer backward compatibility. They have the computing power in all of their devices. They have the expertise. There is a lot of very useful software that is not going to get upgraded because the developers don't exist anymore.

    By doing this Apple forces people not to upg

To stay youthful, stay useful.

Working...