Sistem modul Lua sederhana: modul adalah tabel plain dan dicache di package.loaded, package.preload, dan package.searchers.
Fennel mengompilasi file .fnl dulu jadi Lua saat require, tapi macro ditangani secara terpisah melalui require-macros/import-macros.
Fennel membatasi ekspor macro bersama fungsi dalam satu file, solusi awal adalah modul macro terpisah dengan import-macros.
Bekerja dengan nama modul yang konsisten di macro dicapai dengan teknik relative-require dan init.fnl/init-macros.fnl.
Dengan flag --require-as-include, compiler menyisipkan dependensi ke package.preload, namun tidak untuk macro tanpa trik tambahan.
Trik eval-compiler memungkinkan memuat macro dalam satu berkas bersama fungsi, meniru package.preload untuk macro.
Menggabungkan library dengan dependensi macro butuh skrip build yang men-include dan mem-patch nama modul macro supaya simpan di macro-loaded.
Penulis mengusulkan perbaikan Fennel: menghapus modul macro, dukung macro file-lokal bersama fungsi, dan full kvalifikasi simbol pada package.loaded mirip Clojure.
Get notified when new stories are published for "Berita Peretas 🇮🇩 Bahasa Indonesia"