Egel เป็นภาษาสคริปต์เชิงฟังก์ชันที่ทำงานพร้อมกันโดยไม่ได้พิมพ์ โดยมีพื้นฐานจากการเขียนใหม่แบบผสมผสานที่กระตือรือร้นด้วยไวยากรณ์ที่กระชับ แต่ทรงพลังอย่างน่าทึ่ง
ล่ามนี้ได้รับการพัฒนาบน Linux/MacOS/BSD และใช้ icu4c สำหรับการรองรับ Unicode, fmt สำหรับการจัดรูปแบบ, ffi เป็นอินเทอร์เฟซฟังก์ชันต่างประเทศ และใช้ GNU lightning เป็นแบ็กเอนด์ล่วงหน้า
ล่ามสามารถคอมไพล์ด้วยคอมไพเลอร์ C++ ปัจจุบันและใช้ cmake เพื่อสร้าง โดยทั่วไป คุณจะต้องมีสิทธิ์เข้าถึงรูทจึงจะสร้าง egel ได้
ระบบปฏิบัติการและตัวจัดการแพ็คเกจจัดเตรียมไลบรารี C++ โดยประมาณสองลักษณะ
โมเดลโอเพ่นซอร์ส (Unixes และ BSD ต่างๆ) ที่ไลบรารี C++ ได้รับการคอมไพล์และกระจายโดยผู้จัดจำหน่ายระบบปฏิบัติการ ใช้ตัวจัดการแพ็คเกจของคุณเพื่อติดตั้ง libicu, libffi, fmt และ GNU lightning
คำเตือน: โดยเฉพาะอย่างยิ่ง Ubuntu/Debian ไม่ได้มาพร้อมกับ GNU Lightning คุณควรจะ คอมไพล์และติดตั้ง แพ็คเกจนั้นก่อนที่จะคอมไพล์ล่าม
โมเดลตามผู้จำหน่าย (MacOS และ Windows) ซึ่งโดยปกติแล้วไลบรารี C++ จะไม่ถูกจัดเตรียมไว้ให้เนื่องจากลิงก์เหล่านี้เปราะบางและมักจะคอมไพล์ไลบรารีเหล่านี้ตั้งแต่เริ่มต้นและเชื่อมโยงไลบรารีเหล่านี้เข้ากับแอปพลิเคชันหรือแจกจ่ายไลบรารีเหล่านั้นด้วยแอปพลิเคชัน ลิงก์ไปยังผู้จำหน่ายมีให้ในรูปแบบโมดูลย่อย git ในไดเร็กทอรีผู้จำหน่าย และคุณจะต้องดาวน์โหลดและคอมไพล์ไลบรารีเหล่านั้นด้วยตนเองที่นี่ มี README.md แยกต่างหากในไดเรกทอรีผู้จำหน่ายซึ่งน่าจะช่วยได้บ้าง
ไฟล์ CMake มีไว้สำหรับทั้งสองรุ่น เลือกไฟล์ที่คุณต้องการใช้และเปลี่ยนชื่อเป็น CMakeLists.txt
นอกจากนี้ยังมีสคริปต์ cmake บิลด์แบบคงที่ตามโมเดลผู้จำหน่ายอีกด้วย
หลังจากนั้นล่ามจะทำด้วย cmake
ในลักษณะมาตรฐาน รันคำสั่งต่อไปนี้บนระบบ Linux
mkdir build
cd build
cmake ..
make
หมายเหตุ: สำหรับ GCC รุ่นเก่า บางครั้งคุณต้องยกเลิกการใส่ข้อคิดเห็นกฎ stdc++fs
นั่นควรให้ล่ามชื่อ egel
และไฟล์อ็อบเจ็กต์ Egel ที่สามารถโหลดได้แบบไดนามิกจำนวนหนึ่งในไดเร็กทอรี build
สำหรับการติดตั้งทั้งระบบ make install
หลังจากบิลด์ในฐานะรูท
(MacOS dyld จะไม่ดูใน /usr/local/lib อีกต่อไป ให้กำหนดเส้นทาง)
ในบางระบบ จำเป็นต้องตั้งค่าตัวแปรสภาพแวดล้อม EGEL_PATH
ดูหน้าคนสำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนั้น
หากคุณไม่ต้องการทำเช่นนั้น โปรดทราบว่าคุณต้องการเพียงล่ามชื่อ egel
และโหมโรงในไดเร็กทอรี include
สำหรับงานง่ายๆ
makefiles ที่สร้างขึ้นโดย Cmake อนุญาตให้มีการติดตั้งในเครื่องด้วยคำสั่ง:
make DESTDIR=~ install
ในกรณีนี้ ส่วนประกอบ Egel จะถูกติดตั้งลงในไดเร็กทอรี ~/usr/local
และคุณอาจอ้างถึงส่วนประกอบเหล่านั้นโดยการเพิ่มคำสั่งต่อไปนี้ลงในไฟล์ทรัพยากรเชลล์ของคุณ แม้ว่าไวยากรณ์เฉพาะอาจแตกต่างกันก็ตาม
export PATH=~/usr/local/bin:$PATH
export EGEL_PATH=.:~/usr/local/lib/egel
มีหน้าคู่มือที่คุณสามารถปรึกษาได้ ควรติดตั้ง หรืออ่านคำแนะนำสั้น ๆ ต่อไปนี้สำหรับล่ามบนอินเทอร์เน็ต
สำหรับรายการตัวรวมบิวท์อินดูที่นี่
ล่ามไม่มีการแก้ไขบรรทัดคำสั่ง คุณอาจต้องการล้อมด้วยคำสั่ง alias egel="rlwrap egel"
ล่ามจัดสรรวัตถุอายุสั้นจำนวนมาก หากคุณต้องการความเร็วเพิ่มขึ้นอีกเล็กน้อย การเปลี่ยนตัวจัดสรรอาจคุ้มค่า
ฉันใช้ jemalloc
บน Linux โดยการตั้งค่า LD_PRELOAD=`jemalloc-config --libdir`/libjemalloc.so.`jemalloc-config --revision