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 monitors, keyboards and dev 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 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.

At a glance
announcementWhen: Announced in the supplied report; publi…
The developmentA developer has announced a downloadable implementation of dynamic package support for Free Pascal and Lazarus, including compiler, runtime-library and IDE changes.

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.

Amazon

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

Amazon

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.

Amazon

Free Pascal compiler extensions

As an affiliate, we earn on qualifying purchases.

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.

Amazon

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

Fall Picks

As an affiliate, we earn on qualifying purchases.

You May Also Like

A 2027 Roundup Of 6 Best AI Writing Assistant Software Options

A 2027 roundup compares six AI writing assistants by their stated workflows, while noting where quality, privacy and compatibility remain unverified.

Codex Desktop Continuously Generates Crashpad Pending Dumps

A GitHub user says Codex Desktop created about 4.04 million Crashpad files totaling 323GB, leaving 1.4GB free on a 926GB Mac.

10 Best Capture Cards For Streamers And Video Recording In 2027

A 2027 roundup compares 10 capture cards by stated capture resolution, pass-through, connection type and intended use. Check product specs before buying.

Book Review: Is Parallel Programming Hard, And, If So, What Can You Do About It?

Search and coverage interest is spiking in Paul McKenney’s free book ‘Is Parallel Programming Hard?’ — what it covers and why the trigger is unconfirmed.