Je dostupná aktualizace Delphi 11.1 . Aktualizace je binárně kompatibilní s D11, tj. dcu a komponenty z D11 se dají použít bez rekompilace.
Musím říct, že jsem se na okamžik kdy bude nový update oficiálně dostupný těšil z prostého důvodu, že jeho testovací verze používám delší dobu a vím na co se těšit.
Verze Delphi 11.1 se soustředí na kvalitu a "štelování" toho co bylo zásadní pro Delphi 11, tj. např. LSP, High DPI IDE, Welcome page bez exploreru, ladění atd.
Platformy: oficiální podpora Windows 11, macOS 12 Monterey, iOS 15 a Android 12
Zkusím některé věci co mne zajímají vyzvihnout. Ale nejdříve nezbytnosti:
IDE
Pro mne zásadní věc: Remote Desktop optimalizace, tj. IDE je lépe optimalizované pro vzdálenou plochu a spol.
Nebudu vypisovat desítky úprav, ale ze spousty drobností zaujme především barevný výpis chyb při kompilaci, zvyrazňující jinak chyby nebo warningy a compile progress dialog s podobnými úpravami.
Data moduly ukládájí PixelsPerInch i v případě 96 DPI (to samé VCL formuláře).
Dynamicky vytvářené Frame škálují korektně i když jsou navrženy v high DPI.
Welcome Page má svoje API, takže si můžete vytvořit svoje vlastní podokno, třeba s úkoly, které zase nestihnete (demo pluginy).
Tady bych rád připomněl, že i IDE můžete spustit bez high DPI podpory, což je vhodné pokud narazíte na problém - je tam na to položka v start menu Delphi 11 (DPI Unaware).
LSP
Delphi LSP jak jsem několikrát psal, je v podstatě stejný delphi kompilátor spuštěný v jiném módu, ale v 11.1 byl tento mód při načítání zrychlen (podle testů 5 - 30x). Jak je to možné? V D11 se prováděla např. pro napovídání kompilace celé importované jednotky, kdežto nyní v tomto případě zjednodušeně kompilátor jen prochází interface sekci importovaných jednotek (to samozřejmě neplatí v rámci jednotky) a předkládá symboly z těchto interface. To lze hlavně poznat, pokud máte hodně závislostí.
Něco co jsem osobně reportoval dříve: CTRL+click na alias typu např. IntArray = TArray<Integer> dříve vedlo na TArray, nyní na ten alias.
LSP přináší další a další vylepšení.
Kompilátory a Debuggery
Delphi kompilátor nově přidává podporu pro zabezpečení přes ASLR, DEP/NX a TSAWARE a je to ve výchozím módu zapnuto (Project Option - Linking - Data Execution Prevention).
Významným krokem jsou nové debuggery pro Delphi Android64 a Delphi macOS 64-bit ARM, nově na bázi LLDB (dříve jen Delphi iOS 64-bit debugger). Předchozí verze byla na bázi GDB. Cílem je sjednotit kód, zlepšit stabilitu a obecně použít modernější technologii.
Android kompilace: DEX kompilace a DEX merge jsou nyní až po linkování, což zrychluje kompilaci bez deploy (mohu jen potvrdit)
VCL, RTL, FMX
TOSVersion má podporu pro Windows 11 (dostupné až po vydání D11), dále vylepšeno TTreeView, TRichEdit, TEdgeBrowser, TLabelledEdit a TNumberBox, řešeny problémy s High DPI, flickering, doublebuffering. FMX převážně optimalizace, TWebBrowser.
Ohledně DB: MariaDB 10.6, SQLite SEE a lepší podpora Firebirdu 4.
Nový TURLStream class, což by měl být následník nové třídy TAsyncStream s podporou pro async operace (nezkoušel jsem).
Symboly FRAMEWORK_VCL a FRAMEWORK_FMX nově umožňují rozlišit VCL a FMX např. v nevizuálním kódu.
Optimalizace _CopyArray, _IntToStr64, _IntToStr32, InitInstance, InvokeRecordInitializer, _FinalizeRecord, _UStrAsg , _LStrAsg, _LStrLAsg, AnsiLowerCase / AnsiUpperCase a TStringHelper.IndexOf.
TMemIniFile změněna pro lepší kompatibilitu s pre-10.3, kde to bylo pomalé, ale bylo možné mít duplicitní sekce.
Pro zajímavost WebBroker pro Android, což je mi úplně jedno, dokud nebude dostupný oficiálně kompilátor pro Linux ARM (RSP-13370 pokud chcete volit), tj. Raspberry PI a spol, jak je naznačeno v roadmapě archív roadmap.