FENNEL(1) General Commands Manual FENNEL(1)

fennel - یک زبان برنامه‌نویسی لیسپ که روی Lua اجرا می‌شود

fennel [--repl] | [--compile filename] | [--eval source] | [filename] [args ...]

این صفحه راهنما به طور خلاصه دستور fennel را شرح می‌دهد.

fennel نقطه ورود اصلی برای Fennel است؛ یک زبان برنامه‌نویسی لیسپ که بر روی محیط‌های زمان اجرای Lua اجرا می‌شود. بدون هیچ گزینه یا آرگومانی، یک حلقه تعاملی خواندن-ارزیابی-چاپ (REPL) را اجرا می‌کند.

در صورت دریافت نام یک فایل به عنوان نخستین آرگومان، آن فایل را اجرا کرده و آرگومان‌های بعدی را به آن ارسال می‌کند. کامپایل پیش از موعد (AOT) با پرچم --compile قابل فراخوانی است، در حالی که قطعه‌کدهای کوتاه را می‌توان با آرگومان --eval ارزیابی کرد.

خلاصه‌ای از گزینه‌ها در زیر آمده است.

شروع یک نشست تعاملی REPL. در صورت ارائه نشدن هیچ آرگومانی، این گزینه پیش‌فرض است.
انجام کامپایل پیش از موعد بر روی فایل ارائه‌شده و نوشتن خروجی Lua در خروجی استاندارد.
ارزیابی یک قطعه کد منبع داده‌شده و چاپ نتیجه.
هنگام اجرای یک REPL یا یک فایل، fennel.searcher به طور پیش‌فرض نصب می‌شود تا تابع require بتواند علاوه بر فایل‌های Lua، فایل‌های Fennel را نیز بارگذاری کند. این پرچم این رفتار را غیرفعال می‌کند. روی کامپایل پیش از موعد تأثیری ندارد.
افزودن مسیر ارائه‌شده به package.path تا تابع require بداند هنگام جستجو برای ماژول‌های Lua در آنجا جستجو کند.
مشابه مورد بالا، اما برای مسیری از Fennel که هنگام جستجو برای ماژول‌های Fennel استفاده می‌شود.
مجاز شمردن VAR1، VAR2 و غیره به عنوان متغیرهای سراسری علاوه بر مجموعه استاندارد سراسری‌ها. این کار بررسی دقیق متغیرهای سراسری را حتی در کامپایل پیش از موعد (که در غیر این صورت غیرفعال بود) فعال می‌کند. برای غیرفعال کردن بررسی متغیرهای سراسری از "*" استفاده کنید.
مشابه مورد بالا، اما بدون در نظر گرفتن مجموعه متغیرهای سراسری استاندارد.
به جای بارگذاری ماژول‌های require شده در زمان اجرا، آن‌ها را به صورت درون‌خطی (inline) در داخل فایل اصلی در حال کامپایل قرار می‌دهد. فقط در هنگام کامپایل پیش از موعد کاربرد دارد.
هنگام کامپایل with-open از قابلیت to-be-closed در نسخه Lua 5.4+ استفاده می‌کند تا از تداخل با ردگیری‌ها (traces) جلوگیری شود.
فراخوانی‌های تابع توکار assert از Fennel با فراخوانی‌هایی به assert-repl جایگزین می‌شوند تا در صورت شکست assertion، یک REPL آغاز شود که بتوانید در آن به صورت تعاملی اشکال‌زدایی کنید.
تعاریف تابع lambda را با fn جایگزین می‌کند، که سربار زمان اجرا ناشی از بررسی تعداد آرگومان‌ها (arity) را حذف می‌کند.
کامپایل عملیات بیتی به منظور استفاده از کتابخانه bitop در LuaJIT به جای عملگرهای بیتی Lua 5.3+.
بارگذاری فایل مشخص‌شده پیش از اجرای هر دستوری.
کامپایل FILE به یک فایل باینری مستقل OUT با استفاده از LUA_LIB و فایل‌های هدر Lua در LUA_DIR. برای جزئیات به --compile-binary --help مراجعه کنید.
عدم محدود کردن محیط کامپایلر (استفاده‌شده در ماکروها) به یک سندباکس حداقلی.
در نظر گرفتن این نمادها به عنوان کلمات کلیدی رزروشده Lua.
چاپ پیام راهنما و خروج
چاپ شماره نسخه و خروج

از متغیر محیطی NO_COLOR برای غیرفعال کردن کدهای فرار در پیام‌های خطا استفاده کنید.

معناشناسی (semantics) بسیار نزدیک به Lua است، بنابراین کتابچه راهنمای مرجع Lua نیز مفید است.

فهرست پستی در https://lists.sr.ht/~technomancy/fennel و سامانه ردیابی مشکلات در https://dev.fennel-lang.org قرار دارد. بیشتر گفتگوها در کانال ‎#fennel در گفتگوی Libera صورت می‌گیرد.

Calvin Rose و Phil Hagelberg و مشارکت‌کنندگان: https://github.com/bakpakin/Fennel/graphs/contributors

حق نشر © 2016-2025، منتشرشده تحت مجوز MIT/X11