Rust: استبدال الكود الساخن

تم إنشاؤها على ١٠ مايو ٢٠١٣  ·  6تعليقات  ·  مصدر: rust-lang/rust

مرحبًا ، لقد شاهدت هذا http://www.youtube.com/watch؟v=apZYqHPqzYo واعتقدت أنه سيكون من الجيد استبدال الكود الساخن في Rust أيضًا.

في جافا ، لديك مشروع OSGi (http://www.osgi.org/Main/HomePage) و hotswap (http://code.google.com/p/hotswap/) ، مما يسهل ترقية وتغيير الوحدات النمطية الخاصة بك التطبيق دون لمس الوحدات الأخرى.

E-hard

التعليق الأكثر فائدة

ال 6 كومينتر

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

لست على اطلاع بأحدث الأبحاث حول هذا الموضوع ، لكنني وجدت أن Kitsune: تحديث البرامج الديناميكي الفعال والأغراض العامة لـ C (OOPSLA 2012) مثير للاهتمام.

تمت زيارته للفرز ، 17 يوليو 2013. التبادل السريع أمر صعب بالفعل ، على الرغم من أن بعض الأشياء الضرورية لدعمه (مثل وضع علامة على الصفحات على أنها قابلة للتنفيذ ؛ I-cache flushing ، إلخ) ستكون ضرورية أيضًا لدعم مترجم JIT.

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

سيكون هذا رائعًا ، لكنني أشعر بالراحة عندما أقول إنه لن يحدث على الأرجح. أعتقد أن هناك العديد من المشاكل الصعبة الأخرى الأكثر إلحاحًا.

تم القيام به عدة مرات باستخدام كود مترجم من خلال LLVM و JIT الخاص به. وهو ما يلقي به في جهاز VM ويسمح له بالقيام بنفس الأشياء التي يمكن لـ Erlang القيام بها داخل الجهاز الظاهري ...
إلهام: http://vimeo.com/36579366
أمثلة مع C ++:

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

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات