Leif Uneus
-
Content Count
75 -
Joined
-
Last visited
Posts posted by Leif Uneus
-
-
Just now, Kas Ob. said:Would you please point me to that article, i have no idea where to find it.
It is linked by @pyscripter a few replies above.
-
A little reference article to the CAS and ABA problem.
http://ithare.com/cas-reactor-for-non-blocking-multithreaded-primitives/
-
2 hours ago, Dalija Prasnikar said:There have been few bugs around inline variables, but for using inline variables in day to day code, probably the greatest problem was non functional code completion and code navigation.
The greatest problem with inline variable declarations, are backward compatibility.
I don't see any benefit, except for some logical clarifications.
-
58 minutes ago, RDP1974 said:As far I have seen should be enough to obtain a fast move, fillchar, pos (used in a lot of classes) and lock-free allocator (without branch jumps etc.) to have win64 speedup.
I still don't know why Embarcadero does not implement the FastCode purepascal Pos for win64.
https://quality.embarcadero.com/browse/RSP-13687
In the example given, the fastcode win64 version is 8 times faster than System.Pos.
-
46 minutes ago, Jacek Laskowski said:I can't find a link to the FastMM4Options.inc file. Is FastMM5 no longer a configuration file?
From the introduction:
- It is fully configurable runtime. There is no need to change conditional defines and recompile to change options. (It is however backward compatible with many of the version 4 conditional defines.)
- It may be configured runtime to favour speed, memory usage efficiency or a blend of the two via the FastMM_SetOptimizationStrategy call.
-
Newly released FastMM5:
https://github.com/pleriche/FastMM5
FastMM is a fast replacement memory manager for Embarcadero Delphi applications that scales well across multiple threads and CPU cores, is not prone to memory fragmentation, and supports shared memory without the use of external .DLL files.
Version 5 is a complete rewrite of FastMM. It is designed from the ground up to simultaneously keep the strengths and address the shortcomings of version 4.992:
- Multithreaded scaling across multiple CPU cores is massively improved, without memory usage blowout. It can be configured to scale close to linearly for any number of CPU cores.
- In the Fastcode memory manager benchmark tool FastMM 5 scores 15% higher than FastMM 4.992 on the single threaded benchmarks, and 30% higher on the multithreaded benchmarks. (I7-8700K CPU, EnableMMX and AssumeMultithreaded options enabled.)
- It is fully configurable runtime. There is no need to change conditional defines and recompile to change options. (It is however backward compatible with many of the version 4 conditional defines.)
- Debug mode uses the same debug support library as version 4 (FastMM_FullDebugMode.dll) by default, but custom stack trace routines are also supported. Call FastMM_EnterDebugMode to switch to debug mode ("FullDebugMode") and call FastMM_ExitDebugMode to return to performance mode. Calls may be nested, in which case debug mode will be exited after the last FastMM_ExitDebugMode call.
- Supports 8, 16, 32 or 64 byte alignment of all blocks. Call FastMM_EnterMinimumAddressAlignment to request a minimum block alignment, and FastMM_ExitMinimumAddressAlignment to rescind a prior request. Calls may be nested, in which case the coarsest alignment request will be in effect.
- All event notifications (errors, memory leak messages, etc.) may be routed to the debugger (via OutputDebugString), a log file, the screen or any combination of the three. Messages are built using templates containing mail-merge tokens. Templates may be changed runtime to facilitate different layouts and/or translation into any language. Templates fully support Unicode, and the log file may be configured to be written in UTF-8 or UTF-16 format, with or without a BOM.
- It may be configured runtime to favour speed, memory usage efficiency or a blend of the two via the FastMM_SetOptimizationStrategy call.
Experience/opinions welcome ...
- 5
-
Closed as harmless.
-
Look here for an overview of tools and software sources:
http://www.modbus.org/tech.php
For a Delphi Modbus TCP implementation (free), see:
- 1
-
See this answer from Embarcadero to a customer who wants to increase the registration count:
Reinstalling Windows without re-registering Delphi
Update : The linked message was deleted by a moderator. Only visitors with enough reputation can view the original message.
Quote"We received your request to increase the registration limit for your serial number XXXXXXX. Unfortunately, there is not an active support and maintenance agreement for this license. Licenses without active maintenance are not eligible for technical support and this includes increasing the registration limit for your license.
Historically, we provided limited support for activities such as changing registration limits as a courtesy. However, this courtesy required time and resources to support. As we now include maintenance with every new license and encourage customers to remain current on maintenance, we changed our support policy to align with industry standards.
Going forward any support services requested will only be provided for licenses with active support and maintenance."
- 3
- 2
- 2
-
-
The Delphi IDE known as Galileo (.NET inspired) has 15+ years on its neck.
The tools to build and support the IDE is somewhat outdated and the Rio IDE is the first attempt in years to remove old dependencies.
- 1
-
- The code editor works for me. I still use the Wordstar keyboard shortcuts as I did in the beginning of the 80s, programming in CP/M and then the MS-DOS environment. I turn off code completion, since that slows down typing and disrupts my intention more that it helps. My fingers do the typing, while I can concentrate on the code.
- The form designer is ok for layout. But there is one big shortcoming with how it lures a novice programmer to make a mess of separating the GUI from business logic. I wish a more sophisticated default scheme would be introduced to handle that.
- The error insight function is best turned off as well, since it introduces more doubts than it really helps.
- Comparing code is easy with the Beyond Compare plugin.
- The integration with different types of code repositories could be better.
- The debugger is fine and with the use of FastMM memory leaks are easy to find and remove.
The biggest concern for me is not the state of the IDE. Every new version introduces errors in the compilers and the RTL. Using a new version in a 24/7 application is out of the question.
I wish all Embarcaderos efforts could focus on bringing out quality compilers comparable with industry standard C++ compilers and a RTL that can be trusted.
- 4
-
IDE Classic editor key mappings with Smart Surround Keys option disables the ctrl+G (delete key) shortcut.
https://quality.embarcadero.com/browse/RSP-24277 "[Regression] Smart Surround Keys disables editor classic shortcut ctrl+G"
Annoying, but unchecking the Smart Surround Keys option will make it work again.
-
Not exactly the same, but https://quality.embarcadero.com/browse/RSP-23466
shows that the threading library in Rio is defect.
-
6 minutes ago, Lars Fosdal said:Isn't there something weird about RTTI for enums that have manually set ordinal values as well?
Define "weird". Enumerations with defined ordinal values do not have RTTI.
-
There was a race condition in the TRttiContext, causing errors in multi-thread applications.
As @David Heffernan says, it is best used as a singleton.
Seems to be fixed in Delphi 10.3 Rio.
https://quality.embarcadero.com/browse/RSP-9815
https://stackoverflow.com/q/27368556/576719 "TRttiContext Multi-thread issue"
- 1
-
Result := Result or (condition);
- 1
-
Using Application.ProcessMessages is not the correct way to test if the GUI is updated in a lengthy process.
Put your lengthy operation in a separate thread and add a possibility to cancel it if the GUI detects such a request.
Application.ProcessMessages can lead to many hard to find anomalies and program failures.
- 3
-
30+ new reports added today.
Until a couple of hotfixes and at least one update, I will use it for testing.
-
I could not agree more. Releasing software and updates based on a new compiler version is a risky business and tests are very time consuming.
-
Unfortunately the introduction of custom managed records has been deferred to version 10.4
Pity, since I can see many important use cases for this language enhancement. Guess I will have to bide my time another year.
- 2
Revisiting TThreadedQueue and TMonitor
in RTL and Delphi Object Pascal
Posted