TL;DR
Get business pricing on monitors, keyboards and dev gear
- Business-only prices and quantity discounts
- Tax-exempt purchasing
- Multiple users, one account, clear invoices
A release announced on getlazarus.org adds dynamic package support to the Free Pascal Compiler and Lazarus IDE. Packages can provide IDE components and extensions or act as runtime plugins, but they require compiler-generated metadata and have restrictions, including unique unit names across packages.
The Free Pascal Compiler and Lazarus IDE now have a downloadable implementation of dynamic package support, according to an announcement on getlazarus.org. The feature is intended to let developers install or update IDE components without rebuilding the whole IDE and to build applications with loadable Pascal plugins.
The announcement describes dynamic packages as standard shared-library files for Linux, Windows and macOS, with additional compiler-generated metadata. That metadata allows new runtime-library units to inspect package contents and retrieve type information. The runtime changes are also intended to manage thread variables and dynamic types, including strings and dynamic arrays, across package boundaries.
Applications can still be deployed as a single executable, the report says. Developers may instead split functionality among dynamic packages that can be replaced while an application is running. The RTL provides functions for loading, enumerating, searching and unloading packages at runtime, according to the announcement.
Changes to Lazarus include package management and rebuilding workflows. The IDE can detect edits to registered package source and rebuild the package before starting; users can also add or remove multiple packages at once. A package window keeps a list of recently opened packages between sessions, while platform or widgetset requirements can restrict when a package appears or is used. The report also describes a feature that converts a form or frame into an installable control for the component palette.
Faster Lazarus Package Updates
The main practical change is that some package updates no longer require rebuilding the entire IDE. For Lazarus users developing controls, components or extensions, this may shorten the edit-and-test cycle. The announcement says that compiling an installed package can update associated IDE elements within a second or two; that timing is the developer’s description, not an independently verified benchmark.
For application developers, packages provide another way to organize software and distribute plugins written in Pascal. The ability to load or replace modules while a program runs could support extensible applications, while keeping a single-executable deployment remains an option. The reach of the change will depend on compatibility, tooling and adoption, details that the announcement does not establish.
Pascal IDE components development tools
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Compiler, Runtime and IDE Changes
This is presented as a full dynamic-package implementation for both Free Pascal and Lazarus, rather than only a new IDE window or package format. The author says the work required changes to the compiler, runtime library and IDE, along with additional IDE extensions. The source material does not identify a specific official Free Pascal or Lazarus release number, nor does it say that the feature has been merged into their standard distribution.
Dynamic packages carry a map of their contents, making them larger than ordinary shared libraries, the report says. Stripping a package removes metadata needed for its dynamic-package functions. The author also says the default package system now appends “Package” to the generated source filename to avoid one naming conflict: for example, a package named ElectroTools produces ElectroToolsPackage.pas.
““Dynamic packages allow users to create and install components, controls, and Lazarus extensions in seconds without rebuilding the entire IDE.””
— The developer announcing the implementation on getlazarus.org
dynamic plugin support for Lazarus
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Release and Compatibility Details
The supplied announcement does not give a release date, version number, download size or installation instructions, beyond saying that a complete implementation is available from the website. It is also unclear whether this is an upstream release, a separate build, or work awaiting inclusion in official Free Pascal and Lazarus distributions. No independent testing or compatibility results are provided.
The report identifies two restrictions. Unit names must be unique across packages, so packages with identically named units conflict. It also says a unit in a package cannot share the package’s name. Package files are larger than ordinary shared libraries, and stripping them removes required metadata. The source does not quantify the size increase or specify how packages and applications behave across all compiler and operating-system versions.
As an affiliate, we earn on qualifying purchases.
Check Builds and Platform Support
Developers interested in the feature will need to consult the project download and documentation for the supported compiler and Lazarus versions, setup steps and platform-specific requirements. The announcement says packages can be limited to particular platforms or widgetsets, but it does not provide a complete compatibility matrix.
Further evidence of broader availability would include a versioned release, documentation, example projects and confirmation of integration into official project distributions. Until those details are available, the announcement establishes that an implementation has been made available by its author, but not how widely it has been tested or adopted.
shared library development for Pascal
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Key Questions
What is dynamic package support in Free Pascal?
It lets developers build packages as shared libraries with compiler-generated metadata, then inspect and load them at runtime. The announced system is intended for Lazarus IDE components as well as application plugins.
Does this mean every application must use plugins?
No. The announcement says applications can still be bundled as a single executable. Splitting an application into packages is an alternative deployment approach.
What limitations are described?
Unit names must be unique across packages, and a unit cannot have the same name as its package. Dynamic packages are also larger than ordinary shared libraries, and stripping them removes metadata needed for package functionality.
Is this part of an official Free Pascal release?
The supplied report says an implementation is available for download, but it does not identify an official release number or confirm that the work has been incorporated into standard Free Pascal or Lazarus distributions.
Source: hn
Fall Picks
fall essentials
As an affiliate, we earn on qualifying purchases.
