On a related note, I do wonder where pure functions might help with JIT.  It depends on what Florian and the other administrators and developers seek, but currently I aim for my pure function implementation to fulfil both standard properties (1. same output for the same input(s), and 2. no side-effects (usually interpreted as meaning reading from or writing to anything outside of its scope (e.g. global variables))).

Currently, you can define a function as pure and, as long as you don't have anything explicitly impure like a pointer deallocation, the compiler won't know for sure if it is pure or not until you try to call it with a constant parameter - then the compiler checks.  This may cause some issues if the function has a problem like an infinite loop or the result not being set on some branches, and which won't be detected unless you call the pure function with a constant input that triggers the condition.  I'm not sure what the best solution to this is.

Kit

On 01/07/2024 09:33, Mattias Gaertner via fpc-devel wrote:


On 7/1/24 09:05, Marco van de Voort via fpc-devel wrote:

Op 1-7-2024 om 02:34 schreef Hairy Pixels via fpc-devel:
I had a question about pure functions. I'm seeing some newer languages have a JIT built-in so they can run any function at compile time. To get results at compile time you probably need to use a constant for the parameters but in theory it could read/write to global variables so it's not really "pure" but still makes it possible to run functions at compile time.

FPC has JIT backends like JVM.

But that is just the backend, FPC still works only at compile time, so no JIT at runtime possible. Is it?

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


--
This email has been checked for viruses by Avast antivirus software.
www.avast.com
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to