Skip to content

Roadmap / Features TODO #3

Description

@fibodevy

Roadmap for FPC Unleashed language features.

To discuss a specific feature, see the bottom of this issue.

Features Roadmap

  • 2026-06-11 String Interpolation - docs
  • 2026-06-16 Type() - compile-time typeof / decltype; declare a variable as the type of another - docs
  • 2026-07-01 {$embedstr <var name> <file path>} - embed a file at compile time as a String const; 1-arg {$embedstr <file path>} yields an inline String expression (foo({$embedstr <path>}))
  • 2026-07-01 {$embedbytes <var name> <file path>} - embed a file at compile time as an array[N] of byte const; 1-arg {$embedbytes <file path>} yields an inline byte-array literal
  • 2026-07-01 threadstatic - like static, but per-thread (TLS); function-local scope, persists for the thread's lifetime. forum post 1, forum post 2
  • 2026-07-01 lock, trylock - critical-section sugar; forum post, GitHub discussion
  • 2026-07-01 zeroinit modifier - zero-init var section
  • 2026-07-02 zeroinit: zero inline anonymous compound locals (var a: array[4] of Integer) - skipped today; Default(T) mangles its hidden zero-const off the type symbol, which anonymous types lack
  • 2026-08-02 (devel) forceinline modifier all inline directives are now as close to mandatory as the compiler allows, rather than being treated only as hints
  • parametrized macros
  • named arguments - set argument(s) by name, including the Nth one without the preceding args. Open question: must the skipped args have declared defaults, or are they zeroed? Needs discussion.
  • lightweight generics - witness-table; less code bloat; feat/lightweight-generics
  • compile-time functions - similar to the pure functions currently waiting to merge in stock FPC
  • alias modifier - extra Pascal-callable name(s): procedure foo; alias bar, baz;
  • NativeNT target - Kernel Mode (drivers) focus. The non-kernel-mode native .exe (runs very early in boot - autochk / boot-time chkdisk, AV scanners) is niche, likely skip.

Long term

  • Rebranding to Unleashed Pascal

Discussion about specific features

Individual features are discussed in Discussions (the Ideas / Feature Requests category), each in its own thread:

  • existing features / ideas: Feature: <name>
  • new feature requests: Feature request: <name>

If a feature doesn't have a thread yet, feel free to create one. Threaded replies, upvotes and polls fit gathering pros/cons much better than a flat issue.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions