€•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”…”�”}”(hj�h²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Öhj�ubah}”(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.