-
Content Count
1428 -
Joined
-
Last visited
-
Days Won
141
Everything posted by Stefan Glienke
-
Fast lookup tables - TArray.BinarySearch vs Dictionary vs binary search
Stefan Glienke replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
And then after you spent quite some time implementing this without defects that it would not be any faster than all the ready-to-use collection types or the actual performance improvement would be completely negligible. -
Do bug fix patches really require active subscription?
Stefan Glienke replied to David Heffernan's topic in General Help
@Remy Lebeau Selective perception? If a compiler is not a critical product function I don't know what is. -
Do bug fix patches really require active subscription?
Stefan Glienke replied to David Heffernan's topic in General Help
I think at least in Germany the court would say otherwise - keyword: Nachbesserung und Gewährleistung -
Good quality Random number generator implementation
Stefan Glienke replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
pcg32 should be easy enough to implement from the c code. -
Several F2084 Internal Error on Delphi 10.4.2
Stefan Glienke replied to Davide Angeli's topic in Delphi IDE and APIs
That's what QA said before 10.4.2 released -
Several F2084 Internal Error on Delphi 10.4.2
Stefan Glienke replied to Davide Angeli's topic in Delphi IDE and APIs
Or he just wants to see the correct values when inspecting them while debugging? -
Find exception location from MAP file?
Stefan Glienke replied to A.M. Hoornweg's topic in RTL and Delphi Object Pascal
No need to assume or guess anything - the base addresses are in the map file. -
What type of collections do you have in mind? Not all types of collections can be implemented completely lock-free in an efficient way or they are hilariously complex to implement. Depending on the implementation some operations might not have the same characteristics of a regular thread-unsafe implementation.
-
Several F2084 Internal Error on Delphi 10.4.2
Stefan Glienke replied to Davide Angeli's topic in Delphi IDE and APIs
No, we are not - some individuals who also happen to be MVP are. -
Good quality Random number generator implementation
Stefan Glienke replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
https://xkcd.com/221/ -
LSP has nothing to do with that but the filter in the suggestion box. There were several plugins that could do that for ages.
-
What about additional free open source C++ libraries on GetIt ?
Stefan Glienke replied to Rolf Fankhauser's topic in General Help
Because what percentage of overall C++ development is being done in Visual Studio again? -
Display Componant like Gauges Led and Graphic for Delphi FMX
Stefan Glienke replied to Remi1945's topic in I made this
https://choosealicense.com/ is also a good help to decide which one to pick. -
What about additional free open source C++ libraries on GetIt ?
Stefan Glienke replied to Rolf Fankhauser's topic in General Help
Nuget is for .Net, not for C++. C++ has a bunch of package managers but none of them is considered the de facto standard that almost everyone uses. -
Display Componant like Gauges Led and Graphic for Delphi FMX
Stefan Glienke replied to Remi1945's topic in I made this
This: This means it will be basically useless for commercial projects. -
64bit Debugger Not Handling Memory Problems
Stefan Glienke replied to CB2021's topic in General Help
That dialog there is definitely not from the debugger. Make sure you did not accidentally disable breaking on exceptions. -
RegEx performance
Stefan Glienke replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
Opinions on regex differ - however for this case using a regex is like using a bucket-wheel excavator to plant a pansy. -
RegEx performance
Stefan Glienke replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
Just skip any spaces and then check if it's '(' or not: function IsFunctionInString(const aFunction, aStr: string): boolean; var vPos: Integer; p: PChar; begin vPos := Pos(aFunction, aStr); if vPos > 0 then begin p := @aStr[vPos + aFunction.Length]; while p^ = ' ' do Inc(p); Result := p^ = '('; end else Result := False; end; -
But what if I would not answer there 😉 Seriously - I understand people getting their area here if they don't have their own place already - Spring4D already has its own place.
-
https://groups.google.com/g/spring4d as I get an email notification - but I also watch SO and this forum.
-
Is a "bare-minimum" EurekaLog possible?
Stefan Glienke replied to aehimself's topic in Delphi Third-Party
That's what the madCompileBugReport tool is for - you use madExcept with minimal debug info then the bugreport the application produces does not contain function names and such but using the tool turns it back into that - you need to have archived the map files for your released binaries though. -
WASM engine in pure Pascal - an interesting open source project to watch!
Stefan Glienke replied to Edwin Yip's topic in RTL and Delphi Object Pascal
While it certainly looks impressive and pas2js has come a long way it is still far from being able to just take your existing code (non VCL dependant of course) and compile/run that. -
SetLength TBytes Memory Leak
Stefan Glienke replied to Hafedh TRIMECHE's topic in RTL and Delphi Object Pascal
Fair point - I've seen some glitches with unloaded DLL in the past - fortunately, we don't explicitly unload our own DLLs that were loaded with LoadLibrary. It's not a big issue, don't spend your valuable time on that - since we have a madExcept license anyway I will try out fulldebugmode.dll using that. -
SetLength TBytes Memory Leak
Stefan Glienke replied to Hafedh TRIMECHE's topic in RTL and Delphi Object Pascal
That work only needs to be done when the report is being generated and I think that is not a point where raw speed matters that much but accuracy - on collecting the stack trace I agree that should be as fast as possible. I think I have seen a Jcl function that returns the address of the call instruction which then could be used to correct the displayed one to match the call instruction. Anyhow if you are not able to correct this we still have the option to use madExcept for the FullDebugMode dll which I will consider using 🤷♂️ -
SetLength TBytes Memory Leak
Stefan Glienke replied to Hafedh TRIMECHE's topic in RTL and Delphi Object Pascal
@Pierre le Riche It might work many times but when I saw this mentioned I remembered cases where I had seen leak reports with some weird looking call stacks in them which were kinda confusing as they were impossible (like in this case). I think simply walking up the stack and taking all addresses as a potential return address is the issue. This is the callstack when the code arrives in FastMM_DebugGetMem (10.3.3): and this is how the stack looks like: Looking at 00406E08 will find this: which is why LStrFromPWCharLen is being reported. So you are right - there should be a check if that potential return address is a valid one. Another thing I just noticed with the addresses in your vs the addresses reported from madExcept: madExcept reports the address of the call - you report the return address. IMO reporting the address of the call instruction is the better option - what do you think?