إصدار مكتبة C القياسية PicoLibc 1.4.7

كيث باكارد، مطور دبيان النشط، قائد مشروع X.Org ومبتكر العديد من ملحقات X، بما في ذلك XRender وXComposite وXRandR. نشرت إطلاق مكتبة C القياسية بيكو ليبك 1.4.7تم تطويره للاستخدام على الأجهزة المدمجة ذات سعة التخزين الدائمة وذاكرة الوصول العشوائي المحدودة. أثناء التطوير، تم استعارة جزء من الكود من المكتبة newlib من مشروع Cygwin و AVR ليبكتم تطويره لوحدات التحكم الدقيقة Atmel AVR. كود بيكو ليبك وزعت من خلال بموجب ترخيص BSD. يتم دعم تجميع المكتبة لبنيات ARM (32 بت) وi386 وRISC-V وx86_64 وPowerPC.

في البداية، تم تطوير المشروع تحت اسم "newlib-nano" وكان يهدف إلى إعادة صياغة بعض وظائف Newlib كثيفة الاستخدام للموارد، والتي كان من الصعب استخدامها على الأجهزة المدمجة ذات ذاكرة الوصول العشوائي الصغيرة. على سبيل المثال، تم استبدال وظائف stdio بنسخة مضغوطة من مكتبة avrlibc. تم أيضًا تنظيف الكود من المكونات غير المرخصة من BSD والتي لم يتم استخدامها في البناء المضمن. تمت إضافة نسخة مبسطة من كود التهيئة (crt0)، وتم نقل تنفيذ الخيوط المحلية من 'struct _reent' إلى آلية TLS (التخزين المحلي للخيط). يتم استخدام مجموعة أدوات Meson للتجميع.

في الإصدار الجديد:

  • تمت إضافة القدرة على البناء باستخدام تم التحقق منها رياضيا مترجم كومبيرت.
  • تمت إضافة دعم لمترجم Clang.
  • لقد أصبح سلوك وظيفة "جاما" متوافقًا مع سلوك Glibc.
  • يضمن تطبيق nano-malloc مسح الذاكرة التي تم إرجاعها.
  • تحسين أداء تقنية nano-realloc، خاصة عند دمج الكتل الحرة وتوسيع حجم الكومة.
  • تمت إضافة مجموعة من الاختبارات للتحقق من التشغيل الصحيح لـ malloc.
  • تحسين الدعم لنظام التشغيل Windows وإضافة القدرة على البناء باستخدام مجموعة أدوات mingw.
  • في أنظمة ARM، إذا كان ذلك متاحًا، يتم تمكين سجل أجهزة TLS (التخزين المحلي لمؤشر الترابط).

المصدر: opennet.ru