CSC(1) General Commands Manual CSC(1)

csc — برنامه گرداننده برای کامپایلر اسکیم CHICKEN

csc [OPTION ...] [FILENAME ...]

دستور csc برنامه‌ای است که کامپایلر CHICKEN و کامپایلر C سیستم میزبان را برای تولید یک فایل اجرایی از فایل منبع اسکیم (Scheme) یا فایل‌های C تولیدشده توسط CHICKEN فراخوانی می‌کند.

پارامتر FILENAME نام فایل منبع اسکیم با پسوند اختیاری، یا نام فایل منبع C/C++/Objective-C، فایل شیء (object) یا کتابخانه با پسوند است. گزینه OPTION می‌تواند یکی از موارد زیر باشد:

گزینه‌های عمومی:

, -help
نمایش متن راهنما و خروج.
, -verbose
نمایش یادداشت‌های کامپایلر و فراخوانی‌های ابزارها.
نمایش اطلاعات درباره پیشرفت ترجمه کد.
نمایش اطلاعات درباره تمام مراحل کامپایل.
نمایش نسخه کامپایلر اسکیم و خروج.
نمایش شماره انتشار و خروج.

گزینه‌های فایل و مسیر:

FILENAME, -output-file FILENAME
تعیین نام فایل اجرایی مقصد.
PATHNAME, -include-path PATHNAME
تعیین مسیر جایگزین برای فایل‌های include.
نوشتن خروجی کامپایلر در stdout (به معنی -t است).
, -shared, -dynamic
تولید فایل شیء اشتراکی با قابلیت بارگذاری پویا (shared object).

گزینه‌های زبان:

SYMBOL, -feature SYMBOL
ثبت شناسه ویژگی (feature identifier).
SYMBOL
غیرفعال کردن شناسه ویژگی توکار.
کامپایل از طریق یک فایل منبع C++ (.cpp).
کامپایل از طریق فایل منبع Objective-C (.m).

گزینه‌های مرتبط با نحو (Syntax):

, -case-insensitive
عدم حفظ بزرگی و کوچکی حروف در نمادهای خوانده‌شده.
, -keyword-style STYLE
فعال‌سازی نحو جایگزین کلیدواژه (پیشوند، پسوند یا هیچ‌کدام).
غیرفعال کردن مترادف‌های جداکننده لیست.
غیرفعال کردن پشتیبانی از نمادهای اسکیپ‌شده.
غیرفعال کردن افزونه‌های CHICKEN برای نحو R7RS.
ماکروها در زمان اجرا در دسترس قرار می‌گیرند.
MODULE, -emit-import-library MODULE
نوشتن اطلاعات ماژول در زمان کامپایل در فایلی جداگانه.
, -emit-all-import-libraries
تولید کتابخانه‌های ایمپورت برای تمام ماژول‌های تعریف‌شده.
غیرفعال‌سازی بسط ماکروهای کامپایلر.
NAME, -module NAME
قرار دادن کد کامپایل‌شده در ماژولی با نام داده‌شده.
, -module-registration
همیشه کد ثبت ماژول تولید شود، حتی زمانی که کتابخانه‌های ایمپورت منتشر می‌شوند.
, -no-module-registration
کد ثبت ماژول تولید نشود. اولویت بالاتری نسبت به -module-registration دارد.

گزینه‌های ترجمه (Translation):

, -explicit-use
عدم استفاده از واحدهای ‘library’ و ‘eval’ به صورت پیش‌فرض.
, -check-syntax
توقف کامپایل پس از بسط ماکروها.
, -analyze-only
توقف کامپایل پس از نخستین مرحله تحلیل.

گزینه‌های اشکال‌زدایی (Debugging):

, -no-warnings
غیرفعال‌سازی هشدارها.
, -d1, -d2, -d3, -debug-level NUMBER
تنظیم سطح اطلاعات اشکال‌زدایی در دسترس.
غیرفعال‌سازی اطلاعات ردیابی اولیه اشکال‌زدایی.
تولید اطلاعات پروفایل عملکرد توسط فایل اجرایی.
تولید اطلاعات پروفایل در فایل اجرایی به صورت الحاقی (append).
FILENAME
نام فایل اطلاعات پروفایل تولیدشده.
FILENAME
بارگذاری پایگاه‌داده انواع داده اضافی.

گزینه‌های بهینه‌سازی:

, -O0, -O1, -O2, -O3, -O4, -O5, -optimize-level NUMBER
فعال‌سازی مجموعه‌های مشخصی از گزینه‌های بهینه‌سازی.
فعال‌سازی بهینه‌سازی توابع برگ (leaf routine).
روال‌های استاندارد ممکن است دوباره تعریف شوند.
, -unsafe
غیرفعال کردن بررسی‌های ایمنی.
فرض بر این است که متغیرهای سراسری تنها در فایل جاری تغییر می‌کنند.
, -block
فعال‌سازی کامپایل بلوکی.
غیرفعال کردن وقفه‌ها در کد کامپایل‌شده.
, -fixnum-arithmetic
فرض بر اینکه تمام اعداد از نوع fixnum هستند.
غیرفعال کردن تشخیص سرریز پشته (stack overflow).
فعال‌سازی درون‌خط‌سازی (inlining).
LIMIT
تنظیم آستانه درون‌خط‌سازی.
فعال‌سازی درون‌خط‌سازی میان‌ماژولی.
انجام تخصیص ویژه مبتنی بر نوع برای فراخوانی‌های اولیه.
FILENAME, -emit-inline-file FILENAME
تولید فایل شامل روال‌های قابل درون‌خط‌سازی سراسری (مستلزم -inline -local -است).
FILENAME
بارگذاری صریح فایل این‌لاین.
FILENAME, -emit-types-file FILENAME
نوشتن اطلاعات اعلان نوع در فایل.
غیرفعال کردن بررسی‌های تعداد آرگومان‌ها.
غیرفعال کردن بررسی‌های متغیر مقید.
غیرفعال کردن بررسی‌های فراخوانی روال.
غیرفعال کردن بررسی فراخوانی روال تنها برای پیوندهای معمول.
غیرفعال کردن بررسی فراخوانی روال برای پیوندهای سطح بالا.
فرض اینکه متغیرها نوع داده خود را تغییر نمی‌دهند.
انجام مرحله اضافی تحلیل جریان سبک‌وزن (flow-analysis).
LIMIT
تعیین محدودیت درون‌خط‌سازی برای فراخوانی‌های بازگشتی به خود.
فعال کردن بازاستفاده از کلوژرها (closures).
فعال کردن اشتراک‌گذاری کلوژرها.

گزینه‌های پیکربندی:

NAME
کامپایل فایل به عنوان یک واحد کتابخانه.
NAME
اعلان واحد کتابخانه به عنوان استفاده‌شده.
NUMBER
تعیین اندازه هیپ (heap) فایل اجرایی کامپایل‌شده.
NUMBER -stack-size NUMBER
تعیین اندازه nursery فایل اجرایی کامپایل‌شده.
FILENAME, -extend FILENAME
بارگذاری فایل قبل از آغاز کامپایل.
EXPRESSION
افزودن عبارت به ابتدای فایل منبع.
EXPRESSION
افزودن عبارت به انتهای فایل منبع.
FILENAME
گنجاندن فایل قبل از فایل منبع اصلی.
FILENAME
گنجاندن فایل بعد از فایل منبع اصلی.
, -embedded
کامپایل به صورت تعبیه‌شده (embedded) (عدم تولید ‘()’).
کامپایل به عنوان برنامه کاربردی دارای رابط گرافیکی (GUI).
پیوند دادن افزونه با فایل اجرایی کامپایل‌شده (به معنی ‘-uses -است’).
NAME, -require-extension NAME
الزام افزونه و وارد کردن (import) آن در کد کامپایل‌شده.
, -library
کامپایل چندین واحد درون یک کتابخانه پویا.
DIRECTORY
بازنویسی مکان دایرکتوری کتابخانه زمان اجرا.

گزینه‌های مربوط به سایر مراحل:

OPTION
ارسال گزینه به کامپایلر C.
OPTION
ارسال گزینه به پیونددهنده (linker).
<DIR>
ارسال “-I<DIR>” به کامپایلر C (افزودن مسیر include).
<DIR>
ارسال “-L<DIR>” به پیونددهنده (افزودن مسیر کتابخانه).
نگه‌داشتن فایل‌های میانی.
توقف پس از کامپایل به فایل‌های شیء (object).
توقف پس از ترجمه به C.
COMPILER
انتخاب کامپایلر C غیر از حالت پیش‌فرض.
COMPILER
انتخاب کامپایلر C++ غیر از حالت پیش‌فرض.
COMPILER
انتخاب پیونددهنده غیر از حالت پیش‌فرض.
پیوند استاتیک با کتابخانه‌ها و افزونه‌های CHICKEN.
<DIR>
ارسال “-F<DIR>” به کامپایلر C (افزودن مسیر فریم‌ورک در Mac OS X).
NAME
ارسال به پیونددهنده در Mac OS X.
PATHNAME
افزودن دایرکتوری به مسیر جستجوی کتابخانه زمان اجرا.
ارسال گزینه‌ها به پیونددهنده.
حذف نمادهای اضافی (strip) از باینری خروجی.

گزینه‌های پرس‌وجو و استعلام:

نمایش دایرکتوری خانگی (جایی که فایل‌های پشتیبانی قرار می‌گیرند).
نمایش فلگ‌های مورد نیاز کامپایلر C و خروج.
نمایش فلگ‌های مورد نیاز پیونددهنده و خروج.
نمایش کتابخانه‌های مورد نیاز و خروج.
نمایش نام کامپایلر C پیش‌فرض مورد استفاده.
نمایش نام کامپایلر C++ پیش‌فرض مورد استفاده.
نمایش نام پیونددهنده پیش‌فرض مورد استفاده.
صرفاً نمایش دستورات اجراشونده بدون اجرای واقعی آن‌ها (به معنی ‘-v -است’).

گزینه‌های مبهم و پیشرفته:

MODES
نمایش خروجی اشکال‌زدایی برای حالت‌های مشخص‌شده.
PATHNAME
استفاده از کامپایلری غیر از پیش‌فرض ‘chicken’.
عدم تولید کدهای ضمنی init و exit.
انتشار پروتوتایپ‌ها برای callbackها قبل از اعلان‌های خارجی.
همیشه تولید مجدد کتابخانه‌های ایمپورت، حتی در صورتی که محتوای آن‌ها تغییری نکرده باشد. رفتار پیش‌فرض حفظ کتابخانه‌های ایمپورت موجود است.
عدم مراجعه به مخزن برای افزونه‌ها.
عدم حذف ماکروهای پوشانده‌شده (shadowed).
کامپایل برای میزبان در شرایط پیکربندی کامپایل چندسکویی (cross-compiling).
بارگذاری افزونه‌ها از مسیر فایل اجرایی.
پیوند دادن فایل پشتیبانی برای استفاده از یک فایل اجرایی مستقرشده (در صورت پشتیبانی روی این پلتفرم، ‘rpath’ را متناسب با آن تنظیم می‌کند.)
تعبیه مانیفست در ویندوز برای جلوگیری از هشدارهای ارتقای دسترسی برای برنامه‌های با نام ‘install’ یا ‘setup’.

گزینه‌ها در صورت عدم ابهام می‌توانند ادغام شوند، به عنوان مثال “-vkfO” همان “-v -k -fixnum-arithmetic -optimize” است.

متغیرهای محیطی زیر رفتار cscرا تغییر می‌دهند:

می‌تواند شامل گزینه‌های پیش‌فرضی باشد که باید به هر فراخوانی csc ارسال شوند.

The csc utility exits 0 on success, and >0 if an error occurs.

chicken(1)

اطلاعات بیشتر را می‌توانید در این آدرس بیابید: راهنمای کاربر CHICKEN.

The CHICKEN Team

گزارش‌های باگ را از طریق ایمیل به این آدرس ارسال کنید: chicken-janitors@nongnu.org

April 26, 2017 Linux 6.12.107+deb13-amd64