#1 Re: Low level and performance » "Branchless binary search" can be done in Pascal? » 2023-04-29 13:04:43

ab wrote:

We already do something similar with mORMot.

Just search for "branchless" comment in the mORMot source code and you will see a lot of places when this is available.

16 comments in SynCommons.pas, I will read everyone. Thank you.

#4 mORMot 1 » Where is the documentation? » 2023-03-02 19:51:05

Replies: 4

Can't find the SAD document anymore.

#5 Re: mORMot 1 » Delphi FMX Android client? » 2022-10-06 16:24:43

@ab you can try renew again. I was able to renew my Delphi community version last week.

#6 Re: mORMot 1 » Delphi FMX Android client? » 2022-09-28 18:16:59


Delphi Community can't be used?

#7 Re: mORMot 1 » Strange problem with currency type » 2021-11-10 00:59:15

ab wrote:

EKON is 25 years old this year.
What a stability and achievement!

What was your session about?

EDIT: I found it:

- mORMot Cryptography
- Server-Side REST Notifications with mORMot
- High Performance MicroServices

#9 mORMot 1 » mORMot2's TDocVariantArrayDataSet? » 2021-11-06 03:11:34

Replies: 2

Trying to convert a mORMot1 project to mORMot2.

Need TDocVariantArrayDataSet.

There are a version of this DataSet in mORMot2?

#10 Re: mORMot 1 » Convert TSQLHttpClient.ServerTimeStamp to local time » 2021-09-24 03:09:59

macfly wrote:

I believe you can use TSynTimezone for this:
localtime =  UtcToLocal(TimeLogToDateTime(Server.ServerTimeStamp), 'Your Timezone');

Thank you.

But docs says:
property ServerTimestamp: TTimeLog

That's different from the source code comments. In mORMot.pas, TSQLRest.ServerTimeStamp says

    /// the current UTC Date and Time, as retrieved from the server
    // - this property will return the timestamp as TTimeLog / Int64

#11 mORMot 1 » Convert TSQLHttpClient.ServerTimeStamp to local time » 2021-09-23 23:22:05

Replies: 6

I need to convert ServerTimeStamp, UTC time, to local time.

Any hints?

#12 Re: mORMot 1 » Is SQLite 3.36 static lib already updated? » 2021-08-31 19:17:33

A git pull solved the question. Thank you.

#13 Re: mORMot 1 » Is SQLite 3.36 static lib already updated? » 2021-08-31 14:38:10

Exception from SynSQLite3Static.pas

Static SQLite3 library as included within CENSO is outdated!
Linked version is 3.35.5 whereas the current/expected is 3.36.0.

  // you should never see it if you cloned https://github.com/synopse/mORMot

Well here I am. smile

#14 Re: mORMot 1 » mORMot documentation on eBook » 2021-06-21 14:16:22

@Javierus do you have a link to the .mobi or .epub version of the docs?

#15 Re: mORMot 1 » mORMot and Spatial Database » 2021-05-18 01:18:01

mORMot can work with SQLite3 RTree extension. See the docs.

#16 Re: mORMot 1 » REST Design problem: a function with many parameters for GET requests » 2021-04-05 12:53:46

@ab we have KDD patterns examples in documentation?

I have read your presentation of KDD, just asking.

#19 Re: mORMot 1 » Grace is an idea for mORMot - upgrade server with zero downtime » 2021-01-29 18:04:49

edwinsn wrote:

Maybe we can use mORMot sample 09 + Apace ab to do a side-by-side benchmark?
Maybe we can even ask all member on this forum to share about their VPS statistics? wink

It's a great idea. I'm recovering from Covid-19 now and I think that next week I can do this.

Yesterday was the first day - in 20 days - that I had energy to use the computer.

#20 Re: mORMot 1 » Grace is an idea for mORMot - upgrade server with zero downtime » 2021-01-27 23:25:54

edwinsn wrote:

Yes, I do. Just checked, I pay $26/month for a Vultr Windows VPS, maybe $10 is the Windows license fee.
I also use linux VPS (AWS/digitalocean/Linode)

Actually, vultr is the only big-names that provide decent Windows VPS at a reasonable price - the others is either expensive or slow.

Do you know Contabo? I'm using for a year, now. Windows Serer 2016, 16 GB. 18 euros.

Vultr is better?

#21 Re: mORMot 1 » mORMot 2 proposal: rename RawUTF8 type to Utf8 ? » 2020-12-30 12:53:04

var s: mUtf8 // mORMot UTF8
var s: sUtf8  // string UTF8
var s: s_utf8  // snake case
var s: RawUTF8 
var s: rUtf8  // God forbid
var s: _utf8  // argh
var s: Utf8

#22 Re: mORMot 1 » Compiling SyndbExplorer Sample » 2020-12-13 16:33:43

I don't use Eurekalog, but I use MadExcecpt. I will try this.

#23 Re: mORMot 1 » Renaming TSQLRecord to TORM » 2020-11-11 12:40:19

mdbs99 wrote:


There is no `class var` in old Delphi versions to keep some fields that could be shared among functions in an object/record structure.

Right, but this isn't the same use case. When a pure function would use a class var?

#24 Re: mORMot 1 » Renaming TSQLRecord to TORM » 2020-11-10 07:04:46

mdbs99 wrote:

What about a "helper" object/record with all string functions? Another one for Date/Time functions, and so on.

In my code, for years I use a class-with-class-methods-only without "T" prefix.


  CoordinateReader = class
    class function ReadUtmCoordinates(const fn: TFileName): TUtmCoordinateDynArray;
    class function ReadGeoCoordinates(const fn: TFileName): TGeoCoordinateDynArray;

var Coordinates := CoordinateReader.ReadUtmCoordinates(fn);

It's a try to emulate Ruby modules. Works for me.

#25 Re: mORMot 1 » Renaming TSQLRecord to TORM » 2020-11-09 19:55:26

zed wrote:

SynTrim is a good name for this function that will fix all troubles.

I agree.

#26 Re: mORMot 1 » mORMot 2.0 status? » 2020-11-05 21:58:03

"Branches are evil" make my jaw drop.

548 MB/s to 4.3 GB/s?


#27 Re: mORMot 1 » Renaming TSQLRecord to TORM » 2020-11-01 19:09:22

macfly wrote:

Shouldn't these methods be static?  (class methods)

Or your suggestion ist to maintain a global instance of the created objects?

TSynString = object
  class function Trim(const aValue: RawUTF8): RawUTF8;

Won't compile. That should be

TSynString = class  <--- here
  class function Trim(const aValue: RawUTF8): RawUTF8;

#28 Re: mORMot 1 » Renaming TSQLRecord to TORM » 2020-10-28 19:53:21

mdbs99 wrote:

Some frameworks/libs use the same prefix for all types (e.g. Indy, TMS, JEDI, DevExpress, etc) but, even though it could minimize eventual collision names, it's not perfect as anyone can use the same prefix as other already has used.
It could be very verbose either. Imagine typing TMormotTextWritter or TMormotOrm (!!).

That is a problem with the syntax. Ruby solve this using modules and works great.

#29 Re: Other components » REST Dataware and you, we arrived at mORMot » 2020-10-28 19:15:13


It is great news. I had some friends in Brazil that use Delphi with Rest DW and they like it very much.

If you wrote VCL Datasets that will use mORMot as a layer, I think that all community will use.

#30 Re: mORMot 1 » mORMot2: questions » 2020-10-14 16:04:07

macfly wrote:

For example, my routines for handling strings are in a TStringUtils object.

An advantage, is that it forces you to specify the object avoiding ambiguities of functions with the same name in different units.

I do this a lot, too.

Almost all new code that I wrote is inside of a class, with class methods. Since that Delphi syntax don't have modules (in the ruby way), class methods help me with this abstraction.

#32 mORMot 1 » Embarcadero mentions mORMot in his video about web frameworks » 2020-09-22 17:07:17

Replies: 3

Ultimate Web Frameworks For Ultra-Fast Web Application Development using Delphi/C++ Builder

https://blogs.embarcadero.com/ultimate- … c-builder/

#34 Re: mORMot 1 » mORMot 2.0 status? » 2020-08-26 14:58:11

sakura wrote:

Is there an "early" access to it?

There are a branch mORMot2 in Github.


#35 mORMot 1 » mORMot 2.0 status? » 2020-08-26 11:18:19

Replies: 19

I still using Delphi 7 in Windows 10.

Can't change to Lazarus.

Was using D7 without problems. Then I used SynCommons unit and the IDE started to freeze.

I know  that @ab is refactoring this code. Is the equivalent DynArray code of SynCommons ready for use in mORMot 2.0?

#38 Re: mORMot 1 » sqlite cipher implementation » 2020-06-16 20:50:45

>> 4. Delphi has troubles linking .obj from other compilers.


#39 Re: Low level and performance » Converting .obj files from format COFF to OMF » 2020-06-06 13:13:41

Yes i tried -fomf32, but the D7 compiler says that the resulting .obj is a bad format.

I will see what -fasm will tell.

#40 Low level and performance » Converting .obj files from format COFF to OMF » 2020-06-06 11:49:05

Replies: 2

I'm trying to link some Rust code compiled .obj files to Delphi 7.

But Rust's .obj uses the COFF format.

D7 needs the old OMF .obj format.

I have found in StackOverflow that @ab have made this convertion some time ago.

I have tried the same utility but don't know the right parameters.

@ab can you give me some help about the command line parameters when doing this type of convertion?

#41 Re: mORMot 1 » Rename a column with mORMot » 2020-06-03 21:48:34

Yeah removing column I think that is not possible.

#42 Re: mORMot 1 » Will mORMot be sponsored by Embarcadero? » 2020-05-24 17:28:35

ab wrote:

I don't have any Twitter account, so I can't apply, I am afraid.


#43 mORMot 1 » Will mORMot be sponsored by Embarcadero? » 2020-05-23 11:01:13

Replies: 6

In this post about some potential financial backing of Delphi open source projects, with heavy community involvement, Embarcadero mentions mORMot.

https://community.idera.com/developer-t … ponsorship

#44 Re: mORMot 1 » RemoteIP in request context - dissapear? » 2020-05-22 11:27:58

Try using git bisect to find which was the commit where the bug happens.

#45 Re: mORMot 1 » Penentration testing / Pen testing » 2020-05-20 19:09:31


Is Tim Young/Elevate Software updating Elevate Web Builder?

#46 Re: mORMot 1 » Contribution: TSynRestDataset » 2020-05-18 10:24:13

Are you using a old version of SynCommons too? Some enum type definitions that was in SynCommons.pas are now in SynTable.pas

All this

    (SynCommons.ftUnknown,   // sftUnknown
     SynCommons.ftUTF8,      // sftAnsiText

are now

    (SynTable.ftUnknown,   // sftUnknown
     SynTable.ftUTF8,      // sftAnsiText

#47 Re: mORMot 1 » Contribution: TSynRestDataset » 2020-05-17 17:42:33


The date of files SynRestVCL.pas and SynRestMidasVCl.pas is 10-04-2018. Is this correct?

#48 mORMot 1 » Can mORMot's quicksort benefits of a different pivot algorithm? » 2020-05-15 13:15:26

Replies: 0

Maybe mORMot can benefit of this "branch-free lomuto partition algorithm".

Sorting using the branchless Lomuto partition, however, is the clear winner by a large margin regardless of platform, backend, and input size.

Explanation and graphs

#49 Re: Low level and performance » BorlndMM.dll compiled with FastMM4-AVX » 2020-05-08 17:21:26

I noticed that your version of FastMM4-AVX, that comes with mORMot, have some IFDEFs and corrections.

Do you will send a patch to original FastMM4-AVX? There are any bugfixes needed for Delphi 7?

#50 Low level and performance » BorlndMM.dll compiled with FastMM4-AVX » 2020-05-08 17:18:59

Replies: 1

Testing BorlndMM.dll replacement compiled with D7 and FastMM4-AVX.

After replacing the DLL I have noticed:
- Compilation is faster.
- Delphi D7 IDE don't hangs anymore when using code completion and code helpers.

Edit: I was using the original (from 2002!) BorlndMM.dll due to a reinstall of Delphi and didn't remember to replace de DLL.

Board footer

Powered by FluxBB