On 17 Nov 2009, at 13:43, Thaddy <tha...@thaddy.com> wrote:

Jonas Maebe wrote:

No, that is not possible. I once tried to change move and fillchar to use "out" parameters instead of "var" parameters, and the result was all sorts of crashes. The reason is that "out" has special semantics for reference counted types (they are finalized at the *caller* side), and move/fillchar are sometimes used to zero uninitialised data (so if the run time then tries to finalise garbage, you get crashes).
In that case I suspect an implementation insect. The compiler/ codegenerator should not differ between var and out, just the parser should distinguish imho. A reference should never influence "reference counting" and should surely not have anything to do with finalisation at all, not even because copy on. Most other languages behave like that I think. What is the reason FPC differs?

Delphi compatibility. And Delphi does that because COM requires this behaviour.


Jonas
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to