Jump to content

Leif Uneus

Members
  • Content Count

    75
  • Joined

  • Last visited

Posts posted by Leif Uneus


  1. 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.


  2. 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.


  3. 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.

  4. 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 ...

    • Like 5

  5. 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."

     

     

    • Thanks 3
    • Confused 2
    • Sad 2

    • 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. 

     

     

    • Like 4

  6. @Incus J 

     

    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.

    • Like 3

  7. Unfortunately the introduction of custom managed records has been deferred to version 10.4

     

    See http://blog.marcocantu.com/blog/2018-november-deferring-managed records.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+marcocantublog+(marcocantu.blog)

     

    Pity, since I can see many important use cases for this language enhancement. Guess I will have to bide my time another year.

    • Like 2
×