Friday, November 5, 2021

Windows 11, and Delphi 11 : How is it for everybody? You better move to Delphi 11 if you're going to update to Windows 11, and here's why...

 So the future is here, Windows 11, and Delphi 11. Do you think the "everybody moved to 10 everything" and "everybody moved to 11 everything" all the same time is a coincidence?

Here's how it actually works:


1.  Something in the industry creates a buzz. What is it this week? Bitcoin? NFT? NFC? GUIDs?  N-Tier Design? Message Queueing?  The Internet of Things?

2. Everybody rushes to be "part of that". 


If you get hired at Embarcadero, or anywhere really, to sell anything, especially in the tech sector you'll get hauled into your bosses office regularly and someone who looks like they might belong in a Dilbert cartoon will tell you what the new thing is, that they read in their BossManagerMonthly magazine or blog, and tell you you need to get on top of it.

What is Windows 11?  For microsoft it's a chance to make a set of controlled breaking changes to the Windows platform ecosystem. It's neither purely a "good" thing, nor purely a "bad/mediocre" thing. It's a necessary thing. 

While Apple feels free to break everything all the time, every day, Microsoft has comitted to, and maintained a history of not breaking everything every day.   And so there comes a time, when breaking changes and "flag days" have to happen.     In true microsoft fashion, there are devices that will continue to run Windows 10, for the next few years, or longer.     And also in true microsoft fashion, there are devices that will refuse to auto-upgrade for you but which you can force to update to Windows 11, via the media creation tool, with Microsoft's full blessing.  You try it, you get the results and you get to see for yourself what Windows 11 does on your random pre-2020 consumer hardware.

So what is this post about? It's just a request for discussion.  What has been your experience? Are you running Windows 11 and Delphi 11 and how is it?

I have one anecdote to report; It seems Delphi 10.4 debugger hangs a lot on Windows 11.  Any attempt to set breakpoints and single step, the whole IDE (bds.exe) process hangs forever at 0% CPU. There do not appear to be wait chain analysis tools built into Windows 11 yet, and I'm not sure if I could do a wait chain analysis on BDS.exe from visual studio but I don't have visual studio on this box.   



The issue is  reproducible with a trivial helloworld-from-delphi app in 10.4, but is more frequently reproducible on the large 150+ megabyte exe apps I get paid to code, some of which load large non-trivial amounts of redistributables with, including openssl,  chromium embedded (google chrome browser), and a lot of other stuff.  These large apps are not fully portable to Delphi 11 without a large investment of time, and so I can't say if the same app will hang the debugger kernel in our large Delphi 11 apps.  The main app being debug above is a 32 bit 169 megabyte exe that loads another 180 megs of 32 bit DLLs (Chromium "libcef" is over 100 megs of stuff).   

In a trivial hello world app, Delphi 10.4.2 freezes about 50% of  the time after I hit a breakpoint and then continue.  Other 50% of time, it may recover and then when you end the debug session it will say "fatal debugger error" and ask that you shut down the IDE. THere's basically something fundamentally different in the Windows Kernel environment in Windows 11, and the Delphi 10.4 debugger is not up to speed with the changes in the platform.    My tests are with Delphi 10.4 build 27.0.40680.4203 (delphi 10.4.2, all of Update2 installed) on Windows 11 pro build 21H2, osbuild 22000.258 (windows 11 initial release).



5 comments:

  1. Have you tried to reproduce on Windows 11 with the same trivial HelloWorld application built in Delphi 11?

    ReplyDelete
  2. The Delphi 10.4 debugger hangs a lot for me on Windows 10 too. That's the reason my team has recently updated from Delphi 2007 to Delphi 10.2 rather than to the latest and greatest. And don't get me started about that [expletive] [expletive] [expletive] called Delphi 11.

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Hello world app does not hang in delphi 11, on windows 11. I have talked to some colleagues who also say that Delphi 10.4.2 debugger is one of the more unstable delphi 10.x debugger versions already, on WIndows 10 and 11.

    ReplyDelete
  5. If Delphi COmmunity edition is going to stay at 10.4, then they need to fix this in Delphi 10.4, otherwise the "community" edition won't be growing any delphi community at all, as Windows 11 is going to be 80% of regular user's daily driver OS within the next six months.

    ReplyDelete