पृष्ठभूमि: मैं अपने स्वयं के मनोरंजन/संपादन के लिए हास्केल में खिलौना लिस्प इंटरपरेटर/कंपाइलर लिख रहा हूं। मैं एलएलवीएम बाइटकोड को संकलित करने की क्षमता जोड़ने की कोशिश कर रहा हूं।हास्केल एलएलवीएम बाइंडिंग में कोडजेन * को समझने के लिए
प्रसंग: मैं LLVM.Core के लिए दस्तावेज और एक कोड उदाहरण (here) संयोजन की साधन और अमूर्त (। Abelson and Sussman Structure and Interpretation of Computer Programs में वर्णित है) के साधन हास्केल LLVM में इस्तेमाल को समझने का प्रयास पढ रहा हूं बाइंडिंग। बहुत सारे छोटे टुकड़े हैं और मैं स्पष्ट नहीं हूं कि वे एक साथ काम करने का इरादा रखते हैं। ऐसा लगता है कि बुनियादी एलएलवीएम मशीन निर्देशों के ऊपर अमूर्तता का एक स्तर है जो एलएलवीएम के साथ बहुत से अनुभव वाले किसी व्यक्ति के लिए स्पष्ट है, लेकिन मेरे लिए उन लोगों के लिए दस्तावेज नहीं है, जो सिर्फ अपने पैरों को गीला कर रहे हैं।
प्रश्न:CodeGenModule
और CodeGenFunction
क्या हैं और कैसे वे Functions
और Modules
का निर्माण करने के लिए इस्तेमाल कर रहे हैं?