On Mon, 11 May 2020, Noel Duffy via fpc-pascal wrote:

I've been beavering away at a fix for https://bugs.freepascal.org/view.php?id=37013 and I've run into something unexpected. When I try to build rtl-extra with my proposed patch applied, I get compiler errors for things like the use of result variables and var/out variables. I'm so used to these being available that I quite forgot there are modes where they're not.

My question is, first, what mode is the compiler using, and second, is this required for portability to other platforms?

The compiler uses fpc mode.

Or am I completely misunderstanding this?

Example error messages:
sockets.inc(497,5) Error: Identifier not found "Result"

sockets.inc(510,53) Fatal: Syntax error, ":" expected but "identifier RES" found

for this definition:

  function convert_hextet(const s: ShortString; out res: Word): Boolean;

It's not a big deal to rewrite around these, but first I want to make sure I am correctly diagnosing the issue.

You are correct. The unit is compiled in fpc mode, which means no "result"
variable, no out param (replace with var).

We can envision changing this mode, but then the whole unit needs to be
verified and checked for correct functioning, since it will redefine basic types as integer from 16 to 32 bit, change the meaning of string.

I don't think you will want to undertake that effort :)

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to