On 26 jan 2007, at 12:51, Carlo Kok wrote:

* FPC has changed default calling convention once (or twice?)

Once afaaik.

* The way "register" works on FPC is slightly different from delphi, in delphi special types like interfaces, strings and variant results are passed as var parameters, it seems the easiest fix would be for me to change PascalScript to process results differently for FreePascal.

How does FPC pass a string/variant/interface result actually? Returned in AEX?

Strings: yes. Interfaces results are handled in a Delphi-compatible way since 12/04/2006 (i.e. that's also done that way by 2.0.4). Variant results have always been passed as var parameters afaik (at least 2.0.4 does it).

Once I know this, I should be able to add an FPCFIX define for this. (So it can be easily undone when FPC supports the same "Register" mode as Delphi does)

The main incompatibility is currently still that stack parameters are pushed in reverse order compared to what Delphi does for register calling convention. But that will probably be changed before FPC 2.2 comes out.


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

Reply via email to