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.
Zamknięta beta 0.1 · Windows x64
DoPascal to kompilator Object Pascala dla .NET. Kompiluje istniejący kod jako Pascal, bez przepisywania go na idiomy .NET.
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.
> hello.exe
DoPascal: Object Pascal on .NET
Sum of squares 1..10 = 385
HELLO world BEEF
Dlaczego DoPascal
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.
System, SysUtils, Classes, Math i Generics.Collections pochodzą z oryginalnych źródeł RTL Free Pascala.
Celem jest, żeby istniejący kod kompilował się bez zmian, zanim pojawi się nowa składnia.
Dowód
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.
objects.pp, modułStan prac
DoPascal jest w zamkniętej becie, przed wydaniem wersji 0.1. Oto, co beta obejmuje dziś, a czego nie będzie w 0.1.
Wynikiem jest program .NET; w systemie Windows uruchamiasz hello.exe.
Obsługa nie jest jeszcze pełna – liczby poniżej pokazują, ile już przechodzi.
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.
88%
zaimportowanych testów Free Pascala, które mają działać, przechodzi: 1785 z 2039.
3634 / 0
testy przechodzą, 0 nie przechodzi – pełny zestaw własnych testów DoPascala.
249 007
linii oryginalnego RTL Free Pascala w pakietach RTL DoPascala.
Plany
Bez dat, liczy się kolejność: najpierw zgodność, potem nowa składnia.
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.
Mechanizm na wzór DCU, który wczytuje tylko to, czego program używa.
Trwają próbne kompilacje; każda poprawka dostaje własny test.
Backend jest przygotowany; testy i natywny program uruchamiający (hello.exe) działają dziś tylko na Windows x64.
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
Trzy kroki. Zamknięta beta nic nie kosztuje i nic nie jest na sprzedaż.
Adres e-mail i hasło.
Otwórz link z wiadomości, którą wyślemy, i wpisz swoje hasło.
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
Na Windows x64; wynikiem jest program .NET. Linux x64 jest w planach; macOS i ARM nie wchodzą w zakres 0.1.
Nie. Biblioteki GUI nie wchodzą w zakres 0.1; czekają w kolejce na kolejne wersje.
Jeszcze nie. Korzystanie z typów .NET w Pascalu jest zaprojektowane (projekt języka v0.1), ale jeszcze niezaimplementowane.
Nic nie kosztuje i nic nie jest na sprzedaż.
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.
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.