CRYSTAL(1) Crystal Compiler Command Line Reference Guide CRYSTAL(1)

crystal - کامپایلر زبان کریستال (Crystal)

crystal دستور [سوییچ‌ها] فایل_برنامه — [آرگومان‌ها]

کریستال (Crystal) یک زبان برنامه‌نویسی با بررسی نوع ایستا (Statically type-checked) است. این زبان با در نظر گرفتن زیبایی زبان روبی (Ruby) و کارایی زبان C طراحی و ساخته شده است.

می‌توانید با فراخوانی کامپایلر به همراه نام یک فایل، برنامه را کامپایل کرده و اجرا کنید:

crystal some_program.cr

فایل‌های کریستال معمولاً با پسوند .cr خاتمه می‌یابند، هرچند این موضوع اجباری نیست.

همچنین می‌توانید از دستور run استفاده کنید:

crystal run some_program.cr

برای ساخت یک فایل اجرایی از دستور build استفاده کنید:

crystal build some_program.cr

این کار یک فایل اجرایی به نام "some_program" ایجاد می‌کند.

توجه داشته باشید که فایل‌های اجرایی تولیدشده به صورت پیش‌فرض کاملاً بهینه‌سازی نشده‌اند. برای فعال کردن بهینه‌سازی‌ها، از پرچم --release استفاده کنید:

crystal build --release some_program.cr

حتماً همیشه برای فایل‌های اجرایی آماده محیط عملیاتی و هنگام اجرای بنچمارک‌ها از --release استفاده کنید.

بهینه‌سازی‌ها به صورت پیش‌فرض فعال نیستند زیرا زمان کامپایل بدون آن‌ها بسیار سریع‌تر است و کارایی برنامه بدون آن‌ها نیز همچنان بسیار خوب است؛ بنابراین این امکان را می‌دهد که از دستور crystal تقریباً به گونه‌ای استفاده شود که گویی یک مفسر است.

crystal-init(1)

ایجاد یک پروژه جدید کریستال

crystal-build(1)

کامپایل یک برنامه کریستال

crystal-docs(1)

تولید مستندات API برای کدهای کریستال

crystal-env(1)

چاپ متغیرهای محیطی برای کامپایلر کریستال

crystal-eval(1)

ارزیابی و اجرای سریع یک برنامه کریستال

crystal-play(1)

اجرای محیط تعاملی و زمین بازی (Playground) کریستال

crystal-run(1)

کامپایل و اجرای یک برنامه کریستال

crystal-spec(1)

کامپایل و اجرای فایل‌های آزمون (Spec) کریستال

crystal-clear_cache

پاک‌سازی حافظه پنهان کامپایلر (واقع در 'CRYSTAL_CACHE_DIR').

crystal-help

نمایش راهنما. برای دریافت راهنمای اختصاصی هر دستور نیز می‌توان گزینه --help یا -h را به هر دستور اضافه کرد.

crystal-version

نمایش نسخه.

crystal-tool-context

نمایش بافتار و موقعیت (Context) برای یک مکان مشخص در کد

crystal-tool-dependencies(1)

نمایش درخت فایل‌های سورس مورد نیاز

crystal-tool-expand

نمایش بسط ماکرو برای یک مکان مشخص در کد

crystal-tool-flags

چاپ تمام مقادیر ماکروی 'flag?'

crystal-tool-format(1)

قالب‌بندی و فرمت فایل‌های سورس کریستال

crystal-tool-hierarchy

نمایش سلسله‌مراتب نوع‌ها (Types) از فایل. همچنین نمایش اعضای کلاس‌ها و ساختارها (Struct) به همراه نوع و اندازه. نوع‌ها را می‌توان با استفاده از گزینه -e با عبارت باقاعده (Regex) فیلتر کرد.

crystal-tool-implementations

نمایش پیاده‌سازی‌ها برای یک فراخوانی مشخص. برای مشخص کردن موقعیت مکان‌نما از --cursor استفاده کنید. قالب موقعیت مکان‌نما به صورت file:line:column است.

crystal-tool-macro_code_coverage

تولید گزارش پوشش کد ماکرو.

crystal-tool-types

نمایش نوع متغیرهای اصلی فایل.

crystal-tool-unreachable(1)

شناسایی متدهایی که هرگز فراخوانی نمی‌شوند

سطح بهینه‌سازی، میزان تلاش تولید کد (Codegen) برای تولید کد بهینه را مشخص می‌کند. این یک تعادل میان کارایی کامپایل (که با هر سطح بهینه‌سازی کاهش می‌یابد) و کارایی زمان اجرا (که با هر سطح بهینه‌سازی افزایش می‌یابد) است.

نسخه‌های بیلد نهایی و عملیاتی معمولاً باید بالاترین سطح بهینه‌سازی را داشته باشند. بهترین نتایج با --release حاصل می‌شود که به طور خودکار --single-module را نیز در بر دارد.

-O0

بدون بهینه‌سازی (پیش‌فرض)

-O1

بهینه‌سازی کم

-O2

بهینه‌سازی متوسط

-O3

بهینه‌سازی بالا

-Os

بهینه‌سازی متوسط با تمرکز بر حجم فایل

-Oz

بهینه‌سازی متوسط با تمرکز تهاجمی بر حجم فایل

مسیری را مشخص می‌کند که کریستال نتایج کامپایل جزئی را برای سرعت بخشیدن به ساخت‌های بعدی در آن ذخیره می‌کند. این مسیر همچنین برای ذخیره موقت فایل‌های اجرایی زمانی که برنامه‌های کریستال به جای 'crystal build' با 'crystal run' اجرا می‌شوند، استفاده می‌شود.

مسیری را تعیین می‌کند که crystal در آن به دنبال زیردستورات خارجی می‌گردد.

مسیرهایی را مشخص می‌کند که کریستال در آن‌ها به دنبال کتابخانه‌ها (باینری) جستجو می‌کند. مسیرهای چندگانه را می‌توان با ":" از هم جدا کرد. این مسیرها به عنوان پرچم‌های -L به لینکر ارسال می‌شوند.

الگوی '$ORIGIN' در ابتدای مسیر به دایرکتوری محل قرارگیری باینری کامپایلر بسط می‌یابد. به عنوان مثال، '$ORIGIN/../lib/crystal' مسیر کتابخانه استاندارد را به صورت عمومی و مستقل از مسیرهای مطلق (با فرض صحیح بودن مکان نسبی) نسبت به مکان کامپایلر حل می‌کند.

مسیرهایی را مشخص می‌کند که کریستال در آن‌ها به دنبال فایل‌های سورس مورد نیاز جستجو می‌کند. مسیرهای چندگانه را می‌توان با ":" از هم جدا کرد.

الگوی '$ORIGIN' در ابتدای مسیر به دایرکتوری محل قرارگیری باینری کامپایلر بسط می‌یابد. به عنوان مثال، '$ORIGIN/../share/crystal/src' مسیر کتابخانه استاندارد را به صورت عمومی و مستقل از مسیرهای مطلق (با فرض صحیح بودن مکان نسبی) نسبت به مکان کامپایلر حل می‌کند.

گزینه‌هایی را برای کامپایلر کریستال تعریف می‌کند تا علاوه بر آرگومان‌های خط فرمان استفاده شوند. ساختار نحوی آن دقیقاً مشابه آرگومان‌های خط فرمان است. این قابلیت هنگام استفاده از کریستال در پیکربندی‌های ساخت مفید است، برای مثال 'CRYSTAL_OPTS=--debug make build'.

shards(1)

https://crystal-lang.org وب‌سایت رسمی.

https://github.com/crystal-lang/crystal مخزن رسمی.

2026-07-23 crystal 1.21.0