.TH DMD 1 "2026-08-30" "The D Language Foundation" "The D Language Foundation" .SH "نام (NAME)" dmd \- کامپایلر زبان دی ۲ (Digital Mars D2.x) .SH "خلاصه دستور (SYNOPSIS)" .B dmd [\fIفایل‌ها\fR...] [\fIگزینه‌ها\fR...] .SH "توضیحات (DESCRIPTION)" .B dmd کدهای منبع نوشته‌شده به زبان برنامه‌نویسی دی (D) را کامپایل می‌کند. .SH "گزینه‌ها (OPTIONS)" .IP "file, file.d, file.htm, file.html" فایل‌های منبع D برای کامپایل .IP file.di فایل‌های رابط D (فایل‌های هدر D) .IP file.o فایل‌های شیء (Object) برای پیوند دادن .IP file.a فایل‌های کتابخانه برای پیوند دادن .IP @cmdfile فایلی برای خواندن آرگومان‌های خط فرمان بیشتر از آن، که می‌تواند شامل کامنت‌های تک‌خطی با # باشد .IP -allinst تولید کد برای تمام نمونه‌سازی‌های قالب (Template Instantiations) .IP -betterC عدم تولید برخی از اطلاعات زمان اجرا (Runtime) و توابع کمکی .IP -boundscheck=[on|safeonly|off] بررسی محدوده آرایه‌ها: فعال (on)، فقط در توابع @safe (safeonly)، یا غیرفعال (off) .IP -c فقط کامپایل، بدون پیوند دادن (Link) .IP -check=[assert|bounds|in|invariant|out|switch][=[on|off]] فعال یا غیرفعال کردن بررسی‌های خاص .IP -check=[h|help|?] نمایش اطلاعات درباره تمام بررسی‌های موجود .IP -checkaction=[D|C|halt|context] رفتار در صورت شکست assert/boundscheck/finalswitch .IP -checkaction=[h|help|?] نمایش اطلاعات درباره تمام اقدامات بررسی موجود .IP -color روشن کردن خروجی رنگی ترمینال .IP -color=[on|off|auto] اجبار به روشن یا خاموش بودن خروجی رنگی، یا فقط زمانی که خروجی تغییر مسیر نیافته است (پیش‌فرض) .IP -conf=\fIfilename\fR استفاده از فایل پیکربندی در \fIfilename\fR .IP -cov بررسی پوشش کد (Code Coverage) و تولید فایل `.lst` .IP -cov=ctfe گنجاندن کدهای اجرا شده در طول CTFE در گزارش پوشش کد .IP -cov=\fInnn\fR الزام حداقل \fInnn\fR% پوشش کد .IP -cpp=\fIfilename\fR استفاده از \fIfilename\fR به عنوان نام پیش‌پردازنده C برای فایل‌های ImportC .IP -D تولید مستندات .IP -Dd\fIdirectory\fR نوشتن فایل مستندات در \fIdirectory\fR .IP -Df\fIfilename\fR نوشتن فایل مستندات در \fIfilename\fR .IP -d اجازه دادن به ویژگی‌ها و نمادهای منسوخ‌شده (Deprecated) بدون نمایش پیام .IP -de صدور خطا هنگام استفاده از ویژگی‌ها یا نمادهای منسوخ‌شده (توقف کامپایل) .IP -dw صدور پیام هشدار هنگام استفاده از ویژگی‌ها یا نمادهای منسوخ‌شده (پیش‌فرض) .IP -debug کامپایل کدهای دیباگ .IP -debug=\fIident\fR کامپایل کدهای دیباگ مشخص‌شده با شناسه \fIident\fR .IP -debuglib=\fIlibname\fR تنظیم کتابخانه دیباگ نمادین روی \fIlibname\fR .IP -defaultlib=\fIlibname\fR تنظیم کتابخانه پیش‌فرض روی \fIlibname\fR .IP -deps چاپ وابستگی‌های ماژول (imports/file/version/debug/lib) .IP -deps=\fIfilename\fR نوشتن وابستگی‌های ماژول در \fIfilename\fR (فقط importها) .IP -dllimport=[none|defaultLibsOnly|externalOnly|all] مخصوص ویندوز: انتخاب نمادها برای dllimport .IP -edition[=\fINNNN\fR[\fIfilename\fR]] تنظیم ویرایش زبان به سال \fINNNN\fR، اعمال روی \fIfilename\fR .IP -extern-std=\fIstandard\fR تنظیم سازگاری مَنگلینگ نام ++C با استاندارد \fIstandard\fR .IP -extern-std=[h|help|?] فهرست کردن تمام استانداردهای پشتیبانی‌شده .IP -fIBT تولید کد ردیابی شاخه غیرمستقیم (Indirect Branch Tracking) .IP -fPIC تولید کد مستقل از موقعیت (Position Independent Code) .IP -fPIE تولید فایل‌های اجرایی مستقل از موقعیت (Position Independent Executables) .IP -ftime-trace فعال کردن پروفایلر زمان کامپایل، تولید فایل JSON حاوی نتایج .IP -ftime-trace-granularity=\fIμsecs\fR حداقل دقت زمانی (به میکروثانیه) ردیابی‌شده توسط پروفایلر زمان (پیش‌فرض: 500) .IP -ftime-trace-file=\fIfilename\fR مشخص کردن فایل خروجی برای `-ftime-trace` .IP -g افزودن اطلاعات دیباگ نمادین .IP -gdwarf=\fIversion\fR افزودن اطلاعات دیباگ نمادین DWARF (پیش‌فرض: 3) .IP -gf تولید اطلاعات دیباگ برای تمام انواع ارجاع‌داده‌شده .IP -gs همیشه فریم پشته (Stack Frame) تولید شود .IP -gx افزودن کد محافظتی پشته (Stack Stomp) .IP -H تولید فایل هدر D .IP -Hd=\fIdirectory\fR نوشتن فایل هدر در \fIdirectory\fR .IP -Hf=\fIfilename\fR نوشتن فایل هدر در \fIfilename\fR .IP -HC=[silent|verbose] نوشتن معادل هدر ++C در خروجی استاندارد (stdout) .IP -HC=[?|h|help] فهرست کردن گزینه‌های موجود برای تولید فایل هدر ++C .IP -HCd=\fIdirectory\fR نوشتن فایل هدر ++C در \fIdirectory\fR .IP -HCf=\fIfilename\fR نوشتن فایل هدر ++C در \fIfilename\fR به جای stdout .IP --help چاپ راهنما و خروج .IP -I=\fIdirectory\fR جستجوی ماژول‌های وارداتی (import) در \fIdirectory\fR .IP -extI=\fIdirectory\fR جستجوی فایل‌های وارداتی خارج از باینری در حال کامپایل، جهت تنظیم ماژول به عنوان DllImport .IP -i[=\fIpattern\fR] گنجاندن ماژول‌های وارداتی (import) در کامپایل .IP -identifiers=[UAX31|c99|c11|all] مشخص کردن جدول‌های غیر اسکی (non-ASCII) برای شناسه‌های D .IP -identifiers-importc=[UAX31|c99|c11|all] مشخص کردن جدول‌های غیر اسکی برای شناسه‌های ImportC .IP -ignore گزینه منسوخ‌شده؛ پراگماهای پشتیبانی‌نشده اکنون همیشه نادیده گرفته می‌شوند .IP -inline درون‌خطی‌سازی توابع (Inlining) .IP -J=\fIdirectory\fR جستجوی فایل‌های وارداتی متنی (String Imports) در \fIdirectory\fR .IP -L=\fIlinkerflag\fR ارسال \fIlinkerflag\fR به پیونددهنده (Linker) .IP -lib تولید فایل کتابخانه به جای فایل‌های شیء (Object) .IP -lowmem فعال‌سازی زباله‌روب (Garbage Collector) برای خود کامپایلر .IP -m32 تولید کد ۳۲ بیتی .IP -m64 تولید کد ۶۴ بیتی .IP -main افزودن تابع پیش‌فرض ()main در صورت عدم وجود (مثلاً برای تست واحد) .IP -makedeps[=\fIfilename\fR] چاپ وابستگی‌ها در قالب سازگار با Makefile در \fIfilename\fR یا stdout .IP -man باز کردن صفحه راهنما در مرورگر وب .IP -map تولید فایل .map پیونددهنده .IP -mcpu=[baseline|avx|native] تنظیم معماری هدف برای تولید کد .IP -mcpu=[h|help|?] فهرست کردن تمام گزینه‌های معماری .IP -mixin=\fIfilename\fR گسترش و ذخیره mixinها در فایل مشخص‌شده توسط \fIfilename\fR .IP -mv=\fIpackage.module\fR=\fIfilespec\fR استفاده از \fIfilespec\fR به عنوان فایل منبع برای \fIpackage.module\fR .IP -noboundscheck عدم بررسی محدوده آرایه‌ها (منسوخ‌شده، از `-boundscheck=off` استفاده کنید) .IP -nothrow فرض اینکه هیچ استثنایی (Exception) پرتاب نخواهد شد .IP -nothrow-optimizations اجازه به نادیده گرفتن تخریب‌کننده‌ها (Destructors) هنگام بازپیچش پشته ناشی از Error در توابع nothrow .IP -O بهینه‌سازی کد .IP -o- عدم نوشتن فایل شیء (Object) .IP -od=\fIdirectory\fR نوشتن فایل‌های شیء و کتابخانه در \fIdirectory\fR .IP -of=\fIfilename\fR نام‌گذاری فایل خروجی به \fIfilename\fR .IP -op حفظ مسیر منبع برای فایل‌های خروجی .IP -oq نوشتن فایل‌های شیء با نام‌های کاملاً واجد شرایط (Fully Qualified) .IP -os=\fIos\fR تنظیم سیستم‌عامل هدف روی \fIos\fR .IP -P=\fIpreprocessorflag\fR ارسال \fIpreprocessorflag\fR به پیش‌پردازنده C .IP -preview=\fIname\fR فعال‌سازی ویژگی زبانی آینده مشخص‌شده با \fIname\fR .IP -preview=[h|help|?] فهرست کردن تمام ویژگی‌های زبانی آینده .IP -profile پروفایل کردن کارایی زمان اجرای کد تولیدشده .IP -profile=gc پروفایل کردن تخصیص‌های حافظه زمان اجرا .IP -release عدم صدور قراردادها (Contracts) و assertها، و اجرای بررسی محدوده آرایه‌ها فقط در توابع @safe .IP -revert=\fIname\fR بازگردانی تغییر زبانی مشخص‌شده با \fIname\fR .IP -revert=[h|help|?] فهرست کردن تمام تغییرات زبانی قابل بازگردانی .IP -run \fIsrcfile\fR \fIargs\fR کامپایل، پیوند و اجرای برنامه \fIsrcfile\fR .IP -shared تولید کتابخانه مشترک (Shared Library / DLL) .IP -target=\fItriple\fR استفاده از \fItriple\fR به عنوان \fIarch\fR-[\fIvendor\fR-]\fIos\fR[-\fIcenv\fR[-