Egel adalah bahasa skrip fungsional bersamaan yang tidak diketik berdasarkan penulisan ulang kombinator yang bersemangat dengan sintaksis yang ringkas namun sangat kuat.
Penerjemah ini sedang dikembangkan di Linux/MacOS/BSD dan menggunakan icu4c untuk dukungan Unicode, fmt untuk pemformatan, ffi sebagai antarmuka fungsi asing, dan GNU Lightning sebagai backend terdepan.
Penerjemah dapat dikompilasi dengan kompiler C++ saat ini dan menggunakan cmake untuk membangun. Secara umum, Anda memerlukan akses root untuk membangun egel.
Ada sekitar dua cara di mana sistem operasi dan manajer paket menyediakan perpustakaan C++.
Model sumber terbuka (berbagai Unix dan BSD) tempat pustaka C++ dikompilasi dan disimulasikan oleh distributor sistem operasi. Gunakan manajer paket Anda untuk menginstal libicu, libffi, fmt, dan GNU Lightning.
Peringatan: khusus, Ubuntu/Debian tidak dikirimkan bersama GNU Lightning. Anda seharusnya mengkompilasi dan menginstal paket itu sebelum mengkompilasi penerjemah.
Model berbasis vendor (MacOS dan Windows) yang biasanya tidak menyediakan pustaka C++ karena rapuh untuk ditautkan, dan yang biasanya mengkompilasi pustaka ini dari awal dan menghubungkannya secara statis atau mendistribusikannya dengan aplikasi. Tautan ke vendor disediakan sebagai submodul git di direktori vendor dan, Anda sendirian di sini, Anda harus mengunduh dan mengkompilasi perpustakaan tersebut. Ada README.md terpisah di direktori vendor yang seharusnya membantu.
File CMake disediakan untuk kedua model, pilih salah satu yang ingin Anda gunakan dan ganti namanya menjadi CMakeLists.txt
.
Skrip cmake build statis berdasarkan model vendor juga disediakan.
Setelah itu interpreter dibuat dengan cmake
dengan cara standar. Jalankan perintah berikut pada sistem Linux.
mkdir build
cd build
cmake ..
make
catatan: untuk GCC lama Anda terkadang perlu menghapus komentar pada aturan stdc++fs
.
Itu akan memberi Anda seorang juru bahasa bernama egel
dan sejumlah file objek Egel yang dapat dimuat secara dinamis di direktori build
.
Untuk instalasi seluruh sistem, jalankan make install
setelah build sebagai root.
(MacOS dyld tidak lagi mencari di /usr/local/lib, atur jalurnya.)
Pada beberapa sistem, variabel lingkungan EGEL_PATH
perlu disetel. Lihat halaman manual untuk informasi lebih lanjut tentang itu.
Jika Anda tidak ingin melakukan itu, harap dicatat bahwa Anda hanya memerlukan juru bahasa bernama egel
dan pendahuluan di direktori include
untuk tugas-tugas sederhana.
Makefile yang dihasilkan Cmake memungkinkan instalasi lokal dengan perintah:
make DESTDIR=~ install
Dalam hal ini komponen Egel akan diinstal ke direktori ~/usr/local
dan Anda dapat merujuk ke komponen tersebut dengan menambahkan perintah berikut ke file sumber daya shell Anda, meskipun sintaks spesifiknya mungkin berbeda.
export PATH=~/usr/local/bin:$PATH
export EGEL_PATH=.:~/usr/local/lib/egel
Ada halaman manual yang dapat Anda lihat, harus diinstal, atau baca pengenalan singkat penerjemah berikut di internet.
Untuk daftar kombinator bawaan, lihat di sini.
Penerjemah tidak menyediakan pengeditan baris perintah, Anda mungkin ingin membungkusnya dengan perintah alias egel="rlwrap egel"
.
Penerjemah mengalokasikan banyak objek berumur pendek. Jika Anda menginginkan sedikit kecepatan ekstra, mungkin ada gunanya mengganti pengalokasi.
Saya menggunakan jemalloc
di Linux dengan mengatur LD_PRELOAD=`jemalloc-config --libdir`/libjemalloc.so.`jemalloc-config --revision
.