Jump to content

Stefan Glienke

Members
  • Content Count

    1428
  • Joined

  • Last visited

  • Days Won

    141

Everything posted by Stefan Glienke

  1. Stefan Glienke

    ScaleMM2 with MARS: +70% performance boost :-)

    It's easy enough to profile where the mass of heap allocations are coming from by using FastMM full debug and log the callstacks. Or run under SamplingProfiler and check what hits the memory routines most.
  2. Stefan Glienke

    Rio has a broken REST Library

    @Attila Kovacs Your quote from the help is kinda misleading because the code path there is the one handling the function not succeeding but returning ERROR_INSUFFICIENT_BUFFER. @Kryvich The help combined with the code below is confusing me. It says number of bytes but then it also does a dwSize/sizeof(WCHAR) to allocate a wchar array šŸ˜•
  3. Stefan Glienke

    Delphi Bugs reported to QualityPortal

    If you're interested, look there - otherwise too much noise for a forum imo.
  4. Stefan Glienke

    Delphi Bugs reported to QualityPortal

    https://quality.embarcadero.com/issues/?jql=affectedVersion %3D "10.3 Rio" and status not in (Closed%2CDone%2CResolved)
  5. Stefan Glienke

    Can somebody confirm this in 10.3?

    Yup, did that. To work around that issue, you can put list.List into the watches.
  6. Stefan Glienke

    Delphi 10.3 TTimeSpan.GetScaledInterval Android

    What exactly do you do, what you posted is a private method that obviously gets called from another public method. Please show your code.
  7. Stefan Glienke

    For..to..step in Delphi

    @Arnaud Bouchez I know you like to deal with low level stuff but being able to be more declarative about loops and other language constructs is a benefit imo. That var passing of the loop variable is bad, but Primoz wrote that just for fun and advised not to use it. I guess every Delphi developer knows how a while or repeat loop works but I have seen enough off by one errors caused by counting the loop variable wrong, messing up the loop condition or other stuff which could just be eliminated if the language itself could treat it right without the need to put extra abstractions ontop that just make code slower. Another thing that just applies to 10.3 though is that only in a for loop you can inline declare the variable to only be valid in the loop scope and not outside.
  8. Stefan Glienke

    Custom Managed Records Coming in Delphi 10.3

    Better than releasing something that is broken and makes all your code fail, amiright?
  9. The joys of packages as a library author. Looks like commit ace9e54 only modified the 10.2 package. That commit removed the following files: MARS.Client.Messaging.Resource.pas MARS.Client.SubResource.JSON.pas MARS.Client.SubResource.pas MARS.Client.SubResource.Stream.pas Just remove them from the contains in the MARSClient.Core.dpk and you should be able to compile.
  10. Stefan Glienke

    Spring4D Conf

    until
    https://conf.spring4d.com/
  11. Stefan Glienke

    Custom Managed Records Coming in Delphi 10.3

    The second parameter of the Assign operator actually has to be either var or const [ref].
  12. Stefan Glienke

    New official Embarcadero forums online

    Wow they are still (happened on the old forums as well) leaking email addresses in the usernames as they seem to be generated from the email used on the old community page ...
  13. Stefan Glienke

    Clean Code and Fast Code Slides at EKON 22

    I am sure using the type keyword after the equals sign was not part of the original pascal syntax and is only there to let the compiler produce a new typeinfo instead of it just being an alias that still points to the exact same type.
  14. Agreed, type redeclaration is really not very helpful in many situations. - you still have implicit type compatibility no matter what - but helpers stop working
  15. And after that you show why the "right" way is bad... An URL consists of different parts which combined give a string, yes but should be represented as the different parts, hence the record. Especially since there are cases where such a type cannot just be represented as string or number but consists of different data of different types. Yes there might be a string representation but it should not be passed as that through your API.
  16. Stefan Glienke

    New in 10.3: IDE UI Improvements in the Main Window

    It will not get them more customers just because it's 64bit and runs out of memory later because all the instabilities and the compiler getting into a bad state because of compile errors or what not crashing the IDE will still be there as will the poor code tooling. Going the easy/cheap way every time is what puts Delphi and the IDE into the current situation of constantly having to react to external factors and tinker around edges. Sometimes I really have a hard time believing that or you just avoid certain features or have subconsciously developed a certain habit to do things differently. Or you just use it to prepare demos.
  17. The benefit of the TUrl type opposed to differently named overloads is also that you declare a domain type and make the API cleaner than just (string, string, string) regardless the naming of the parameters
  18. Stefan Glienke

    Aligned and atomic read/write

    Well you have a different definition then than Intel in paragraph 8.1.1 it seems. So unaligned data can be as well part of a struct/record which fits into a cache line and thus is guaranteed to be atomic.
  19. Stefan Glienke

    Aligned and atomic read/write

    isAtomic := not IsCrossingCacheLine(unalignedData);
  20. Stefan Glienke

    Theming in the IDE

    Get into the beta - I guess being a maintainer of one of the most noticeable IDE plugins might help even if you are not on subscription personally. @Marco Cantu @David Millington might be helpful with that.
  21. Stefan Glienke

    New in 10.3: IDE UI Improvements in the Main Window

    Yeah, then the IDE can more excessively waste memory left and right until your RAM is used up instead of crash early, brilliant idea... Throwing more memory at an application that does not know how to properly manage memory is not the solution. Oh, please, no excuses about the compiler leaking memory because of LLVM, if you know that then don't load it into the IDE process. Ah, that has to be done to use it for IDE tooling, like code completion and all kinds of source related things. Now you see why other languages and IDEs go the way of separating this and using a language service to provide such information
  22. That fact that you have to mark overloads to a virtual method as reintroduce always bothers me but I never cba to actually report it.
  23. Stefan Glienke

    Directions for ARC Memory Management

    And how exactly can we call Add on that "New" record if ?
  24. Stefan Glienke

    Directions for ARC Memory Management

    Well, New.Of could return a record that has implicit operator overload to be assignable to the s1 variable which then implicitly goes out of scope at the end of the routine.
  25. It is very unfortunate that you used merge to get the latest master changes into your fork rather than rebasing. That makes looking at your changes very difficult (I had to look back through the commits until I found yours that were not integrated into master via PR). Also having all changes in one branch will result in some huge PR whereas putting each different change into it's own branch and submitting PRs for that would be easier to review. I don't know about Roman but I would not accept a PR with a ton of different fixes where I cannot separate them from each other and validate them individually. I just bring this up because I want those bugfixes incorporated back into the main project.
Ɨ