DUNE-DESCRIBE(1) Dune Manual DUNE-DESCRIBE(1)

dune-describe - توصیف فضای کاری.

dune describe [COMMAND] …

آنچه را که در فضای کاری فعلی وجود دارد به شکل خوانا برای انسان یا ماشین توصیف می‌کند. به طور پیش‌فرض، این دستور توصیفی خوانا برای انسان از فضای کاری فعلی ارائه می‌دهد. این خروجی برای انسان در نظر گرفته شده و برای پردازش ماشینی مناسب نیست. به ویژه اینکه دارای نسخه‌بندی نیست. اگر می‌خواهید خروجی این دستور را در یک برنامه تفسیر کنید، باید از گزینهٔ --format برای تعیین قالب ماشین‌خوان و همچنین گزینهٔ --lang برای دریافت خروجی پایدار استفاده کنید.

چاپ aliasها در یک دایرکتوری مشخص. مشابه ls عمل می‌کند.
فهرست کردن contextهای ساخت موجود در فضای کاری.
چاپ فهرست تمام depextهای موجود
چاپ محیط (متغیرهای محیطی) یک دایرکتوری.
چاپ کتابخانه‌های خارجی مورد نیاز برای ساخت پروژه. این یک مجموعهٔ تقریبی از کتابخانه‌ها است.
چاپ کتابخانه‌های نصب‌شده روی سیستم.
چاپ مسیر فایل اجرایی با استفاده از همان منطق ارزیابی مورد استفاده در [dune exec].
چاپ اطلاعات دربارهٔ فایل‌های opam کشف‌شده.
چاپ اطلاعات مربوط به ورودی‌ها بر پایهٔ هر بسته.
زیردستورهای مربوط به مدیریت بسته
ساخت FILE مشخص‌شده و چاپ خروجی پیش‌پردازش‌شده.
خروجی گرفتن از قوانین (rules).
چاپ targetها در یک دایرکتوری مشخص. مشابه ls عمل می‌کند.
چاپ آزمون‌های تعریف‌شده در پروژه. قالب خروجی این دستور آزمایشی است و بدون اطلاع قبلی ممکن است تغییر کند
چاپ توصیفی از ساختار فضای کاری. در صورت مشخص شدن دایرکتوری‌های DIRS، فقط آن دایرکتوری‌های فضای کاری در نظر گرفته می‌شوند.

توصیفی از ساختار فضای کاری را چاپ می‌کند. در صورت مشخص شدن دایرکتوری‌های DIRS، فقط آن دایرکتوری‌های فضای کاری در نظر گرفته می‌شوند.

--action-stderr-on-success=VAL
مشابه --action-stdout-on-success اما برای خطای استاندارد به جای خروجی استاندارد اعمال می‌شود. یک مقدار پیش‌فرض مناسب برای مونو-ریپازیتوری‌های بزرگ --action-stdout-on-success=swallow --action-stderr-on-success=must-be-empty است. این کار تضمین می‌کند که یک ساخت موفقیت‌آمیز، خروجی خالی و «تمیز» داشته باشد.
--action-stdout-on-success=VAL
نحوهٔ برخورد با خروجی استاندارد اکشن‌ها را در زمان موفقیت آن‌ها مشخص می‌کند. مقادیر ممکن عبارتند از: print برای چاپ ساده در خروجی Dune، swallow برای نادیده گرفتن کامل آن و must-be-empty برای الزام به اینکه اکشن هیچ چیزی چاپ نکرده باشد. با مقدار must-be-empty، اگر اکشن چیزی در خروجی استاندارد خود چاپ کند، Dune آن را ناموفق تلقی خواهد کرد. پیش‌فرض print است.
--build-info
نمایش اطلاعات ساخت.
--context=CONTEXT (absent=default)
بافت ساخت (context) مورد استفاده.
--display-separate-messages
جداسازی پیام‌های خطا با یک خط خالی.
--error-reporting=VAL (absent=deterministic)
زمان گزارش خطاهای ساخت را کنترل می‌کند. مقدار early خطاها را به محض کشف شدن گزارش می‌دهد. مقدار deterministic خطاها را در پایان فرایند ساخت با ترتیبی معین گزارش می‌کند. مقدار twice هر خطا را دو بار گزارش می‌دهد: یک بار به محض کشف خطا و بار دیگر در پایان ساخت، با ترتیبی معین.
-f, --force
اجبار اکشن‌های مرتبط با aliasها به اجرای دوباره حتی اگر وابستگی‌های آن‌ها تغییر نکرده باشد.
--file-watcher=VAL (absent=automatic)
سازوکار تشخیص تغییرات در مبدا (source). مقدار Automatic باعث می‌شود dune یک برنامهٔ خارجی را برای تشخیص تغییرات اجرا کند. مقدار Manual برای آگاه‌سازی دستی dune از تغییر فایل‌ها است.
--format=FORMAT (absent=sexp)
مقدار FORMAT باید sexp یا csexp باشد
--lang=VERSION (absent=0.1)
رفتاری مشابه با این نسخه از Dune داشته باشد.
--no-recursive
زیردایرکتوری‌ها پیمایش نشوند. فقط دایرکتوری‌های ارائه‌شده، یا ریشهٔ فضای کاری در صورت عدم تعیین در نظر گرفته می‌شوند.
--passive-watch-mode
مشابه [--watch]، اما فرایند ساخت را فقط زمانی شروع می‌کند که از خارج توسط یک RPC دستور داده شود.
--sandbox=VAL (absent DUNE_SANDBOX env)
تنظیم حالت محیط ایزوله (sandboxing). برخی اکشن‌ها نیازمند حالت سندباکس خاصی هستند، بنابراین این تنظیم را نادیده می‌گیرند. مقادیر مجاز عبارتند از: none، symlink، copy، hardlink.
--sanitize-for-tests
پاک‌سازی مسیرهای مطلق در آیتم‌های فضای کاری و UIDهای مربوطه، به طوری که خروجی تکرارپذیر (reproducible) باشد.
--stop-on-first-error
توقف فرایند ساخت به محض مواجهه با اولین خطا.
-w, --watch
به جای پایان دادن به فرایند ساخت پس از اتمام، به طور مداوم منتظر تغییرات فایل‌ها می‌ماند.
--wait-for-filesystem-clock
برنامهٔ Dune خلاصهٔ محتوای (digest) فایل‌ها را برای بهبود کارایی تدریجی (incremental) ذخیره می‌کند. این خلاصه‌ها خود کش می‌شوند. در برخی موارد، Dune برای اطمینان‌پذیری نیاز دارد که برخی مدخل‌های کش خلاصه را حذف کند. این گزینه باعث می‌شود Dune منتظر جلو رفتن ساعت سیستم فایل بماند تا نیازی به حذف چیزی نداشته باشد. احتمالاً نیازی به این گزینه نخواهید داشت؛ این گزینه بیشتر برای توسعه‌دهندگان Dune کاربرد دارد تا آزمون‌های Dune روی کش خلاصه تکرارپذیرتر شوند.
--with-deps
آیا وابستگی‌های بین ماژول‌ها چاپ شوند یا خیر.
--with-pps
آیا وابستگی‌ها به بازنویس‌های ppx (که در زمان کامپایل فراخوانی می‌شوند) در نظر گرفته شوند یا خیر..SH "گزینه‌های عمومی (COMMON OPTIONS)"

این گزینه‌ها بین تمام دستورها مشترک هستند.

--always-show-command-line
همیشه خط فرمان کامل برنامه‌های اجراشده توسط dune را نمایش می‌دهد.
--auto-promote
ارتقای خودکار فایل‌ها. این گزینه مشابه اجرای dune promote پس از ساخت است.
--build-dir=FILE (در صورت عدم تعیین، متغیر محیطی DUNE_BUILD_DIR)
دایرکتوری ساخت مشخص‌شده. در صورت عدم تعیین، _build در نظر گرفته می‌شود
--cache=VAL (در صورت عدم تعیین، متغیر محیطی DUNE_CACHE)
فعال یا غیرفعال کردن حافظه موقت (کَش) Dune (یکی از مقادیر disabled، enabled-except-user-rules یا enabled). مقدار پیش‌فرض `enabled-except-user-rules' است.
--cache-check-probability=VAL (در صورت عدم تعیین، متغیر محیطی DUNE_CACHE_CHECK_PROBABILITY)
بررسی بازتولیدپذیری ساخت با اجرای مجدد قواعدی که به‌صورت تصادفی انتخاب شده‌اند و مقایسه نتایج آن‌ها با موارد ذخیره‌شده در کَش Dune. نکته: افزایش احتمال این بررسی‌ها سرعت ساخت را کاهش می‌دهد. احتمال پیش‌فرض صفر است، یعنی هیچ قاعده‌ای بررسی نمی‌شود.
--cache-storage-mode=VAL (در صورت عدم تعیین، متغیر محیطی DUNE_CACHE_STORAGE_MODE)
حالت ذخیره‌سازی کَش Dune (یکی از مقادیر auto، hardlink یا copy). مقدار پیش‌فرض `hardlink' است.
--config-file=FILE
بارگذاری این فایل پیکربندی به‌جای فایل پیش‌فرض.
--debug-backtraces
همیشه ردگیری بازگشتی (backtrace) استثناها را چاپ می‌کند.
--debug-dependency-path
در صورت بروز خطا، مسیر وابستگی را از هدف‌های موجود در خط فرمان تا قاعده‌ای که شکست خورده است، چاپ می‌کند.
--debug-package-logs (در صورت عدم تعیین، متغیر محیطی DUNE_DEBUG_PACKAGE_LOGS)
هنگام ساخت بسته‌ها، همیشه گزارش‌های استاندارد را چاپ می‌کند
--default-target=TARGET (در صورت عدم تعیین=@@default)
تعیین هدف پیش‌فرضی که در صورت مشخص نشدن هیچ هدفی برای dune build استفاده می‌شود.
--diff-command=VAL (در صورت عدم تعیین، متغیر محیطی DUNE_DIFF_COMMAND)
دستور شل برای مقایسه (diff) فایل‌ها. برای غیرفعال کردن چاپ تفاوت‌ها از - استفاده کنید.
--disable-promotion (در صورت عدم تعیین، متغیر محیطی DUNE_DISABLE_PROMOTION)
غیرفعال کردن تمام قواعد ارتقا (promotion)
--display=MODE
کنترل حالت نمایش Dune. برای جزئیات بیشتر به dune-config(5) مراجعه کنید. مقادیر معتبر برای این گزینه عبارتند از progress، verbose، short، quiet یا tui.
--dump-gc-stats=FILE
تخلیه آمارهای زباله‌روب (garbage collector) در یک فایل پس از اتمام ساخت.
--help[=FMT] (پیش‌فرض=auto)
نمایش این راهنما در قالب FMT. مقدار FMT باید یکی از مقادیر auto، pager، groff یا plain باشد. با انتخاب auto، در صورتی که متغیر محیطی TERM برابر dumb یا تعریف‌نشده باشد، قالب به‌صورت pager یا plain خواهد بود.
--ignore-promoted-rules
نادیده گرفتن قواعد دارای (mode promote)، به جز مواردی که دارای (only ...) هستند. متغیر %{ignoring_promoted_rules} در فایل‌های dune نشان‌دهنده این است که آیا این گزینه داده شده است یا خیر.
--instrument-with=BACKENDS (در صورت عدم تعیین، متغیر محیطی DUNE_INSTRUMENT_WITH)
فعال‌سازی ابزار دقیق (instrumentation) توسط BACKENDS. مقدار BACKENDS فهرستی از نام‌های کتابخانه جداشده با کاما است که هر یک باید یک بک‌اند ابزار دقیق را اعلان کرده باشند.
-j JOBS (در صورت عدم تعیین، متغیر محیطی DUNE_JOBS)
اجرای حداکثر JOBS دستور به‌طور هم‌زمان. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هسته‌ها (پیش‌فرض) باشد.
--no-buffer
بافر نکردن خروجی دستورهای اجراشده توسط dune. به‌طور پیش‌فرض، dune خروجی زیردستورها را بافر می‌کند تا هنگام اجرای موازی چندین دستور، از درهم‌آمیختگی خروجی‌ها جلوگیری کند. با این حال، این امر هنگام اشکال‌زدایی آزمون‌های طولانی می‌تواند مشکل‌ساز باشد. با --no-buffer، دستورها دسترسی مستقیم به ترمینال دارند. توجه داشته باشید که در نتیجه این کار، خروجی آن‌ها در فایل گزارش ثبت نخواهد شد. برای جلوگیری از تداخل، باید از این گزینه همراه با -j 1 استفاده کنید. علاوه بر این، باید از --verbose نیز استفاده کنید تا مطمئن شوید دستورها پیش از اجرا چاپ می‌شوند.
--no-config
عدم بارگذاری فایل پیکربندی
--no-print-directory
عدم نمایش پیام‌های «Entering directory».
--only-packages=PACKAGES
نادیده گرفتن بندهایی (stanzas) که به بسته‌ای خارج از PACKAGES اشاره دارند. مقدار PACKAGES فهرستی از نام‌های بسته است که با کاما از هم جدا شده‌اند. توجه داشته باشید که این کار اثری مشابه با حذف بندهای مربوطه از فایل‌های dune دارد. این گزینه بیشتر برای انتشارها در نظر گرفته شده است. در طول توسعه، احتمالاً آنچه می‌خواهید ساخت یک هدف مشخص <package>.install است.
-p PACKAGES, --for-release-of-packages=PACKAGES (الزامی)
کوتاه‌نوشتی برای --release --pkg=disabled --only-packages PACKAGE. زمانی که پروژه شما شامل چندین بسته است، برای ساختن تنها موارد لازم و همچنین دستیابی به ساخت‌های بازتولیدپذیر، باید از این گزینه در فایل‌های <package>.opam خود استفاده کنید.
--pkg=VAL
فعال یا غیرفعال کردن مدیریت بسته. رفتار پیش‌فرض به وجود یک دایرکتوری قفل بستگی دارد.
--profile=VAL (در صورت عدم تعیین، متغیر محیطی DUNE_PROFILE)
انتخاب نمایه ساخت، برای مثال dev یا release. مقدار پیش‌فرض dev است.
--promote-install-files[=VAL] (پیش‌فرض=true)
ارتقای تمام فایل‌های تولیدشده <package>.install به درخت سورس.
--release
قرار دادن dune در یک حالت انتشار (release) بازتولیدپذیر. کوتاه‌نوشتی برای --root . --ignore-promoted-rules --no-config --profile release --always-show-command-line --promote-install-files --require-dune-project-file --default-target @install. باید از این گزینه برای ساخت‌های انتشار استفاده کنید. برای مثال، باید از این گزینه در فایل‌های <package>.opam خود استفاده نمایید؛ مگر اینکه از قبل از -p استفاده کرده باشید، چرا که -p این گزینه را در بر دارد.
--require-dune-project-file[=VAL] (پیش‌فرض=true)
در صورت موجود نبودن فایل dune-project، با شکست مواجه می‌شود.
--root=DIR (در صورت عدم تعیین، متغیر محیطی DUNE_ROOT)
استفاده از این دایرکتوری به‌عنوان ریشه فضای کاری به‌جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیر هدف‌های ارائه‌شده در خط فرمان را تغییر نمی‌دهد. این گزینه صرفاً برای اسکریپت‌ها در نظر گرفته شده است.
--store-orig-source-dir (در صورت عدم تعیین، متغیر محیطی DUNE_STORE_ORIG_SOURCE_DIR)
ذخیره مکان اصلی سورس در متادیتای dune-package.
--target-exec=TOOLCHAIN=CMD (در صورت عدم تعیین، متغیر محیطی DUNE_TARGET_EXEC)
دستور پوششی (wrapper) برای اجرای باینری‌های مقصد هنگام کامپایل متقابل (cross-compiling). قالب: TOOLCHAIN=CMD (برای مثال، 'windows=wine').
--terminal-persistence=MODE
تغییر نحوه نمایش گزارش نتایج ساخت در کنسول بین ساخت‌های مجدد هنگام حضور در حالت --watch. حالت‌های پشتیبانی‌شده: preserve، clear-on-rebuild، clear-on-rebuild-and-flush-history.
--trace-file=FILE
خروجی دادن داده‌های ردگیری (trace) در قالب catapult (سازگار با chrome://tracing).
--verbose
مشابه با --display verbose
--version
نمایش اطلاعات نسخه.
--watch-exclusions=REGEX
افزودن یک عبارت باقاعده POSIX که دایرکتوری‌های منطبق را از `dune build --watch` مستثنی می‌کند. گزینه --watch-exclusions می‌تواند برای افزودن چندین مورد استثنا تکرار شود. همچنین می‌توان از نقطه-ویرگول به‌عنوان جداکننده استفاده کرد. اگر هیچ استثنایی مشخص نشود، مجموعه‌ای استاندارد از موارد استثنا استفاده خواهد شد؛ با این حال، اگر از یک یا چند گزینه --watch-exclusions استفاده شود، هیچ‌یک از استثناهای استاندارد به کار گرفته نمی‌شوند. استثناهای استاندارد عبارتند از: ^_opam /_opam ^_esy /_esy ^\.#.* /\.#.* ~$ ^#[^#]*#$ /#[^#]*#$ ^4913$ /4913$ /.git /.hg :/windows
--workspace=FILE (در صورت عدم تعیین، متغیر محیطی DUNE_WORKSPACE)
استفاده از این فایل فضای کاری مشخص به‌جای جستجوی آن.
-x VAL (در صورت عدم تعیین، متغیر محیطی DUNE_CROSS_TARGET)
کامپایل متقابل (cross-compile) با استفاده از این زنجیره ابزار (toolchain)..SH "راهنمای بیشتر (MORE HELP)"

برای دریافت راهنما در مورد یک دستور خاص، از `dune COMMAND --help' استفاده کنید.

دستور dune describe با وضعیت‌های زیر خارج می‌شود:

0
در صورت موفقیت.
1
در صورت بروز خطا.
130
اگر توسط یک سیگنال متوقف شود.

این متغیرهای محیطی بر اجرای describe تأثیر می‌گذارند:

دایرکتوری ساخت مشخص‌شده. در صورت مشخص نشدن، پیش‌فرض _build است.
فعال یا غیرفعال کردن حافظه پنهان Dune (یکی از مقادیر disabled، enabled-except-user-rules یا enabled). پیش‌فرض `enabled-except-user-rules' است.
بررسی بازتولیدپذیری ساخت با اجرای مجدد و تصادفی قواعد و مقایسه نتایج آن‌ها با موارد ذخیره‌شده در حافظه پنهان Dune. نکته: افزایش احتمال این بررسی‌ها سرعت ساخت را کاهش می‌دهد. احتمال پیش‌فرض صفر است، یعنی هیچ قاعده‌ای بررسی نمی‌شود.
حالت ذخیره‌سازی حافظه پنهان Dune (یکی از مقادیر auto، hardlink یا copy). پیش‌فرض `hardlink' است.
کامپایل متقاطع با استفاده از این زنجیره ابزار (toolchain).
همیشه هنگام ساخت بسته‌ها، گزارش‌های استاندارد چاپ شوند.
دستور شل برای مقایسه فایل‌ها (diff). از - برای غیرفعال کردن چاپ تفاوت‌ها استفاده کنید.
غیرفعال کردن تمام قواعد ارتقا (promotion rules).
فعال‌سازی ابزاردقیق‌سازی توسط BACKENDS. متغیر BACKENDS فهرستی از نام‌های کتابخانه‌ها است که با کاما از هم جدا شده‌اند، و هر کدام باید یک backend ابزاردقیق‌سازی را اعلان کرده باشند.
اجرای هم‌زمان حداکثر JOBS دستور. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هسته‌ها (پیش‌فرض) باشد.
نمایه ساخت. در صورت مشخص نشدن dev، یا در صورت تعیین -p مقدار release خواهد بود.
استفاده از این دایرکتوری به عنوان ریشه فضای کاری (workspace) به‌جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیر اهداف ارائه‌شده در خط فرمان را تغییر نمی‌دهد. این متغیر فقط برای اسکریپت‌ها در نظر گرفته شده است.
حالت ایزوله‌سازی (sandboxing) برای استفاده به‌صورت پیش‌فرض. (نگاه کنید به --sandbox)
ذخیره مکان اصلی منبع در فراداده‌های dune-package.
دستور پوششی (wrapper) برای اجرای باینری‌های مقصد هنگام کامپایل متقاطع. قالب: TOOLCHAIN=CMD (برای مثال، 'windows=wine').
استفاده از این فایل فضای کاری مشخص به‌جای جستجوی آن.

گزارش‌های باگ را در https://github.com/ocaml/dune/issues بررسی کنید.

dune(1)

Dune 3.24.2