[fpc-pascal] TP compatibility: procedural type
Sven Barth
pascaldragon at googlemail.com
Tue Aug 29 15:35:52 CEST 2017
Am 29.08.2017 14:26 schrieb "Anton Shepelev" <anton.txt at gmail.com>:
>
> Karoly Balogh to Anton Shepelev:
>
> >>According to Borland's official language guide to
> >>Turbo Pascal 7.0,
> >>
> >> To be used as procedural values, procedures and
> >> functions must be declared with a 'far' directive
> >> or compiled in the '{$F+}' state.
> >>
> >>whereas Free Pascal in -Mtp seems to accept any
> >>non-system procedure or function as a value of a
> >>procedural type. Is it an instance of TP incompat-
> >>ibilty or am I missing something?
> >
> >It's documented, that Free Pascal ignores far and
> >near directives because they were for 16bit code,
> >and have no meaning in 32bit or 64bit code:
> >
> > https://www.freepascal.org/docs-html/user/usersu82.html
> >
> >Therefore it's logical that the compiler also ig-
> >nores their absence.
>
> Ignoring them in the sense of not affecting the gen-
> erated machine code is perfectly OK, but not requir-
> ing their presence in the source, to make the pro-
> gram compilable in Turbo Pascal, seems wrong when
> Free Pascal is in Turbo Pascal mode. A program that
> Free Pascal compiles successfully in TP mode should
> work with the actual Turbo Pascal compiler. Is it
> not the purpose of these modes? Do they guarranty
> only forward-compatibility?
The modes are for the case have code written for other compilers (TP,
MacPas, Delhi, ISO) work in FPC (as good as reasonably possible). We do
however *not* guarantee that code written in one of these modes with FPC
compiles or runs with the corresponding compiler.
Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20170829/c90acdd6/attachment.html>
More information about the fpc-pascal
mailing list