Hi, On Tue, 29 Aug 2017, Anton Shepelev wrote:
> >> To be used as procedural values, procedures and > >> functions must be declared with a 'far' direc- > >> tive 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 incom- > >>patibilty or am I missing something? > > > >That would probably be only relevant on i8086. All > >the other targets don't have the distinction in > >"near" and "far", so it's not necessary to artifi- > >cially restrict everything. > > But this is from the Language guide -- a document > that descrbes the language in a platform-agnostic > way, except when the contrary is explicitly inidi- > cated. Where Turbo Pascal did not accept a proce- > dure without the 'far' modifier, one should expect > Free Pascal to reject it also in 'TP' mode. 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 ignores their absence. Although this documentation should probably be updated, because we now support some 16bit and 8bit systems as well. But I'm pretty sure you can find a bunch of other things, which FPC allows even in TP mode, but TP disallows/doesn't support, just because the amount of extra features in the language since TP was out... Charlie _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal