My Top 3+1 "News" in RAD Studio 10.4.1 Sydney

This new release builds on the feature set of 10.4, enhancing existing features throughout the product. As you probably know, the first version of the 10.4 family have been some “problems” here and there, but Embarcadero fixed a lot of things and add even more value in the product.

Photo by Marc-Olivier Jodoin on Unsplash

Here’s my very personal top 3 features:

Improvements and Fixes in Managed Records

I really like managed records, but in Delphi 10.4 Sydney were unstable in some cases, so I still don’t use them in production code. Delphi 10.4.1 improves Managed Records quality, including:

  • Return values optimizations
  • Cleanup of a few compiler errors
  • Improvements to operator Assign
  • Changes to Default(T) for managed records
  • Better coexistence of managed records and generics
  • Some cases of missing invocation of Initialize

Fixes in Parallel Programming Library

Many fixes to TThread.WaitFor, TParallel.For, TParallel.Join, TConditionVariableMutex.WaitFor for Linux, TTask.WaitForAny, and the TPoolThread. I’m very happy to see that have been addressed some issues with TThreadedQueue related with PopItem while using a large number of threads. I faced this problem in my LoggerPro Open Source project (because it’s used in very large projects with hundred of threads) and I’ve to rewrite a similar Thread Safe Queue from scratch. This is a good news!

New TLightweightMREW Record

This is a new reader-writer lock implementation, working across all supported platforms and which should be faster and more lightweight than the old TMultiReadExclusiveWriteSynchronizer (a.k.a. TMREWSync). TLightweightMREW wraps a native implementation of a reader-writer lock on each platform.

More information about this new class is available in TLightweightMREW documentation.

Moreover…

Has been addressed a very nasty bug which is important for all developers which uses Extended RTTI in multi threaded context (I use it a lot in DMVCFramework).

RSP-27771 - TRttiContext.DropContext is not Threadsafe. This leads to bugs in mutithreaded applications

Conclusions

RAD Studio 10.4 Sydney consists of a bit of new features and a lot of enhancements and quality improvements. This is a good move for Embarcadero. Obviously, there are bugs still open (as with any non trivial piece of software) however this release is another step in the right direction. Keep going Guys!

This is my Top 3 “News” in Delphi 10.4.1 Sydney, what’s yours?

Comments

comments powered by Disqus