[fpc-devel] "Blank slate" next version of FPC

George Bakhtadze armorcavalry at yandex.com
Tue Feb 19 11:12:57 CET 2019


Theoretically there is a way to refresh the language without breaking existing code - a new {$mode}.
Or even completely new compiler will not break old code if it can handle .ppu generated by the current one.

And there is much to improve. Not only add modern language features but in syntax itself.
As a tooling developer (I had to write a parser) I can say that current syntax is not as clean as I thought. Not even close.
So that would be good but not realistic as there is obviously not enough resources for this.

More realistical and may be more useful would indeed be refreshing of RTL.
To make this process community driven and to not get a mess in the end there should be guidelines on this:
Which libraries are needed most, naming, code style, required test set and so on.

Also third party library developers suffering from absence of a dependency manager (yes, I'm aware of Online Package Manager).
Recently was started a project of such tool. But it's initiator doesn't use FPC so FPC compatibility for it will have to add someone else.
https://github.com/DelphiPackageManager/PackageManagerRFC/

---
Best Regards, George


15.02.2019, 12:07, "James via fpc-devel" <fpc-devel at lists.freepascal.org>:
> I'm interested in starting (or joining) a discussion on the next (*non* backwards compatible) version of FPC. Instead of being classically object oriented, there is merit in examining a model with ad-hoc polymorphism like Rust.
>
> Strongest features of Pascal (in my opinion):
>   1. Code readability
>   2. Strong typing
>   3. Quick compilation.
>   4. ???
>
> Strongest features of Rust (from wikipedia):
>   1. Memory safety (no null pointers, no dangling pointers, no data races in safe code)
>   2. Memory management with "resource acquisition is initialization"
>   3. Ownership rules favorable for safety
>   4. Ad-hoc polymorphism (traits) [instead of traditional OOP class inheritance]
>   5. ???
>
> Other features worth investigation:
>   1. Syntax for parallel math (SIMD)
>   2. Syntax and methodology for parallel algorithms dispatch (GPU via Vulkan, RISC-V coprocessors, etc.)
>   3. ???
>
> So, what features are desirable for a 21st century programming language in this world of multiple cores? I think a clean slate new language "done the Pascal way" would be beneficial.
>
> Could someone with knowledge of both Pascal and Rust elucidate the advantages of both languages?
>
> Is there interest in combining the syntax of Pascal with the features of Rust et al. to create the next version of FPC?
>
> Thanks!
> ,
>
> _______________________________________________
> fpc-devel maillist - fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel



More information about the fpc-devel mailing list