Closed beta 0.1 · Windows x64

Object Pascal, compiled to .NET.

DoPascal is an Object Pascal compiler for .NET. It compiles existing code as Pascal, without rewriting it into .NET idioms.

hello.pas
program hello;

{$IFDEF FPC}{$MODE DELPHI}{$ENDIF}
{$H+}
{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  I: Integer;
  Total: Int64;
begin
  WriteLn('DoPascal: Object Pascal on .NET');
  Total := 0;
  for I := 1 to 10 do
    Inc(Total, I * I);
  WriteLn(Format('Sum of squares 1..10 = %d', [Total]));
  WriteLn(UpperCase('hello') + ' ' + LowerCase('WORLD') + ' ' + IntToHex(48879, 4));
end.
Output
> hello.exe
DoPascal: Object Pascal on .NET
Sum of squares 1..10 = 385
HELLO world BEEF
Compiled with the DoPascal 0.1 preview on 7 October 2026. The output is shown unedited.

Why DoPascal

Existing Pascal code on .NET, compiled as Pascal

Pascal semantics stay

Objects are created and freed the Pascal way: Free frees immediately and deterministically. Strings and records are Pascal strings and records.

The original Free Pascal RTL

System, SysUtils, Classes, Math and Generics.Collections come from the original Free Pascal RTL sources.

Compatibility first

The goal is that existing code compiles as it is, before any new syntax is added.

Proof

Code from 1996 and 2002, compiled unchanged

A unit written in 1996 (objects.pp) and a user program from a 2002 Free Pascal bug report compile and run on .NET without a single change to either file.

  1. 1996objects.pp, a unit
  2. 2002A user program from a Free Pascal bug report
  3. TodayBoth compile and run on .NET, unchanged

Status

What works today, and what does not

DoPascal is in closed beta, ahead of the 0.1 release. Here is what the beta covers today, and what 0.1 will not include.

Supported today

Modes
delphiobjfpcfpctp
RTL
SystemSysUtilsClassesMathGenerics.Collections
Platform
Windows x64

The output is a .NET program; on Windows you run hello.exe.

Support is not complete yet: the numbers below show how much already passes.

Not in 0.1

  • VCL, FMX, LCL
  • Linux, macOS, ARM
  • Inline assembler (today a clear compiler error)
  • Dos and Crt units
  • Custom attributes, inline var

All of these are queued for after 0.1.

NeverMem[], Port[], interrupt and Turbo Pascal inline(...) have no meaning on .NET. far and {$F+} are accepted only syntactically.

Numbers, with their dates

  • 88%

    pass rate on the imported Free Pascal tests that are expected to work: 1,785 of 2,039.

    Run of 5 October 2026. The Free Pascal test suite has almost 7,000 programs; 43% of them are imported so far, each file unchanged.

  • 3,634 / 0

    tests pass and 0 fail in DoPascal's own full test suite.

    Nightly run of 18 September 2026.

  • 249,007

    lines of the original Free Pascal RTL in DoPascal's RTL packages.

    264 files, unchanged.

Roadmap

What comes next

No dates, only the order: compatibility first, new syntax later.

  1. 01

    Version 0.1

    Windows x64 and the RTL with generics, as in the closed beta today. Still to come for 0.1: single-file deployment, then a public release.

  2. 02

    Faster builds

    A DCU-like mechanism that loads only what a program uses.

  3. 03

    mORMot 2 as the release gate

    Trial compilations are in progress; every fix comes with a test.

  4. 04

    Linux x64

    The backend is prepared; the tests and the native launcher (hello.exe) run only on Windows x64 today.

  5. 05

    Using .NET types from Pascal design only

    Designed, not implemented. Language design v0.1: abi and ref types, uses platform, and an explicit boundary between the Pascal and .NET worlds.

Closed beta

How to get access

Three steps. The closed beta costs nothing, and nothing is for sale.

  1. Create an account

    Your email address and a password.

  2. Confirm your email

    Open the link in the message we send you and enter your password.

  3. Wait for access

    The author grants beta access and lets you know by email; the downloads are then on the beta page.

The newsletter is optional: a separate checkbox when you sign up, off by default.

FAQ

Questions and answers

Which platforms are supported?

Windows x64; the output is a .NET program. Linux x64 is on the roadmap; macOS and ARM are not part of 0.1.

Does it support VCL, FMX or LCL?

No. GUI frameworks are not part of 0.1; they are queued for later versions.

Can I use .NET libraries from Pascal code?

Not yet. Using .NET types from Pascal is designed (language design v0.1) but not implemented.

What does the closed beta cost?

It costs nothing, and nothing is for sale.

Is DoPascal affiliated with Embarcadero or the Free Pascal project?

No. DoPascal is not affiliated with or endorsed by Embarcadero Technologies or the Free Pascal project. Its RTL packages are built from the original Free Pascal RTL sources.

What happens to my data?

We store what the account needs, such as your email address, a password hash, your language and your newsletter and beta status. The site has no analytics, no advertising and no tracking cookies, but our email provider records when our emails are opened and when their links are clicked. You can download your data or delete your account at any time. Details are in the privacy policy.