
Lazarus وFree Pascal يحصلان على دعم كامل للحزم الديناميكية
أصبح الإصدار الأول من دعم الحزم الديناميكية الكامل لمترجم Free Pascal وبيئة Lazarus IDE متاحًا الآن، مما يتيح للمستخدمين تثبيت المكونات وعناصر التحكم في ثوانٍ دون إعادة بناء بيئة التطوير بالكامل.
أصبح الإصدار الأول من دعم الحزم الديناميكية الكامل لمترجم Free Pascal وبيئة Lazarus IDE متاحًا للتنزيل. تتيح الميزة للمستخدمين إنشاء المكونات وعناصر التحكم وتوسعات Lazarus وتثبيتها في ثوانٍ دون إعادة بناء بيئة التطوير بالكامل. ويمكن أيضًا استخدام الحزم الديناميكية في البرامج المخصصة لتطوير المكونات الإضافية ونشرها بحيث تعرض أصناف Pascal الأصلية وأنواعها عبر مكتبات الحزم الديناميكية.
تنسيق الحزم ودعم التشغيل
تُنفذ الحزم الديناميكية كملفات مكتبات مشتركة قياسية لأنظمة Linux وWindows وmacOS. تحتوي على بيانات وصفية إضافية ينشئها المترجم، ويمكن فحصها والاستعلام عنها باستخدام وحدات RTL الجديدة. يتضمن وقت التشغيل آليات للحفاظ بأمان على متغيرات الخيوط وإدارة الأنواع الديناميكية، مثل السلاسل النصية والمصفوفات الديناميكية، بين البرامج والحزم أو بين حزم متعددة.
عند نشر برنامج، لا يزال بإمكان المطورين جمع كل شيء في ملف تنفيذي واحد، أو تقسيمه إلى حزم ديناميكية متعددة يمكن استبدالها أثناء تشغيل البرنامج، مما يوفر نظام مكونات إضافية.
لا يمكن لوحدة في حزمة أن تشترك في اسم الحزمة، لذا يضيف نظام الحزم الآن كلمة Package إلى اسمها. فالحزمة المسماة ElectroTools.lpk على سبيل المثال تنشئ ElectroToolsPackage.pas بدلًا من ElectroTools.pas. يجب أن تكون أسماء الوحدات فريدة أيضًا عبر الحزم. الحزم الديناميكية أكبر من المكتبات المشتركة العادية لأنها تحتوي على خريطة لكل محتوياتها، ويؤدي تجريد الملف إلى إزالة البيانات الوصفية اللازمة لعملها.
تضيف مكتبة وقت التشغيل سجل TPackageType ووحدة جديدة هي DynPkgTypes.pas لقراءة المعلومات من الحزم الديناميكية. توفر RTL وظائف لتحميل الحزم وسردها والبحث فيها وإلغاء تحميلها في وقت التشغيل.
تحسينات بيئة Lazarus IDE
يمكن لنافذة تقدم جديدة أن تظهر خارج بيئة التطوير. عند تعديل شفرة مصدرية تنتمي إلى حزمة مسجلة، يكتشف النظام التغييرات ويعيد بناء الحزمة قبل بدء Lazarus. تعرض النافذة العملية الحالية والوقت المتبقي المقدر قبل إعادة تشغيل بيئة التطوير. وتظهر أيضًا عندما يستغرق إضافة الحزم أو إزالتها أكثر من خمس ثوانٍ، بما في ذلك عند تثبيت حزم متعددة في وقت واحد.
تعرض نافذة Packages جديدة، تكون مثبتة على الجانب الأيمن افتراضيًا، الحزم التي تم فتحها مؤخرًا، وتستمر القائمة بين الجلسات. يمكن استعراض الملفات داخل الحزمة وفتحها بنقرة مزدوجة. وعند تجميع حزمة مثبتة، يتم تحديث عناصر التحكم أو المكونات أو التوسعات الخاصة بها في غضون ثانية أو ثانيتين.
تحدث قائمة الحزم الآن بيئة التطوير عند إضافة الحزم أو إزالتها دون الحاجة إلى إعادة بناء. تسمح خيارات الحزم الموجودة تحت تكاملات IDE بقصر الحزمة على منصة معينة أو مجموعة أدوات واجهة معينة؛ ولا تظهر الحزمة التي لا تستوفي المتطلبات الحالية في قائمة الحزم.
تعمل ميزة جديدة لتحويل النماذج أو الإطارات على تحويل أي نموذج أو إطار إلى عنصر تحكم قابل للتثبيت يضاف إلى لوحة المكونات، مع نسخ كل عناصر التحكم والأحداث والطرق والخصائص. وإذا كانت حزمة قيد البناء بينما يستخدمها نموذج مفتوح، تطلب بيئة التطوير حفظ النموذج أو إغلاقه أولًا.
التوفر والدعم
تتضمن جميع برامج التثبيت دعم الحزم الديناميكية. تم إيداع التغييرات التي أُجريت على FPC وLazarus في GitLab عبر فروع متفرعة تحمل اسم dynamic packages. يمكن الإبلاغ عن المشاكل عبر متتبع مشاكل GitLab، ويمكن مناقشة الأسئلة في منتدى المشروع. كما يسعى المشروع إلى إيجاد مشرفين وإلى تبرع بجهاز M1 Macintosh للمساعدة في إنتاج إصدارات macOS.
المصادر: getlazarus.org
SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.