€•âUŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ0/translations/zh_CN/process/programming-language”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ0/translations/zh_TW/process/programming-language”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ0/translations/it_IT/process/programming-language”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ0/translations/ja_JP/process/programming-language”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ0/translations/ko_KR/process/programming-language”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ0/translations/sp_SP/process/programming-language”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒtarget”“”)”}”(hŒ.. _programming_language:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œprogramming-language”uh1h¡h KhhhžhhŸŒJ/var/lib/git/docbuild/linux/Documentation/process/programming-language.rst”ubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒProgramming Language”h]”hŒProgramming Language”…””}”(hh·hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhh²hžhhŸh¯h KubhŒ paragraph”“”)”}”(hX9The kernel is written in the C programming language [c-language]_. More precisely, the kernel is typically compiled with ``gcc`` [gcc]_ under ``-std=gnu11`` [gcc-c-dialect-options]_: the GNU dialect of ISO C11. ``clang`` [clang]_ is also supported, see docs on :ref:`Building Linux with Clang/LLVM `.”h]”(hŒ4The kernel is written in the C programming language ”…””}”(hhÇhžhhŸNh Nubh)”}”(hŒ c-language”h]”hŒinline”“”)”}”(hhÑh]”hŒ [c-language]”…””}”(hhÕhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÓhhÏubah}”(h]”Œid2”ah ]”h"]”h$]”h&]”Œ refdomain”Œcitation”Œreftype”Œref”Œ reftarget”hÑŒrefwarn”ˆŒsupport_smartquotes”‰uh1hhŸh¯h KhhÇhžhubhŒ8. More precisely, the kernel is typically compiled with ”…””}”(hhÇhžhhŸNh NubhŒliteral”“”)”}”(hŒ``gcc``”h]”hŒgcc”…””}”(hhöhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhhÇubhŒ ”…””}”(hhÇhžhhŸNh Nubh)”}”(hŒgcc”h]”hÔ)”}”(hj h]”hŒ[gcc]”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÓhjubah}”(h]”Œid3”ah ]”h"]”h$]”h&]”Œ refdomain”hêŒreftype”hìŒ reftarget”j Œrefwarn”ˆŒsupport_smartquotes”‰uh1hhŸh¯h KhhÇhžhubhŒ under ”…””}”(hhÇhžhhŸNh Nubhõ)”}”(hŒ``-std=gnu11``”h]”hŒ -std=gnu11”…””}”(hj)hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhhÇubhŒ ”…””}”hhÇsbh)”}”(hŒgcc-c-dialect-options”h]”hÔ)”}”(hj=h]”hŒ[gcc-c-dialect-options]”…””}”(hj?hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÓhj;ubah}”(h]”Œid4”ah ]”h"]”h$]”h&]”Œ refdomain”hêŒreftype”hìŒ reftarget”j=Œrefwarn”ˆŒsupport_smartquotes”‰uh1hhŸh¯h KhhÇhžhubhŒ: the GNU dialect of ISO C11. ”…””}”(hhÇhžhhŸNh Nubhõ)”}”(hŒ ``clang``”h]”hŒclang”…””}”(hj\hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhhÇubhŒ ”…””}”hhÇsbh)”}”(hŒclang”h]”hÔ)”}”(hjph]”hŒ[clang]”…””}”(hjrhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÓhjnubah}”(h]”Œid5”ah ]”h"]”h$]”h&]”Œ refdomain”hêŒreftype”hìŒ reftarget”jpŒrefwarn”ˆŒsupport_smartquotes”‰uh1hhŸh¯h KhhÇhžhubhŒ is also supported, see docs on ”…””}”(hhÇhžhhŸNh Nubh)”}”(hŒ3:ref:`Building Linux with Clang/LLVM `”h]”hÔ)”}”(hj‘h]”hŒBuilding Linux with Clang/LLVM”…””}”(hj“hžhhŸNh Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1hÓhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œprocess/programming-language”Œ refdomain”jžŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆŒ reftarget”Œ kbuild_llvm”uh1hhŸh¯h KhhÇubhŒ.”…””}”(hhÇhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h Khh²hžhubhÆ)”}”(hŒ‹This dialect contains many extensions to the language [gnu-extensions]_, and many of them are used within the kernel as a matter of course.”h]”(hŒ6This dialect contains many extensions to the language ”…””}”(hj¼hžhhŸNh Nubh)”}”(hŒgnu-extensions”h]”hÔ)”}”(hjÆh]”hŒ[gnu-extensions]”…””}”(hjÈhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÓhjÄubah}”(h]”Œid6”ah ]”h"]”h$]”h&]”Œ refdomain”hêŒreftype”hìŒ reftarget”jÆŒrefwarn”ˆŒsupport_smartquotes”‰uh1hhŸh¯h K hj¼hžhubhŒD, and many of them are used within the kernel as a matter of course.”…””}”(hj¼hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K hh²hžhubh±)”}”(hhh]”(h¶)”}”(hŒ Attributes”h]”hŒ Attributes”…””}”(hjîhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhjëhžhhŸh¯h KubhÆ)”}”(hXCOne of the common extensions used throughout the kernel are attributes [gcc-attribute-syntax]_. Attributes allow to introduce implementation-defined semantics to language entities (like variables, functions or types) without having to make significant syntactic changes to the language (e.g. adding a new keyword) [n2049]_.”h]”(hŒGOne of the common extensions used throughout the kernel are attributes ”…””}”(hjühžhhŸNh Nubh)”}”(hŒgcc-attribute-syntax”h]”hÔ)”}”(hjh]”hŒ[gcc-attribute-syntax]”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÓhjubah}”(h]”Œid7”ah ]”h"]”h$]”h&]”Œ refdomain”hêŒreftype”hìŒ reftarget”jŒrefwarn”ˆŒsupport_smartquotes”‰uh1hhŸh¯h KhjühžhubhŒÜ. Attributes allow to introduce implementation-defined semantics to language entities (like variables, functions or types) without having to make significant syntactic changes to the language (e.g. adding a new keyword) ”…””}”(hjühžhhŸNh Nubh)”}”(hŒn2049”h]”hÔ)”}”(hj'h]”hŒ[n2049]”…””}”(hj)hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÓhj%ubah}”(h]”Œid8”ah ]”h"]”h$]”h&]”Œ refdomain”hêŒreftype”hìŒ reftarget”j'Œrefwarn”ˆŒsupport_smartquotes”‰uh1hhŸh¯h KhjühžhubhŒ.”…””}”(hjühžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KhjëhžhubhÆ)”}”(hŒÀIn some cases, attributes are optional (i.e. a compiler not supporting them should still produce proper code, even if it is slower or does not perform as many compile-time checks/diagnostics).”h]”hŒÀIn some cases, attributes are optional (i.e. a compiler not supporting them should still produce proper code, even if it is slower or does not perform as many compile-time checks/diagnostics).”…””}”(hjLhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KhjëhžhubhÆ)”}”(hŒÚThe kernel defines pseudo-keywords (e.g. ``__pure``) instead of using directly the GNU attribute syntax (e.g. ``__attribute__((__pure__))``) in order to feature detect which ones can be used and/or to shorten the code.”h]”(hŒ)The kernel defines pseudo-keywords (e.g. ”…””}”(hjZhžhhŸNh Nubhõ)”}”(hŒ ``__pure``”h]”hŒ__pure”…””}”(hjbhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjZubhŒ;) instead of using directly the GNU attribute syntax (e.g. ”…””}”(hjZhžhhŸNh Nubhõ)”}”(hŒ``__attribute__((__pure__))``”h]”hŒ__attribute__((__pure__))”…””}”(hjthžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjZubhŒO) in order to feature detect which ones can be used and/or to shorten the code.”…””}”(hjZhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KhjëhžhubhÆ)”}”(hŒMPlease refer to ``include/linux/compiler_attributes.h`` for more information.”h]”(hŒPlease refer to ”…””}”(hjŒhžhhŸNh Nubhõ)”}”(hŒ'``include/linux/compiler_attributes.h``”h]”hŒ#include/linux/compiler_attributes.h”…””}”(hj”hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjŒubhŒ for more information.”…””}”(hjŒhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K hjëhžhubeh}”(h]”Œ attributes”ah ]”h"]”Œ attributes”ah$]”h&]”uh1h°hh²hžhhŸh¯h Kubh±)”}”(hhh]”(h¶)”}”(hŒRust”h]”hŒRust”…””}”(hj·hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhj´hžhhŸh¯h K#ubhÆ)”}”(hX The kernel has experimental support for the Rust programming language [rust-language]_ under ``CONFIG_RUST``. It is compiled with ``rustc`` [rustc]_ under ``--edition=2021`` [rust-editions]_. Editions are a way to introduce small changes to the language that are not backwards compatible.”h]”(hŒFThe kernel has experimental support for the Rust programming language ”…””}”(hjÅhžhhŸNh Nubh)”}”(hŒ rust-language”h]”hÔ)”}”(hjÏh]”hŒ[rust-language]”…””}”(hjÑhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÓhjÍubah}”(h]”Œid9”ah ]”h"]”h$]”h&]”Œ refdomain”hêŒreftype”hìŒ reftarget”jÏŒrefwarn”ˆŒsupport_smartquotes”‰uh1hhŸh¯h K%hjÅhžhubhŒ under ”…””}”(hjÅhžhhŸNh Nubhõ)”}”(hŒ``CONFIG_RUST``”h]”hŒ CONFIG_RUST”…””}”(hjîhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjÅubhŒ. It is compiled with ”…””}”(hjÅhžhhŸNh Nubhõ)”}”(hŒ ``rustc``”h]”hŒrustc”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjÅubhŒ ”…””}”(hjÅhžhhŸNh Nubh)”}”(hŒrustc”h]”hÔ)”}”(hjh]”hŒ[rustc]”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÓhjubah}”(h]”Œid10”ah ]”h"]”h$]”h&]”Œ refdomain”hêŒreftype”hìŒ reftarget”jŒrefwarn”ˆŒsupport_smartquotes”‰uh1hhŸh¯h K%hjÅhžhubhŒ under ”…””}”(hjÅhžhhŸNh Nubhõ)”}”(hŒ``--edition=2021``”h]”hŒ--edition=2021”…””}”(hj3hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjÅubhŒ ”…””}”hjÅsbh)”}”(hŒ rust-editions”h]”hÔ)”}”(hjGh]”hŒ[rust-editions]”…””}”(hjIhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÓhjEubah}”(h]”Œid11”ah ]”h"]”h$]”h&]”Œ refdomain”hêŒreftype”hìŒ reftarget”jGŒrefwarn”ˆŒsupport_smartquotes”‰uh1hhŸh¯h K%hjÅhžhubhŒb. Editions are a way to introduce small changes to the language that are not backwards compatible.”…””}”(hjÅhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K%hj´hžhubhÆ)”}”(hŒ×On top of that, some unstable features [rust-unstable-features]_ are used in the kernel. Unstable features may change in the future, thus it is an important goal to reach a point where only stable features are used.”h]”(hŒ'On top of that, some unstable features ”…””}”(hjlhžhhŸNh Nubh)”}”(hŒrust-unstable-features”h]”hÔ)”}”(hjvh]”hŒ[rust-unstable-features]”…””}”(hjxhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÓhjtubah}”(h]”Œid12”ah ]”h"]”h$]”h&]”Œ refdomain”hêŒreftype”hìŒ reftarget”jvŒrefwarn”ˆŒsupport_smartquotes”‰uh1hhŸh¯h K*hjlhžhubhŒ— are used in the kernel. Unstable features may change in the future, thus it is an important goal to reach a point where only stable features are used.”…””}”(hjlhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K*hj´hžhubhÆ)”}”(hŒBPlease refer to Documentation/rust/index.rst for more information.”h]”hŒBPlease refer to Documentation/rust/index.rst for more information.”…””}”(hj›hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K.hj´hžhubhhê“”)”}”(hŒ4http://www.open-std.org/jtc1/sc22/wg14/www/standards”h]”(hŒlabel”“”)”}”(hŒ c-language”h]”hŒ c-language”…””}”(hj°hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œsupport_smartquotes”‰uh1j®hjªubhÆ)”}”(hj¬h]”hŒ reference”“”)”}”(hj¬h]”hŒ4http://www.open-std.org/jtc1/sc22/wg14/www/standards”…””}”(hjÄhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j¬uh1jÂhj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K0hjªubeh}”(h]”Œ c-language”ah ]”h"]”Œ c-language”ah$]”h&]”häaŒdocname”jªuh1hêhŸh¯h K0hj´hžhŒresolved”Kubj©)”}”(hŒhttps://gcc.gnu.org”h]”(j¯)”}”(hŒgcc”h]”hŒgcc”…””}”(hjæhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”j¾‰uh1j®hjâubhÆ)”}”(hjäh]”jÃ)”}”(hjäh]”hŒhttps://gcc.gnu.org”…””}”(hj÷hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jäuh1jÂhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K1hjâubeh}”(h]”Œgcc”ah ]”h"]”Œgcc”ah$]”h&]”jajàjªuh1hêhŸh¯h K1hj´hžhjáKubj©)”}”(hŒhttps://clang.llvm.org”h]”(j¯)”}”(hŒclang”h]”hŒclang”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”j¾‰uh1j®hjubhÆ)”}”(hjh]”jÃ)”}”(hjh]”hŒhttps://clang.llvm.org”…””}”(hj(hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”juh1jÂhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K2hjubeh}”(h]”Œclang”ah ]”h"]”Œclang”ah$]”h&]”jajàjªuh1hêhŸh¯h K2hj´hžhjáKubj©)”}”(hŒ9https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html”h]”(j¯)”}”(hŒgcc-c-dialect-options”h]”hŒgcc-c-dialect-options”…””}”(hjHhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”j¾‰uh1j®hjDubhÆ)”}”(hjFh]”jÃ)”}”(hjFh]”hŒ9https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html”…””}”(hjYhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jFuh1jÂhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K3hjDubeh}”(h]”Œgcc-c-dialect-options”ah ]”h"]”Œgcc-c-dialect-options”ah$]”h&]”jNajàjªuh1hêhŸh¯h K3hj´hžhjáKubj©)”}”(hŒ4https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html”h]”(j¯)”}”(hŒgnu-extensions”h]”hŒgnu-extensions”…””}”(hjyhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”j¾‰uh1j®hjuubhÆ)”}”(hjwh]”jÃ)”}”(hjwh]”hŒ4https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html”…””}”(hjŠhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jwuh1jÂhj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K4hjuubeh}”(h]”Œgnu-extensions”ah ]”h"]”Œgnu-extensions”ah$]”h&]”j×ajàjªuh1hêhŸh¯h K4hj´hžhjáKubj©)”}”(hŒ8https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html”h]”(j¯)”}”(hŒgcc-attribute-syntax”h]”hŒgcc-attribute-syntax”…””}”(hjªhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”j¾‰uh1j®hj¦ubhÆ)”}”(hj¨h]”jÃ)”}”(hj¨h]”hŒ8https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html”…””}”(hj»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j¨uh1jÂhj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K5hj¦ubeh}”(h]”Œgcc-attribute-syntax”ah ]”h"]”Œgcc-attribute-syntax”ah$]”h&]”jajàjªuh1hêhŸh¯h K5hj´hžhjáKubj©)”}”(hŒ9http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2049.pdf”h]”(j¯)”}”(hŒn2049”h]”hŒn2049”…””}”(hjÛhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”j¾‰uh1j®hj×ubhÆ)”}”(hjÙh]”jÃ)”}”(hjÙh]”hŒ9http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2049.pdf”…””}”(hjìhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jÙuh1jÂhjéubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K6hj×ubeh}”(h]”Œn2049”ah ]”h"]”Œn2049”ah$]”h&]”j8ajàjªuh1hêhŸh¯h K6hj´hžhjáKubj©)”}”(hŒhttps://www.rust-lang.org”h]”(j¯)”}”(hŒ rust-language”h]”hŒ rust-language”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”j¾‰uh1j®hjubhÆ)”}”(hj h]”jÃ)”}”(hj h]”hŒhttps://www.rust-lang.org”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j uh1jÂhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K7hjubeh}”(h]”Œ rust-language”ah ]”h"]”Œ rust-language”ah$]”h&]”jàajàjªuh1hêhŸh¯h K7hj´hžhjáKubj©)”}”(hŒ https://doc.rust-lang.org/rustc/”h]”(j¯)”}”(hŒrustc”h]”hŒrustc”…””}”(hj=hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”j¾‰uh1j®hj9ubhÆ)”}”(hj;h]”jÃ)”}”(hj;h]”hŒ https://doc.rust-lang.org/rustc/”…””}”(hjNhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j;uh1jÂhjKubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K8hj9ubeh}”(h]”Œrustc”ah ]”h"]”Œrustc”ah$]”h&]”j%ajàjªuh1hêhŸh¯h K8hj´hžhjáKubj©)”}”(hŒ1https://doc.rust-lang.org/edition-guide/editions/”h]”(j¯)”}”(hŒ rust-editions”h]”hŒ rust-editions”…””}”(hjnhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”j¾‰uh1j®hjjubhÆ)”}”(hjlh]”jÃ)”}”(hjlh]”hŒ1https://doc.rust-lang.org/edition-guide/editions/”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jluh1jÂhj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K9hjjubeh}”(h]”Œ rust-editions”ah ]”h"]”Œ rust-editions”ah$]”h&]”jXajàjªuh1hêhŸh¯h K9hj´hžhjáKubj©)”}”(hŒ0https://github.com/Rust-for-Linux/linux/issues/2”h]”(j¯)”}”(hŒrust-unstable-features”h]”hŒrust-unstable-features”…””}”(hjŸhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”j¾‰uh1j®hj›ubhÆ)”}”(hjh]”jÃ)”}”(hjh]”hŒ0https://github.com/Rust-for-Linux/linux/issues/2”…””}”(hj°hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”juh1jÂhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K:hj›ubeh}”(h]”Œrust-unstable-features”ah ]”h"]”Œrust-unstable-features”ah$]”h&]”j‡ajàjªuh1hêhŸh¯h K:hj´hžhjáKubeh}”(h]”Œrust”ah ]”h"]”Œrust”ah$]”h&]”uh1h°hh²hžhhŸh¯h K#ubeh}”(h]”(h®Œid1”eh ]”h"]”(Œprogramming language”Œprogramming_language”eh$]”h&]”uh1h°hhhžhhŸh¯h KŒexpect_referenced_by_name”}”jÚh£sŒexpect_referenced_by_id”}”h®h£subeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¯uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hµNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¯Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”(Œ c-language”]”hŒcitation_reference”“”)”}”(hŒ [c-language]_”h]”hŒ c-language”…””}”hjHsbah}”(h]”häah ]”h"]”h$]”h&]”h­jÚuh1jFhhÇjáKubaŒgcc”]”jG)”}”(hŒ[gcc]_”h]”hŒgcc”…””}”hjXsbah}”(h]”jah ]”h"]”h$]”h&]”h­j uh1jFhhÇjáKubaŒgcc-c-dialect-options”]”jG)”}”(hŒ[gcc-c-dialect-options]_”h]”hŒgcc-c-dialect-options”…””}”hjhsbah}”(h]”jNah ]”h"]”h$]”h&]”h­jouh1jFhhÇjáKubaŒclang”]”jG)”}”(hŒ[clang]_”h]”hŒclang”…””}”hjxsbah}”(h]”jah ]”h"]”h$]”h&]”h­j>uh1jFhhÇjáKubaŒgnu-extensions”]”jG)”}”(hŒ[gnu-extensions]_”h]”hŒgnu-extensions”…””}”hjˆsbah}”(h]”j×ah ]”h"]”h$]”h&]”h­j uh1jFhj¼jáKubaŒgcc-attribute-syntax”]”jG)”}”(hŒ[gcc-attribute-syntax]_”h]”hŒgcc-attribute-syntax”…””}”hj˜sbah}”(h]”jah ]”h"]”h$]”h&]”h­jÑuh1jFhjüjáKubaŒn2049”]”jG)”}”(hŒ[n2049]_”h]”hŒn2049”…””}”hj¨sbah}”(h]”j8ah ]”h"]”h$]”h&]”h­juh1jFhjüjáKubaŒ rust-language”]”jG)”}”(hŒ[rust-language]_”h]”hŒ rust-language”…””}”hj¸sbah}”(h]”jàah ]”h"]”h$]”h&]”h­j3uh1jFhjÅjáKubaŒrustc”]”jG)”}”(hŒ[rustc]_”h]”hŒrustc”…””}”hjÈsbah}”(h]”j%ah ]”h"]”h$]”h&]”h­jduh1jFhjÅjáKubaŒ rust-editions”]”jG)”}”(hŒ[rust-editions]_”h]”hŒ rust-editions”…””}”hjØsbah}”(h]”jXah ]”h"]”h$]”h&]”h­j•uh1jFhjÅjáKubaŒrust-unstable-features”]”jG)”}”(hŒ[rust-unstable-features]_”h]”hŒrust-unstable-features”…””}”hjèsbah}”(h]”j‡ah ]”h"]”h$]”h&]”h­jÆuh1jFhjljáKubauŒrefids”}”h®]”h£asŒnameids”}”(jÚh®jÙjÖj±j®jÑjÎjÝjÚjj jAj>jrjoj£j jÔjÑjjj6j3jgjdj˜j•jÉjÆuŒ nametypes”}”(jÚˆjÙ‰j±‰jщj݈jˆjAˆjrˆj£ˆjÔˆjˆj6ˆjgˆj˜ˆjɈuh}”(h®h²jÖh²häjHjjXjNjhjjxj×jˆj®jëjj˜j8j¨jÎj´jàj¸j%jÈjXjØj‡jèjÚjªj jâj>jjojDj jujÑj¦jj×j3jjdj9j•jjjÆj›uŒ footnote_refs”}”Œ citation_refs”}”(jD]”jHajV]”jXajf]”jhajv]”jxaj†]”jˆaj–]”j˜aj¦]”j¨aj¶]”j¸ajÆ]”jÈajÖ]”jØajæ]”jèauŒ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”(jªjâjjDjuj¦j×jj9jjj›eŒautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”jK s…”R”Œparse_messages”]”Œtransform_messages”]”hŒsystem_message”“”)”}”(hhh]”hÆ)”}”(hhh]”hŒ:Hyperlink target "programming-language" is not referenced.”…””}”hj+sbah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhj(ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”h¯Œline”Kuh1j&ubaŒ transformer”NŒ include_log”]”Œ decoration”Nhžhub.