Geri Dön

Lazarus ve Free Pascal Tam Dinamik Paket Desteği Kazandı
SiTech AI Team3 dk okuma

Lazarus ve Free Pascal Tam Dinamik Paket Desteği Kazandı

Free Pascal Derleyicisi ve Lazarus IDE için tam dinamik paket desteğinin ilk sürümü artık indirilebilir. Kullanıcılar, tüm IDE yeniden derlenmeden bileşenleri ve denetimleri saniyeler içinde kurabilir.

Free Pascal Derleyicisi ve Lazarus IDE için tam dinamik paket desteğinin ilk sürümü artık indirilebilir. Kullanıcılar, tüm IDE yeniden derlenmeden bileşenler, denetimler ve Lazarus uzantıları oluşturup kurabilir. Dinamik paketler, özel programlarda, yerel Pascal sınıflarını ve türlerini dinamik paket kütüphaneleri aracılığıyla kullanıma sunan eklentiler geliştirmek ve dağıtmak için de kullanılabilir.

Paket Biçimi ve Çalışma Zamanı Desteği

Dinamik paketler, Linux, Windows ve macOS için standart paylaşımlı kütüphane dosyaları olarak uygulanır. Derleyici tarafından üretilen ve yeni RTL birimleri kullanılarak incelenebilen ve sorgulanabilen ek üst veriler içerirler. Çalışma zamanı, iş parçacığı değişkenlerini güvenli şekilde koruma ve dizeler ile dinamik diziler gibi dinamik türleri programlar ve paketler arasında ya da birden fazla paket arasında yönetme mekanizmaları içerir.

Bir program dağıtırken geliştiriciler her şeyi tek bir çalıştırılabilir dosyada toplayabilir ya da program çalışırken değiştirilebilen birden fazla dinamik pakete bölebilir ve böylece bir eklenti sistemi sağlayabilir.

Paketteki bir birim, paketin adıyla aynı adı paylaşamaz, bu nedenle paket sistemi artık ona Package sözcüğünü ekler. Örneğin ElectroTools.lpk adlı bir paket, ElectroTools.pas yerine ElectroToolsPackage.pas üretir. Birim adları paketler genelinde de benzersiz olmalıdır. Dinamik paketler, içindeki her şeyin haritasını içerdikleri için sıradan paylaşımlı kütüphanelerden daha büyüktür ve sembol temizleme işlemi, çalışmaları için gerekli üst verileri kaldırır.

Çalışma zamanı kütüphanesi, dinamik paketlerden bilgi okumak için bir TPackageType kaydı ve DynPkgTypes.pas adlı yeni bir birim ekler. RTL, çalışma zamanında paketleri yükleme, listeleme, arama ve kaldırma işlevleri sağlar.

Lazarus IDE Geliştirmeleri

Yeni bir ilerleme penceresi IDE'nin dışında görünebilir. Kayıtlı bir pakete ait kaynak kod değiştirildiğinde, sistem değişiklikleri algılar ve paketi Lazarus başlamadan önce yeniden derler. Pencere, geçerli işlemi ve IDE yeniden başlatılmadan önce kalan tahmini süreyi gösterir. Ayrıca birden fazla paketin aynı anda kurulması da dahil olmak üzere paket ekleme veya kaldırma işlemi beş saniyeden uzun sürerse görünür.

Varsayılan olarak sağda yerleştirilen yeni bir Packages penceresi, son açılan paketleri listeler ve liste oturumlar arasında korunur. Paketteki dosyalar göz atılabilir ve çift tıklamayla açılabilir. Kurulu bir paket derlendiğinde, denetimleri, bileşenleri veya uzantıları bir iki saniye içinde güncellenir.

Paket menüsü artık paketler eklendiğinde veya kaldırıldığında, yeniden derleme gerektirmeden IDE'yi günceller. IDE Integrations altındaki paket seçenekleri, bir paketi belirli bir platforma veya widgetsete sınırlandırmanızı sağlar; geçerli gereksinimleri karşılamayan bir paket paket listesinde görünmez.

Yeni bir form veya çerçeve dönüştürme özelliği, tüm denetimlerin, olayların, yöntemlerin ve özelliklerin kopyalanmasıyla herhangi bir formu veya çerçeveyi bileşen paletine eklenen kurulabilir bir denetime dönüştürür. Açık bir form kullanırken bir paket derleniyorsa, IDE önce formu kaydetmenizi veya kapatmanızı ister.

Kullanılabilirlik ve Destek

Tüm yükleyiciler dinamik paket desteğini içerir. FPC ve Lazarus'ta yapılan değişiklikler, dynamic packages adlı çatallanmış dallarda GitLab'a işlendi. Sorunlar GitLab sorun izleyicisi üzerinden bildirilebilir, sorular proje forumunda tartışılabilir. Proje ayrıca macOS derlemelerini üretmeye yardımcı olması için moderatörler ve bir M1 Macintosh bağışı arıyor.

Kaynaklar: getlazarus.org

SiTech

SiTech — AI destekli web geliştirme

Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.