هل من الممكن استخدام واجهة برمجة تطبيقات GHC لتعديل البرنامج أثناء تجميعه؟
سؤال
أرغب في اختبار التنفيذ تحسين برنامج التحويل البرمجي عن طريق التغلب على عملية تجميع GHC وتغيير تمثيله الأساسي. تتمثل الفكرة في الحصول على شيء مثل:
runGhc (Just libdir) $ do
...
c <- compileToCoreModule targetFile
compileCoreToObj False (modify c)
...
أين modify
يأخذ التمثيل الأساسي ويعيد الإصدار المعدل. ومع ذلك ، يفشل هذا الرمز (حتى عندما لا يفعل التعديل شيئًا على الإطلاق) مع الرسالة غير المفيدة للغاية:
expectJust mkStubPaths
أي أفكار حول كيفية جعل هذا العمل ، أو إذا كان من الممكن تنفيذ تحويل التعليمات البرمجية بهذه الطريقة؟
المحلول
هذا يبدو وكأنه خطأ في compileCoreToObj
إلي. لو سمحت أبلغ عن ذلك.
نصائح أخرى
GHC لديها دعم ل الإضافات الآن ، والتي يبدو أنها تفعل بالضبط ما تريد.
لا تنتمي إلى StackOverflow