Category: التطوير

مراقبة أخطاء تسجيل الدخول: مفتاح لتحسين تجربة المستخدم

2025-03-31
مراقبة أخطاء تسجيل الدخول: مفتاح لتحسين تجربة المستخدم

هل تركز فقط على معدلات نجاح تسجيل الدخول وتتجاهل معدلات الفشل؟ تُبرز هذه المقالة أهمية مراقبة معدلات فشل تسجيل الدخول، مما يساعدك على تحديد وحل مشاكل تسجيل دخول المستخدم وتحسين تجربة المستخدم. تُفصّل المقالة كيفية تعريف وقياس معدلات فشل تسجيل الدخول، وتحليل الأسباب الشائعة لأخطاء تسجيل الدخول، مثل أداء النظام، وسوء تجربة المستخدم، وإجراءات الأمان. من خلال مراقبة معدلات فشل تسجيل الدخول، يمكنك فهم سلوك المستخدم، وتحسين عمليات تسجيل الدخول، وتحسين الاحتفاظ بالعملاء وقيمة العمل التجاري في النهاية.

كروم 135: عناصر `<select>` قابلة للتخصيص بالكامل باستخدام CSS

2025-03-31
كروم 135: عناصر `<select>` قابلة للتخصيص بالكامل باستخدام CSS

يجلب كروم 135 تحديثًا رئيسيًا: تخصيص CSS الكامل لعناصر ``. بعد سنوات من التطوير، أصبح لدينا الآن عنصر `` معياري، يمكن الوصول إليه، وقابل للتنسيق. يمكن للمطورين الآن استخدام خاصية `appearance: base-select` الجديدة لفتح ميزات التخصيص الغنية، بما في ذلك إضافة محتوى HTML غني (مثل الصور و SVGs) إلى عناصر ``، دون كسر توافق المتصفحات القديمة. على الرغم من وجود تغييرات في محلل، إلا أن كروم يخفف من خطر كسر مواقع الويب الحالية من خلال تجربة Finch. هذا التحديث يمهد الطريق لإنشاء تجارب عناصر `` أكثر جاذبية وذات مغزى.

التطوير

دليل تقوية خيارات المُجمِّع لـ C و C++: غوص عميق في الأمان

2025-03-31

يُفصّل هذا الدليل من OpenSSF خيارات المُجمِّع والرابط لتعزيز أمان وموثوقية رمز C/C++. يُوصي بعلميات تشغيل للتحقق من الثغرات الأمنية وقت التجميع، وحماية وقت التشغيل ضد تجاوزات المخزن المؤقت واختطاف تدفق التحكم. يحلّل الدليل التوازنات بين الأداء وحالات الاستخدام لكل خيار، مُشدداً على أهمية ممارسات الترميز الآمنة.

NoteUX: تطبيق رائع لأخذ الملاحظات

2025-03-31

NoteUX هو تطبيق رائع لأخذ الملاحظات مصمم لمساعدتك على التقاط أفكارك وتنظيمها وتحسينها بسهولة. يتميز بواجهة نظيفة تتضمن العديد من مفكرات الملاحظات، والوضع المظلم، والوضع كامل الشاشة، والحفظ التلقائي، وعدّ الكلمات، وإمكانية تنزيل الملاحظات كملفات .txt. مثالي للكتاب والطلاب والمحترفين على حد سواء، يعزز NoteUX الإنتاجية والإبداع.

التطوير تطبيق ملاحظات

تحكم في واتساب باستخدام كلاود: خادم واتساب MCP

2025-03-31
تحكم في واتساب باستخدام كلاود: خادم واتساب MCP

يقوم هذا المشروع بدمج واتساب مع نموذج اللغة الكبير (LLM) كلاود. تربط جسر جو API متعددة الأجهزة على الويب لواتساب، وتخزن الرسائل محليًا في قاعدة بيانات SQLite. يقوم خادم بايثون بتنفيذ بروتوكول سياق النموذج (MCP)، مما يسمح لكلاود بالبحث عن الرسائل وجهات الاتصال وإرسال الرسائل من خلال مجموعة من الأدوات. تتم جميع عمليات المعالجة محليًا، مع إعطاء الأولوية لخصوصية المستخدم.

التطوير كلاود

IMAP عبر سطر الأوامر: كشف سحر بروتوكولات البريد الإلكتروني

2025-03-31
IMAP عبر سطر الأوامر: كشف سحر بروتوكولات البريد الإلكتروني

تتناول هذه المدونة دراسة متعمقة للآليات الكامنة وراء بروتوكول IMAP للبريد الإلكتروني. باستخدام telnet و OpenSSL، يُظهر الكاتب كيفية الاتصال المباشر بخادم البريد، وتسجيل الدخول، وقائمة المجلدات، والبحث عن رسائل البريد الإلكتروني، وقراءة محتوى رسائل البريد الإلكتروني. يفصل المقال بنية واستخدام أوامر IMAP، ويُشدد على أهمية الاتصالات الآمنة. إنها قراءة رائعة لأي شخص مهتم ببروتوكولات الشبكات أو بالعمل الداخلي لأنظمة البريد الإلكتروني.

arXivLabs: مشاريع تجريبية مع متعاونين من المجتمع

2025-03-31
arXivLabs: مشاريع تجريبية مع متعاونين من المجتمع

arXivLabs هو إطار عمل يسمح للمتعاونين بتطوير ومشاركة ميزات arXiv الجديدة مباشرةً على موقعنا الإلكتروني. لقد تبنى الأفراد والمنظمات التي تعمل مع arXivLabs قيمنا المتمثلة في الانفتاح والمجتمع والتميز وخصوصية بيانات المستخدمين، ويلتزم arXiv بهذه القيم ويعمل فقط مع الشركاء الذين يلتزمون بها. هل لديك فكرة لمشروع سيضيف قيمة لمجتمع arXiv؟ تعرف على المزيد حول arXivLabs.

التطوير

دعم تجريبي من curl لـ HTTPS RR: الجيل التالي من سجلات DNS

2025-03-31
دعم تجريبي من curl لـ HTTPS RR: الجيل التالي من سجلات DNS

يدعم curl الآن بشكل تجريبي نوع سجل DNS الجديد HTTPS RR، مما يوفر طريقة أكثر حداثة من SRV و URI لنقل بيانات التعريفات، مثل تكوين ECH، وقوائم ALPN، وأسماء المضيفات المستهدفة، والمنافذ، وعناوين IP. يحسن HTTPS RR من أمان اتصال HTTPS (عبر تشفير ECH لحقل SNI) وكفاءته (من خلال استرداد معلومات دعم HTTP/3 مسبقًا)، ويُبسّط اكتشاف الخدمات. يحقق curl حل HTTPS RR من خلال DoH، أو getaddrinfo()، أو c-ares، ولكنه يفتقر حاليًا إلى تعطيل وقت التشغيل ولا يزال دعم HTTPS RR غير مكتمل.

التطوير

ترويض تنين UB في C++: تحديث حول تحسينات الأمان

2025-03-31
ترويض تنين UB في C++: تحديث حول تحسينات الأمان

لطالما كان السلوك غير المعرفة (UB) في C++ مصدرًا لثغرات الأمان والأخطاء الصعبة التصحيح. تعمل لجنة معايير C++ بنشاط على معالجة هذا الأمر، وحققت تقدمًا في C++26 من خلال إزالة UB للمتغيرات غير المُهيأة وتحسين أمان الحدود في مكتبة المعايير. ستركز الجهود المستقبلية على فهرسة ومعالجة حالات UB المتبقية بشكل منهجي باستخدام السلوك الخاطئ، وملفات تعريف اللغة، والعقود. والهدف هو تحقيق التكافؤ مع لغات الأمان الحديثة الأخرى من حيث ثغرات الأمان، دون التضحية بأداء C++ أو مرونته.

التطوير

Blosc2 3.0: كسر حاجز الذاكرة، والحوسبة مع مجموعات بيانات تيرابايتية

2025-03-31
Blosc2 3.0: كسر حاجز الذاكرة، والحوسبة مع مجموعات بيانات تيرابايتية

يقدم Blosc2 3.0 محرك حوسبة متكاملًا، مما يسمح بالحوسبة عالية الأداء على مجموعات بيانات أكبر من ذاكرة الوصول العشوائي (RAM) المتوفرة بأكثر من 100 مرة. من خلال دمج الضغط والحوسبة بشكل وثيق، واستخدام ذاكرة التخزين المؤقت لوحدة المعالجة المركزية لمعالجة أجزاء البيانات المضغوطة، فإنه يعالج مشكلة حاجز الذاكرة بفعالية. تُظهر التجارب أن Blosc2 يحافظ على أداء عالٍ مع مجموعات بيانات تصل إلى 8 تيرابايت، بل يتجاوز أداء ذاكرة الوصول العشوائي باستخدام التخزين على القرص لمجموعات البيانات الكبيرة جدًا. هذا تطور مهم لتحليل البيانات الضخمة والحوسبة عالية الأداء.

التطوير

إصدار RPCEmu 0.9.5: تحديث رئيسي لمحاكي أجهزة الكمبيوتر Acorn

2025-03-31

أصدر RPCEmu، وهو محاكي لأنظمة كمبيوتر Acorn الكلاسيكية مثل Risc PC و A7000، الإصدار 0.9.5. يتضمن هذا الإصدار العديد من التحسينات، بما في ذلك دعم عجلة الماوس، وتحسين برامج تشغيل الأقراص المرنة وأقراص التخزين الثابتة IDE، وموقتات أكثر دقة، ودعم طوابع زمنية عالية الدقة لـ HostFS على أنظمة Linux 64 بت. المشروع مفتوح المصدر ويرحب بمساهمات المجتمع.

التطوير

مخاطر إدارة الموارد الأصلية في .NET: قصة لسلوك غير متوقع لـ GC

2025-03-31

تتناول هذه المقالة المخاطر المحتملة لإدارة الموارد الأصلية في .NET. يستخدم الكاتب مثال RocksDB لتوضيح كيف يمكن أن يؤدي سلوك غير متوقع لجامع القمامة إلى إطلاق الموارد الأصلية قبل استخدامها، مما يؤدي إلى تعطل البرنامج. يكمن السبب الرئيسي في أن المتغيرات المحلية والأمثلة يمكن أن يتم جمعها بواسطة جامع القمامة أثناء استدعاء دالة. توصي المقالة في النهاية باستخدام SafeHandle لإدارة الموارد الأصلية بأمان، وتجنب هذه الأخطاء الصعبة التكرار.

تركيب Windows 9x بسرعة البرق: 90 ثانية أو أقل!

2025-03-31
تركيب Windows 9x بسرعة البرق: 90 ثانية أو أقل!

سئمت من عمليات تثبيت Windows 98 البطيئة؟ ها هو Windows 9x QuickInstall! يستخدم هذا المشروع نظام Linux وبرنامج تثبيت مخصص لتعبئة نظام Windows 98 المثبت بالفعل في صورة ISO مُحسّنة، مما يسمح بالتثبيت في حوالي 60-90 ثانية. يدعم أنظمة Windows 98 وWindows 98 SE وWindows ME، ويسمح بإضافة برامج التشغيل والأدوات بشكل مرن. على الرغم من أن عملية إنشاء صورة ISO أكثر تعقيدًا من استخدام nLite، إلا أن قابلية التخصيص المتزايدة تجعلها مثالية للمستخدمين الذين يفضلون السرعة وعمليات التثبيت المُخصصة للغاية.

لينوس تورفالدز غاضب من كود اختبار “قمامة” في نواة لينكس 6.15

2025-03-31

عبّر لينوس تورفالدز، مبتكر لينكس، عن غضبه الشديد من كود الاختبار hdrtest المدمج حديثًا في نواة لينكس 6.15، وتحديدًا في برنامج تشغيل Intel Xe. يُنتج كود الاختبار هذا ملفات مؤقتة غير ضرورية أثناء عملية البناء، مما يُلوث شجرة المصدر، ويُبطئ عملية البناء، بل ويؤثر حتى على إكمال أسماء الملفات. وصفه تورفالدز بأنه “قمامة” (turds) وطالب بإزالته، واقترح على المطورين تشغيله كاختبار منفصل بدلاً من دمجه في عملية البناء العادية. على الرغم من أن الهدف من هذا الكود هو ضمان سلامة ونجاح اختبار kernel-doc لملفات رأس DRM، إلا أن تنفيذه الخام أثار غضب تورفالدز.

التطوير

الذكاء الاصطناعي: التجزئة الوشيكة لهندسة البرمجيات

2025-03-30

زوجة الكاتب تستخدم Lovable، وهي أداة ذكاء اصطناعي، لبناء منصة تواصل اجتماعي. وعلى الرغم من كفاءتها، إلا أن الذكاء الاصطناعي يتعطل بشكل متكرر، مما يتطلب تدخلاً بشريًا. هذه الملاحظة تقود الكاتب إلى التنبؤ بمستقبل تتجزأ فيه هندسة البرمجيات: مجموعة كبيرة من "مهندسي مطالبات الذكاء الاصطناعي" ذوي المهارات المنخفضة مدعومين بعدد أقل من المتخصصين ذوي المهارات العالية الذين يحلون المشكلات ويحسنون الأداء. يجادل الكاتب بأن الذكاء الاصطناعي العام مبالغ فيه؛ الواقع هو نموذج تطوير بمساعدة الذكاء الاصطناعي حيث يدير الذكاء الاصطناعي المهام الروتينية، لكن حل المشكلات المعقدة والهندسة المعمارية لا تزال وظائف بشرية حاسمة. سيؤدي هذا التغيير إلى انخفاض عدد وظائف هندسة البرمجيات، لكن الناجين سيتقدمون إلى مناصب عليا تتطلب مهارات أقوى في تصميم الهندسة المعمارية والقيادة. المستقبل مشرق لمن يتكيفون، مظلم لمن يرضون بالواقع.

التطوير

دليل المبتدئين لبرمجة لينكس/يونكس

2025-03-30

يقدم هذا الكتاب مقدمة شاملة لبرمجة أنظمة لينكس ويونكس، حتى للمبتدئين الذين لا يملكون خبرة سابقة في البرمجة. أسلوب الكاتب الودود والمحادثة، المدعوم بأكثر من 40 عامًا من الخبرة في التدريس، يرشد القراء خلال تقنيات البرمجة، واستراتيجيات سير العمل الفعالة، وتصميم يونكس الأساسي. العديد من الرسوم البيانية والمشاريع العملية تعزز المفاهيم الرئيسية، وتبني بعضها على بعض طوال الكتاب. على الرغم من أن الخبرة السابقة في لغة C أو C++ مفيدة، إلا أنها ليست إلزامية؛ ومع ذلك، فإن الوصول إلى نظام لينكس ضروري.

التطوير دليل برمجة

لماذا تم بناء موقع الويب الشخصي الخاص بي باستخدام لغة C؟

2025-03-30

بدأ الكاتب في كتابة مدونة منذ عام 2017، وجرّب Django و Nuxt.js لبناء موقعه الإلكتروني، لكنه تخلى عنهما بسبب ارتفاع تكاليف الصيانة. في النهاية، اختار لغة C و مكتبة md4c لبناء موقع إلكتروني ثابت، مع إعطاء الأولوية للسرعة، والاعتماديات الدنيا، والاستقرار على المدى الطويل. هذا قلل بشكل كبير من عبء الصيانة. على النقيض من ذلك، وجد الكاتب أن مُنشئي مواقع الويب الثابتة الآخرين مثل Hugo أقوى من اللازم ومعقدين بشكل غير ضروري لاحتياجاته.

Rust تحصل على مواصفات لغة رسمية!

2025-03-30
Rust تحصل على مواصفات لغة رسمية!

بعد سنوات من النمو، تحصل Rust أخيرًا على مواصفات لغة رسمية! وذلك بفضل التبرع السخي من Ferrous Systems لمواصفات لغة Ferrocene (FLS). توفر FLS مرجعًا مُنظمًا و مفصلًا لتركيب Rust، ودلالاته، وسلوكه، والذي تم استخدامه سابقًا للتحقق من صلاحية المُترجم. سيمنع هذا التبرع الارتباك الناتج عن وجود مواصفات Rust متعددة، و سيدعم بشكل كبير استخدام Rust في الصناعات الحرجة من حيث السلامة. سيعمل فريق مشروع Rust على دمج FLS مع مرجع Rust الحالي لإنشاء مواصفات Rust رسمية، مما سيفيد جميع المُطورين.

التطوير

إصدار Swiftly 1.0: تبسيط إدارة سلسلة أدوات Swift

2025-03-30
إصدار Swiftly 1.0: تبسيط إدارة سلسلة أدوات Swift

تم إصدار Swiftly 1.0 رسميًا! وهو عبارة عن مدير إصدارات Swift مدعوم من المجتمع، أصبح الآن جزءًا رسميًا من سلسلة أدوات Swift الأساسية. فهو يبسط عملية تثبيت وإدارة وتحديث سلسلة أدوات Swift الخاصة بك عبر منصات متعددة، بما في ذلك Linux و macOS. يدعم Swiftly تثبيت الإصدارات المستقرة، ولقطات اللحظة، والإصدارات القديمة، مما يسمح بالتبديل السلس بين سلاسل الأدوات المتعددة. يمكنك حتى توحيد الإصدارات ضمن فريق التطوير الخاص بك باستخدام ملف `.swift-version` في مشروعك. وهو مكتوب بلغة Swift نفسها، ويدعم التحديث التلقائي، مما يُحسّن من سير عمل تطوير Swift الخاص بك.

LeetArxiv: إعادة تنفيذ خوارزمية تحليل العوامل الصحيحة لعام 1931

2025-03-30
LeetArxiv: إعادة تنفيذ خوارزمية تحليل العوامل الصحيحة لعام 1931

يعيد LeetArxiv إنشاء خوارزمية تحليل العوامل الصحيحة من عام 1931 بواسطة Lehmer وPowers، والتي تعتمد على الكسور المتصلة. تشرح المقالة الخوارزمية بدقة، بما في ذلك حساب توسيع الكسر المتصل للجذر التربيعي واستخدام المعاملات الناتجة (P وA) للتحليل. يوضح مثال خطوة بخطوة تفاصيل الخوارزمية، مع تحليل العوامل بنجاح للعدد 13290059. هذه الخوارزمية، ذات الأهمية التاريخية، كانت أول خوارزمية تحقق وقت تحليل عوامل دون الأسّ.

شركة ناشئة في سان فرانسيسكو تبحث عن مهندس بيانات متكامل

2025-03-30
شركة ناشئة في سان فرانسيسكو تبحث عن مهندس بيانات متكامل

تبحث شركة ناشئة مقرها سان فرانسيسكو عن مهندس برمجيات متكامل للانضمام إلى فريق الهندسة الديناميكي لديها. تتضمن المسؤوليات إنشاء وإدارة نصوص جمع البيانات (من طلبات HTTP الأساسية إلى أتمتة المتصفحات وتطبيقات الهاتف المحمول)، وإنشاء وصيانة أدوات التشغيل الآلي/الجدولة، وإنشاء نصوص لتنظيف البيانات وتوحيدها (مع إمكانية دمج ML/LLMs)، وتصميم لوحات تحكم وتحليلات البيانات، والمساعدة في مهام DevOps. يجب أن يكون المرشحون على دراية بلغات البرمجة Python وSQL وUnix، وأن يتمتعوا بالعمل على مشاريع متنوعة في وقت واحد، وأن يكونوا قادرين على العمل بشكل مستقل. تشمل المهارات الإضافية استخراج البيانات من الويب، وDocker، وKubernetes، وتطوير الويب المتكامل، وتطوير تطبيقات الهاتف المحمول، وخلفية في الإحصاء. تشمل المزايا وجبات الغداء، وإجازات غير محدودة، و401k، وتأمين صحي PPO من الدرجة الأولى، وراتب يتراوح بين 100,000 و 150,000 دولار بالإضافة إلى نسبة من 0.25% إلى 1% من الأسهم.

التطوير

فهم الدوالّ، التطبيقية، والمنادات في هاسكل

2025-03-30
فهم الدوالّ، التطبيقية، والمنادات في هاسكل

تقدم هذه المقالة شرحًا واضحًا وسهلًا للدوالّ، والتطبيقية، والمنادات في البرمجة الوظيفية باستخدام لغة هاسكل، وذلك باستخدام الأمثلة لتسهيل فهم المفاهيم المعقدة. يستخدم الكاتب استعارة الصناديق لتوضيح كيفية تعامل هذه الأنواع مع تطبيق الدوال في سيناريوهات مختلفة، مع تقديم أمثلة برمجية توضح استخدامها واختلافاتها. وتختتم المقالة بتأمل في أهمية التعلم ومشاركة المعرفة، بناءً على تفاعل مع مجتمع هاسكل.

التطوير المنادات

Span<T> يفوق memcmp: مكاسب أداء هائلة في مقارنة مصفوفات البايت في .NET

2025-03-30
Span<T> يفوق memcmp: مكاسب أداء هائلة في مقارنة مصفوفات البايت في .NET

تُقارن هذه المشاركة طرقًا مختلفة لمقارنة مصفوفات البايت في .NET، بما في ذلك `memcmp`، والحلقات، و`Enumerable.SequenceEqual`، و`Span.SequenceEqual`. تُظهر النتائج أن `Span.SequenceEqual` يوفر أفضل أداء في .NET 8 والإصدارات الأحدث، متجاوزًا بكثير `memcmp` وطرق الحلقات التقليدية، حتى في .NET Framework. بالنسبة للمصفوفات الصغيرة، تكون الحلقات هي الأسرع، لكن ميزة `Span.SequenceEqual` تزداد بشكل كبير مع حجم المصفوفة. يوصي الكاتب باستخدام `IEnumerable.SequenceEqual` في .NET 8+ و`Span.SequenceEqual` في .NET Framework، وتجنب استخدام `memcmp` والتنفيذات المخصصة.

Blue95: تجربة سطح مكتب حنين إلى التسعينيات

2025-03-30
Blue95: تجربة سطح مكتب حنين إلى التسعينيات

يوفر Blue95 تجربة سطح مكتب خفيفة الوزن تُذكر بعصر الحوسبة في التسعينيات، مبنية على Fedora Atomic Xfce مع سمة Chicago95. على الرغم من أن برنامج التثبيت المرفق لا يزال في مرحلة ألفا، إلا أن الطريقة الموصى بها للتثبيت هي إعادة التأسيس من سطح مكتب Fedora Atomic آخر، مثل winblues/vauxite. يولي Blue95 الأولوية لسهولة الاستخدام وإمكانية الوصول بدلاً من النسخ المتطابق الدقيق لأنظمة التشغيل القديمة، حيث يدمج تحسينات من Universal Blue (ترميز، تحديثات تلقائية، إلخ.) لتجربة أفضل جاهزة للاستخدام. تتوفر أيضًا نسخة تجريبية ISO حية لا تتطلب تثبيتًا.

Rust تعتمد مواصفات لغة Ferrocene

2025-03-30

لقد أعاق غياب المواصفات الرسمية للغة Rust اعتمادها في المنظمات التي تولي أهمية للسلامة. يعلن مشروع Rust الآن عن اعتماده لمواصفات لغة Ferrocene (FLS) ، التي طورتها Ferrous Systems ، كمكون أساسي للمشروع. تهدف هذه الخطوة إلى إزالة عقبة رئيسية أمام استخدام Rust في الأنظمة الحرجة من حيث السلامة.

قوانين الهاكر: مجموعة من مبادئ تطوير البرمجيات

2025-03-30

يُعد هذا المستودع بمثابة دليل شامل للقوانين والمبادئ والأنماط الشائعة في تطوير البرمجيات. من قانون بروكس وقانون كونواي إلى قانون أمدهال ومبدأ 90-9-1، فإنه يقدم لمحة عامة مفصلة دون الدعوة لأي نهج محدد. يستكشف جوانب متنوعة، بما في ذلك التحيزات المعرفية، وقيود الأنظمة الموزعة، وجودة الشفرة، وديناميكيات الفريق، مما يوفر رؤى ودروسًا قيّمة للمطورين من جميع المستويات.

تحسين دعوة الذيل في جافا: نهج معالجة بايت كود ASM

2025-03-30

تقدم هذه المقالة طريقة أنيقة لتنفيذ تحسين دعوة الذيل في جافا باستخدام معالجة بايت كود مع ASM. الاستدعاء الذاتي، حيث يكون الاستدعاء المتكرر هو آخر عملية، يمكن تحسينه بشكل كبير عن طريق تجنب إنشاء أطر مكدس جديدة لكل استدعاء. تشرح المقالة آليات استدعاء الطريقة، وهيكل الاستدعاء الذاتي، واستخدام مكتبة ASM. تُظهر اختبارات مقياس الأداء JMH تحسينات في الأداء، خاصةً مع عدد أكبر من الاستدعاءات المتكررة، مما يُبرز فعالية تقنية التحسين هذه.

حساب الإنتاجية العكسية في نموذج جدولة LLVM

2025-03-30

تتناول هذه المقالة حساب الإنتاجية العكسية في نموذج جدولة التعليمات في LLVM. يصف نموذج جدولة LLVM تعليمة باستخدام ثلاث خصائص رئيسية: الكمون، وموارد الأجهزة المستخدمة، وعدد الدورات التي تشغل كل مورد. بينما تستخدم الطريقة التقليدية دورة الإصدار القصوى لحساب الإنتاجية العكسية، فإن هذه الطريقة تفشل عندما تكون هناك دورات اكتساب غير صفرية. من خلال تحليل مقاطع الموارد وعملية جدولة التعليمات، يستنتج المؤلف طريقة جديدة: استخدام طول أطول مقطع بين جميع موارد الأجهزة كإنتاجية عكسية. هذا يعالج أوجه القصور في الطريقة التقليدية عند التعامل مع مقاطع الموارد، مما يوفر أساسًا أكثر دقة لتحسين الأداء في مترجم LLVM.

نهاية جحيم المُجمِّع؟ اقتراح ثوري للهجرات التلقائية للشيفرة

2025-03-30
نهاية جحيم المُجمِّع؟ اقتراح ثوري للهجرات التلقائية للشيفرة

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

خاصية Any في Rust تدعم أخيرًا الترقية الصاعدة

2025-03-30
خاصية Any في Rust تدعم أخيرًا الترقية الصاعدة

أصلحت نسخة Rust 1.86 أخيرًا مشكلة قائمة منذ فترة طويلة في خاصية Any: عدم القدرة على الترقية الصاعدة لـ dyn Any. وهذا يعني أنه يمكن للمطورين الآن استخدام طرق خاصية Any، مثل downcast_ref، على الخصائص التي ترث من Any. يُزيل هذا الإصلاح الحاجة إلى الحلول البديلة التي كانت مطلوبة سابقًا لتحقيق هذه الوظيفة، مما يحسّن من قابلية قراءة وسهولة صيانة التعليمات البرمجية. وهذا خبر سارّ للمطورين الذين اعتمدوا على هذه الحلول البديلة لسنوات.

1 2 124 125 126 128 130 131 132 213 214