The Free Pascal Compiler has released its first version with full support for dynamic packages, enabling developers to create and install components, controls, and Lazarus exten...
The Free Pascal Compiler has released its first version with full support for dynamic packages, enabling developers to create and install components, controls, and Lazarus extensions without rebuilding the entire IDE.
Dynamic packages function as shared libraries on Linux, Windows, and macOS, containing metadata that describes their contents. This metadata can be inspected using new RTL units, allowing programs to load, enumerate, search, and unload packages at runtime. The compiler and runtime have been updated to manage dynamic types such as strings and arrays across package boundaries while preserving thread variables.
The implementation allows applications to either bundle all functionality into a single executable or split it into multiple dynamic packages that can be updated while the program runs. This provides a plugin system capability for Pascal-based applications.
Key restrictions apply: units within a package cannot share names with the package itself, and unit names must be unique across all installed packages. Attempting to build a package currently in use by an open form requires closing or saving the form first. Additionally, dynamic packages are larger than standard shared libraries due to their embedded metadata, and stripping this metadata renders them unusable.
Lazarus IDE enhancements include a progress window that appears outside the main interface to show package rebuild status, estimated completion times, and activity during bulk package operations. A docked Packages window now displays recently opened packages and persists between sessions, allowing users to browse files and open units directly.
The IDE also features platform-specific package filtering. Packages can be restricted to particular operating systems or widgetsets, preventing incompatible components from appearing in the package list. For example, a Windows-specific COM interface implementation would only appear when Lazarus detects a Windows environment.
A new form conversion tool enables Lazarus extensions to transform any form or frame into an installable control that automatically appears on the component palette, preserving all associated events, methods, and properties. This streamlines the creation of custom UI elements.
The release notes indicate that changes have been committed to a GitLab fork named "dynamic packages," with bug reports to be submitted through the associated issue tracker. The project also seeks volunteer moderators and testing support, particularly for macOS builds on Apple Silicon hardware.
This development represents a significant advancement for the Free Pascal and Lazarus ecosystem, providing a more flexible deployment model for Pascal-based software without requiring changes to existing workflows.
- Publisher
- Hacker News
- Reliability
- high
- Published
- 10/19/2026, 10:00:38 AM
- Retrieved
- 10/19/2026, 10:00:38 AM
- Relevance
- 80%
- Confidence
- 85%

