€•WŒ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ŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ0/translations/pt_BR/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”“”)”}”(hX@The Linux kernel is written in the C programming language [c-language]_. More precisely, it 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 documentation on :ref:`Building Linux with Clang/LLVM `.”h]”(hŒ:The Linux 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Œ0. More precisely, it is typically compiled with ”…””}”(hhÛh²hh³Nh´NubhŒliteral”“”)”}”(hŒ``gcc``”h]”hŒgcc”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhÛubhŒ ”…””}”(hhÛh²hh³Nh´Nubh)”}”(hŒgcc”h]”hè)”}”(hjh]”hŒ[gcc]”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjubah}”(h]”Œid3”ah ]”h"]”h$]”h&]”Œ refdomain”hþŒreftype”jŒ reftarget”jŒrefwarn”ˆŒsupport_smartquotes”‰uh1hh³hÃh´KhhÛh²hubhŒ under ”…””}”(hhÛh²hh³Nh´Nubj )”}”(hŒ``-std=gnu11``”h]”hŒ -std=gnu11”…””}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhÛubhŒ ”…””}”hhÛsbh)”}”(hŒgcc-c-dialect-options”h]”hè)”}”(hjQh]”hŒ[gcc-c-dialect-options]”…””}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjOubah}”(h]”Œid4”ah ]”h"]”h$]”h&]”Œ refdomain”hþŒreftype”jŒ reftarget”jQŒrefwarn”ˆŒsupport_smartquotes”‰uh1hh³hÃh´KhhÛh²hubhŒ: the GNU dialect of ISO C11. ”…””}”(hhÛh²hh³Nh´Nubj )”}”(hŒ ``clang``”h]”hŒclang”…””}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhÛubhŒ ”…””}”hhÛsbh)”}”(hŒclang”h]”hè)”}”(hj„h]”hŒ[clang]”…””}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj‚ubah}”(h]”Œid5”ah ]”h"]”h$]”h&]”Œ refdomain”hþŒreftype”jŒ reftarget”j„Œrefwarn”ˆŒsupport_smartquotes”‰uh1hh³hÃh´KhhÛh²hubhŒ) is also supported; see documentation 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çhj£ubah}”(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”jŒ 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”…””}”(hjh²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 ”…””}”(hjh²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”jŒ reftarget”jŒrefwarn”ˆŒsupport_smartquotes”‰uh1hh³hÃh´Khjh²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) ”…””}”(hjh²hh³Nh´Nubh)”}”(hŒn2049”h]”hè)”}”(hj;h]”hŒ[n2049]”…””}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj9ubah}”(h]”Œid8”ah ]”h"]”h$]”h&]”Œ refdomain”hþŒreftype”jŒ reftarget”j;Œrefwarn”ˆŒsupport_smartquotes”‰uh1hh³hÃh´Khjh²hubhŒ.”…””}”(hjh²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).”…””}”(hj`h²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. ”…””}”(hjnh²hh³Nh´Nubj )”}”(hŒ ``__pure``”h]”hŒ__pure”…””}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjnubhŒ;) instead of using directly the GNU attribute syntax (e.g. ”…””}”(hjnh²hh³Nh´Nubj )”}”(hŒ``__attribute__((__pure__))``”h]”hŒ__attribute__((__pure__))”…””}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjnubhŒO) in order to feature detect which ones can be used and/or to shorten the code.”…””}”(hjnh²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´Nubj )”}”(hŒ'``include/linux/compiler_attributes.h``”h]”hŒ#include/linux/compiler_attributes.h”…””}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj 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Ú)”}”(hXThe kernel has 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Œ9The kernel has 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”jŒ reftarget”jãŒrefwarn”ˆŒsupport_smartquotes”‰uh1hh³hÃh´K%hjÙh²hubhŒ under ”…””}”(hjÙh²hh³Nh´Nubj )”}”(hŒ``CONFIG_RUST``”h]”hŒ CONFIG_RUST”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙubhŒ. It is compiled with ”…””}”(hjÙh²hh³Nh´Nubj )”}”(hŒ ``rustc``”h]”hŒrustc”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙubhŒ ”…””}”(hjÙh²hh³Nh´Nubh)”}”(hŒrustc”h]”hè)”}”(hj(h]”hŒ[rustc]”…””}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj&ubah}”(h]”Œid10”ah ]”h"]”h$]”h&]”Œ refdomain”hþŒreftype”jŒ reftarget”j(Œrefwarn”ˆŒsupport_smartquotes”‰uh1hh³hÃh´K%hjÙh²hubhŒ under ”…””}”(hjÙh²hh³Nh´Nubj )”}”(hŒ``--edition=2021``”h]”hŒ--edition=2021”…””}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙubhŒ ”…””}”hjÙsbh)”}”(hŒ rust-editions”h]”hè)”}”(hj[h]”hŒ[rust-editions]”…””}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjYubah}”(h]”Œid11”ah ]”h"]”h$]”h&]”Œ refdomain”hþŒreftype”jŒ reftarget”j[Œ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 ”…””}”(hj€h²hh³Nh´Nubh)”}”(hŒrust-unstable-features”h]”hè)”}”(hjŠh]”hŒ[rust-unstable-features]”…””}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjˆubah}”(h]”Œid12”ah ]”h"]”h$]”h&]”Œ refdomain”hþŒreftype”jŒ reftarget”jŠŒrefwarn”ˆŒsupport_smartquotes”‰uh1hh³hÃh´K*hj€h²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.”…””}”(hj€h²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Öhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´K1hjöubeh}”(h]”Œgcc”ah ]”h"]”Œgcc”ah$]”h&]”j/ajôj¾uh1hþh³hÃh´K1hjÈh²hjõKubj½)”}”(hŒhttps://clang.llvm.org”h]”(jÃ)”}”(hŒclang”h]”hŒclang”…””}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”jÒ‰uh1jÂhj'ubhÚ)”}”(hj)h]”j×)”}”(hj)h]”hŒhttps://clang.llvm.org”…””}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j)uh1jÖhj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´K2hj'ubeh}”(h]”Œclang”ah ]”h"]”Œclang”ah$]”h&]”j•ajô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”…””}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”jÒ‰uh1jÂhjXubhÚ)”}”(hjZh]”j×)”}”(hjZh]”hŒ9https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html”…””}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jZuh1jÖhjjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´K3hjXubeh}”(h]”Œgcc-c-dialect-options”ah ]”h"]”Œgcc-c-dialect-options”ah$]”h&]”jbajô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”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”jÒ‰uh1jÂhj‰ubhÚ)”}”(hj‹h]”j×)”}”(hj‹h]”hŒ4https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.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´K4hj‰ubeh}”(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&]”j+ajô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”…””}”(hjh²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&]”jLajô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Ú)”}”(hjh]”j×)”}”(hjh]”hŒhttps://www.rust-lang.org”…””}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”juh1jÖhj.ubah}”(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”…””}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”jÒ‰uh1jÂhjMubhÚ)”}”(hjOh]”j×)”}”(hjOh]”hŒ https://doc.rust-lang.org/rustc/”…””}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jOuh1jÖhj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´K8hjMubeh}”(h]”Œrustc”ah ]”h"]”Œrustc”ah$]”h&]”j9ajô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”…””}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”jÒ‰uh1jÂhj~ubhÚ)”}”(hj€h]”j×)”}”(hj€h]”hŒ1https://doc.rust-lang.org/edition-guide/editions/”…””}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j€uh1jÖhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´K9hj~ubeh}”(h]”Œ rust-editions”ah ]”h"]”Œ rust-editions”ah$]”h&]”jlajô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Ú)”}”(hj±h]”j×)”}”(hj±h]”hŒ0https://github.com/Rust-for-Linux/linux/issues/2”…””}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j±uh1jÖ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”…””}”hj\sbah}”(h]”høah ]”h"]”h$]”h&]”hÁjîuh1jZhhÛjõKubaŒgcc”]”j[)”}”(hŒ[gcc]_”h]”hŒgcc”…””}”hjlsbah}”(h]”j/ah ]”h"]”h$]”h&]”hÁj!uh1jZhhÛjõKubaŒgcc-c-dialect-options”]”j[)”}”(hŒ[gcc-c-dialect-options]_”h]”hŒgcc-c-dialect-options”…””}”hj|sbah}”(h]”jbah ]”h"]”h$]”h&]”hÁjƒuh1jZhhÛjõKubaŒclang”]”j[)”}”(hŒ[clang]_”h]”hŒclang”…””}”hjŒsbah}”(h]”j•ah ]”h"]”h$]”h&]”hÁjRuh1jZhhÛjõKubaŒgnu-extensions”]”j[)”}”(hŒ[gnu-extensions]_”h]”hŒgnu-extensions”…””}”hjœsbah}”(h]”jëah ]”h"]”h$]”h&]”hÁj´uh1jZhjÐjõKubaŒgcc-attribute-syntax”]”j[)”}”(hŒ[gcc-attribute-syntax]_”h]”hŒgcc-attribute-syntax”…””}”hj¬sbah}”(h]”j+ah ]”h"]”h$]”h&]”hÁjåuh1jZhjjõKubaŒn2049”]”j[)”}”(hŒ[n2049]_”h]”hŒn2049”…””}”hj¼sbah}”(h]”jLah ]”h"]”h$]”h&]”hÁjuh1jZhjjõKubaŒ rust-language”]”j[)”}”(hŒ[rust-language]_”h]”hŒ rust-language”…””}”hjÌsbah}”(h]”jôah ]”h"]”h$]”h&]”hÁjGuh1jZhjÙjõKubaŒrustc”]”j[)”}”(hŒ[rustc]_”h]”hŒrustc”…””}”hjÜsbah}”(h]”j9ah ]”h"]”h$]”h&]”hÁjxuh1jZhjÙjõKubaŒ rust-editions”]”j[)”}”(hŒ[rust-editions]_”h]”hŒ rust-editions”…””}”hjìsbah}”(h]”jlah ]”h"]”h$]”h&]”hÁj©uh1jZhjÙjõKubaŒrust-unstable-features”]”j[)”}”(hŒ[rust-unstable-features]_”h]”hŒrust-unstable-features”…””}”hjüsbah}”(h]”j›ah ]”h"]”h$]”h&]”hÁjÚuh1jZhj€jõKubauŒrefids”}”hÂ]”h·asŒnameids”}”(jîhÂjíjêjÅjÂjåjâjñjîj$j!jUjRj†jƒj·j´jèjåjjjJjGj{jxj¬j©jÝjÚuŒ nametypes”}”(jîˆjí‰jʼnjå‰jñˆj$ˆjUˆj†ˆj·ˆjèˆjˆjJˆj{ˆj¬ˆj݈uh}”(hÂhÆjêhÆhøj\j/jljbj|j•jŒjëjœjÂjÿj+j¬jLj¼jâjÈjôjÌj9jÜjljìj›jüjîj¾j!jöjRj'jƒjXj´j‰jåjºjjëjGjjxjMj©j~jÚj¯uŒ footnote_refs”}”Œ citation_refs”}”(jX]”j\ajj]”jlajz]”j|ajŠ]”jŒajš]”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öj'jXj‰jºjëjjMj~j¯eŒautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”j&K 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.