Jump to content

Bill Meyer

  • Content Count

  • Joined

  • Last visited

  • Days Won


Bill Meyer last won the day on October 26 2022

Bill Meyer had the most liked content!

Community Reputation

336 Excellent

1 Follower

Technical Information

  • Delphi-Version
    Delphi 12 Athens

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Bill Meyer

    Windows PATH length limit?

    This morning, a colleague offered this: https://devblogs.microsoft.com/oldnewthing/20100203-00/?p=15083 It is likely to be the best explanation to be found.
  2. Bill Meyer

    Windows PATH length limit?

    I would have thought that it should be easy to find documentation on the maximum Windows PATH length. I have found many articles, none of them comprehensive. The only specification which seems to be straightforward is the MAX_PATH = 260 limit on the file path. What I am looking for, however, is whether the full PATH variable has a specified limit.
  3. Bill Meyer

    What are the performance profilers for Delphi 12?

    The word from SmartBear is that AQTime is a legacy product. I would not anticipate new releases.
  4. Bill Meyer

    A gem from the past (Goto)

    There is a classic, if dusty, article from Donald Knuth: https://pic.plover.com/knuth-GOTO.pdf
  5. Disappointing, as other Tryxxx routines avoid raising exceptions.
  6. Bill Meyer

    DelphiLint v1.0.0 released!

    Issue #26 reported. Issue #27 for documentation.
  7. Bill Meyer

    DelphiLint v1.0.0 released!

    Download the packaged zip for your Delphi version from the latest release, or build from source. Unzip the folder and run the included install.bat script. Done! Well, no. Then I run Delphi 11.3, and get a dialog wanting me to set up external resources. I did start by installing the JRE. The dialog says that, by default, JAVA_HOME is used. But Select override is focused, and wants me to point where? I do not find a JAVA_HOME environment variable, and one might hope that the startup code would solve that for me. I am guessing this wants the location of javaw.exe? Or java.exe? I find no enlightenment on this in the readme on github, either. I am not a Java user, and could wish for a more useful explanation in the dialog. Since my guess proved not to solve the problem, I emphasize the wish for better guidance.
  8. Bill Meyer

    Delphi Low-code No-code?

    Depending on the corporate view of dev tools as investment.
  9. Before anyone gets too upset, my perspective is based on dealing with legacy code you have come into. There are numerous advantages to encapsulating global variables. Not only do you establish a measure of access control, but if you expose them as properties with getters and setters, you can easily set breakpoints to discover points of interaction. Equally, you could introduce logging. But even without those benefits, you will be altering the calling code to reference MyGlobals.SomeState, rather than simply SomeState. Once you have accomplished that tedious task, it is also a simple matter to search for all such references by searching on MyGlobals. Other benefits will become apparent as you work through things.
  10. Bill Meyer

    How do I upgrade an old 2007 project ?

    Components may be a barrier to doing the complete transition in one step. In particular, there is no release version of DevExpress which supports both D2007 and the latest compilers. If DevExpress is an issue, then it may be best to update to the last version which supports D2007 and do the conversion of grids and other components which were removed later. The recent versions do not offer dxGrid, for example, but require changing to the cxGrid, which may be a good deal of work, depending mainly on event handlers used, as the architecture changed between dxGrid and cxGrid.
  11. Bill Meyer

    How do I upgrade an old 2007 project ?

    I am curious. How many source files in the project?
  12. In tackling large legacy projects, I have seen many cycle chains which exceed 100 units. The graphs are pretty, but when the magnitude of the problems is so great, the graphical interface seems to me to be less than effective. I have dealt with cycle reduction painfully, sometimes getting lucky, and other times finding obvious failures to separate concerns. But in many cases, I have been defeated by the challenge of finding a starting point. And nice as it is to clean up some modules, when the result doesn't alter the cycle count, it becomes hard to maintain your enthusiasm.
  13. Absolutely! But as you point out, it is also a serious task to refactor such things.
  14. Let me make a rash assertion. If you have a large project in which some modules are large (>15K lines) and contain many (>200) uses references, then you are referencing some of them simply to gain access to relatively simple types. Move those to other modules with no code. Modules of types and consts can be global with no negative impact. But when those declarations are no longer found in massive units, you will begin to see your uses clauses shrink.
  15. One of the issues is that in a large project with many circular references, that log will show modules appearing again and again. In one large project, I found over 20,000 such references, and a cold build was up to eight minutes. Reducing the circular references by about 25% brought the build time down to about a minute. And the time was stable over several builds in a session, where with 20K+ it had been increasing on successive builds. MMX does produce a report of circularity chains. It is large, and not friendly to humans, but it is easy to parse, and I built a simple tool which delivers in a grid the counts for each of the modules with circular references, and which can compare two reports, which is useful as you continue to work on the project.