खोज…


टिप्पणियों

यह अनुभाग ओसमल क्या है का एक सिंहावलोकन प्रदान करता है, और क्यों एक डेवलपर इसका उपयोग करना चाहता है।

यह भी ओम्मेल के भीतर किसी भी बड़े विषयों का उल्लेख करना चाहिए, और संबंधित विषयों के लिए लिंक करना चाहिए। चूंकि ओसमल के लिए दस्तावेज़ीकरण नया है, इसलिए आपको उन संबंधित विषयों के प्रारंभिक संस्करण बनाने की आवश्यकता हो सकती है।

स्थापना या सेटअप

OPAM की स्थापना

OPAM OCaml का पैकेज मैनेजर है। यह आपके लिए आसानी से कंपाइलर वर्जन और OCaml पुस्तकालयों का निर्माण और प्रबंधन करता है।

आपके ऑपरेटिंग सिस्टम पर OPAM को स्थापित करने का सबसे आसान तरीका है अपने सिस्टम के लिए पैकेज मैनेजर का उपयोग करना। जैसे apt-get, yum या homebrew।

मैक OSX इंस्टॉलेशन निर्देश

होमब्रेव फॉर्मूला अपडेट करें और OPAM इंस्टॉल करें।

brew update
brew install opam

उबंटू इंस्टॉलेशन निर्देश

add-apt-repository ppa:avsm/ppa
apt-get update
apt-get install ocaml opam

स्रोत से संकलन

wget http://caml.inria.fr/pub/distrib/ocaml-4.03/ocaml-4.03.0.tar.gz
tar xf ocaml-4.03.0.tar.gz
cd ocaml-4.03.0
./configure -prefix installation_path
make world.opt
make install

OPAM की शुरुआत

एक बार जब आप OPAM स्थापित कर लेते हैं, तो opam init और निर्देशों का पालन करें।

एक बार जब आप अपने शेल से OCaml दुभाषिया चलाने में सक्षम होना चाहिए।

$ ocaml
        OCaml version 4.03.0

#

OCaml में आपका पहला कार्यक्रम

अब जब OCaml वितरण आपके पसंदीदा ऑपरेटिंग सिस्टम पर उपलब्ध है, तो हम OCaml में आपका पहला प्रोग्राम बना सकते हैं: Hello World!

हमारे पास OCaml प्रोग्राम लॉन्च करने के अलग-अलग तरीके हैं।

आरईपीएल (टॉपवेल)

आप अपने कोड को अंतःक्रियात्मक रूप से toplevel के साथ निष्पादित कर सकते हैं। OCaml toplevel के साथ , आप UNIX शेल के रूप में OCaml कोड लिख और निष्पादित कर सकते हैं। बाद में, टॉपवेल तुरंत आपके कोड के प्रकार की जांच करता है। तो, आप संकलन और निष्पादन के बिना कोड के कुछ हिस्सों का जल्दी और आसानी से परीक्षण कर सकते हैं।

आप के साथ उच्चस्तरीय शुरू कर सकते हैं ocaml आदेश। फिर, आप एक OCaml वाक्य द्वारा समाप्त वाक्य लिख सकते हैं ;; जिसका तुरंत मूल्यांकन किया जाता है। तिपाई के बाद आपकी अभिव्यक्ति का प्रकार और मान प्रदर्शित होता है:

# "Hello Worlds!";;
- : string = "Hello Worlds!"

आपकी फ़ाइल पर टॉपवेल को लॉन्च करना भी संभव है। आप इस स्पष्टीकरण को उसके बारे में देख सकते हैं।

उच्चस्तरीय में अपने इनपुट सुविधाजनक बनाने के लिए, आप की तरह एक उपकरण का उपयोग कर सकते हैं ledit या rlwrap जो कुछ विशेषताएं (इनपुट इतिहास की तरह) प्रदान करता है:

 $ ledit ocaml

 $ rlwrap ocaml

बाईटकोड को संकलन

हमारे पास दो अलग-अलग कंपाइलर हैं, एक जो बायटकोड को कंपाइल करता है और दूसरा जो नेटिव कोड को कंपाइल करता है। पहला जावा की वर्चुअल मशीन के बाईटेकोड जैसा ही है। तो, बायोटेक कम कुशल है, लेकिन अधिक पोर्टेबल है।

हमारे पास OCaml कंपाइलर द्वारा उपयोग की जाने वाली कुछ एक्सटेंशन फाइलें हैं:

विस्तार परिभाषा
.ml स्रोत कोड (के रूप में .c सी में)
.mli इंटरफ़ेस (सी में .h रूप में)
.cmo स्रोत कोड bytecode में ocamlc द्वारा संकलित
.cmi इंटरफ़ेस कोड ocamlc द्वारा संकलित किया ocamlc
.cmx और .o मूल कोड में ocamlopt द्वारा संकलित स्रोत कोड
.cma लाइब्रेरी (कुछ की बाल्टी *.cmo ) बाईटकोड में
.cmxa और .a देशी कोड में पुस्तकालय
.cmxs देशी कोड में पुस्तकालय (गतिशीलता को लोड करने के लिए)

बाइटकोड कंपाइलर ocamlc

आपके पास अलग-अलग सामान्य विकल्प हैं:

  • -c : लिंकेज प्रक्रिया के बिना एक स्रोत फ़ाइल संकलित करने के लिए (एक निष्पादन योग्य बनाने के लिए)। तो, कमांड ocaml -c foo.ml एक .cmo फाइल ocaml -c foo.ml करता है। C के विपरीत जिसमें हेडर फ़ाइल को संकलित करने की आवश्यकता नहीं है, यह OCaml में .mli फ़ाइल संकलित करने के लिए आवश्यक है: ocaml -c foo.mli

आपको पहले इंटरफ़ेस संकलित करने की आवश्यकता है। जब आप स्रोत फ़ाइल को बाद में संकलित करते हैं, तो OCaml यह जाँचने की कोशिश करता है कि कार्यान्वयन इंटरफ़ेस से मेल खाता है।

.mli फ़ाइल एक अनिवार्य नहीं है। यदि आप .mli फ़ाइल के बिना .ml फ़ाइल संकलित करते हैं, तो OCaml स्वचालित रूप से .cmi फ़ाइल का उत्पादन करेगा।

  • -o : एक निष्पादन योग्य के लिए कुछ .cmo फ़ाइलों को संकलित करने के लिए। उदाहरण के लिए: ocamlc -o program foo.cmo bar.cmo । इन फ़ाइलों को उन आश्रितों द्वारा व्यवस्थित करने की आवश्यकता होती है जिनके लिए पहली फ़ाइल की कोई निर्भरता नहीं है।

  • -I : एक अन्य निर्देशिका को इंगित करने के लिए जहां कंपाइलर संकलन के लिए आवश्यक फ़ाइलें पा सकता है (जैसे इंटरफ़ेस या स्रोत कोड)। यह C कंपाइलर से -I से समान है।

हमारे पास कई अन्य विकल्प हैं। आप अधिक जानकारी के लिए मैनुअल देख सकते हैं।

तो, आप लिख सकते हैं hello.ml अब, और के साथ इस फ़ाइल संकलन ocamlc -o hello hello.ml एक बाईटकोड कार्यक्रम का निर्माण करने के:

let () = print_endline "Hello World!"

let () = ... आपके प्रोग्राम की पहली प्रविष्टि है (जैसे C में main )। बाद, हम "Hello World!" के तर्क के साथ फंक्शन print_endline (मानक पुस्तकालय द्वारा प्रदान) का उपयोग करते हैं। मानक आउटपुट में एक नई पंक्ति के साथ Hello Worlds प्रिंट करने के लिए।

संकलन के बाद, आपके पास .cmo फ़ाइल और .cmi फ़ाइल स्वचालित रूप से संकलक और आपके प्रोग्राम hello द्वारा निर्मित होती है। आप अपना प्रोग्राम खोल सकते हैं, और इस फ़ाइल के शीर्ष में, आप देख सकते हैं:

#!/usr/local/bin/ocamlrun

यही कारण है कि अपने कार्यक्रम की जरूरत का मतलब है ocamlrun कार्यक्रम (वितरण द्वारा प्रदान की) बाईटकोड (JVM) की तरह अमल करने के लिए।

देशी कोड का संकलन

हमारे पास एक और संकलक है जो मूल कोड का उत्पादन करता है। संकलक है: ocamlopt । हालाँकि, परिणामी निष्पादन योग्य अधिकांश अन्य आर्किटेक्चर पर काम नहीं कर सकता है।

ocamlopt रूप में एक ही विकल्प का उपयोग करता है ocamlc ताकि आप निष्पादित कर सकते हैं ocamlopt -o hello hello.ml । के बाद, आप एक .cmx और एक .o फ़ाइल देख सकते हैं।

अंत में, अपने बायोटेक / देशी कोड प्रोग्राम से, आप निष्पादित कर सकते हैं:

$ ./hello
Hello World!
$

विंडोज पर स्थापना (मूल)

परिसर

ये निर्देश विंडोज में देशी OCaml बायनेरिज़ को स्थापित करने के लिए एक प्रक्रिया दिखाता है। यदि आपका ऑपरेटिव सिस्टम Windows 10 (Insider Preview) build 14316 या बाद में आप विंडोज पर उबंटू पर बैश के माध्यम से Windows 10 (Insider Preview) build 14316 भी स्थापित कर सकते हैं। इस स्थिति में, Ubuntu पर OCaml स्थापित करने के निर्देश का पालन करें।

OCaml और Opam इंस्टॉल करें

डाउनलोड OCaml आधिकारिक वितरण । इसमें OCaml कंपाइलर और Opam पैकेट मैनेजर दोनों हैं। मान लीजिए आपने C:/OCaml में सॉफ़्टवेयर इंस्टॉल किया है। यह सुनिश्चित करने के लिए कि आपने OCaml को cmd.exe ओपन किया है और ocaml टाइप ocaml

यदि आप देखते हैं कि संदेश 'ocaml' is not recognized as an internal or external command, operable program or batch file तो आपको अपने पथ (पर्यावरण चर) में C:/OCaml/bin जोड़ना होगा।

पथ में OCaml बायनेरिज़ जोड़ें

Control Panel > System and Security > System > Advanced system settings (on the left) > Environment Variables और फिर System Variable टैब में Path का चयन Edit , फिर Edit

जोड़ें C:/OCaml/bin; सूची में।

सिगविन स्थापित करें

Cygwin के बिना आप Opam का उपयोग नहीं कर सकते। वास्तव में, यदि आप cmd.exe में ओपम टाइपिंग opam खोलने की कोशिश करते हैं, तो यह एक संदेश दिखाता है: Fatal error: exception Unix.Unix_error(20, "create_process", "cygcheck")

Cygwin डाउनलोड करें और इंस्टॉलर शुरू करें। निम्नलिखित पैकेजों की जाँच करना सुनिश्चित करें:

  • automake
  • diffutils
  • libreadline
  • बनाना
  • m4
  • mingw64-x86_64-जीसीसी कोर
  • mingw64-x86_64-जीएमपी
  • mingw64-x86_64-openssl
  • mingw64-x86_64-pkg-config
  • mingw64-x86_64-sqlite3
  • पैच
  • rlwrap
  • खोलना
  • wget

मान लीजिए कि आपने C:/cygwin ( C:/cygwin64 लिए 64 बिट संस्करण) में सॉफ़्टवेयर स्थापित किया है। ओपन cmd और टाइप wget (या C:/cygwin/bin में मौजूद निष्पादन योग्य में से एक) यह जांचने के लिए कि क्या आप सिग्विन के निष्पादन योग्य का उपयोग कर सकते हैं। यदि निष्पादन योग्य नहीं खुलेगा, तो अपने पथ (पर्यावरण चर) में C:/cygwin/bin जोड़ें।

ओपम को कॉन्फ़िगर करें

opam init खोलने के लिए cmd.exe खोलें और opam init टाइप cmd.exe

उसके बाद ocamlfind ( ocamlfind कंपाइलर का हिस्सा) स्थापित करें

opam install ocamlfind
opam config env

जाँच करें कि क्या ocamlfind को cmd.exe में टाइप किया गया है।

आदेश opam config env का उपयोग opam की निष्पादक निर्देशिका को enviroment पथ में जोड़ने के लिए किया जाता है। यदि लॉगआउट करने के बाद आप ocamlfind तक नहीं पहुंच सकते हैं, तो आप इसे निम्नलिखित पंक्ति को जोड़ने के लिए मैन्युअल रूप से जोड़ सकते हैं: C:/Users/<your user>/Documents/.opam/system/bin/

संकुल स्थापित करना

पैकेज ओपम के माध्यम से कमांड के साथ स्थापित होते हैं opam install xyz जहां xyz पैकेज का नाम है।

UTop स्थापित करें

कमांड opam install utop चलाने का प्रयास करें। यदि आपके पास कोई त्रुटि नहीं है, तो utop टाइप करने से निष्पादन योग्य खुल जाएगा।

यदि आप संदेश देखते हैं

[ERROR] The compilation of zed failed at "ocaml setup.ml -build".

आपको मैन्युअल रूप से एकल पैकेज स्थापित करना होगा। फिर से टाइप करने का प्रयास करें:

opam install zed
opam install lambda-term
opam install utop

lambda-term और utop दोनों ही स्थापित नहीं हो सकते हैं। समस्या निवारण अनुभाग देखें।

स्थापना कोर

आप opam install core साथ core पैकेज स्थापित कर सकते हैं। Windows 64 बिट संस्करण (और 64 बिट Cygwin) पर आपको निम्न त्रुटि दिखाई देगी:

[ERROR] core is not available because your system doesn't comply with os != "win32" & ocaml-version = "4.02.3".

समस्या निवारण: नियमित फ़ाइल नहीं बना सकता

यदि नाम xyz.10.1 साथ पैकेज स्थापित करने में विफल रहता है (जहां xyz पैकेज का नाम है, और 10.1 इसका संस्करण) निम्न संदेश के साथ:

install: cannot create regular file '/cygdrive/c/Users/<your user>/Documents/.opam/system/bin/<something>': File exists

आपको इस निर्देशिका में जाना है:

C:\Users\<your user>\Documents\.opam\repo\default\packages\<xyz>\<xyz.10.1>\files 

और फ़ाइल को xyz.10.1.install

समस्या निवारण: साझा लाइब्रेरी लोड नहीं कर सकता

यदि आप कुछ ओपम का पैकेज खोलने की कोशिश करते हैं (जैसे: utop ) और आपको यह त्रुटि दिखाई देती है:

Fatal error: cannot load shared library dlllwt-unix_stubs
Reason: The specified module could not be found.

फिर से opam config env रन करें और निष्पादन योग्य को फिर से खोलने का प्रयास करें।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow