Delphi kompilátory

vložil Radek Červinka 20. dubna 2013 00:12

Disclaimer: mám oficiální povolení psát o Delphi XE4 před release. Musím to zde napsat.

Jelikož mám zkušenost že lež oběhne svět ještě než si pravda obuje boty tak zkusím nastínit jak je to s kompilátory v Delphi XE4.

Delphi XE4 (asi podle edice) obsahuje 5 (slovy pět) kompilátorů.

Takže:

  • Win32 compiler (DCC32)
  • Win64 compiler (DCC64)
  • Mac compiler (DCCOSX)
  • iOS Simulator compiler (DCCIOS32)
  • iOS ARM compiler (DCCIOSARM)
c:\Program Files (x86)\Embarcadero\RAD Studio\11.0\bin>dcciosarm
Embarcadero Delphi Next Generation for iPhone compiler version 25.0
Copyright (c) 1983,2013 Embarcadero Technologies, Inc.

Delphi po x letech mění architekturu a kompilátory pro nové platformy jsou postaveny na LLVM. To mimochodem platí i pro C++Builder. Z uvedených kompilátorů je jen poslední postaven na LLVM a je označován jako NEXTGEN.

Nový kompilátor (NEXTGEN) zavadí novinky do jazyka jako je ARC (Automatic Reference Counting) pro objekty (momentálně Delphi má něco jako ARC jen pro stringy, interface, záznamy a variant - což je mimochodem také záznam), nově tedy NEXTGEN kompilátor podporuje ARC i pro objekty.

Tj. ještě jednou: Win32 a Win64 (kromě oprav a zrychlení hlavně u Win64) zůstává stejný. To samé je Mac kompilátor. Pořád si myslím, že je to aktualizovaný kompilátor z Kylixu mixnutý s Win32 kompilátorem.

Zvláštní situace je ohledně iOS simulátoru. Jak jsem již několikrát psal, tak iOS simulátor je v podstatě OSX aplikace, která spouští a teď pozor - x86 kód. Tento kód vznikne překladem zdrojového kódu pro simulátor (a výsledek je x86 binárka) na rozdíl od překladu pro iOS (ARM binárka). Tj. na výsledném zařízení běží úplně jiný binární kód, pro jinou platformu (ARM) než pro simulátor (x86). Doufám, že je to jasné. Je to vyčuranost Apple, tím si usnadnili práci s emulátorem - na druhou stranu to, že něco běží v emulátoru neznamená, že to poběží i na iOS zařízení - ale s velkou pravděpodobností bude. Takže kompilátor pro iOS simulátor je verze OSX kompilátoru s ARC a dalšími věcmi z nextgen.

Zpět k NEXTGEN: toto umožňuje relativně lehce přidávat další platformy, protože v NEXTGEN je zdrojový kód překládán do "meta vrstvy" - LLVM bytecode (do které mimochodem překládán i C++ Builder). Z této "meta" je pak backend LLVM (upravený) schopen generovat cílovou binárku pro zvolenou platformu (bez rozlišení zda byl zdrojem Delphi nebo C++Builder). Když se podíváte na stránky LLVM, uvidíte několik existujících frontendů pro různé platformy a OS (ARM - iOS x Android, WinRT, javascript, .NET, Win32, Linux …). Vidíte ty možnosti?

Na druhou stranu pro EMBT bylo nejhorší vytvořit frontend Delphi > LLVM bytecode. Do stejného bytecode překládá i C++ Builder. Další platformy jsou mnohem jednodušší.

Zamyšlení: Tohle je čistě moje spekulace a není ničím oficiálním nebo neoficiálním potvrzena - všimněte si, jak se EMBT snaží vytvořit v RTL rozhraní ekvivalentní .NET (úplně přesně). Pokud si k tomu připočtete LLVM a jeho backend pro .NET… Hmm. Nebo taky naopak. EMBT má z minulosti kompilátor C# a nyní má RTL, které je hodně podobné .NET. Co kdyby udělali nativní kompilátor C# s FireMonkey? Nebo taky nic :-).

Tagy: , , , ,

Novinky

Komentáře

20.4.2013 2:41:21 #

JFK

Zamyšlení na závěr má dle mého soudu reálný podklad - Oxygene (aka Prism) v XE4 už totiž nebude (nemá být), takže v RAD Studiu vzniká ".NET lack".

JFK

22.4.2013 19:23:38 #

JFK

Tak XE4 je venku. Abych něco neporušil, napíšu jen, že na EDN zatím ISO nevidím, nicméně na základě mailu ohledně uvolnění XE3 v rámci maintenance jsem si link "upravil" (stačí IQ 20) a už stahuji... Ale na licenční klíče zatím ještě čekám, takže radost jen poloviční. Kdo spěchá, může použít TRIAL klíč.

JFK

22.4.2013 20:45:00 #

JFK

Tak už i licence jsou, stejná cesta jako při upgrade na XE3.

JFK

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS

Dle měsíců