-
Content Count
3586 -
Joined
-
Last visited
-
Days Won
176
Everything posted by David Heffernan
-
Revisiting TThreadedQueue and TMonitor
David Heffernan replied to pyscripter's topic in RTL and Delphi Object Pascal
Wrong. It also lets the compiler out the meta data, the unwind data, needed to restore the register in case of an exception. Read Allen's article. -
Revisiting TThreadedQueue and TMonitor
David Heffernan replied to pyscripter's topic in RTL and Delphi Object Pascal
CAS from OTL does restore rbx, but it should do so using .pushnv, for the reasons that Allen's article explains. -
Revisiting TThreadedQueue and TMonitor
David Heffernan replied to pyscripter's topic in RTL and Delphi Object Pascal
No it is not. It modifies rbx and does not restore it. -
Record Circular References
David Heffernan replied to Bernard's topic in Algorithms, Data Structures and Class Design
This is the point that I've been making all along. -
Record Circular References
David Heffernan replied to Bernard's topic in Algorithms, Data Structures and Class Design
Not being able to do that one thing would hardly invalidate the entire enterprise. We'd still be able to use the type as procedure argument which is the main thing we are striving for. But the whole argument is predicted on this single pass. It's no big deal to pass over each type section twice to process forward declarations. Won't make a blind bit of difference to performance. Bottom line is that it is perfectly possible to do this if Emba wanted to. -
Record Circular References
David Heffernan replied to Bernard's topic in Algorithms, Data Structures and Class Design
If what you say were true, then class forward references would not exist. -
Revisiting TThreadedQueue and TMonitor
David Heffernan replied to pyscripter's topic in RTL and Delphi Object Pascal
I can't see where RBX is restored in that InterlockedCompareExchange128 code. It's a NV register. Function needs to start with .PUSHNV RBX I can't vouch for the rest of what it does. -
Revisiting TThreadedQueue and TMonitor
David Heffernan replied to pyscripter's topic in RTL and Delphi Object Pascal
You can't be doing multithreaded programming where "whilst still not perfect" as a valid statement. It's got to be right. -
Revisiting TThreadedQueue and TMonitor
David Heffernan replied to pyscripter's topic in RTL and Delphi Object Pascal
Not sure it's relevant but that x64 should use .PUSHNV to preserve rbx. And I think that also makes .NOFRAME incorrect. -
The FMX bitmap that you save is a compressed bitmap. The VCL bitmap is a Windows bitmap, uncompressed.
-
I don't think that mixing VCL and FMX will work. So I'd just rule that out.
-
Wouldn't it just be easier to detect the webcam without trying to mix FMX into the system?
-
Record Circular References
David Heffernan replied to Bernard's topic in Algorithms, Data Structures and Class Design
With over a million lines of code, it's an epic task to migrate. I can't believe that the increase in compiler time would be significant. -
Record Circular References
David Heffernan replied to Bernard's topic in Algorithms, Data Structures and Class Design
C# compilation is pretty darn fast. Delphi compilation for 64 bit on Windows is not exactly fast. I'm sure that a first pass to define record type layouts followed by a second pass for everything else would not be costly. This isn't going to be about compilation speedy. It's about the pain of refactoring the front end. -
Record Circular References
David Heffernan replied to Bernard's topic in Algorithms, Data Structures and Class Design
It is possible. Plenty of languages can handle this. Emba could implement it if they chose to. -
Record Circular References
David Heffernan replied to Bernard's topic in Algorithms, Data Structures and Class Design
Well no, of course not. So we are stuck with this second rate language. -
Record Circular References
David Heffernan replied to Bernard's topic in Algorithms, Data Structures and Class Design
The argument is that its a single pass compile. So make it two pass. Simples. -
Record Circular References
David Heffernan replied to Bernard's topic in Algorithms, Data Structures and Class Design
You should be able to forward declare their methods. No reason not to be able to do that. -
Record Circular References
David Heffernan replied to Bernard's topic in Algorithms, Data Structures and Class Design
Bloody annoying that this can't be done -
Record Circular References
David Heffernan replied to Bernard's topic in Algorithms, Data Structures and Class Design
I personally don't think you can do better than helpers. That's what I do. -
TThread always raises OS Errror
David Heffernan replied to pyscripter's topic in RTL and Delphi Object Pascal
You think wrong -
TThread always raises OS Errror
David Heffernan replied to pyscripter's topic in RTL and Delphi Object Pascal
Find out by debugging. Set a breakpoint on SetLastError. And inspect the call stack when it triggers. -
TThread always raises OS Errror
David Heffernan replied to pyscripter's topic in RTL and Delphi Object Pascal
The only error here is the code that calls GetLastError and uses the value at a time when its return value is meaningless. All you have to do is to stop doing that. -
Delphi Rio IDE hangs again and again
David Heffernan replied to microtronx's topic in Delphi IDE and APIs
Yeah, should be using '%p' format string -
Delphi Rio IDE hangs again and again
David Heffernan replied to microtronx's topic in Delphi IDE and APIs
Sure. But so what?