On Fri, 5 Jul 2019, Martok wrote:

Am 05.07.2019 um 02:52 schrieb Michael Van Canneyt:

With this sentence you forbid storing or communicating enumerated values in any way: file, database, over network. It can be used only in a computer program and never
leave the context of the running program under any form. Because as soon as
it is somehow communicated, there is a chance it becomes invalid in return
communication.

This is the conclusion from Jonas' arguments, which he explicitly confirmed when
we had the discussion two+ years ago.

You're also missing another important type of 'communication': calling non-FPC
APIs or even just FPC libraries of possibly different version (see: Run-Time
Packages!)

APIs falls under 'communicating'. Database is an API. Library is an API,
REST is an API: you communicate the value to a system not under your
control.

Anything that even looks like a subrange cannot be used for these interfaces.

Yes, if you adhere to a strict view.

But IMO such a strict stance is untenable: you cannot ensure correct values in all cases even within the confines of the language (as demonstrated before).

So, in my book, an intrinsic to check for a correct value in the places where an invalid value can enter the system is a welcome language feature.

Put another way:
If the programmer is responsible (correctly so) for ensuring correct values, then I think the language must give him the tools to fulfill his responsability in a convenient manner. Hence the need for an intrinsic.

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

Reply via email to