Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by DPStano

  1. DPStano

    Delphi code formatter inquiry

    cnpack formater is probably the best one out there, I'm using it daily to format code containing inlines without any problem.
  2. https://github.com/bkeevil/mqtt/issues/26
  3. that one looks good https://github.com/bkeevil/mqtt I was planning to use it but don't know if is actually usable
  4. DPStano

    SAX parser

    Does anyone know about free SAX parser (just pascal based, not COM interop)? thx
  5. https://stackoverflow.com/questions/39955052/how-are-anonymous-methods-implemented-under-the-hood https://sergworks.wordpress.com/2010/01/27/anonimous-methods-in-delphi-the-internals/
  6. DPStano

    Firebird Admin Tool

    Database workbench because it has one handy feature it can debug stored procedures ...
  7. DPStano

    What is part of your contiuos integration?

    you have to track code changes and some changelog info together, when there are more like 100 commits in each release you are not able to look at every commit and write some info to release notes so normally you would have a file like changelog.md and every change should be written there before the merge, but when you are working on multiple branches with multiple developers its pain for constant rebase and conflict solving (you are constantly rewriting same line) so you will end up with multiple changelog.md files or ideally will move changelog from any tracked git file and now you have like two options write changelog to commit message or merge request description ... first one is simpler for processing so we started with that... and it working nicely ... and before new version release all commit's changelog lines are processed and some nice markdown file is created and uploaded to the web.
  8. DPStano

    What is part of your contiuos integration?

    the changelog is part of commit message like commit title [changelog] - bla bla bla - bla each mr has to have at least one commit with changelog with fixed structure, it will not stop pipeline just auto label merge request with "missing-changelog" or something like that...
  9. DPStano

    What is part of your contiuos integration?

    we are using gitflow + merge request CI pipeline(Gitlab runner) looks like - precheck like changelog/tags validation - build - prepare resources like versioninfo, build info, theme, licences, changelog .... - build dcc32 - postprocessing (like dfm packing clearing) - tests - updater and update - setups inno + msi - deploy (based on branch like upload to web for testerd when mr is merged to develop ...)
  10. DPStano

    RAD Studio 11 Alexandria is now available

    it looks that embarcadero fired all programmers ... it shouldn't be called 11 but maybe 10.4 patch 5 what about something useful for programmers, like code profiler, usable debugger, usable code navigation, code refactoring, and so on ... where are features from roadmap like language extensions? how desperate they had to be when you see "Rich Edit component update removes XP dependencies " in the changelog
  11. can ctor be private? strict private constructor Create; end;
  12. we are fighting against AV daily and after talking to few AV companies and their engineers all say there is no difference between unsigned and signed binary even with EV certificate.
  13. DPStano

    Anybody changing FileVersion directly in dproj file?

    it's one of the reasons, next one is that xml(dproj) is one of the worst formats when you have to rebase branch and resolve conflict, and borland/embarcadero moved it to another level, delphi it is constantly changing dproj (switch to debug build -> dproj changes -> switch back and it changes even more, add a new file and you have like thousands new changes and so on) so we stripped all ballast(90%) from dproj and locked it for changes and we separated version info to own rc but version info section has to have the same encoding as defined inside https://docs.microsoft.com/en-us/windows/win32/menurc/stringfileinfo-block and we were constantly changing it from utf-8 to win1250 and back, fields like company name and the product description were almost always broken ... so we switched to simple powershell script that makes everything that we need in the right encoding all the time and it has to take version info from somewhere and dpr was good candidate for it couse it already contained header with similar info...
  14. DPStano

    Anybody changing FileVersion directly in dproj file?

    @Mike Torrettinni It's our own custom syntax to define version info without touching *.dproj, these lines are parsed by *.ps1 script called from prebuild event https://docwiki.embarcadero.com/RADStudio/Sydney/en/Creating_Build_Events that creates res file https://docwiki.embarcadero.com/RADStudio/Sydney/en/Resource_file_(Delphi) that is linked to project during the build.
  15. DPStano

    Anybody changing FileVersion directly in dproj file?

    we have even hard rule to not commit dproj ... delphi modifies dproj without reason, and it's really annoying to resolve conflicts all the time, we created simple script in PowerShell that runs before build and creates resources with version info based on a custom comment in dpr like program Test; {@FileVersion=2.0.0} {@FileDescription=} {@InternalName=} {@Comments=} {@CompanyName=} {@LegalCopyright=} {@LegalTrademarks=} {@OriginalFilename=} {@PrivateBuild=} {@ProductName=@InternalName} {@ProductVersion=@FileVersion} uses
  16. the worst I saw was 2,5k LOC to make a deep copy of the Form instead of creating new instance.
  17. DPStano

    smtp client in a console app??

    do you have libeay32.dll and ssleay32.dll near exe?
  18. DPStano

    TMS and CoPilot, and Delphi ?

    I would not expect much from a neural network trained on that few pascal repos hosted on github 😄
  19. DPStano

    wcmapi function definitions

    does anybody have definitions for functions in wcnmapi.dll https://docs.microsoft.com/en-us/windows/win32/api/wcmapi/ ... I tried to use nestlib c header translator but seems to have problems with parsing
  20. DPStano

    Floating point arithmetics

    I have program like E: Extended; E := 36678971.91; Writeln(FormatFloat('0.##########', E, FloatFormatSettings)); result is 36678971.91 SizeOf(Extended) > 10, GetPrecisionMode -> pmExtended, GetRoundMode ->rmNearest but when I compile it with CI dcc32.exe with almost same params the result is 36678971.9099999994, SizeOf(Extended) > 10, GetPrecisionMode -> pmDouble, GetRoundMode ->rmNearest I thought that precision mode will make it different but no when I SetPrecisionMode(pmExtended) result will not change Does anybody have any idea what is happening?
  21. DPStano

    Floating point arithmetics

    I found what is interfering there was background loading of TWebBrowser that changes precision in FPU Control Word thx all
  22. DPStano

    Floating point arithmetics

    as I thought simple app returns 36678971.91 (built with CI) ... now I have like 2kk lines of legacy code with 2kk lines of external dependencies ... so back to the question is there any function besides SetPrecisionMode and SetRoundMode that can have an impact on floating points numbers?
  23. DPStano

    Floating point arithmetics

    Delphi is 10.3.0, app is 32bit (my build and CI too), OS is Windows10 and Windows server 2016 (CI)
  24. DPStano

    Floating point arithmetics

    it's not a minimal example ... it will take few days to add it to our build system (will try it for sure), I've just tried it in the new branch ... but I can guess that it will return 36678971.91 😄 there is something that has an influence on the result ... but I can't find what.
  25. DPStano

    Floating point arithmetics

    I can't create a minimal example ... just want to know if anybody knows what else can influence floating-point arithmetics in Delphi (some compiler directive, some other function something undocumented... some missing include... ) program Project14; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, math; var E: Extended; begin FloatFormatSettings := TFormatSettings.Create(''); FloatFormatSettings.DecimalSeparator := '.'; FloatFormatSettings.ThousandSeparator := #0; E := 36678971.91; Writeln(FormatFloat('0.##########', E, FloatFormatSettings)); end. I can't share the CI build script but params are like (bellow) with a bunch of system and internal units and libraries $flags = @{ 'A'='AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;'; 'NS'='Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;WinAPI.Foundation;System.Win;FMX;'; 'B' = ''; 'GD' = ''; 'DRELEASE' = ''; 'DCI' = ''; 'W' = '-SYMBOL_PLATFORM'; '$W+' = ''; '$C-' = '' }