LUAC(1) General Commands Manual LUAC(1)

luac - کامپایلر Lua

luac [ options ] [ filenames ]

luac کامپایلر Lua است. این ابزار برنامه‌های نوشته‌شده به زبان برنامه‌نویسی Lua را به فایل‌های باینری تبدیل می‌کند که بعداً می‌توانند بارگذاری و اجرا شوند.

مزایای اصلی پیش‌کامپایل کردن قطعه‌کدها عبارتند از: بارگذاری سریع‌تر، محافظت از کد منبع در برابر تغییرات ناخواستهٔ کاربر، و بررسی نحو (syntax checking) به‌صورت آفلاین.

پیش‌کامپایل کردن به معنی اجرای سریع‌تر نیست، زیرا در Lua قطعه‌کدها همیشه پیش از اجرا به بایت‌کد کامپایل می‌شوند. luac تنها اجازه می‌دهد که این بایت‌کدها برای اجرای بعدی در یک فایل ذخیره شوند.

قطعه‌کدهای پیش‌کامپایل‌شده لزوماً از کد منبع متناظر کوچک‌تر نیستند. هدف اصلی در پیش‌کامپایل، بارگذاری سریع‌تر است.

فایل‌های باینری ایجادشده توسط luac تنها میان معماری‌هایی با اندازهٔ کلمه (word size) و ترتیب بایت (byte order) یکسان قابل‌حمل هستند.

luac یک فایل خروجی واحد شامل بایت‌کدهای تمام فایل‌های منبع داده‌شده تولید می‌کند. به‌طور پیش‌فرض، نام فایل خروجی luac.out است، اما می‌توانید آن را با گزینهٔ -o تغییر دهید.

در خط فرمان، می‌توانید فایل‌های متنی حاوی کد منبع Lua و فایل‌های باینری حاوی قطعه‌کدهای پیش‌کامپایل‌شده را با هم ترکیب کنید. این قابلیت برای ترکیب چند قطعه‌کد پیش‌کامپایل‌شده، حتی از پلتفرم‌های مختلف (اما سازگار)، در یک قطعه‌کد پیش‌کامپایل‌شدهٔ واحد مفید است.

می‌توانید از '-' برای مشخص کردن ورودی استاندارد به عنوان فایل منبع و از '--' برای اعلام پایان گزینه‌ها استفاده کنید (به این معنی که تمام آرگومان‌های باقی‌مانده به عنوان فایل در نظر گرفته می‌شوند، حتی اگر با '-' شروع شوند).

احتمال دارد قالب درونی فایل‌های باینری تولیدشده توسط luac با انتشار نسخهٔ جدیدی از Lua تغییر کند. بنابراین، فایل‌های منبع تمام برنامه‌های Lua را که پیش‌کامپایل می‌کنید ذخیره کنید.

گزینه‌ها باید جداگانه باشند.

فهرستی از بایت‌کد کامپایل‌شده برای ماشین مجازی Lua تولید می‌کند. فهرست کردن بایت‌کدها برای یادگیری دربارهٔ ماشین مجازی Lua مفید است. اگر هیچ فایلی مشخص نشود، luac فایل luac.out را بارگذاری کرده و محتویات آن را فهرست می‌کند.
خروجی را در file، به جای پیش‌فرض luac.out می‌نویسد. (می‌توانید از '-' برای خروجی استاندارد استفاده کنید، اما نه در پلتفرم‌هایی که خروجی استاندارد را در حالت متنی باز می‌کنند.) فایل خروجی می‌تواند یکی از فایل‌های منبع باشد، زیرا تمام فایل‌ها پیش از نوشته شدن فایل خروجی بارگذاری می‌شوند. مراقب باشید فایل‌های ارزشمند را بازنویسی نکنید.
فایل‌ها را بارگذاری می‌کند اما هیچ فایل خروجی‌ای تولید نمی‌کند. عمدتاً برای بررسی نحو و آزمایش قطعه‌کدهای پیش‌کامپایل‌شده استفاده می‌شود: فایل‌های معیوب احتمالاً هنگام بارگذاری خطا تولید می‌کنند. Lua همیشه یک آزمون یکپارچگی دقیق روی قطعه‌کدهای پیش‌کامپایل‌شده انجام می‌دهد. بایت‌کدی که این آزمون را با موفقیت پشت سر بگذارد کاملاً امن است، به این معنا که مفسر را دچار خرابی نخواهد کرد. با این حال، هیچ تضمینی وجود ندارد که چنین کدی کار معقولی انجام دهد. (هیچ تضمینی نمی‌توان داد، زیرا مسئلهٔ توقف غیرقابل‌حل است.) اگر هیچ فایلی مشخص نشود، luac فایل luac.out را بارگذاری کرده و محتویات آن را آزمایش می‌کند. اگر فایل از آزمون یکپارچگی با موفقیت عبور کند، هیچ پیامی نمایش داده نمی‌شود.
پیش از نوشتن فایل خروجی، اطلاعات اشکال‌زدایی را حذف می‌کند. این کار در قطعه‌کدهای بسیار بزرگ در مصرف فضا صرفه‌جویی می‌کند، اما اگر هنگام اجرای قطعه‌کدی که اطلاعات آن حذف شده خطایی رخ دهد، پیام‌های خطا ممکن است حاوی اطلاعات کاملی که معمولاً ارائه می‌دهند نباشند. برای نمونه، شمارهٔ خطوط و نام متغیرهای محلی از بین می‌روند.
اطلاعات نسخه را نمایش می‌دهد.

فایل خروجی پیش‌فرض

lua(1)
http://www.lua.org

پیام‌های خطا باید واضح و گویا باشند.

L. H. de Figueiredo, R. Ierusalimschy and W. Celes

$Date: 2006/01/06 16:03:34 $