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

J. Gareth Moreton gareth at moreton-family.com
Fri Feb 15 10:00:42 CET 2019

 I can't speak for the senior developers, but I think there's a preference
that backwards compatibility is maintained, at least between versions of
FPC if not Delphi.  At least my preference is to attempt to better support
the existing FPC - for example, I tend to do a lot of work and research
into x86-64 assembly language, including compiler algorithms that attempt
to use the full MM registers where possible.
 I think if you want to truly design a new language, or a new dialect of
Pascal (as you are implying), it might be best to start with a prototype to
showcase its merits.

 I don't know much about Rust so I probably can't help you too much, and my
mindset with programming very much belongs in the 90s unfortunately, as
while I attempt to write cross-platform code, I'm not afraid to drop into
raw assembly language if there's a potential speed benefit.

 I suppose one 21st Century desire of not so much the language, but the
compiler, is the ability to fully utilise modern CPU features like the AVX
instruction set and the FMA instructions, but still be able to drop back to
SSE2 if compatibility is a major concern.
 Just my thoughts.

 Gareth aka. Kit

 On Fri 15/02/19 05:28 , 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

 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
   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?

 fpc-devel maillist - fpc-devel at lists.freepascal.org [1]


[1] mailto:fpc-devel at lists.freepascal.org
[2] http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20190215/8647baeb/attachment.html>

More information about the fpc-devel mailing list