Environment Variables

يمكن تكوين جوليا بعدد من متغيرات البيئة، التي يمكن تعيينها إما بالطريقة المعتادة لكل نظام تشغيل، أو بطريقة محمولة من داخل جوليا. على افتراض أنك تريد تعيين متغير البيئة JULIA_EDITOR إلى vim، يمكنك كتابة ENV["JULIA_EDITOR"] = "vim" (على سبيل المثال، في REPL) لإجراء هذا التغيير على أساس كل حالة على حدة، أو إضافة نفس الشيء إلى ملف تكوين المستخدم ~/.julia/config/startup.jl في دليل المنزل الخاص بالمستخدم ليكون له تأثير دائم. يمكن تحديد القيمة الحالية لنفس متغير البيئة من خلال تقييم ENV["JULIA_EDITOR"].

تبدأ متغيرات البيئة التي تستخدمها جوليا عمومًا بـ JULIA. إذا تم استدعاء InteractiveUtils.versioninfo باستخدام الكلمة الرئيسية verbose=true، فإن الإخراج سيقوم بإدراج أي متغيرات بيئة معرفة ذات صلة بجوليا، بما في ذلك تلك التي تحتوي على JULIA في أسمائها.

Note

يوصى بتجنب تغيير متغيرات البيئة أثناء وقت التشغيل، مثل داخل ~/.julia/config/startup.jl.

سبب واحد هو أن بعض متغيرات لغة جوليا، مثل JULIA_NUM_THREADS و JULIA_PROJECT، تحتاج إلى أن يتم تعيينها قبل بدء جوليا.

بالمثل، يتم تشغيل دوال __init__() لوحدات المستخدم في sysimage (عبر PackageCompiler) قبل startup.jl، لذا قد يكون تعيين متغيرات البيئة في startup.jl متأخراً جداً بالنسبة لشفرة المستخدم.

علاوة على ذلك، يمكن أن يؤدي تغيير متغيرات البيئة أثناء وقت التشغيل إلى إدخال سباقات بيانات في الشيفرة التي كانت غير ضارة.

في Bash، يمكن تعيين متغيرات البيئة إما يدويًا عن طريق تشغيل، على سبيل المثال، export JULIA_NUM_THREADS=4 قبل بدء Julia، أو عن طريق إضافة نفس الأمر إلى ~/.bashrc أو ~/.bash_profile لتعيين المتغير في كل مرة يتم فيها بدء Bash.

File locations

JULIA_BINDIR

المسار المطلق للدليل الذي يحتوي على تنفيذ جوليا، والذي يحدد المتغير العالمي Sys.BINDIR. إذا لم يتم تعيين $JULIA_BINDIR، فإن جوليا تحدد القيمة Sys.BINDIR في وقت التشغيل.

الملف التنفيذي نفسه هو واحد من

$JULIA_BINDIR/julia
$JULIA_BINDIR/julia-debug

بشكل افتراضي.

تحدد المتغير العالمي Base.DATAROOTDIR مسارًا نسبيًا من Sys.BINDIR إلى دليل البيانات المرتبط بـ Julia. ثم المسار

$JULIA_BINDIR/$DATAROOTDIR/julia/base

يحدد الدليل الذي تبحث فيه جوليا في البداية عن ملفات المصدر (عبر Base.find_source_file()).

على نفس المنوال، تحدد المتغير العالمي Base.SYSCONFDIR مسارًا نسبيًا إلى دليل ملف التكوين. ثم تبحث جوليا عن ملف startup.jl في

$JULIA_BINDIR/$SYSCONFDIR/julia/startup.jl
$JULIA_BINDIR/../etc/julia/startup.jl

بشكل افتراضي (عبر Base.load_julia_startup()).

على سبيل المثال، ستحتوي تثبيت Linux مع تنفيذ Julia الموجود في /bin/julia، و DATAROOTDIR من ../share، و SYSCONFDIR من ../etc على JULIA_BINDIR تم تعيينه إلى /bin، ومسار بحث ملفات المصدر هو

/share/julia/base

و مسار بحث تكوين عالمي من

/etc/julia/startup.jl

JULIA_PROJECT

مسار الدليل الذي يشير إلى أي مشروع يجب أن يكون المشروع النشط الأول. إن تعيين هذه المتغير البيئي له نفس تأثير تحديد خيار بدء التشغيل --project، ولكن --project له أولوية أعلى. إذا تم تعيين المتغير إلى @. (لاحظ النقطة اللاحقة) فإن جوليا تحاول العثور على دليل مشروع يحتوي على ملف Project.toml أو JuliaProject.toml من الدليل الحالي وآبائه. انظر أيضًا الفصل حول Code Loading.

Note

JULIA_PROJECT يجب تعريفه قبل بدء جوليا؛ تعريفه في startup.jl متأخر جدًا في عملية بدء التشغيل.

JULIA_LOAD_PATH

تُستخدم متغير البيئة JULIA_LOAD_PATH لملء المتغير العالمي جوليا LOAD_PATH، الذي يحدد الحزم التي يمكن تحميلها عبر import و using (انظر Code Loading).

على عكس متغير PATH في الشل، يتم توسيع الإدخالات الفارغة في JULIA_LOAD_PATH إلى القيمة الافتراضية لـ LOAD_PATH، ["@", "@v#.#", "@stdlib"] عند ملء LOAD_PATH. وهذا يسمح بإضافة أو تقديم، إلخ، لقيمة مسار التحميل في سكربتات الشل بغض النظر عما إذا كان 4d61726b646f776e2e436f64652822222c20224a554c49415f4c4f41445f504154482229_40726566204a554c49415f4c4f41445f50415448 قد تم تعيينه بالفعل أم لا. على سبيل المثال، لإضافة الدليل /foo/bar إلى LOAD_PATH فقط قم ب

export JULIA_LOAD_PATH="/foo/bar:$JULIA_LOAD_PATH"

إذا كانت متغير البيئة JULIA_LOAD_PATH قد تم تعيينه بالفعل، فسيتم إضافة قيمته القديمة في البداية مع /foo/bar. من ناحية أخرى، إذا لم يتم تعيين 4d61726b646f776e2e436f64652822222c20224a554c49415f4c4f41445f504154482229_40726566204a554c49415f4c4f41445f50415448، فسيتم تعيينه إلى /foo/bar:، والذي سيتوسع إلى قيمة LOAD_PATH تساوي ["/foo/bar", "@", "@v#.#", "@stdlib"]. إذا تم تعيين 4d61726b646f776e2e436f64652822222c20224a554c49415f4c4f41445f504154482229_40726566204a554c49415f4c4f41445f50415448 إلى سلسلة فارغة، فإنه يتوسع إلى مصفوفة LOAD_PATH فارغة. بعبارة أخرى، يتم تفسير السلسلة الفارغة كمصفوفة ذات صفر عنصر، وليس كمصفوفة ذات عنصر واحد من السلسلة الفارغة. تم اختيار هذا السلوك بحيث يكون من الممكن تعيين مسار تحميل فارغ عبر متغير البيئة. إذا كنت تريد مسار التحميل الافتراضي، إما قم بإلغاء تعيين متغير البيئة أو إذا كان يجب أن يحتوي على قيمة، قم بتعيينه إلى السلسلة :.

Note

على نظام ويندوز، يتم فصل عناصر المسار بواسطة حرف ;، كما هو الحال مع معظم قوائم المسارات على ويندوز. استبدل : بـ ; في الفقرة أعلاه.

JULIA_DEPOT_PATH

تُستخدم متغير البيئة JULIA_DEPOT_PATH لملء المتغير العالمي جوليا DEPOT_PATH، الذي يتحكم في المكان الذي يبحث فيه مدير الحزم، بالإضافة إلى آليات تحميل الشيفرة في جوليا، عن سجلات الحزم، والحزم المثبتة، والبيئات المسماة، واستنساخات المستودعات، وصور الحزم المجمعة المخزنة مؤقتًا، وملفات التكوين، والموقع الافتراضي لملف تاريخ REPL.

على عكس متغير PATH في الشل ولكن مشابه لـ JULIA_LOAD_PATH، فإن الإدخالات الفارغة في JULIA_DEPOT_PATH لها سلوك خاص:

  • في النهاية، يتم توسيعه إلى القيمة الافتراضية لـ DEPOT_PATH، باستثناء مستودع المستخدم.
  • في البداية، يتم توسيعه إلى القيمة الافتراضية لـ DEPOT_PATH، بما في ذلك مستودع المستخدم.

هذا يسمح بتجاوز سهل لمستودع المستخدم، مع الاحتفاظ بالوصول إلى الموارد المجمعة مع جوليا، مثل ملفات التخزين المؤقت، والقطع الفنية، وما إلى ذلك. على سبيل المثال، لتبديل مستودع المستخدم إلى /foo/bar استخدم : في النهاية.

export JULIA_DEPOT_PATH="/foo/bar:"

ستكتب جميع عمليات الحزمة، مثل استنساخ السجلات أو تثبيت الحزم، الآن إلى /foo/bar، ولكن نظرًا لأن الإدخال الفارغ يتم توسيعه إلى مستودع النظام الافتراضي، ستظل أي موارد مدمجة متاحة. إذا كنت ترغب حقًا في استخدام المستودع في /foo/bar فقط، وعدم تحميل أي موارد مدمجة، ما عليك سوى تعيين متغير البيئة إلى /foo/bar بدون النقطتين في النهاية.

لإضافة مستودع في نهاية القائمة الافتراضية الكاملة، بما في ذلك مستودع المستخدم الافتراضي، استخدم : في البداية

export JULIA_DEPOT_PATH=":/foo/bar"

هناك استثناءان للقواعد المذكورة أعلاه. أولاً، إذا تم تعيين JULIA_DEPOT_PATH إلى سلسلة فارغة، فإنه يتوسع إلى مصفوفة DEPOT_PATH فارغة. بعبارة أخرى، يتم تفسير السلسلة الفارغة كمصفوفة ذات صفر عنصر، وليس كمصفوفة ذات عنصر واحد من السلسلة الفارغة. تم اختيار هذا السلوك بحيث يكون من الممكن تعيين مسار مستودع فارغ عبر متغير البيئة.

ثانيًا، إذا لم يتم تحديد مستودع المستخدم في JULIA_DEPOT_PATH، فإن الإدخال الفارغ يتم توسيعه إلى المستودع الافتراضي بما في ذلك مستودع المستخدم. وهذا يجعل من الممكن استخدام المستودع الافتراضي، كما لو كان متغير البيئة غير مضبوط، عن طريق تعيينه إلى السلسلة :.

Note

على نظام Windows، يتم فصل عناصر المسار بواسطة حرف ;، كما هو الحال مع معظم قوائم المسارات على Windows. استبدل : بـ ; في الفقرة أعلاه.

Note

JULIA_DEPOT_PATH يجب تعريفه قبل بدء جوليا؛ تعريفه في startup.jl متأخر جدًا في عملية البدء؛ في تلك المرحلة يمكنك بدلاً من ذلك تعديل مصفوفة DEPOT_PATH مباشرة، والتي يتم ملؤها من متغير البيئة.

JULIA_HISTORY

المسار المطلق REPL.find_hist_file() لملف تاريخ REPL. إذا لم يتم تعيين $JULIA_HISTORY، فإن REPL.find_hist_file() يكون افتراضيًا إلى

$(DEPOT_PATH[1])/logs/repl_history.jl

JULIA_MAX_NUM_PRECOMPILE_FILES

يحدد الحد الأقصى لعدد النسخ المختلفة من حزمة واحدة التي سيتم تخزينها في ذاكرة التخزين المؤقت للتجميع المسبق (الافتراضي = 10).

JULIA_VERBOSE_LINKING

إذا تم تعيينه على true، ستظهر أوامر الرابط أثناء ما قبل التجميع.

Pkg.jl

JULIA_CI

إذا تم تعيينه على true، فهذا يشير إلى خادم الحزم أن أي عمليات حزم هي جزء من نظام التكامل المستمر (CI) لأغراض جمع إحصائيات استخدام الحزم.

JULIA_NUM_PRECOMPILE_TASKS

عدد المهام المتوازية التي يجب استخدامها عند تجميع الحزم مسبقًا. انظر Pkg.precompile.

JULIA_PKG_DEVDIR

الدليل الافتراضي المستخدم بواسطة Pkg.develop لتنزيل الحزم.

JULIA_PKG_IGNORE_HASHES

إذا تم تعيينه إلى 1، فسوف يتجاهل هذا التجزئات غير الصحيحة في العناصر. يجب استخدام ذلك بحذر، حيث إنه يعطل التحقق من التنزيلات، ولكن يمكن أن يحل المشكلات عند نقل الملفات عبر أنواع مختلفة من أنظمة الملفات. انظر Pkg.jl issue #2317 لمزيد من التفاصيل.

Julia 1.6

هذا مدعوم فقط في جوليا 1.6 وما فوق.

JULIA_PKG_OFFLINE

إذا تم تعيينه على true، فسيؤدي ذلك إلى تمكين وضع عدم الاتصال: انظر Pkg.offline.

Julia 1.5

يتطلب وضع عدم الاتصال في Pkg وجود Julia 1.5 أو أحدث.

JULIA_PKG_PRECOMPILE_AUTO

إذا تم تعيينه إلى 0، فسيؤدي ذلك إلى تعطيل الترجمة المسبقة التلقائية بواسطة إجراءات الحزمة التي تغير البيان. انظر Pkg.precompile.

JULIA_PKG_SERVER

يحدد عنوان URL لسجل الحزم الذي يجب استخدامه. بشكل افتراضي، يستخدم Pkg https://pkg.julialang.org لجلب حزم جوليا. بالإضافة إلى ذلك، يمكنك تعطيل استخدام بروتوكول PkgServer، والوصول بدلاً من ذلك إلى الحزم مباشرة من مضيفيها (GitHub، GitLab، إلخ) عن طريق تعيين: export JULIA_PKG_SERVER=""

JULIA_PKG_SERVER_REGISTRY_PREFERENCE

يحدد نكهة السجل المفضلة. القيم المدعومة حاليًا هي conservative (الافتراضي)، والذي سينشر فقط الموارد التي تمت معالجتها بواسطة خادم التخزين (وبالتالي لديها احتمال أعلى أن تكون متاحة من PkgServers)، بينما eager ستنشر السجلات التي قد لا تكون مواردها قد تمت معالجتها بالضرورة بواسطة خوادم التخزين. يجب على المستخدمين خلف جدران نارية صارمة لا تسمح بالتنزيل من خوادم عشوائية عدم استخدام نكهة eager.

Julia 1.7

هذا يؤثر فقط على جوليا 1.7 وما فوق.

JULIA_PKG_UNPACK_REGISTRY

إذا تم تعيينه على true، فسيقوم بفك ضغط السجل بدلاً من تخزينه كأرشيف مضغوط.

Julia 1.7

هذا يؤثر فقط على جوليا 1.7 وما فوق. ستقوم الإصدارات السابقة دائمًا بفك حزم السجل.

JULIA_PKG_USE_CLI_GIT

إذا تم تعيينه على true، ستستخدم عمليات Pkg التي تستخدم بروتوكول git تنفيذ git خارجي بدلاً من مكتبة libgit2 الافتراضية.

Julia 1.7

استخدام تنفيذ git مدعوم فقط على جوليا 1.7 وما فوق.

JULIA_PKGRESOLVE_ACCURACY

دقة محلل الحزمة. يجب أن تكون هذه قيمة صحيحة موجبة، القيمة الافتراضية هي 1.

JULIA_PKG_PRESERVE_TIERED_INSTALLED

قم بتغيير استراتيجية تثبيت الحزمة الافتراضية إلى Pkg.PRESERVE_TIERED_INSTALLED للسماح لمدير الحزم بمحاولة تثبيت إصدارات الحزم مع الحفاظ على أكبر عدد ممكن من إصدارات الحزم المثبتة بالفعل.

Julia 1.9

هذا يؤثر فقط على جوليا 1.9 وما فوق.

Network transport

JULIA_NO_VERIFY_HOSTS

JULIA_SSL_NO_VERIFY_HOSTS

JULIA_SSH_NO_VERIFY_HOSTS

JULIA_ALWAYS_VERIFY_HOSTS

حدد المضيفين الذين يجب أو لا يجب التحقق من هويتهم لطبقات النقل المحددة. انظر NetworkOptions.verify_host

JULIA_SSL_CA_ROOTS_PATH

حدد الملف أو الدليل الذي يحتوي على جذور سلطة الشهادات. انظر NetworkOptions.ca_roots

External applications

JULIA_SHELL

المسار المطلق للشل الذي يجب أن تنفذ به جوليا الأوامر الخارجية (عبر Base.repl_cmd()). الافتراضي هو متغير البيئة $SHELL، ويعود إلى /bin/sh إذا كان $SHELL غير محدد.

Note

على نظام ويندوز، يتم تجاهل هذا المتغير البيئي، وتُنفذ الأوامر الخارجية مباشرة.

JULIA_EDITOR

المحرر الذي يتم إرجاعه بواسطة InteractiveUtils.editor() ويستخدم في، على سبيل المثال، InteractiveUtils.edit، يشير إلى أمر المحرر المفضل، على سبيل المثال vim.

$JULIA_EDITOR تأخذ الأولوية على $VISUAL، والتي بدورها تأخذ الأولوية على $EDITOR. إذا لم يتم تعيين أي من هذه المتغيرات البيئية، فسيتم اعتبار المحرر هو open على Windows وOS X، أو /etc/alternatives/editor إذا كان موجودًا، أو emacs خلاف ذلك.

لاستخدام Visual Studio Code على Windows، قم بتعيين $JULIA_EDITOR إلى code.cmd.

Parallelization

JULIA_CPU_THREADS

يتجاوز المتغير العالمي Base.Sys.CPU_THREADS، عدد أنوية وحدة المعالجة المركزية المنطقية المتاحة.

JULIA_WORKER_TIMEOUT

A Float64 الذي يحدد قيمة Distributed.worker_timeout() (افتراضي: 60.0). هذه الدالة تعطي عدد الثواني التي سينتظرها عملية العامل للاتصال بعملية الماستر قبل أن تموت.

JULIA_NUM_THREADS

عدد صحيح غير موقع 64 بت (uint64_t) الذي يحدد الحد الأقصى لعدد الخيوط المتاحة لجوليا. إذا لم يكن $JULIA_NUM_THREADS إيجابيًا أو لم يتم تعيينه، أو إذا لم يكن من الممكن تحديد عدد خيوط وحدة المعالجة المركزية من خلال استدعاءات النظام، فإن عدد الخيوط يتم تعيينه إلى 1.

إذا تم تعيين $JULIA_NUM_THREADS إلى auto، فسيتم تعيين عدد الخيوط إلى عدد خيوط وحدة المعالجة المركزية.

Note

JULIA_NUM_THREADS يجب أن يتم تعريفه قبل بدء جوليا؛ تعريفه في startup.jl يكون متأخراً جداً في عملية بدء التشغيل.

Julia 1.5

في جوليا 1.5 وما فوق، يمكن أيضًا تحديد عدد الخيوط عند بدء التشغيل باستخدام وسيط سطر الأوامر -t/--threads.

Julia 1.7

تتطلب قيمة auto لـ $JULIA_NUM_THREADS وجود جوليا 1.7 أو أعلى.

JULIA_THREAD_SLEEP_THRESHOLD

إذا تم تعيينه إلى سلسلة تبدأ بالجزء الفرعي غير الحسّاس لحالة الأحرف "infinite"، فإن الخيوط الدوارة لا تنام أبدًا. خلاف ذلك، يتم تفسير $JULIA_THREAD_SLEEP_THRESHOLD كعدد صحيح غير موقع 64 بت (uint64_t) ويعطي، بالنانoseconds، مقدار الوقت بعده يجب أن تنام الخيوط الدوارة.

JULIA_NUM_GC_THREADS

يحدد عدد الخيوط المستخدمة في جمع القمامة. إذا لم يتم تحديده، يتم تعيينه إلى نصف عدد خيوط العمل.

Julia 1.10

تم إضافة متغير البيئة في 1.10

JULIA_IMAGE_THREADS

عدد صحيح غير موقع بحجم 32 بت يحدد عدد الخيوط المستخدمة في تجميع الصور في هذه العملية الخاصة بـ Julia. قد يتم تجاهل قيمة هذه المتغير إذا كانت الوحدة صغيرة. إذا تُركت غير محددة، يتم استخدام أصغر قيمة بين JULIA_CPU_THREADS أو نصف عدد أنوية المعالج المنطقية في مكانها.

JULIA_IMAGE_TIMINGS

قيمة بوليانية تحدد ما إذا كانت معلومات التوقيت التفصيلية مطبوعة أثناء تجميع الصورة. الافتراضي هو 0.

JULIA_EXCLUSIVE

إذا تم تعيينه إلى أي شيء بخلاف 0، فإن سياسة خيوط جوليا تتماشى مع التشغيل على جهاز مخصص: الخيط الرئيسي على المعالج 0، والخيوط مرتبطة. خلاف ذلك، تترك جوليا نظام التشغيل يتعامل مع سياسة الخيوط.

REPL formatting

متغيرات البيئة التي تحدد كيفية تنسيق مخرجات REPL في الطرفية. بشكل عام، يجب تعيين هذه المتغيرات إلى ANSI terminal escape sequences. توفر جوليا واجهة عالية المستوى مع الكثير من نفس الوظائف؛ انظر القسم حول The Julia REPL.

JULIA_ERROR_COLOR

تنسيق Base.error_color() (افتراضي: أحمر فاتح، "\033[91m") الذي يجب أن تحتويه الأخطاء في الطرفية.

JULIA_WARN_COLOR

التنسيق Base.warn_color() (افتراضي: أصفر، "\033[93m") الذي يجب أن تكون عليه التحذيرات في الطرفية.

JULIA_INFO_COLOR

التنسيق Base.info_color() (افتراضي: سماوي، "\033[36m") الذي يجب أن يكون للمعلومات في الطرفية.

JULIA_INPUT_COLOR

التنسيق Base.input_color() (افتراضي: عادي، "\033[0m") الذي يجب أن يكون للإدخال في الطرفية.

JULIA_ANSWER_COLOR

التنسيق Base.answer_color() (افتراضي: عادي، "\033[0m") الذي يجب أن يكون للإخراج في الطرفية.

System and Package Image Building

JULIA_CPU_TARGET

قم بتعديل بنية الجهاز المستهدف لـ (pre)compiling system و package images. JULIA_CPU_TARGET يؤثر فقط على توليد صورة كود الآلة التي يتم إخراجها إلى ذاكرة التخزين المؤقت على القرص. على عكس --cpu-target، أو -C، command line option، فإنه لا يؤثر على توليد كود الوقت الفعلي (JIT) داخل جلسة جوليا حيث يتم تخزين كود الآلة فقط في الذاكرة.

القيم الصالحة لـ JULIA_CPU_TARGET يمكن الحصول عليها عن طريق تنفيذ julia -C help.

تعيين JULIA_CPU_TARGET مهم لأنظمة الحوسبة المتغايرة حيث قد تكون المعالجات من أنواع أو ميزات مختلفة موجودة. يتم مواجهة ذلك بشكل شائع في تجمعات الحوسبة عالية الأداء (HPC) حيث قد تستخدم العقد المكونة معالجات متميزة.

سلسلة هدف وحدة المعالجة المركزية هي قائمة من السلاسل مفصولة بـ ; كل سلسلة تبدأ باسم وحدة المعالجة المركزية أو اسم المعمارية وتليها قائمة اختيارية من الميزات مفصولة بـ ,. اسم وحدة المعالجة المركزية generic أو اسم فارغ يعني مجموعة الميزات الأساسية المطلوبة لمجموعة التعليمات المستهدفة والتي هي على الأقل المعمارية التي تم تجميع وقت التشغيل C/C++ بها. يتم تفسير كل سلسلة بواسطة LLVM.

تدعم بعض الميزات الخاصة:

  1. clone_all

    هذا يجبر الهدف على أن يحتوي على جميع الوظائف في sysimg مستنسخة. عند استخدامه في الشكل السلبي (أي -clone_all)، فإنه يعطل النسخ الكامل الذي يتم تمكينه بشكل افتراضي لبعض الأهداف.

  2. base([0-9]*)

    هذا يحدد فهرس الهدف الأساسي (بدءًا من 0). الهدف الأساسي هو الهدف الذي يعتمد عليه الهدف الحالي، أي أن الدوال التي لا يتم استنساخها ستستخدم النسخة في الهدف الأساسي. تتسبب هذه الخيار في استنساخ الهدف الأساسي بالكامل (كما لو تم تحديد clone_all له) إذا لم يكن الهدف الافتراضي (0). يمكن أن يكون الفهرس أصغر فقط من الفهرس الحالي.

  3. opt_size

    قم بتحسين الحجم مع الحد الأدنى من تأثير الأداء. خيار -Os في Clang/GCC.

  4. min_size

    قم بتحسين الحجم فقط. خيار -Oz في Clang.

Debugging and profiling

JULIA_DEBUG

قم بتمكين تسجيل الأخطاء لملف أو وحدة، راجع Logging لمزيد من المعلومات.

JULIA_PROFILE_PEEK_HEAP_SNAPSHOT

تمكين جمع لقطة كومة أثناء التنفيذ عبر آلية معاينة التوصيف. انظر Triggered During Execution.

JULIA_TIMING_SUBSYSTEMS

يتيح لك تمكين أو تعطيل المناطق لتشغيل جوليا محدد. على سبيل المثال، تعيين المتغير إلى +GC,-INFERENCE سيمكن مناطق GC ويعطل مناطق INFERENCE. انظر Dynamically Enabling and Disabling Zones.

JULIA_GC_ALLOC_POOL

JULIA_GC_ALLOC_OTHER

JULIA_GC_ALLOC_PRINT

إذا تم تعيينها، فإن هذه المتغيرات البيئية تأخذ سلاسل نصية تبدأ اختياريًا بالحرف 'r'، تليها سلسلة من الاستبدال النصي لقائمة مفصولة بنقطتين من ثلاثة أعداد صحيحة 64 بت موقعة (int64_t). تمثل هذه الثلاثية من الأعداد a:b:c المتتالية الحسابية a، a + b، a + 2*b، ... c.

  • إذا كانت هذه هي المرة n التي تم فيها استدعاء jl_gc_pool_alloc()، و n ينتمي إلى المتتالية الحسابية الممثلة بـ $JULIA_GC_ALLOC_POOL، فإن جمع القمامة يتم إجباريًا.
  • إذا كانت هذه هي المرة n التي تم فيها استدعاء maybe_collect()، و n تنتمي إلى المتتالية الحسابية الممثلة بـ $JULIA_GC_ALLOC_OTHER، فإن جمع القمامة يتم إجباريًا.
  • إذا كانت هذه هي المرة n التي تم فيها استدعاء jl_gc_collect()، و n تنتمي إلى المتتالية الحسابية الممثلة بـ $JULIA_GC_ALLOC_PRINT، فسيتم طباعة العدادات لعدد الاستدعاءات لـ jl_gc_pool_alloc() و maybe_collect().

إذا كانت قيمة متغير البيئة تبدأ بالحرف 'r'، فإن الفاصل الزمني بين أحداث جمع القمامة يتم تعيينه عشوائيًا.

Note

تؤثر هذه المتغيرات البيئية فقط إذا تم تجميع جوليا مع تصحيح جمع القمامة (أي إذا تم تعيين WITH_GC_DEBUG_ENV إلى 1 في تكوين البناء).

JULIA_GC_NO_GENERATIONAL

إذا تم تعيينه إلى أي شيء بخلاف 0، فإن جامع القمامة في جوليا لا يقوم أبدًا بإجراء "مسحات سريعة" للذاكرة.

Note

تؤثر هذه المتغيرات البيئية فقط إذا تم تجميع جوليا مع تصحيح جمع القمامة (أي إذا تم تعيين WITH_GC_DEBUG_ENV إلى 1 في تكوين البناء).

JULIA_GC_WAIT_FOR_DEBUGGER

إذا تم تعيينه إلى أي شيء بخلاف 0، فسوف ينتظر جامع القمامة في جوليا ليرتبط به مصحح الأخطاء بدلاً من الإنهاء كلما حدث خطأ حرج.

Note

تؤثر هذه المتغيرات البيئية فقط إذا تم تجميع جوليا مع تصحيح جمع القمامة (أي إذا تم تعيين WITH_GC_DEBUG_ENV إلى 1 في تكوين البناء).

ENABLE_JITPROFILING

إذا تم تعيينه إلى أي شيء بخلاف 0، فسيقوم المترجم بإنشاء وتسجيل مستمع حدث للتقييم في الوقت المناسب (JIT).

Note

تؤثر هذه المتغيرات البيئية فقط إذا تم تجميع جوليا بدعم لتتبع JIT، باستخدام إما

  • VTune™ Amplifier من إنتل (USE_INTEL_JITEVENTS تم تعيينه إلى 1 في تكوين البناء)، أو
  • OProfile (USE_OPROFILE_JITEVENTS تم تعيينه إلى 1 في تكوين البناء).
  • Perf (USE_PERF_JITEVENTS تم تعيينه إلى 1 في تكوين البناء). هذه التكامل مفعل بشكل افتراضي.

ENABLE_GDBLISTENER

إذا تم تعيينه إلى أي شيء بخلاف 0 فإنه يمكّن تسجيل GDB لشفرة جوليا في إصدارات الإصدار. في إصدارات التصحيح من جوليا، يتم تمكين ذلك دائمًا. يُوصى باستخدامه مع -g 2.

JULIA_LLVM_ARGS

الحجج التي يجب تمريرها إلى واجهة LLVM الخلفية.

JULIA_FALLBACK_REPL

يُجبر على استخدام REPL الاحتياطي بدلاً من REPL.jl.