The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 2,969 other subscribers

Archive for the ‘Delphi 10.3 Rio (Carnival)’ Category

System.TypInfo.SizeOfSet – RAD Studio API Documentation

Posted by jpluimers on 2021/08/11

This seems to have been introduced into Delphi Berlin: [WayBack] System.TypInfo.SizeOfSet – RAD Studio API Documentation. Maybe slightly earlier, but at least it was not documented in XE8 [WayBack] (via [WayBack] Delphi “SizeOfSet”.).

This is a useful function, for instance to get the Cardinality of a set in [WayBack] delphi – How can I get the number of elements of any variable of type set? – Stack Overflow.

From what I can see, the undocumented TLargestSet type also got introduced in Delphi Berlin.

Few hits by Google on [WayBack] Delphi “TLargestSet”, including [WayBack] Free Automated Malware Analysis Service – powered by Falcon Sandbox – Viewing online file analysis results for ‘Coperativa.exe’.

Not much more is documented than this in Tokyo [WayBack]:



function SizeOfSet(TypeInfo: PTypeInfo): Integer;


extern DELPHI_PACKAGE int __fastcall SizeOfSet(PTypeInfo TypeInfo);


Type Visibility Source Unit Parent
function public
System.TypInfo System.TypInfo


Embarcadero Technologies does not currently have any additional information. Please help us document this topic by using the Discussion page!


Posted in Delphi, Delphi 10.1 Berlin (BigBen), Delphi 10.2 Tokyo (Godzilla), Delphi 10.3 Rio (Carnival), Delphi XE8, Development, Software Development | Leave a Comment »

Are these really Windows compiler unsupported Delphi Intrinsic Routines?

Posted by jpluimers on 2019/03/19

Odd, the [WayBack/] Delphi Intrinsic Routines – RAD Studio indicates quite a few compiler intrinsics are not available on Windows.

I wonder if this list is correct:

System.AtomicCmpExchange AtomicCmpExchange is used for comparing and exchanging memory values. Allowed.png Allowed.png Allowed.png Allowed.png
System.AtomicDecrement AtomicDecrement is used for decrementing memory values. Allowed.png Allowed.png Allowed.png Allowed.png
System.AtomicExchange AtomicExchange is used for exchanging memory values. Allowed.png Allowed.png Allowed.png Allowed.png
System.AtomicIncrement AtomicIncrement is used for incrementing memory values. Allowed.png Allowed.png Allowed.png Allowed.png
System.BuiltInArcTan Calculates the arctangent of a given number. Allowed.png Allowed.png
System.BuiltInArcTan2 Calculates the arctangent angle and quadrant of a given number. Allowed.png Allowed.png
System.BuiltInCos Calculates the cosine of an angle. Allowed.png Allowed.png
System.BuiltInLn Calculates the natural logarithm of a real expression. Allowed.png Allowed.png
System.BuiltInLnXPlus1 Calculates the natural logarithm of (X+1). Allowed.png Allowed.png
System.BuiltInLog10 Calculates log base 10. Allowed.png Allowed.png
System.BuiltInLog2 Calculates log base 2. Allowed.png Allowed.png
System.BuiltInSin Calculates the sine of the angle. Allowed.png Allowed.png
System.BuiltInSqrt Calculates the square root of X. Allowed.png Allowed.png
System.BuiltInTan Calculates the tangent of X. Allowed.png Allowed.png

Especially since this compiles fine with the DCC32 compiler:

program CompilerIntrinsicsConsoleProject;


{$R *.res}

  I, J, K: Integer;
  System.AtomicCmpExchange(I, J, K);
  System.AtomicExchange(I, J);


Posted in Delphi, Delphi 10.3 Rio (Carnival), Development, Software Development | 3 Comments »

Anyone who knows about ?

Posted by jpluimers on 2019/02/28

It look likes is gone (though docwiki has more than a couple 100 mentions of [] “radstudiodemos” and [] “RADStudio_Rio”), for instance here:

I have not seen an announcement of this branch disappearing, so I wonder what happened and why. was a great resource, as it had a consistent history from Delphi XE through 10.2 Tokyo (apparently there used to be 10.3 Rio too) that made it very easy to see the differences in various versions, giving a great indication of new features and differences in products, often before the docwiki got updated to reflect them.

SVN not being centralised, now makes this chain break for Delphi 10.3 Rio, which is quite a pity.

If anyone has the complete SVN history including Delphi 10.3 RIO, please let me know: Delphi 10.3 Rio Update 1 now finally being out likely means many more people start using it as initial issues found in the public have been fleshed out.

It would have been so much more convenient to have for instance a git converted repository keeping all the history and including Delphi 10.3 Rio somewhere.

If anyone has that, I’d be interested in that too. One can dream, right?


I bumped into this via a link pointing to URLs having these fragments in them, which are now invalid:

This means I have to fix some 150 links later: [] “radstudiodemos” – Google Search.

It looks like got replaced with and, which should give me a head-starting on how to fix the links.




Posted in Delphi, Delphi 10.3 Rio (Carnival), Development, Software Development | 1 Comment »

IDE Fix pack for Rio development snapshot – via Delphi-PRAXiS [en]

Posted by jpluimers on 2019/01/17

If you dare using Delphi 10.3 Rio instead of waiting for Update 1 to stabalise (and hopefully speed up things), you might want to try the development snapshot of [WayBackIDE Fix pack for Rio – Page 2 – Delphi Third-Party – Delphi-PRAXiS [en] that got released last week (thanks Andy!):

A new development snapshot of IDE Fix Pack for 10.3 Rio is available.

The Win64 (DCC64) and Android (DCCAARM) compiler patches should now work as excepted.


  • Added: Support for Delphi 10.3 Rio
  • Added: Fix for TStringList.IndexOfName bug (RSP-21633)
  • Added: Fix for access violoation in the Welcomepage JScript9.dll binding
  • Added: TCustomListBox.ResetContent is skipped if the handle isn’t created yet
  • Added: DFM Streaming optimizations
  • Added: FillChar uses Enhanced REP MOVSB/STOSB cpu feature if available for large sizes.
  • Added: Enabled CPU LOCK string assignment optimization for local variables
  • Added: -Oe (experimental optimizations) and -x-cgo compiler option extension (Remove of some unneccessary push/pop operations)
  • Added: Expression Evaluator allows array access to pointers even if the type wasn’t declared with {$POINTERMATH ON}
  • Added: New compiler option extensions: -x–compileonly, -x–reslist, -x–depfile, -x–unitstats
  • Added: More performance optimization for the DCC64 compiler
  • Added: TStringBuilder.SetLength optimization [RSP-19178]
  • Added: TStrings.GetDelimitedText optimization
  • Fixed: Packages with duplicate units may not have caused a fatal compiler error.





Posted in Delphi, Delphi 10.3 Rio (Carnival), Development, Software Development | 4 Comments »

%d bloggers like this: