Zamknięta beta 0.1 · Windows x64

Object Pascal kompilowany do .NET

DoPascal to kompilator Object Pascala dla .NET. Kompiluje istniejący kod jako Pascal, bez przepisywania go na idiomy .NET.

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.
Wynik
> hello.exe
DoPascal: Object Pascal on .NET
Sum of squares 1..10 = 385
HELLO world BEEF
Skompilowano 7 października 2026 r. przedpremierową wersją DoPascal 0.1. Wynik programu pokazany bez zmian.

Dlaczego DoPascal

Istniejący kod w Pascalu na .NET, kompilowany jako Pascal

Semantyka Pascala bez zmian

Obiekty tworzy się i zwalnia tak jak w Pascalu: Free zwalnia obiekt od razu i deterministycznie. Łańcuchy znaków i rekordy działają tak jak w Pascalu.

Oryginalne RTL Free Pascala

System, SysUtils, Classes, Math i Generics.Collections pochodzą z oryginalnych źródeł RTL Free Pascala.

Najpierw zgodność

Celem jest, żeby istniejący kod kompilował się bez zmian, zanim pojawi się nowa składnia.

Dowód

Kod z 1996 i 2002 roku, skompilowany bez zmian

Moduł napisany w 1996 roku (objects.pp) i program użytkownika z 2002 roku, pochodzący ze zgłoszenia błędu w projekcie Free Pascal, kompilują się i działają na .NET, a żaden z tych plików nie został zmieniony.

  1. 1996objects.pp, moduł
  2. 2002Program użytkownika ze zgłoszenia błędu w projekcie Free Pascal
  3. DziśOba kompilują się i działają na .NET, bez zmian

Stan prac

Co działa dziś, a czego jeszcze nie ma

DoPascal jest w zamkniętej becie, przed wydaniem wersji 0.1. Oto, co beta obejmuje dziś, a czego nie będzie w 0.1.

Obsługiwane dziś

Tryby
delphiobjfpcfpctp
RTL
SystemSysUtilsClassesMathGenerics.Collections
Platforma
Windows x64

Wynikiem jest program .NET; w systemie Windows uruchamiasz hello.exe.

Obsługa nie jest jeszcze pełna – liczby poniżej pokazują, ile już przechodzi.

Nie ma w 0.1

  • VCL, FMX, LCL
  • Linux, macOS, ARM
  • Wstawki asemblerowe (dziś czytelny błąd kompilacji)
  • Moduły Dos i Crt
  • Atrybuty (custom attributes), inline var

Wszystkie te pozycje czekają w kolejce na wersje po 0.1.

NigdyMem[], Port[], interrupt i inline(...) z Turbo Pascala nie mają sensu na .NET. far i {$F+} są akceptowane tylko składniowo.

Liczby z datami

  • 88%

    zaimportowanych testów Free Pascala, które mają działać, przechodzi: 1785 z 2039.

    Przebieg z 5 października 2026 r. Zestaw testów Free Pascala liczy prawie 7000 programów; zaimportowano dotąd 43% z nich, każdy plik bez zmian.

  • 3634 / 0

    testy przechodzą, 0 nie przechodzi – pełny zestaw własnych testów DoPascala.

    Nocny przebieg z 18 września 2026 r.

  • 249 007

    linii oryginalnego RTL Free Pascala w pakietach RTL DoPascala.

    264 pliki, bez zmian.

Plany

Co dalej

Bez dat, liczy się kolejność: najpierw zgodność, potem nowa składnia.

  1. 01

    Wersja 0.1

    Windows x64 i RTL z typami generycznymi – tak jak dziś w zamkniętej becie. Do wersji 0.1 brakuje jeszcze wdrożenia w postaci jednego pliku; potem publiczne wydanie.

  2. 02

    Szybsza kompilacja

    Mechanizm na wzór DCU, który wczytuje tylko to, czego program używa.

  3. 03

    mORMot 2 jako warunek wydania

    Trwają próbne kompilacje; każda poprawka dostaje własny test.

  4. 04

    Linux x64

    Backend jest przygotowany; testy i natywny program uruchamiający (hello.exe) działają dziś tylko na Windows x64.

  5. 05

    Korzystanie z typów .NET w Pascalu tylko projekt

    Zaprojektowane, ale jeszcze niezaimplementowane. Projekt języka v0.1: typy abi i ref, uses platform oraz jawna granica między światem Pascala a światem .NET.

Zamknięta beta

Jak dostać dostęp

Trzy kroki. Zamknięta beta nic nie kosztuje i nic nie jest na sprzedaż.

  1. Załóż konto

    Adres e-mail i hasło.

  2. Potwierdź adres e-mail

    Otwórz link z wiadomości, którą wyślemy, i wpisz swoje hasło.

  3. Poczekaj na dostęp

    Autor przyznaje dostęp do bety i daje znać e-mailem; pliki pobierzesz potem ze strony bety.

Newsletter jest opcjonalny: osobne pole wyboru przy rejestracji, domyślnie niezaznaczone.

FAQ

Pytania i odpowiedzi

Na jakich platformach działa DoPascal?

Na Windows x64; wynikiem jest program .NET. Linux x64 jest w planach; macOS i ARM nie wchodzą w zakres 0.1.

Czy obsługuje VCL, FMX albo LCL?

Nie. Biblioteki GUI nie wchodzą w zakres 0.1; czekają w kolejce na kolejne wersje.

Czy mogę używać bibliotek .NET w kodzie Pascala?

Jeszcze nie. Korzystanie z typów .NET w Pascalu jest zaprojektowane (projekt języka v0.1), ale jeszcze niezaimplementowane.

Ile kosztuje zamknięta beta?

Nic nie kosztuje i nic nie jest na sprzedaż.

Czy DoPascal jest powiązany z Embarcadero albo z projektem Free Pascal?

Nie. DoPascal nie jest powiązany z Embarcadero Technologies ani z projektem Free Pascal i nie ma ich poparcia. Jego pakiety RTL powstają z oryginalnych źródeł RTL Free Pascala.

Co dzieje się z moimi danymi?

Przechowujemy to, czego potrzebuje konto, m.in. adres e-mail, skrót hasła, język oraz stan newslettera i bety. Na stronie nie ma analityki, reklam ani śledzących plików cookie, ale dostawca poczty odnotowuje otwarcia naszych e-maili i kliknięcia w zawarte w nich linki. Dane możesz w każdej chwili pobrać, a konto usunąć. Szczegóły znajdziesz w polityce prywatności.