Delphi.cz

Český portál Delphi

Delphi 10.2 Tokyo je dostupné

Embarcadero dnes (22.3.2017) vydalo další verzi Delphi a C++Builder s podtitulem Tokyo. Hlavní nosnou myšlenkou je přidání kompilace pro Linux 64 bit, bohužel jen pro Enterprise+ edice (nebudu se k tomu dále vyjadřovat).

Co je nového: What's_New, dále Feature matrix, seznam opravených chyb (některé velmi prehistorické).

Download: webinstaller, ISO, FastReport VCL.

Obecně

Delphi Linux kompilátor je na bázi LLVM (podle testů slušně optimalizující), ARC, jen 64bit, první znak pro string má index 1 (jako ve Windows). Funguje to jako všechny ostatní ne-windows kompilátory, tj. cross kompilací z Windows za podpory PA serveru (už od dob XE2 a Max OS X). Podpora je pouze pro nevizuální aplikace (aka server side). Velmi se mi líbí přesměrování výstupu programu přímo do okna IDE. Kompilace je pomalejší než pro windows, ale není to zase taková hrůza. Zpomalení je způsobeno linkerem, který na rozdíl od Delphi Win32 linkeru nemá globálnější přehled a musí linkovat jako se linkují ostatní jazyky.

Podporována je celá RTL, WebBroker (i jako modul pro Apache), FireDac (včetně připojení na MS SQL server, IB, Firebird nebo Oracle, ale není podporován Informix), paralelní knihovny nebo vláken, podpora pro Http klienta jako na ostatních platformách

Připomínám, že 8-bit stringy (AnsiString) nejsou podporovány, kromě Utf8string a RawByteString.

Ohledně databází: FDMemTable má design podporu pro editaci dat, obecně nový typ Field pro Guid. Co se mi líbí, je další rozšíření System.Hash .

FireMonkey

Zásadní věci jsou podle mne dvě:

  • Multi-Threading podpora pro TBitmap, TCanvas a TContext3D
  • Pro Android je nyní voláno vše z Java UI Thread, což je zásadní a pozitivní změna

Jinak klasicky evoluce, žádná revoluce

VCL

Významné jsou opravy ohledně High DPI podpory - což ale ověřit nemohu.

Linux

Oficiální podpora pro:

  • Ubuntu Server (Ubuntu 16.04 LTS)
  • RedHat Enterprise Linux (version 7)

Osobně jsem po chvilce rozchodil CentOS 7 i při minimální instalaci. Stačilo


[DCC Error] E2597 C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\ld-linux.exe: error: cannot find -lgcc_s

yum install glibc-static
yum install glibc-devel
yum install zlib-devel

případně 
yum install compat-libstdc++-33
yum install compat-gcc-44-c++

Během testování jsem jako pokusného králíka udělal port Synapse pod Delphi Linux (evoluce z podpory MacOSX, iOS, Android).

Poznámka: TList je pro ARC deprecated, což např. pro portování Synapse byla jedna ze dvou zásadních úprav (už dříve). Druhá (taktéž už dříve) byla nahrazení AnsiString bufferu za TBytes. Dnes by to asi vyřešil alias AnsiString = RawByteString.

Obecný TList je nutno nahradit za TList<T>, tj. generický list, aby ARC dokázalo udržet přehled o referencích. Snad se k tomu vrátím.

Datum: 2017-03-22 23:20:00 Tagy: delphi, linux

Novinky Praxe