Darmowy kompilator Pascala (znany także jako FPK Pascal) to kompilator Open Pascal obsługujący następujące systemy operacyjne: Linux, FreeBSD, NetBSD, MacOSX / Darwin, MacOS classic, DOS, Win32, OS / 2, BeOS, SunOS (Solaris), QNX i Classic Amiga.
Darmowy kompilator Pascala jest dostępny dla różnych procesorów Intel x86, Amd64 / x86 64, PowerPC, PowerPC64, Sparc i ARM.
Darmowy kompilator Pascal ma bardzo czysty język, nie używa plików Makefile w przeciwieństwie do większości języków programowania, jest szybki z dużym F, każda jednostka ma swoje własne identyfikatory i zawiera IDE (Integrated Development Environment).
Co więcej, oprogramowanie zapewnia doskonałą integrację z asemblerami, programowanie obiektowe, inteligentne linkowanie, niezależność dystrybucji i jest zgodne z istniejącym kodem.
Co nowego w tym release:
- Ta wersja jest aktualizacją punktu do wersji 3.0 i zawiera poprawki błędów i pakiety aktualizacji, z których niektóre mają wysoki priorytet.
Co nowego w wersji:
- Zmiany językowe:
- Anonimowe połączenia dziedziczone:
- Stare zachowanie: Anonimowe wywołanie dziedziczone może wywołać dowolną metodę w klasie nadrzędnej, która przyjęła argumenty zgodne z parametrami bieżącej metody.
- Nowe zachowanie: Anonimowe wywołanie dziedziczone gwarantuje zawsze wywołanie metody w klasie nadrzędnej, która została nadpisana przez bieżącą.
- Przykład: zobacz http://svn.freepascal.org/svn/fpc/trunk/tests/tbs/tb0577.pp. W poprzednich wersjach FPC dziedziczone wywołanie w tc3.test wywoływałoby do tc2.test (b: bajt; l: longint = 1234); Teraz dzwoni do tc.test.
- Powód: zgodność z dokumentacją FPC, zgodność z Delphi.
- Rozwiązanie: Jeśli chcesz, aby kompilator decydował, która metoda wywoływać w oparciu o określone parametry, użyj w pełni określonego dziedziczonego wyrażenia wywołania, takiego jak test dziedziczony (b).
- Modyfikator przeciążenia musi być obecny w interfejsie:
- Stare zachowanie: Możliwe było zadeklarowanie funkcji / procedury / metody jako przeciążenia tylko w implementacji.
- Nowe zachowanie: jeśli używana jest dyrektywa przeciążania, musi również pojawić się w interfejsie.
- Powód: stary mechanizm może powodować problemy ze znalezieniem problemu (w zależności od tego, czy implementacja została już przeanalizowana, kompilator traktowałby procedurę tak, jakby była zadeklarowana z / bez przeciążenia), może to spowodować niepożądane ponowne rekompilacje jednostek z powodu do zmiany interfejsu crc i kompatybilności Delphi.
- Rozwiązanie: Upewnij się, że modyfikator przeciążenia jest obecny zarówno w interfejsie, jak iw implementacji, jeśli go używasz.
- Zmiany jednostek:
- Kilka metod TDataset zmienia sygnaturę (TRecordBuffer):
- Stare zachowanie: kilka (wirtualnych) metod TDataset ma parametry typu "pchar", które są często nazywane "buforem".
- Nowe zachowanie: Typ pchar został zmieniony na TRecordBuffer. Obecnie ten typ nadal jest aliasem dla p (ansi) char, ale z czasem zostanie zmieniony na pbyte dla gałęzi 2.7.1 / 2.8.0, która jest kompatybilna z D2009 +.
- Powód: Przygotowanie do zgodności Delphi 2009+ i poprawa pisania na klawiaturze. W Delphi 2009+ (iw pełni kompatybilne tryby FPC w przyszłości) pchar nie jest już wskaźnikiem do bajtu. Ta zmiana zostanie scalona z powrotem do wersji 2.6 (.2), ale z TRecordBuffer = pchar.
- Rozwiązanie: Zmień odpowiednie metody wirtualne, aby używać TRecordBuffer do parametrów bufora. Zdefiniuj TRecordBuffer = pansichar, aby starsze wersje Delphis i FPC działały. W miejscach, w których bufor jest typograficzny, nie używaj pchar, ale symbol TRecordbuffer.
- DLLParam zmieniono z Longint na PtrInt:
- Stare zachowanie: DLLParam był typu Longint nawet na Win64.
- Nowe zachowanie: DLLParam jest teraz typu PtrInt, więc także w systemach 64-bitowych.
- Przyczyna: Zapobiegaj utracie danych, dopasuj deklarację w nagłówkach Windows.
- Środek zaradczy: Zmień deklarację procedur używanych jako hook, aby pobrać parametr PtrInt zamiast Longint.
- Niektóre symbole w jednostkach Unix i Unixutils zostały uznane za przestarzałe:
- Stare zachowanie: brak przestarzałego ostrzeżenia dla unixutils.getfs (kilka wariantów), unix.fpsystem (tylko wersja skrócona), stałe UNIX.MS_ i unix.tpipe. unix.statfs
- Nowe zachowanie: kompilator wyśle przestarzałe ostrzeżenie dla tych symboli. W przyszłych wersjach mogą one zostać usunięte.
- Powód: getfs został zastąpiony całkowicie wieloplatformową funkcją sysutils.getfilehandle dawno temu. fpsystem (shortstring) był pozostałością po migracji 1.0.x-> 2.0.x (wersja ansistoring jest nadal obsługiwana), stałe MS_ są przeznaczone dla wywołania msync, które nie jest obsługiwane przez FPC, a zatem nie były używane i odznaczone dla w ciągu dekady i może datować na 1.x kernel, tpipe był aliasem 1.0.x baseunix.TFildes, jednostki, w której rura (fp) została przeniesiona do wejścia podczas serii 2.0. Unix.statfs jest przeciążoną wersją, która nie została poprawnie przemianowana na prefiks fp *, gdy inne zostały zmienione w wersji 2.4.0
- Rozwiązanie: Użyj nowych wariantów (sysutils.getfilehandle, fpsystem (ansistring), baseunix.tfildes). W przypadku stałych MS_ pobierz bieżące wartości stałych z tego samego miejsca, w którym masz kod, który ich używa.
- Zmiana zachowania TStrings.DelimitedText (klasy jednostek):
- Stare zachowanie: jeśli parametr StrictDelim ma wartość true, specyfikacja TStrings.DelimitedText nie była zgodna ze specyfikacją formatu SDF (zdefiniowaną w pomocy programu Delphi), przynajmniej w przypadku spacji (i prawdopodobnie innych znaków ASCII) z przodu i na końcu pól, jak również cytaty i zakończenia linii. Co gorsza, jeśli StrictDelimiter jest prawdziwy, oraz w przypadkach wymienionych powyżej, zapisywanie TString .DelimitedText i ładowanie tego tekstu w innym tekście TString prowadzi do różnic między tymi dwoma. Uwaga: StrictDelimiter jest domyślnie fałszywy.
- Nowe zachowanie: FPC podąża za zachowaniem Delphi.
- Powód: Spójność (wypisywanie i czytanie w DelimitedText powinno dawać takie same ciągi), zgodność Delphi (zgodnie ze specyfikacją SDF).
- Rozwiązanie: Przejrzyj swój istniejący kod, który odczytuje lub pisze DelimitedText; w razie potrzeby przekonwertuj dane lub wpisz kod konwertera. Zobacz test webtbs tw19610.pp, aby uzyskać szczegółowy test.
- fcl-image TTiffIDF zmieniono nazwę na TTiffIFD:
- Stare zachowanie: klasa pomocnicza tiff dla "katalogu plików obrazów" została błędnie wpisana TiffIDF (jednostka tiffcmn)
- Nowe zachowanie: Teraz zmieniono nazwę na TTiffIFD
- Powód: spójność, niskie zużycie
- Rozwiązanie: Zmień nazwę identyfikatora odpowiednio.
- unit libc wydaje przestarzałe ostrzeżenie:
- Stare zachowanie: mimo że jest przestarzałe przez lata, jednostka libc nie wydała przestarzałego ostrzeżenia
- Nowe zachowanie: nieaktualne ostrzeżenie pojawia się, gdy używana jest jednostka libc, zachęcając do aktualizacji.
- Powód: jednostka libc to starsza jednostka Kylix z ograniczoną przenośnością
- Rozwiązanie: Użyj odpowiednich jednostek FPC, jak opisano w jednostce libc
- Inne:
- Obsługa UPX została usunięta:
- Stare zachowanie: W pliku Makefile FPC było trochę resztek UPX (obsługa plików wykonywalnych), a wersje DOS i Windows FPC zawierały binarne UPX.
- Nowe zachowanie: wszystko usunięte.
- Powód: pliki binarne wydania nie były przez jakiś czas UPX. Rozmiar plików wykonywalnych FPC jest obecnie mało znaczący w porównaniu z całkowitym rozmiarem instalacji, a używanie UPX sporadycznie powoduje pewne drobne niedogodności (fałszywe alarmy od skanerów antywirusowych, gorsze zachowanie stronicowania przez system operacyjny, niezgodności z niektórymi fragmentami wykonywalnymi, ...)
- Rozwiązanie: Pobierz i zainstaluj UPX samodzielnie ze swojej strony głównej i ogólnie zrewiduj jego potrzebę.
Co nowego w wersji 2.4.4:
- Ta wersja zawiera większość poprawek bibliotecznych od początku czerwca 2010 do marca 2011 roku.
- Istnieją również pewne poprawki kompilatora, w większości związane z wersją 64-bitową.
Co nowego w wersji 2.4.0:
- Delphi jak zasoby dla wszystkich platform,
- Udoskonalenia informacji debugowania krasnoludków,
- Kilka nowych celów
- 64-bitowy Mac OS X (x86_64 / ppc64)
- iPhone (Mac OS X / Arm)
- Haiku (z rodziny BeOS)
- Udoskonalona obsługa ARAB EABI
- Cała optymalizacja programu
- Wiele poprawek kompilatora i pół roku aktualizacji biblioteki (od wersji 2.2.4)
Co nowego w wersji 2.2.4:
- Wszystkie:
- Pakiety eksperymentalne - narzędzie instalacyjne
- Pakiety:
- Dodano obsługę odczytu / zapisu TIFF w obrazie fcl
- Ulepszenia i poprawki w obsłudze CHM
- Naprawiono powiązanie pakietu gtk2 z wersjami gtk powyżej 2.13.4
- IDE:
- Dodano obsługę plików pomocy CHM
Komentarze nie znaleziono