سؤال

هل من أحد لديه تجربة مع LLVM, llvm-دول مجلس التعاون الخليجي, أو رنة?

الفكرة كلها وراء llvm يبدو مثيرا جدا للاهتمام بالنسبة لي و أنا مهتم في رؤية كيف ينفذ.أنا فقط لا أريد أن تفريغ الكثير من الوقت في محاولة الأدوات إذا كانت الأدوات ليست جاهزة للإنتاج.

إذا كان لديك تجربة مع أدوات, ما رأيك بها ؟ ما القيود الرئيسية هل واجهت ؟ ما هي أعظم الفوائد ؟

شكرا جزيلا!

هل كانت مفيدة؟

المحلول

لقد كان أولي تلعب حولها مع LLVM والعمل من خلال هذا البرنامج التعليمي ترك لي جدا جدا متحمس انه المحتملة ؛ فكرة أنني يمكن استخدامها لبناء JIT في التطبيق بسهولة نسبية وقد أوقد لي.

أنا لم أذهب عميقة بما فيه الكفاية لتكون قادرة على تقديم أي نوع من المفيد الرأي على القيود والاستقرار والأداء وما أشبه ذلك.أنا أفهم أن أنها جيدة على جميع التهم الموجهة إليه ولكن هذا محض إشاعات.

نصائح أخرى

لا أستطيع أن أقول ما يكفي من الأشياء الجيدة حول LLVM.أنه من السهل جدا للعمل مع بالمقارنة مع غيرها مترجم مشاريع لقد بحثت في.أنا لست مترجم الرجل ولكن عندما كنت بالإحباط مع بعض القيود من LLVM أو رنة فإنه عادة ما يكون من السهل جدا أن الغوص في تغييره.

نحن (نيت Begeman, نفسي, و قليل من الآخرين) كتب قدرة شرائية الخلفية مع أي خبرة حقيقية في مترجم التصميم ، ولكن بدا بسيطا بما فيه الكفاية أن غير الخبراء يمكن الاقتراب منه.كنا على دراية جدا مع قدرة شرائية الجمعية ، ولكن كان لا يزال لا يصدق جميلة تمكنا من الحصول على LLVM-دول مجلس التعاون الخليجي إخراج قدرة شرائية رمز في بضعة أسابيع من وقت الفراغ لدينا.بالتأكيد واحدة من الأكثر مرضية مرحبا في العالم من أي وقت مضى لقد جمعت.

لقد لعب مع LLVM وإيقاف لعدة أشهر الآن.كتبت اثنين OCaml مجلة المقالات التي تغطي استخدام LLVM من OCaml لغة البرمجة.التي هي مثيرة للاهتمام بشكل خاص لأن OCaml لغة مثالية كتابة المجمعين و لديها ثروة قوية وناضجة أدوات و مكتبات تحليل وهلم جرا.

عموما تجربتي كانت إيجابية للغاية.LLVM يفعل ما يقول على القصدير و هو سهل جدا للاستخدام.أداء الشفرة التي تم إنشاؤها من رائع.واحد من البرامج التي كتبتها كانت صغيرة بسيطة Brainf*ck المترجم أن يولد بعض من أسرع التنفيذية من أي مترجم اختبرت (بما في ذلك دول مجلس التعاون الخليجي).

لدي اثنين فقط من مغص مع LLVM.أولا, فإنه يستخدم إحباط() كلما كان أي شيء يذهب على نحو خاطئ بدلا من رفع استثناء.هذا كان متعمدا تصميم المقرر من قبل المؤلفين الذين يسعون إلى إزالة جميع استخدامات استثناءات من LLVM ولكنه يجعل من المستحيل الحصول على backtraces من OCaml عند محاولة تصحيح مترجم يستخدم LLVM:البرنامج فقط يموت مع شرح نصي من LLVM ولكن لا دليل على المكان الذي وقع فيه الخطأ في المصدر.ثانيا ، LLVM هو تجميع مكتبة مخيف الكبير (20Mb).أعتقد أن هذا يرجع إلى سخام التي تكبدتها C++ ولكن يجعل تجميع بطيئة.

تحرير:العمل على LLVM بلغت ذروتها في إنشاء عالية الأداء الرفيع المستوى القمامة التي تم جمعها الجهاز الظاهري.تحميل مجاني هنا وتحقق من المقابلة المعايير (واو!).@اليكس:سوف تحصل على هذا BF مترجم لك في مكان ما في اسرع وقت ممكن.

أنت سألت عن أدوات و أود أن أذكر أن هناك LLVM المساعد الكسوف CDT (ويندوز, لينكس وماك).أنه يدمج LLVM جيد IDE و المستخدم لا تحتاج إلى معرفة أي شيء عن LLVM.الضغط على زر بناء ما يكفي لإنتاج .قبل الميلاد و الملفات القابلة للتنفيذ (و المتوسطة الملفات على خلفية غير مرئية بالنسبة للمستخدم).

أحدث إصدار متاح عبر الرسمية الكسوف تحديث الموقع: http://download.eclipse.org/releases/mars

فمن ضمن لغات البرمجة و يدعى "C/C++ LLVM-Family مترجم بناء الدعم".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top