.\" Copyright (c) 2007-2022, The CHICKEN Team .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. The name of the authors may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" .Dd Apr 26, 2017 .Dt CSC 1 .Os .Sh "نام (NAME)" .Nm csc .Nd برنامه گرداننده برای کامپایلر اسکیم CHICKEN .Sh "خلاصه دستور (SYNOPSIS)" .Nm .Op Ar OPTION ... .Op Ar FILENAME ... .Sh "توضیحات (DESCRIPTION)" دستور .Nm برنامهای است که کامپایلر CHICKEN و کامپایلر C سیستم میزبان را برای تولید یک فایل اجرایی از فایل منبع اسکیم (Scheme) یا فایلهای C تولیدشده توسط CHICKEN فراخوانی میکند. .Pp پارامتر .Ar FILENAME نام فایل منبع اسکیم با پسوند اختیاری، یا نام فایل منبع C/C++/Objective-C، فایل شیء (object) یا کتابخانه با پسوند است. گزینه .Ar OPTION میتواند یکی از موارد زیر باشد: .Pp گزینههای عمومی: .Bl -tag -width Ds .It Fl h , Fl help نمایش متن راهنما و خروج. .It Fl v , Fl verbose نمایش یادداشتهای کامپایلر و فراخوانیهای ابزارها. .It Fl vv نمایش اطلاعات درباره پیشرفت ترجمه کد. .It Fl vvv نمایش اطلاعات درباره تمام مراحل کامپایل. .It Fl version نمایش نسخه کامپایلر اسکیم و خروج. .It Fl release نمایش شماره انتشار و خروج. .El .Pp گزینههای فایل و مسیر: .Bl -tag -width Ds .It Fl o Ar FILENAME , Fl output-file Ar FILENAME تعیین نام فایل اجرایی مقصد. .It Fl I Ar PATHNAME , Fl include-path Ar PATHNAME تعیین مسیر جایگزین برای فایلهای include. .It Fl to-stdout نوشتن خروجی کامپایلر در stdout .Po به معنی -t است Pc . .It Fl s , Fl shared , Fl dynamic تولید فایل شیء اشتراکی با قابلیت بارگذاری پویا (shared object). .El .Pp گزینههای زبان: .Bl -tag -width Ds .It Fl D Ar SYMBOL , Fl feature Ar SYMBOL ثبت شناسه ویژگی (feature identifier). .It Fl no-feature Ar SYMBOL غیرفعال کردن شناسه ویژگی توکار. .It Fl c++ کامپایل از طریق یک فایل منبع C++ .Pq .cpp . .It Fl objc کامپایل از طریق فایل منبع Objective-C .Pq \&.m . .El .Pp گزینههای مرتبط با نحو (Syntax): .Bl -tag -width Ds .It Fl i , Fl case-insensitive عدم حفظ بزرگی و کوچکی حروف در نمادهای خواندهشده. .It Fl K , Fl keyword-style Ar STYLE فعالسازی نحو جایگزین کلیدواژه .Po پیشوند، پسوند یا هیچکدام Pc . .It Fl no-parentheses-synonyms غیرفعال کردن مترادفهای جداکننده لیست. .It Fl no-symbol-escape غیرفعال کردن پشتیبانی از نمادهای اسکیپشده. .It Fl r7rs-syntax غیرفعال کردن افزونههای CHICKEN برای نحو R7RS. .It Fl compile-syntax ماکروها در زمان اجرا در دسترس قرار میگیرند. .It Fl j Ar MODULE , Fl emit-import-library Ar MODULE نوشتن اطلاعات ماژول در زمان کامپایل در فایلی جداگانه. .It Fl J , Fl emit-all-import-libraries تولید کتابخانههای ایمپورت برای تمام ماژولهای تعریفشده. .It Fl no-compiler-syntax غیرفعالسازی بسط ماکروهای کامپایلر. .It Fl m Ar NAME , Fl module Ar NAME قرار دادن کد کامپایلشده در ماژولی با نام دادهشده. .It Fl M , Fl module-registration همیشه کد ثبت ماژول تولید شود، حتی زمانی که کتابخانههای ایمپورت منتشر میشوند. .It Fl N , Fl no-module-registration کد ثبت ماژول تولید نشود. اولویت بالاتری نسبت به .Fl module-registration دارد. .El .Pp گزینههای ترجمه (Translation): .Bl -tag -width Ds .It Fl x , Fl explicit-use عدم استفاده از واحدهای .Sq library و .Sq eval به صورت پیشفرض. .It Fl P , Fl check-syntax توقف کامپایل پس از بسط ماکروها. .It Fl A , Fl analyze-only توقف کامپایل پس از نخستین مرحله تحلیل. .El .Pp گزینههای اشکالزدایی (Debugging): .Bl -tag -width Ds .It Fl w , Fl no-warnings غیرفعالسازی هشدارها. .It Fl d0 , Fl d1 , Fl d2 , Fl d3 , Fl debug-level Ar NUMBER تنظیم سطح اطلاعات اشکالزدایی در دسترس. .It Fl no-trace غیرفعالسازی اطلاعات ردیابی اولیه اشکالزدایی. .It Fl profile تولید اطلاعات پروفایل عملکرد توسط فایل اجرایی. .It Fl accumulate-profile تولید اطلاعات پروفایل در فایل اجرایی به صورت الحاقی (append). .It Fl profile-name Ar FILENAME نام فایل اطلاعات پروفایل تولیدشده. .It Fl types Ar FILENAME بارگذاری پایگاهداده انواع داده اضافی. .El .Pp گزینههای بهینهسازی: .Bl -tag -width Ds .It Fl O , Fl O0 , Fl O1 , Fl O2 , Fl O3 , Fl O4 , Fl O5 , Fl optimize-level Ar NUMBER فعالسازی مجموعههای مشخصی از گزینههای بهینهسازی. .It Fl optimize-leaf-routines فعالسازی بهینهسازی توابع برگ (leaf routine). .It Fl no-usual-integrations روالهای استاندارد ممکن است دوباره تعریف شوند. .It Fl u , Fl unsafe غیرفعال کردن بررسیهای ایمنی. .It Fl local فرض بر این است که متغیرهای سراسری تنها در فایل جاری تغییر میکنند. .It Fl b , Fl block فعالسازی کامپایل بلوکی. .It Fl disable-interrupts غیرفعال کردن وقفهها در کد کامپایلشده. .It Fl f , Fl fixnum-arithmetic فرض بر اینکه تمام اعداد از نوع fixnum هستند. .It Fl disable-stack-overflow-checks غیرفعال کردن تشخیص سرریز پشته (stack overflow). .It Fl inline فعالسازی درونخطسازی (inlining). .It Fl inline-limit Ar LIMIT تنظیم آستانه درونخطسازی. .It Fl inline-global فعالسازی درونخطسازی میانماژولی. .It Fl specialize انجام تخصیص ویژه مبتنی بر نوع برای فراخوانیهای اولیه. .It Fl oi Ar FILENAME , Fl emit-inline-file Ar FILENAME تولید فایل شامل روالهای قابل درونخطسازی سراسری .Po مستلزم Fl inline Fl local است Pc . .It Fl consult-inline-file Ar FILENAME بارگذاری صریح فایل اینلاین. .It Fl ot Ar FILENAME , Fl emit-types-file Ar FILENAME نوشتن اطلاعات اعلان نوع در فایل. .It Fl no-argc-checks غیرفعال کردن بررسیهای تعداد آرگومانها. .It Fl no-bound-checks غیرفعال کردن بررسیهای متغیر مقید. .It Fl no-procedure-checks غیرفعال کردن بررسیهای فراخوانی روال. .It Fl no-procedure-checks-for-usual-bindings غیرفعال کردن بررسی فراخوانی روال تنها برای پیوندهای معمول. .It Fl no-procedure-checks-for-toplevel-bindings غیرفعال کردن بررسی فراخوانی روال برای پیوندهای سطح بالا. .It Fl strict-types فرض اینکه متغیرها نوع داده خود را تغییر نمیدهند. .It Fl lfa2 انجام مرحله اضافی تحلیل جریان سبکوزن (flow-analysis). .It Fl unroll-limit Ar LIMIT تعیین محدودیت درونخطسازی برای فراخوانیهای بازگشتی به خود. .It Fl merge-reusable-closures فعال کردن بازاستفاده از کلوژرها (closures). .It Fl merge-shareable-closures فعال کردن اشتراکگذاری کلوژرها. .El .Pp گزینههای پیکربندی: .Bl -tag -width Ds .It Fl unit Ar NAME کامپایل فایل به عنوان یک واحد کتابخانه. .It Fl uses Ar NAME اعلان واحد کتابخانه به عنوان استفادهشده. .It Fl heap-size Ar NUMBER تعیین اندازه هیپ (heap) فایل اجرایی کامپایلشده. .It Fl nursery Ar NUMBER Fl stack-size Ar NUMBER تعیین اندازه nursery فایل اجرایی کامپایلشده. .It Fl X Ar FILENAME , Fl extend Ar FILENAME بارگذاری فایل قبل از آغاز کامپایل. .It Fl prelude Ar EXPRESSION افزودن عبارت به ابتدای فایل منبع. .It Fl postlude Ar EXPRESSION افزودن عبارت به انتهای فایل منبع. .It Fl prologue Ar FILENAME گنجاندن فایل قبل از فایل منبع اصلی. .It Fl epilogue Ar FILENAME گنجاندن فایل بعد از فایل منبع اصلی. .It Fl e , Fl embedded کامپایل به صورت تعبیهشده (embedded) .Po عدم تولید .Sq Fn main .Pc . .It Fl gui کامپایل به عنوان برنامه کاربردی دارای رابط گرافیکی (GUI). .It Fl link Ar NAME پیوند دادن افزونه با فایل اجرایی کامپایلشده .Po به معنی Sq Fl uses است .Pc . .It Fl R Ar NAME , Fl require-extension Ar NAME الزام افزونه و وارد کردن (import) آن در کد کامپایلشده. .It Fl dll , Fl library کامپایل چندین واحد درون یک کتابخانه پویا. .It Fl libdir Ar DIRECTORY بازنویسی مکان دایرکتوری کتابخانه زمان اجرا. .El .Pp گزینههای مربوط به سایر مراحل: .Bl -tag -width Ds .It Fl C Ar OPTION ارسال گزینه به کامپایلر C. .It Fl L Ar OPTION ارسال گزینه به پیونددهنده (linker). .It Fl I Ns Ar