Latest News
Listen
Listen
AI illustration, not a photo of the actual subject

Free Pascal Gains Full Dynamic Package Support

The Free Pascal Compiler and Lazarus IDE now include native dynamic package support, allowing rapid component installation and plugin development.

18 Oct 2026 0 reads Compiled with AI

#Free Pascal Compiler #Lazarus IDE #Dynamic Packages

Dynamic packages let developers add new components, controls, and Lazarus extensions in seconds without rebuilding the entire IDE. They are shared library files on Linux, Windows and macOS, and the compiler creates extra metadata that can be inspected by new RTL units.

How Dynamic Packages Work

To enable this, the compiler, its runtime, and the Lazarus IDE were updated. A new RTL unit, DynPkgTypes.pas, lets programmers read package contents, while the runtime keeps thread variables and dynamic types like strings and arrays safe across package boundaries.

The IDE now shows a progress window outside the main window when it detects changes in a registered package. The window updates during rebuilds, package installs, or IDE rebuilds, and a new Packages pane lists recently opened packages, letting developers compile them quickly without restarting the IDE.

Dynamic packages have rules: a package’s unit cannot share the package’s name; the compiler automatically appends "Package" to the source file name. Unit names must be unique across packages, and packages are larger because they store a map of all contained items, which is removed when a package is stripped.

Full changes are available for download from the project website. Installers already contain the dynamic package support, and the code is committed to GitLab in branches called "dynamic packages." Users can report problems through the GitLab issue tracker or discuss the feature on the forum.

Reddit Programming

Report something about this article