Free Pascal Compiler (aka FPK Pascal), aşağıdaki işletim sistemlerini destekleyen açık kaynaklı bir Pascal derleyicisidir: Linux, FreeBSD, NetBSD, MacOSX / Darwin, MacOS klasik, DOS, Win32, OS / 2, BeOS, SunOS (Solaris), QNX ve Klasik Amiga.
Serbest Pascal Derleyicisi farklı işlemciler için kullanılabilir Intel x86, Amd64 / x86 64, PowerPC, PowerPC64, Sparc ve ARM.
Free Pascal Compiler çok temiz bir dile sahiptir, çoğu programlama dilinin aksine Makefiles kullanmaz, büyük bir F ile Hızlıdır, her birimin kendi tanımlayıcıları vardır ve bir IDE (Entegre Geliştirme Ortamı) içerir.
Ayrıca, yazılım, montajcılar, nesne yönelimli programlama, smartlink, dağıtım bağımsızlığı ile mükemmel entegrasyon sağlar ve mevcut kod ile uyumludur.
Yeni olan nedir? sürüm:
- Bu sürüm 3.0'a yönelik bir nokta güncellemesidir ve bazıları yüksek önceliğe sahip olan hata düzeltmelerini ve güncelleme paketlerini içerir.
Sürümde yeni: :
- Dil değişiklikleri:
- Anonim devralınan çağrılar:
- Eski davranış: Anonim bir devralınan çağrı, geçerli yöntemin parametreleriyle uyumlu olan bağımsız değişkenleri kabul eden bir üst sınıftaki herhangi bir yönteme başvurabilir.
- Yeni davranış: Anonim bir devralınan çağrının, her zaman geçerli olanın geçersiz kılındığı bir üst sınıftaki yönteme başvurması garanti edilir.
- Örnek: Bkz. http://svn.freepascal.org/svn/fpc/trunk/tests/tbs/tb0577.pp. Önceki FPC sürümlerinde, tc3.test dosyasındaki devralınan çağrı tc2.test (b: bayt; l: longint = 1234); Şimdi tc.test'e yönlendiriyor.
- Nedeni: FPC dokümantasyonuna uygun, Delphi uyumluluğu.
- Çözüm: Derleyicinin, belirtilen parametrelere dayanarak hangi yöntemi çağıracağına karar vermesini isterseniz, devralınan test (b) gibi tamamen belirtilmiş bir devralınan arama ifadesi kullanın.
- Arabirimde aşırı yük değiştirici bulunmalıdır:
- Eski davranış: Bir işlev / yordamı / yöntemi yalnızca uygulamada aşırı yük olarak bildirmek mümkündü.
- Yeni davranış: Bir aşırı yükleme yönergesi kullanılıyorsa, arabirimde de görünmelidir.
- Sebep: Eski mekanizma problemleri bulmakta zorlanabilir (uygulamanın önceden ayrıştırılıp edilmediğine bağlı olarak, derleyici rutinini aşırı yüklenme / aşırı yüklenme gibi ele alır), istenmeyen birim yeniden derlemelerine neden olabilir. crc değişikliklerini ve Delphi uyumluluğunu ara.
- Çözüm: Aşırı yük değiştiricinin hem arayüzde hem de uygulamada kullanılmakta olduğundan emin olun.
- Birim değişir:
- Birkaç TDataset yöntemi imzayı değiştirir (TRecordBuffer):
- Eski davranış: Birkaç (sanal) TDataset metodu, genellikle "tampon" olarak adlandırılan "pchar" tipi parametrelere sahiptir.
- Yeni davranış: pchar türü TRecordBuffer olarak değiştirildi. Şu anda bu tür hala p (ansi) char için bir takma addır, ancak zaman içinde D2009 + uyumlu olan 2.7.1 / 2.8.0 dalı için pbyte olarak değiştirilecektir.
- Sebep: Delphi 2009+ için hazırlık ve uyumluluk ve genel yazmanın geliştirilmesi. Delphi 2009+ (ve gelecekteki tamamen uyumlu FPC modları) pchar artık byte için işaretçi değildir. Bu değişiklik 2.6 (.2), ancak TRecordBuffer = pchar ile birleştirilecek.
- Çözüm: Arabellek parametreleri için TRecordBuffer'ı kullanmak için ilgili sanal yöntemleri değiştirin. Eski Delphis ve FPC'lerin çalışmaya devam etmesi için TRecordBuffer = pansichar'ı tanımlayın. Tamponun yazıldığı yerlerde, pchar'ı ve TRecordbuffer sembolünü kullanmayın.
- DLLParam, Longint'ten PtrInt olarak değiştirildi:
- Eski davranış: DLLParam, Win64'te bile Longint türündeydi.
- Yeni davranış: DLLParam artık 64 Bit sistemlerinde PtrInt türünde.
- Nedeni: Veri kaybını önleme, Windows başlıklarındaki bildirimleri eşleştirin.
- Çözüm: Longint yerine bir PtrInt parametresi almak için dll hook olarak kullanılan prosedürlerin bildirimini değiştirin.
- Unix ve Unixutils birimindeki bazı semboller kullanımdan kaldırıldı:
- Eski davranış: unixutils.getfs (birkaç değişken), unix.fpsystem (yalnızca kısa sürüm), Unix.MS_ sabitleri ve unix.tpipe için onaylanmamış uyarı yok. unix.statfs
- Yeni davranış: Derleyici bu semboller için onaylanmamış bir uyarı yayınlayacaktır. Gelecekteki sürümlerde bunlar kaldırılabilir.
- Sebep: getfs, uzun bir süre önce tamamen çapraz platform işlevi sysutils.getfilehandle ile değiştirildi. fpsystem (shortstring), 1.0.x-> 2.0.x geçişinin bir uzantısıydı (ansistring sürümü destekleniyor), MS_ sabitleri, FPC tarafından desteklenmeyen bir msync çağrısı içindir ve bu nedenle kullanılmamış ve kontrol edilmemiştir. on yıldan fazla ve çekirdeğin 1.x katına çıkabileceğinden tpipe, 2.0 serisinde (fp) borunun taşındığı birim olan baseunix.TFildes'in 1.0.x takma adıydı. Unix.statfs, diğerlerinin 2.4.0 olarak yeniden adlandırılması durumunda, fp * önekine doğru şekilde yeniden adlandırılamayan aşırı yüklenmiş bir sürümdür.
- Çözüm: Yeni varyantları kullanın (sysutils.getfilehandle, fpsystem (ansistring), baseunix.tfildes). MS_ sabiti durumunda, bunları kullanan kodu aldığınız yerden sabitler için geçerli değerler edinin.
- TStrings.DelimitedText davranışı değişti (birim Sınıflar):
- Eski davranış: StrictDelim doğruysa, TStrings.DelimitedText, en azından ön ve arkada boşluklar (ve muhtemelen diğer düşük ASCII karakterleri) durumunda SDF biçim belirtimini (Delphi yardımında tanımlanan) tam olarak izlemedi. alanların yanı sıra tırnak ve satır sonları. Daha da kötüsü, StrictDelimiter doğruysa ve yukarıda belirtilen durumlarda, bir TString .DelimitedText dosyasının kaydedilmesi ve bu metnin başka bir TString'e yüklenmesi, ikisi arasındaki farklara yol açar. Not: StrictDelimiter varsayılan olarak yanlıştır.
- Yeni davranış: FPC, Delphi davranışını izler.
- Sebep: Tutarlılık (DelimitedText'de yazma ve okuma aynı dizelerle sonuçlanmalıdır), Delphi uyumluluğu (SDF belirtimine göre).
- Çözüm: DelimitedText yazan veya yazan mevcut kodunuzu gözden geçirin; gerekirse verileri dönüştürün veya dönüştürücü kodunu yazın. Ayrıntılı bir test için testler webtbs tw19610.pp adresine bakın.
- fcl-image TTiffIDF, TTiffIFD olarak yeniden adlandırıldı:
- Eski davranış: & quot; resim dosyası dizini için tiff yardımcı sınıfı & quot; yanlış yazılmış TiffIDF (tiffcmn birimi)
- Yeni davranış: Şimdi TTiffIFD olarak yeniden adlandırıldı
- Sebep: Tutarlılık, düşük kullanım
- Çözüm: Tanımlayıcıyı uygun şekilde yeniden adlandırın.
- birim libc, kullanımdan kaldırılmış bir uyarı yayınlıyor:
- Eski davranış: Yıllarca kullanımdan kaldırılmış olsa da, libc birimi kullanımdan kaldırılmış bir uyarı vermedi
- Yeni davranış: Birim libc kullanıldığında, güncellemenizi isteyen bir onaylanmayan uyarı görüntülenir.
- Sebep: birim libc, sınırlı taşınabilirliğe sahip bir Kylix eski birimidir
- Çözüm: Libc biriminde açıklandığı gibi uygun FPC birimleri kullanın
- Diğer:
- UPX desteği kaldırıldı:
- Eski davranış: FPC Makefiles'te bazı UPX (yürütülebilir paketleyici) desteği vardı ve DOS ve Windows FPC sürümleri bir UPX ikili içeriyordu.
- Yeni davranış: Tümü kaldırıldı.
- Nedeni: Sürüm ikili dosyaları bir süredir UPX'lenmemiş. FPC yürütücülerinin boyutu, bu günlerde toplam yükleme boyutuna göre genellikle önemsizdir ve UPX kullanımı zaman zaman bazı küçük rahatsızlıklara neden olur (virüs tarayıcılarından gelen yanlış pozitifler, işletim sistemi tarafından kötü çağrı davranışı, belirli yürütülebilir bölümlerle uyumsuzluklar, ...)
- Çözüm: UPX'i kendi ana sayfasından indirin ve yükleyin ve genel olarak ihtiyacı yeniden değerlendirin.
Sürüm 2.4.4’de yeni: :
- Bu sürüm, Haziran 2010'dan Mart 2011'e kadar çoğu kütüphane düzeltmesini içerir.
- Çoğu 64 bit ile ilgili bazı derleyici düzeltmeleri de vardır.
2.4.0 sürümünde yeni :
- Delphi, tüm platformlar için kaynaklar gibi
- Cüce hata ayıklama bilgisi geliştirmeleri,
- Birkaç yeni hedef
- 64 bit Mac OS X (x86_64 / ppc64)
- iPhone (Mac OS X / Kol)
- Haiku (BeOS ailesinden)
- Geliştirilmiş ARM EABI desteği
- Tüm program optimizasyonu
- Pek çok derleyici hata düzeltmesi ve kütüphane güncellemelerinin yarısı (2.2.4'ten beri)
Sürüm 2.2.4’de yeni :
- Tümü:
- Deneysel paketler yükleme aracı
- Paketler:
- Fcl görüntüsünde TIFF okuma / yazma desteği eklendi
- CHM desteğindeki iyileştirmeler ve düzeltmeler
- gtk2 paketinin 2.13.4'ün üzerindeki gtk sürümleriyle sabitlenmesi
- IDE:
- CHM yardım dosyaları için destek eklendi
Yorum Bulunamadı