مشاريع تدريب صيفي من جين ستريت: JSQL أسرع، وتحسينات في روابط Torch، وإدارة الذاكرة بين العمليات

2025-08-29
مشاريع تدريب صيفي من جين ستريت: JSQL أسرع، وتحسينات في روابط Torch، وإدارة الذاكرة بين العمليات

تبرز جين ستريت ثلاثة مشاريع متميزة من برنامج التدريب الصيفي لهذا العام: مُقيّم JSQL من ليون غاغون، والذي حقق تسريعًا بمئات المرات من خلال الفهرسة؛ وتحسينات روابط OCaml Torch من أريان خاتري، مستفيدًا من OxCaml لإدارة ذاكرة وحدة معالجة الرسومات بأمان وكفاءة؛ ومكتبة إدارة الذاكرة بين العمليات من أنتوني لي، والتي تقضي على تكاليف التسلسل باستخدام عدّادات المرجع. هذه المشاريع لا تعزز فقط كفاءة الأدوات الداخلية، بل تساهم أيضًا برموز قيّمة في مجتمع المصادر المفتوحة.

اقرأ المزيد
التطوير

مطاردة خلل هيجز-بوجسون: تصحيح أخطاء مشكلة مستوى النواة NFS/Kerberos

2025-07-03
مطاردة خلل هيجز-بوجسون: تصحيح أخطاء مشكلة مستوى النواة NFS/Kerberos

واجه المهندسون خطأ يصعب إعادة إنتاجه، مما تسبب في فشل نسخ الملفات (-EACCES) في Gord، وهو نظام بيانات تداول بالغ الأهمية. لقد تم حل المشكلة عن طريق تعطيل Kerberos، مما يشير إلى وجود مشاكل في المصادقة. كشفت التحقيقات أن النواة تحصل على بيانات اعتماد Kerberos عبر ديمون rpc_gssd، لكن السجلات لم تظهر أي شذوذ. أدت الاختبارات المكثفة، بما في ذلك إنشاء نظام ملفات وهمي في الذاكرة واستخدام bpftrace لتتبع النواة، إلى تحديد المشكلة أخيرًا: تسببت الحمولة العالية على خادم NFS في إعادة إرسال الطلبات. تعاملت النواة بشكل خاطئ مع الطلبات/الاستجابات التي تحتوي على XIDs متطابقة ولكن بأرقام تسلسل GSS مختلفة، مما أدى إلى عدم تطابق المجموعات الاختبارية والأخطاء. قام المهندس بإصلاح النواة لمنع إعادة الإرسال الفوري بسبب عدم تطابق أرقام التسلسل.

اقرأ المزيد
التطوير خطأ في النواة

تمثيل الذاكرة بكفاءة باستخدام GADTs في OCaml

2025-05-12
تمثيل الذاكرة بكفاءة باستخدام GADTs في OCaml

تتناول هذه المقالة استخدام أنواع البيانات الجبرية المعممة (GADTs) في OCaml لتحسين تمثيل الذاكرة. يشرح الكاتب أولاً قيود تعدد الأشكال في OCaml، ولا سيما عدم كفاءة List.iter عند التعامل مع أنواع بيانات مختلفة بسبب التمثيل الموحد للذاكرة. تفشل محاولات إنشاء نوع `Compact_array` باستخدام المتغيرات العادية والأشياء بسبب مشاكل الاستنتاج النمطي وتخصيص الذاكرة. أخيرًا، باستخدام GADTs، ينشئ الكاتب بنجاح تمثيل ذاكرة مرنًا وفعالًا لمصفوفات أنواع البيانات المختلفة، مما يُظهر فائدة GADTs لما هو أبعد من كتابة المترجمات، خاصة في التطبيقات عالية الأداء التي تتطلب تحكمًا دقيقًا في الذاكرة.

اقرأ المزيد
التطوير

رحلة Jane Street التي استمرت عقدًا من الزمن: من Jenga إلى Dune

2025-01-30
رحلة Jane Street التي استمرت عقدًا من الزمن: من Jenga إلى Dune

قامت Jane Street في البداية ببناء Jenga، وهو نظام بناء OCaml، لكن قيوده أدت إلى تبنيه المحدود وحتى إلى التراجع عن وضعه كمصدر مفتوح. ثم قاموا بإنشاء Jbuilder الأكثر بساطة، والذي اكتسب شعبية غير متوقعة نظرًا لسرعته، وتطور في النهاية إلى Dune. بعد سنوات من الجهد، قام فريق Jane Street بنجاح بنقل نظام البناء الداخلي الخاص بهم من Jenga إلى Dune لما يقرب من 70 مليون سطر من التعليمات البرمجية، مما زاد من سرعات البناء وأرسى أساسًا متينًا لمستقبل Dune.

اقرأ المزيد
التطوير