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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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