2010-10-30 14 views
12

क्या आईओएस में Common Lisp फ़ंक्शन को कॉल करना संभव है?आईफोन/आईओएस पर सामान्य LISP

यदि हां, तो क्या यह गतिशील पुस्तकालय में इसे संभव बनाता है?

+0

यहां अधिकतर उत्तर पुराने हैं। यह स्पष्ट नहीं है कि उत्पाद अभी भी काम करता है, फिर भी लिंक करने योग्य कोड उत्पन्न करता है जिसे वास्तव में उत्पादन में उपयोग किया जा सकता है: एलएलवीएम, arm64, बिट संकलन। एमओसीएल पर नवीनतम जानकारी, जो वादा करता है, एक साल पुराना है। –

उत्तर

8

यह सीएल फ़ंक्शन को कॉल करके आपके मतलब पर निर्भर करता है, लेकिन संभवतः ईसीएल आपका सबसे छोटा रास्ता होगा। यहां प्रारंभ करें, क्योंकि आईसीएल के लिए आईओएल को बेहतर समायोजित करने के लिए एक पैच है: http://funcall.posterous.com/tag/iphone

ईसीएल सी कोड उत्पन्न करता है, इसलिए आपको ऐप्पल की स्थानांतरण नीतियों के साथ सुरक्षित क्षेत्र में होना चाहिए।

+1

"पोस्टर स्पेस अब उपलब्ध नहीं है": \ – Olie

+0

@ ओली http://web.archive.org/web/20130323055046/http://funcall.posterous.com/tag/iphone; https://github.com/kriyative/ecl-iphone-builder/tree/elf और https://github.com/kriyative/ecl-iphone-builder/tree/dragon और http: //mclide.in- के लिंक progress.com/। –

+0

ब्लॉग स्थानांतरित हो गया है: http://kriyative.github.io/tags/#iphone – Pascal

2

आप गैंबिट स्कीम या क्लोजर कॉमन लिस्प का उपयोग कर सकते हैं, दोनों कोको के साथ इंटरफ़ेस करने में सक्षम हैं, पहला क्योंकि यह सी और बाद वाला उत्पन्न करता है क्योंकि क्लोजर से कोको तक एक पुल है। इसके बारे में एक Google खोज करें और आपको कुछ चीजें मिलेंगी।

+3

मैंने कुछ Google खोज की और मुझे नहीं पता कि इनमें से कोई भी मदद करने जा रहा है। गैंबिट एक अलग प्रोग्रामिंग भाषा है। क्लोजर में डार्विन/एआरएम बंदरगाह नहीं है (निकटतम बंदरगाह डार्विन-x86 और लिनक्स-एआरएम हैं)। – Ken

+0

गैंबिट पेपर पर वादा करता है, लेकिन यह सी स्रोतों का उत्पादन नहीं करता है जिसे वर्तमान एक्सकोड (7.1) के भीतर संकलित किया जा सकता है। एलएलवीएम का समर्थन करने में कुछ आंशिक प्रयास प्रतीत होता है। इसकी वर्तमान स्थिति में यह अनुपयोगी है। क्लोजर उद्देश्य सी बाध्यकारी का समर्थन करता है, लेकिन AFAIK यह आईओएस पर कभी काम नहीं करता है। –

3

क्या आपने MOCL को आजमाया है?

वेबसाइट के अनुसार "मोक्ल एलएलवीएम/क्लैंग के माध्यम से तंग देशी कोड प्रदान करने वाला एक बेहद अनुकूल सीएल कार्यान्वयन है"।

शायद आप एक गतिशील पुस्तकालय बना सकते हैं, हालांकि इसे अन्य तरीकों से उपयोग करने के लिए डिज़ाइन किया गया है।

+4

$ 199 मानक लाइसेंस, $ 1299 एंटरप्राइज़ –

+2

mocl (जिसे आप "आईओएस और एंड्रॉइड के लिए आम लिस्प" कहते हैं) वास्तव में, आपको अपने सीएल कार्यों को निर्यात करने की अनुमति देता है जैसे कि उन्हें ओब्जे-सी या स्विफ्ट से बुलाया जा सकता है। – masukomi

+1

क्या कोई एमओसीएल की वर्तमान स्थिति जानता है? क्या यह सक्रिय रूप से विकसित किया जा रहा है? क्या यह एक्सकोड के अंदर संकलित नवीनतम एलएलवीएम बिट का समर्थन करता है? नवीनतम उपलब्ध जानकारी अब एक वर्ष पुरानी है ... क्या आपके पास कोई खबर है? –

0

वहाँ भी मौजूद है मोबाइल कॉमन लिस्प 1

+0

क्या आपने वास्तव में इसका उपयोग किया था? –

3

Clozure कॉमन लिस्प (सीसीएल) एआरएम पर लिनक्स में चलाता है, और गैरी बायर्स बहुत पहले एक प्रयोगात्मक iPhone संस्करण बनाया है, लेकिन यह केवल एक जेल टूट iPhone पर चल पाएंगे । समस्या यह है कि सीसीएल कंपाइलर निष्पादन योग्य कोड लिखता है, लेकिन आईओएस ऑफ-द-बॉक्स एक लिखने योग्य पृष्ठ को निष्पादन योग्य बनाने की अनुमति नहीं देता है, इसलिए आप कभी भी उस कोड को नहीं चला सकते हैं।

हमने कोड को डालने के बारे में चर्चा की है कि आईओएस ऐप वाले जहाज केवल पढ़ने-योग्य कोड अनुभाग में हैं, और बाइट-कोड कंपाइलर जोड़ रहे हैं, ताकि रन-टाइम पर बनाए गए कोड को काफी तेज़ी से व्याख्या किया जा सके, लेकिन किसी ने भी उस परियोजना को निधि देने की पेशकश नहीं की है, इसलिए यह नहीं हुआ है।

आपको लगता है कि हम रन-टाइम पर बनाए गए कोड की व्याख्या कर सकते हैं, लेकिन मौजूदा सीसीएल "दुभाषिया" इसे निष्पादित करने से पहले गैर-तुच्छ कोड को संकलित करता है।

एमओसीएल शायद अन्य ऐप्स से कॉल करने योग्य कोड लिखने का आपका सबसे अच्छा विकल्प है, लेकिन यह केवल एक अनुमान है, क्योंकि मैंने इसका उपयोग नहीं किया है।

संबंधित मुद्दे