Linux support for Delphi to be available end of 2016
Marco Cantu, product manager of Delphi/RAD Studio, did publish the
official RAD Studio 2016 Product Approach and Roadmap.
The upcoming release has a codename known as "BigBen", and should be called Delphi 10.1 Berlin, as far as I understand.
After this summer, another release, which codename is "Godzilla", will
support Linux as a compiler target, in its Delphi 10.2 Tokyo release.
This is a very good news, and some details are given.
I've included those official names to mORMot's internal compiler version detection.
Thanks Marco for the information, and pushing in this direction!
My only concern is that it would be "ARC-enabled"...
Details are the following:
- Apache modules in WebBroker and support for DataSnap and EMS
- FireDAC Linux database access
- Linux platform support for console apps with IoT support
- We will formally support Ubuntu Server & RedHat Enterprise. We will extend the formally supported Linux distributions list over time as demand dictates
- Windows based IDE with cross-compiler, deploy and debug via PAServer
- Linux compilers will be for Intel 64-bit server, LLVM-based and ARC-enabled
Sounds fine to me to support only Intel 64 bit at first, and Ubuntu/RedHat
support - I guess most other distributions would work, even if not officially
I'm not sure LLVM would make the running code actually faster, since generated code from mobile targets were not as efficient as it could have been.
But LLVM would make the compilation phase much slower (10 times slower I guess), in respect to Win32/OSX compilation timing... we loose one of the great points of Delphi, which is its almost instant compilation time.
The latest information, 'ARC-enabled' is a concern to me.
What I write here is not an absolute, your experiment and expectations may differ, and you may rejoice for ARC being enabled.
I'm writing from my own needs.
I still do not understand the benefit of using ARC, in regard to the
compatibility break it would induce with existing code.
All our code base on servers, relies on explicit memory allocation. We mitigate the code verbosity with simple ownership of objects. Not a big deal, with modern IDEs.
On a server, disposing resources as soon as possible is a very sensitive
task. Processes do run 24/7, so any leak may be avoided at all cost.
ARC is a fine memory model - we spoke about it some years ago - but, as implemented in Delphi NextGen compiler, it is hard to have a single code base for both ARC and non ARC platforms. A lot of IFDEF is needed, or you need to use
FreeAndNil. IMHO calling
DisposeOf may break
most of the benefits of using ARC, since it leave standing pointers in an
And remote debugging over PAServer for Linux won't be perfect, we can be sure... If only we may compile with ARC on Windows, it may ease debugging big applications...
I like very much the FPC approach: they support a lot of targets and
platforms (including Linux since the beginning), and really do their best not
to break existing code.
Having two memory models at once is a real PITA, from the developer point of view, if they are excluding...
The more I use FPC, the more I like it. Using Lazarus under Linux is very nice. You are able to debug your application in place...
I hope Delphi for Linux may have both models: ARC-enabled and
Or at least that Delphi for Windows may be ARC-enabled, so that we may share the same code base, and debug/test under Windows, and cross-compile with confidence.
From the compiler point of view, it is not a big deal, as far as A. Bauer wrote (IIRC): they internally have an ARC-enabled compiler for Windows.
From LLVM point of view, it is a feasible, since you can set a per-file ARC enabling.
Please do not break compatibility with existing code base!