You like working with mORMot ? We're hiring new developers at LiveMon. We're a full-remote team (with a monthly gather-up in Paris), working on a real-time AI-powered monitoring tool. I joined LiveMon this week, and we will work together on this exciting project, using mORMot and FPC! Contact us at […]
Tag - FreePascal
2016-09-06
Ride the mORMot at EKON 20 in Dusseldorf!
2016-09-06. Open Source › mORMot Framework

There are still a few days for "very early birds" offer for EKON 20 conference, and meet us for 3 sessions (including a half-day training/introduction to mORMot)! Join us the 7-9th of November in Düsseldorf! Our sessions are not restricted to mORMot, but will use mORMot to illustrate some […]
2015-06-21
Why FPC may be a better compiler than Delphi
2015-06-21. Pascal Programming
Almost every time I'm debugging some core part of our framework, I like to see the generated asm, and trying to optimize the pascal code for better speed - when it is worth it, of course! I just made a nice observation, when comparing the assembler generated by Delphi to FPC's output. Imagine you […]
2015-03-09
SynTaskDialog.pas version for Lazarus
2015-03-09. Open Source › Open Source libraries

Just to share a commit of some interest to FPC/Lazarus users. Ondrej Pokorny (aka "reddwarf" in our forums) did send to us a nice implementation of our SynTaskDialog.pas unit, compatible with Lazarus. Since it is incompatible with the current state of the other mORMot UI units (which are […]
2015-03-01
ShowCase: mORMot with FPC on Android
2015-03-01. Open Source › mORMot Framework
I just received a mail from Alfred (aka Alf in the source code), which did a lot of work to let our little mORMot compiles and run with FPC, especially under Linux, and also with an ARM processor. Hello Arnaud, A nice surprise ... Sample 2 native on Android !!!! See picture. Works 100% !!! […]
2015-01-10
mORMot under Linux thanks to FPC
2015-01-10. Open Source › mORMot Framework
You can use the FreePascal Compiler (FPC) to compile the mORMot framework source code, targetting Windows and Linux.
Linux is a premium target for cheap and efficient server Hosting. Since mORMot has no dependency, installing a new mORMot server is as easy as copying its executable on a blank Linux host, then run it. No need to install any framework nor runtime. You could even use diverse operating systems (several Linux or Windows Server versions) in your mORMot servers farm, with minimal system requirements, and updates.
We will now see how to write your software with Linux-compiling in mind, and also give some notes about how to install a Linux Virtual Machine with Lazarus on your Windows computer, compiling both FPC and Lazarus from their SVN latest sources!
2014-08-11
Cross-Platform mORMot Clients - Smart Mobile Studio
2014-08-11. Open Source › mORMot Framework

Current version of the main framework units target only Win32 and Win64 systems.
It allows to make easy self-hosting of mORMot servers for local
business applications in any corporation, or pay cheap hosting in the Cloud,
since mORMot CPU and RAM expectations are much lower than a regular
IIS-WCF-MSSQL-.Net
stack.
But in a Service-Oriented Architecture (SOA), you would probably need
to create clients for platforms outside the Windows world, especially
mobile devices.
A set of cross-platform client units is therefore available in the
CrossPlatform
sub-folder of the source code repository. It allows
writing any client in modern object pascal language, for:
- Any version of Delphi, on any platform (Mac OSX, or any mobile supported devices);
- FreePascal Compiler 2.7.1;
- Smart Mobile Studio 2.1, to create AJAX or mobile applications (via PhoneGap, if needed).
This series of articles will introduce you to mORMot's Cross-Platform abilities:
- Units and platforms;
- Generating the client code wrappers;
- Delphi / FreePascal clients;
- Smart Mobile Studio clients.
Any feedback is welcome in our forum, as usual!
Cross-Platform mORMot Clients - Delphi / FreePascal
2014-08-11. Open Source › mORMot Framework

Current version of the main framework units target only Win32 and Win64 systems.
It allows to make easy self-hosting of mORMot servers for local
business applications in any corporation, or pay cheap hosting in the Cloud,
since mORMot CPU and RAM expectations are much lower than a regular
IIS-WCF-MSSQL-.Net
stack.
But in a Service-Oriented Architecture (SOA), you would probably need
to create clients for platforms outside the Windows world, especially
mobile devices.
A set of cross-platform client units is therefore available in the
CrossPlatform
sub-folder of the source code repository. It allows
writing any client in modern object pascal language, for:
- Any version of Delphi, on any platform (Mac OSX, or any mobile supported devices);
- FreePascal Compiler 2.7.1;
- Smart Mobile Studio 2.1, to create AJAX or mobile applications (via PhoneGap, if needed).
This series of articles will introduce you to mORMot's Cross-Platform abilities:
- Units and platforms;
- Generating the client code wrappers;
- Delphi / FreePascal clients;
- Smart Mobile Studio clients.
Any feedback is welcome in our forum, as usual!
Cross-Platform mORMot Clients - Generating Code Wrappers
2014-08-11. Open Source › mORMot Framework

Current version of the main framework units target only Win32 and Win64 systems.
It allows to make easy self-hosting of mORMot servers for local
business applications in any corporation, or pay cheap hosting in the Cloud,
since mORMot CPU and RAM expectations are much lower than a regular
IIS-WCF-MSSQL-.Net
stack.
But in a Service-Oriented Architecture (SOA), you would probably need
to create clients for platforms outside the Windows world, especially
mobile devices.
A set of cross-platform client units is therefore available in the
CrossPlatform
sub-folder of the source code repository. It allows
writing any client in modern object pascal language, for:
- Any version of Delphi, on any platform (Mac OSX, or any mobile supported devices);
- FreePascal Compiler 2.7.1;
- Smart Mobile Studio 2.1, to create AJAX or mobile applications (via PhoneGap, if needed).
This series of articles will introduce you to mORMot's Cross-Platform abilities:
- Units and platforms;
- Generating the client code wrappers;
- Delphi / FreePascal clients;
- Smart Mobile Studio clients.
Any feedback is welcome in our forum, as usual!
Cross-Platform mORMot Clients - Units and Platforms
2014-08-11. Open Source › mORMot Framework

Current version of the main framework units target only Win32 and Win64 systems.
It allows to make easy self-hosting of mORMot servers for local
business applications in any corporation, or pay cheap hosting in the Cloud,
since mORMot CPU and RAM expectations are much lower than a regular
IIS-WCF-MSSQL-.Net
stack.
But in a Service-Oriented Architecture (SOA), you would probably need
to create clients for platforms outside the Windows world, especially
mobile devices.
A set of cross-platform client units is therefore available in the
CrossPlatform
sub-folder of the source code repository. It allows
writing any client in modern object pascal language, for:
- Any version of Delphi, on any platform (Mac OSX, or any mobile supported devices);
- FreePascal Compiler 2.7.1;
- Smart Mobile Studio 2.1, to create AJAX or mobile applications (via PhoneGap, if needed).
This series of articles will introduce you to mORMot's Cross-Platform abilities:
- Units and platforms;
- Generating the client code wrappers;
- Delphi / FreePascal clients;
- Smart Mobile Studio clients.
Any feedback is welcome in our forum, as usual!
2014-06-30
Sub-optimized Win64 Delphi compiler: missing branch table for case of
2014-06-30. Pascal Programming
As we already stated here, the Delphi compiler for the Win64 target performs
well, as soon as you by-pass the RTL and its sub-optimized implementation -
as we do for mORMot.
In fact, our huge set of regression tests perform only 10%
slower on Win64, when compared to Win32.
But we got access to much more memory - which is not a huge gain for a
mORMot server, which uses very little of RAM - so may be useful in
some cases, when you need a lot of structures to be loaded in your RAM.
Slowdown on Win64 is mostly due to biggest pointer size, which will use
twice the memory, hence may generate a larger number of cache misses (failed
attempts to read or write a piece of data in the cache, which results in a main
memory access with much longer latency).
But in Delphi, apart from the RTL which may need more tuning about performance
(but seems not to be a priority
on Embarcadero side), is also sometimes less efficient when generating the
code.
For instance, sounds like if case ... of ... end
statements do not
generated branch table
instructions on Win64, whereas it does for Win32 - and FPC does for any x64
platform it supports.
2014-06-27
RoadMap refreshed
2014-06-27. Open Source › mORMot Framework
We did some cleaning in the mORMot official
RoadMap.
Now feature requests tickets will detail all to-do items we would like to
implement.
Current framework RoadMap and implementation is in fact going into
a pragmatic direction.
No need to make all framework's unit compatible at once: so we introduced some
client-dedicated units, without any dependency on SynCommons.pas.
We would like to implement (in this order):
- Cross-platform clients (Delphi FMX, SmartMobileStudio, FPC) [09ae8513eb] [168eb753e5] [d7e5521da5];
- MVC web support [bd94c11ab1];
- Cross-platform server via FPC [3a79adc10f];
- Event-driven features [aa230e5299].
The CrossPlatform folder already contains units which compile under all Delphi compilers (VCL and FMX), and FPC.
But perhaps we would move the server to Linux, either via FPC, or using Delphi itself!
2014-05-30
Software Design, Brook, mORMot, RAD, SOLID and OOP
2014-05-30. Open Source › mORMot Framework
We got a very instructive
discussion in our forums, with Silvio, the maintainer of the
Brook Framework.
Brook is a nice framework for writing web applications using Free
Pascal.
It comes to my mind what mORMot can offer.
We did not want to compare the features or say that one framework is better
than the other, but it appeared to me that a lot of object pascal programmers
are tied to 20th century programming model.
In fact, to embrace the potentials of mORMot, you need to switch your mind, and enhanced your RAD and OOP background, into 21th century SOLID model.
2014-02-28
Think free as in free speech, not free beer
2014-02-28. Open Source
After more than 5 years of opening some huge part of Delphi code base, just my two cents.
Free software means free as a bird.
In practice, most Open Source "consumers" focus on free as a free
beer...
This is a reality, especially for "niche" projects like developing libraries
for Delphi.
Here are some thoughts from my little experiment with mORMot.
If you ask what Open Source for libraries mean, it may help you!
2013-09-19
FreePascal Lazarus and Android Native Controls
2013-09-19. Pascal Programming
We all know that the first Delphi for Android was just released...
I just found out an amazing alternative, using native Android controls, and FPC/Lazarus as compiler and IDE.
It creates small .apk file: only 180 KB, from my tests!
It makes use of direct LCL access of Android native controls, so it is a great sample.
2013-05-11
Delphi XE4 NextGen compiler: using byte instead of ansichar?
2013-05-11. Pascal Programming
When I first read the technical white paper covering all of the language changes in XE4 for mobile development (tied to the new ARM LLVM-based Delphi compiler), I have to confess I was pretty much confused.
Two great mORMot users just asked for XE4/iOS support of mORMot.
Win32/Win64 support for XE4 will be done as soon as we got a copy of
it.
I suspect the code already works, since it was working as expected with XE3,
and we rely on our own set of low-level functions for most internal work.
But iOS-targetting is more complex, due to the NextGen compiler, mainly.
2012-11-13
Go language and Delphi
2012-11-13. Pascal Programming
It is a strong-typed, compiled, cross-platform, and concurrent.
It features some nice high-level structures, like maps and strings, and still
have very low-level access to the generated code: pointers are there, in a safe
strong-typed implementation just like in pascal, and there is even a "goto",
which sounds like an heresy to dogmatic coders, but does make sense to me, at
least when you want to optimize code speed, in some rare cases.
It is created/pushed by Google, used internally by the company in their computer farms, and was designed by one of the original C creators.
2012-10-06
Delphi XE3 is preparing (weak) reference counting for class instances
2012-10-06. Pascal Programming
In Delphi, you have several ways of handling data life time, therefore several ways of handling memory:
- For simple value objects (e.g.
byte integer double shortstring
and fixed size arrays orrecord
containing only such types), the value is copied in fixed-size buffers; - For more complex value objets (e.g.
string
and dynamic arrays orrecord
containing such types), there is a reference counter handled by each instance, with copy-on-write feature and compiler-generated reference counting at code scope level (with hiddentry..finally
blocks); - For most
class
instances (e.g. deriving fromTObject
), you have toCreate
thenFree
each instance, and manage its life time by hand - with explicittry..finally
blocks; - For
class
deriving fromTInterfacedObject
, you have aRefCount
property, with_AddRef _Release
methods (this is the reference-counted COM model), and you can use Delphiinterface
to work with such instances - see this blog article.
class
level are about to be introduced at the compiler and RTL
level.Even if this feature is not finished, and disabled, there are a lot of changes in the Delphi XE3 Run Time Library which sounds like a preparation of such a new feature.
2012-08-28
"Trop c'est trop" - No Client-Server for XE3 PRO users
2012-08-28. Pascal Programming
Here is some unbelievable news retrieved from "Te Waka o Delphi" blog:
From XE3 onwards, your Delphi Professional EULA will prohibit you from using Delphi Professional for anything other than local data access.
If you want to build client/server database applications using Delphi Professional, you will be required to purchase a “Client/Server Add-On” pack.
This goes beyond the fact that you do not get (or can otherwise use or install) client/server drivers for the DBExpress or other “built in” data access frameworks, but extends even to 3rd party data access technologies.
That is, whatever you may be able to do or achieve – technically – using some 3rd party component or library with you Delphi Professional compiler, you cannot legally create a client/server application.
Never mind any 3rd party components or libraries, this same prohibition will apply even if you are using naked, unadorned Microsoft ADO.
Damn show-stopper for me.
Embarcadero is killing Delphi.
Our very own mORMot Open-Source framework is fully Client-Server oriented, and allow creating scalable Client-Server applications even with an Oracle DB system back-end, even with XE2 starter edition (direct access, without any DB.pas / DBExpress layer).
2011-12-04
Total Commander 64 bit is using... Lazarus and FPC
2011-12-04. Pascal Programming
I'm a long-time registered user of Total Commander.
This tool is my daily file manager. I never use Windows Explorer, since Total Commander is just faster, more easy to use (especially with the keyboard), has a lot of plug-ins. I even created my own plug-ins to access some custom file formats, and navigate into them just like with any folder. And it includes a lot of well written commands for FTP access or file comparison, which made other tools (like WinMerge) unnecessary.
There is a new beta version of Total Commander available, which targets Windows 64 bit. I just thought: 'Whoo, this is a real-world Delphi XE2 64 application'. I downloaded and tried it. Worked as expected, and integrates seamlessly with Windows Seven (for the shell extensions). Then I took a look at the executable... and discovered it was not compiled with Delphi XE2... but with FPC !
« previous entries - page 2 of 3 - next entries »