นี่คือคำสั่ง js_of_ocaml ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
js_of_ocaml - OCaml bytecode เป็น Javascript คอมไพเลอร์
DESCRIPTION
js_of_ocaml(1) เป็นคอมไพเลอร์จากโปรแกรม OCaml bytecode ถึง Javascript มันทำให้
สามารถเขียนโปรแกรม OCaml ที่ทำงานบนเว็บเบราว์เซอร์ได้
มันมาพร้อมกับการผูกมัดสำหรับ API ของเบราว์เซอร์ส่วนใหญ่และโปรแกรมที่สร้างขึ้น
ได้รับการวัดให้ทำงานได้เร็วขึ้นโดยปกติล่าม OCaml bytecode
การใช้
โปรแกรมของคุณจะต้องคอมไพล์ก่อนโดยใช้คอมไพเลอร์ OCaml bytecode ocamlc(1)
การโยงจาวาสคริปต์ เช่นเดียวกับส่วนขยายไวยากรณ์ที่เกี่ยวข้องนั้น จัดทำโดย
js_of_ocaml บรรจุภัณฑ์
ocamlfind ocamlc - แพ็คเกจ js_of_ocaml - แพ็คเกจ js_of_ocaml.syntax \
-syntax camlp4o -linkpkg -o input_file.byte input_file.ml
จากนั้นเรียกใช้ js_of_ocaml(1) คอมไพเลอร์เพื่อผลิตโค้ด Javascript
js_of_ocaml [ ตัวเลือก ] input_file.byte
OPTIONS
ตัวเลือกบรรทัดคำสั่งต่อไปนี้ได้รับการยอมรับโดย js_of_ocaml(1)
-debug ชื่อ
โมดูลดีบัก ชื่อ
-ปิดการใช้งาน ชื่อ
ปิดการใช้งานการเพิ่มประสิทธิภาพ ชื่อ
-น่ารัก
สวยพิมพ์เอาต์พุต
-debuginfo
ข้อมูลการดีบักเอาท์พุต
-นอยไลน์
ปิดการใช้งาน inlining
- โนรันไทม์
ไม่รวมรันไทม์มาตรฐาน
-ระดับสูง
รวบรวมระดับบนสุด
-I dir เพิ่ม dir ในรายการรวมไดเรกทอรี
-o ไฟล์
ตั้งชื่อไฟล์เอาท์พุตเป็น ไฟล์
-ช่วยด้วย แสดงรายการตัวเลือก
--ช่วยด้วย แสดงรายการตัวเลือก
คุณสมบัติ, ข้อ จำกัด
ควรรองรับไลบรารีมาตรฐาน OCaml ทั้งหมด ยกเว้นช่องสัญญาณอินพุต/เอาต์พุต
การอ้างอิงที่อ่อนแอ และฟังก์ชันส่วนใหญ่ของโมดูล Sys ห้องสมุดเสริม เช่น Bigarray,
ไม่รองรับ Unix, Thread หรือ Str
Tail call ไม่ได้รับการปรับให้เหมาะสมโดยทั่วไป อย่างไรก็ตาม ฟังก์ชันเรียกซ้ำตัวเอง (เมื่อ tail
การเรียกเป็นฟังก์ชันเอง) ถูกคอมไพล์เป็นลูป
โมดูลแบบเรียกซ้ำไม่ได้รับการสนับสนุนในขณะนี้
การแสดงข้อมูลจะแตกต่างจากปกติ เนื่องจากเหตุผลด้านประสิทธิภาพ ที่โดดเด่นที่สุดคือ
จำนวนเต็มคือ 32 บิต (แทนที่จะเป็น 31 หรือ 63 บิต) และทศนิยมจะไม่อยู่ในกรอบ เป็นผลให้,
marshalling, การเปรียบเทียบแบบ polymorphic และ hashing functions สามารถให้ผลลัพธ์ที่แตกต่างกัน
กว่าปกติ:
· ไม่รองรับการจัดเรียงของทุ่น (งาน unmarshalling);
· ฟังก์ชันแฮช polymorphic จะไม่ให้ผลลัพธ์แบบเดียวกันในโครงสร้างข้อมูล
ที่มีลูกลอย;
· ฟังก์ชันเหล่านี้อาจมีแนวโน้มที่จะล้น stack เนื่องจาก Javascript stack มีขนาดเล็ก
ใช้ js_of_ocaml ออนไลน์โดยใช้บริการ onworks.net