Free Pascal Compiler Now Supports Dynamic Packages
AIThis post was created with the assistance of artificial intelligence (AI).

TL;DR

Buying for a business?Offer from Amazon

Get business pricing on networking and server gear

  • Business-only prices and quantity discounts
  • Tax-exempt purchasing
  • Multiple users, one account, clear invoices
As an affiliate, we earn on qualifying purchases.

A release described by its developer as the first full dynamic-package implementation for Free Pascal and Lazarus is available from the GetLazarus website. It supports installable IDE components and extensions, as well as runtime plugins built as shared libraries, but packages have naming constraints and must retain compiler-generated metadata.

Free Pascal and the Lazarus IDE now have a released implementation of dynamic packages, according to an announcement on the GetLazarus website. The feature lets developers install components and IDE extensions without rebuilding the entire IDE, and use package libraries to load native Pascal classes and types into applications as plugins.

The implementation spans the compiler, runtime library (RTL) and Lazarus IDE, rather than being a change to the compiler alone. The developer says the compiler generates metadata describing package contents, while new RTL facilities can inspect that metadata and load, search, enumerate and unload packages at runtime. A new RTL unit, DynPkgTypes.pas, is provided for reading package information, including type details.

Dynamic packages use standard shared-library files for Linux, Windows and macOS, according to the announcement. The runtime additions are intended to manage dynamic types, such as strings and dynamic arrays, and thread variables across package boundaries. Developers can also choose to distribute an application as a single executable; packaging code separately is an alternative for applications that need replaceable modules or a plugin system.

Lazarus changes include automatic rebuilding of registered packages after source changes, a progress window for longer operations, and a persistent Packages window showing recently opened packages. The announcement says adding or removing packages can update the IDE without a full rebuild, and installing multiple packages is supported. Package settings can also limit availability to a particular platform or widgetset.

At a glance
announcementWhen: Announced on the GetLazarus website; th…
The developmentA developer has released dynamic-package support for the Free Pascal compiler and Lazarus IDE, including compiler, runtime library and IDE changes.

Faster Lazarus Extension Development

For Lazarus users, the main practical change is that package updates need not require rebuilding the whole IDE. According to the developer, changes to an installed package can refresh its controls, components or extensions within a second or two after compilation. That could shorten the edit-and-test cycle for people building IDE tools, though the announcement does not provide independent measurements or comparisons.

For application developers, loading code as a package offers an option between shipping one executable and organizing parts of a program as separately replaceable plugins. Access to Pascal classes and types across package boundaries is a particular feature of the implementation. Its usefulness will depend on how the compiler and runtime handle real projects, platform differences and package compatibility; those matters are not documented in detail in the supplied announcement.

Amazon

Free Pascal dynamic package development tools

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Compiler, Runtime and IDE Changes

The announcement presents this as the first release of full dynamic-package support for Free Pascal and Lazarus. It says the work required changes to all three parts of the toolchain: compiler-generated package metadata, runtime support for inspecting and managing packages, and IDE behavior for installing and updating them. The implementation is offered for download through the GetLazarus website, but the source material does not identify a specific Free Pascal or Lazarus release number.

These packages are not simply ordinary shared libraries with no additional requirements. The compiler adds a map of package contents, and the announcement warns that stripping a dynamic package removes metadata needed for it to work. It also describes a unit-naming restriction: unit names must be unique across packages. To avoid a package-name collision with its generated source unit, the default system appends “Package” to that source filename; for example, ElectroToolsPackage.pas for a package named ElectroTools.lpk.

“Dynamic packages allow users to create and install components, controls, and Lazarus extensions in seconds without rebuilding the entire IDE.”

— The developer announcing the release on GetLazarus

Amazon

Lazarus IDE plugin development kit

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Release Details and Compatibility

The supplied announcement does not specify a version number, release date, license terms or minimum compatible compiler and IDE versions. It also gives no independent test results, benchmarks or adoption data, so claims about the speed of package updates should be understood as the developer’s description, not a verified general performance result. Although Linux, Windows and macOS are named, the source does not detail platform-specific limitations or compatibility across operating-system and widgetset combinations.

The announcement identifies restrictions but does not explain how existing projects would be affected during migration, how package interfaces are versioned, or what happens when a running application attempts to replace a package that is in use. It says packages can be replaced while a program runs, but does not describe the conditions or safeguards for that operation. The source also ends while describing a form-or-frame conversion feature, leaving its full behavior and limitations unclear.

Amazon

shared library development for Pascal

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Checking the Release in Practice

Developers interested in the feature can obtain the implementation through the GetLazarus download page cited in the announcement and check its documentation for supported versions and installation steps. The next useful evidence will be release notes, compatibility guidance and experience from users applying the changes to actual Lazarus projects and applications.

No further release date, rollout schedule or independent evaluation is provided in the source material. Until those details are available, teams considering adoption will need to verify platform support, package naming and metadata requirements, and whether their distribution and update process fits the new package model.

Amazon

Pascal IDE extension tools

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Key Questions

What does the Free Pascal dynamic-package release add?

It adds compiler, RTL and Lazarus IDE support for packages that can be installed as IDE extensions or loaded by applications as runtime plugins, according to the developer’s announcement.

Does using dynamic packages require an application to use plugins?

No. The announcement says developers can still bundle an application into a single executable. Splitting code into packages is an alternative for applications that need separately managed modules.

Which platforms are named as supported?

The announcement says dynamic packages are implemented as shared libraries for Linux, Windows and macOS. It does not provide detailed platform-specific compatibility information.

What restrictions should developers know about?

Unit names must be unique across packages, and a unit cannot share a name with its package. Packages also contain compiler-generated metadata; the developer warns that stripping removes metadata required for dynamic-package operation.

Is the release tied to a specific Free Pascal version?

The source announcement does not state a version number or minimum compatible release. Developers should check the download and accompanying documentation for that information.

Source: hn

FALL

Fall Picks

As an affiliate, we earn on qualifying purchases.

You May Also Like

Anthropic’s Claude Designs Leaner Quantum Circuits, Reducing Resources Needed For Key Calculations

An Anthropic-Harvard preprint reports leaner circuits across eight tasks, including one decoder using about 12 times fewer Toffoli gates.

The GNU Emacs Architecture: Unlocking The Core [Pdf]

A detailed PDF publication outlines the core architecture of GNU Emacs, offering insights into its modular design and extensibility.

KOReader

KOReader, an open-source e-reader software, has released a new version improving device support and usability, confirmed by developers.

Gemini 3.8 Live With Live Avatar Gives Google’s AI A Face

Online interest is surging in a rumored ‘Gemini 3.8 Live with Live Avatar’ feature said to give Google’s AI a face. No Google announcement is confirmed.