source: general/prog/rust.xml@ 8f9e533

12.0 12.1 kea ken/TL2024 ken/tuningfonts lazarus lxqt plabs/newcss python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since 8f9e533 was 8f9e533, checked in by Douglas R. Reno <renodr@…>, 13 months ago

Update to rust-1.68.1

  • Property mode set to 100644
File size: 26.9 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY rust-download-http "https://static.rust-lang.org/dist/rustc-&rust-version;-src.tar.xz">
8 <!ENTITY rust-download-ftp " ">
9 <!ENTITY rust-md5sum "3b94faca83c0c56f2d04ea3b3a22699b">
10 <!ENTITY rust-size "141 MB">
11 <!ENTITY rust-buildsize "8.9 GB (308 MB installed); add 7.2 GB if running the tests">
12 <!ENTITY rust-time "24 SBU (including download time; add 17 SBU for tests, both using parallelism=4)">
13]>
14
15<sect1 id="rust" xreflabel="rustc-&rust-version;">
16 <?dbhtml filename="rust.html"?>
17
18
19 <title>Rustc-&rust-version;</title>
20
21 <indexterm zone="rust">
22 <primary sortas="a-rust">Rust</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to Rust</title>
27 <para>
28 The <application>Rust</application> programming language is designed
29 to be a safe, concurrent, practical language.
30 </para>
31
32 <para>
33 This package is updated on a six-weekly release cycle. Because it is
34 such a large and slow package to build, is at the moment only required
35 by a few packages in this book, and particularly because newer versions
36 tend to break older mozilla packages, the BLFS editors take the view that
37 it should only be updated when that is necessary (either to fix problems,
38 or to allow a new version of a package to build).
39 </para>
40
41 <para>
42 As with many other programming languages, rustc (the rust compiler)
43 needs a binary from which to bootstrap. It will download a stage0
44 binary at the start of the build, so you cannot compile it without an
45 Internet connection.
46 </para>
47
48 <note>
49 <para>
50 Although BLFS usually installs in <filename
51 class="directory">/usr</filename>, when you later upgrade to a newer
52 version of <application>rust</application> the old libraries in <filename
53 class="directory">/usr/lib/rustlib</filename> will remain, with various
54 hashes in their names, but will not be usable and will waste space. The
55 editors recommend placing the files in the <filename
56 class="directory">/opt</filename> directory. In particular, if you
57 have reason to rebuild with a modified configuration (e.g. using the
58 shipped LLVM after building with shared LLVM, perhaps to compile crates
59 for architectures which the BLFS LLVM build does not support)
60 it is possible for the install to leave a broken
61 <command>cargo</command> program. In such a situation, either remove
62 the existing installation first, or use a different prefix such as
63 /opt/rustc-&rust-version;-build2.
64 </para>
65
66 <para>
67 If you prefer, you can of course change the prefix to <filename
68 class="directory">/usr</filename>.
69 </para>
70 </note>
71
72 <para>
73 The current <application>rustbuild</application> build-system will use
74 all processors, although it does not scale well and often falls
75 back to just using one core while waiting for a library to compile.
76 However it can be mostly limited to a specified number of processors by
77 a combination of adding the switch <literal>--jobs &lt;N&gt;</literal>
78 (e.g. '--jobs 4' to limit to 4 processors) on each invocation of
79 <command>python3 ./x.py</command> <emphasis>and</emphasis> using an
80 environment variable <envar>CARGO_BUILD_JOBS=&lt;N&gt;</envar>. At the
81 moment this is not effective when some of the rustc tests are run.
82 </para>
83
84 <para>
85 The current version of rust's num_cpus crate now recognizes that cgroups
86 can be used to restrict which processors it is allowed to use. So if your
87 machine lacks DRAM (typically, less than 2GB DRAM per core) that might be
88 an alternative to taking CPUs offline.
89 <phrase revision="sysv">In sysv systems cgroups requires <ulink
90 url="https://sourceforge.net/projects/libcg/">libcgroup</ulink>.</phrase>
91 <phrase revision="systemd">That can be achieved by using
92 <command>systemd-run</command> command with
93 <parameter>-p User=$(whoami)</parameter> and
94 <parameter>-p AllowedCPUs=0-<replaceable>x</replaceable></parameter>
95 (with <replaceable>x</replaceable> replaced with the number of CPU
96 cores you want to use minus one) options.</phrase>
97 </para>
98
99 <para>
100 At the moment <application>Rust</application> does not provide any
101 guarantees of a stable ABI.
102 </para>
103
104 <note>
105 <para>
106 Rustc defaults to building for ALL supported architectures, using a
107 shipped copy of LLVM. In BLFS the build is only for the X86
108 architecture.
109 If you intend to develop rust crates, this build may not be good
110 enough for your purposes.
111 </para>
112 <para>
113 The build times of this version when repeated on the same machine are
114 often reasonably consistent, but as with all compilations using
115 <command>rustc</command> there can be some very slow outliers.
116 </para>
117 </note>
118
119 &lfs113_checked;
120
121 <bridgehead renderas="sect3">Package Information</bridgehead>
122 <itemizedlist spacing="compact">
123 <listitem>
124 <para>
125 Download (HTTP): <ulink url="&rust-download-http;"/>
126 </para>
127 </listitem>
128 <listitem>
129 <para>
130 Download (FTP): <ulink url="&rust-download-ftp;"/>
131 </para>
132 </listitem>
133 <listitem>
134 <para>
135 Download MD5 sum: &rust-md5sum;
136 </para>
137 </listitem>
138 <listitem>
139 <para>
140 Download size: &rust-size;
141 </para>
142 </listitem>
143 <listitem>
144 <para>
145 Estimated disk space required: &rust-buildsize;
146 </para>
147 </listitem>
148 <listitem>
149 <para>
150 Estimated build time: &rust-time;
151 </para>
152 </listitem>
153 </itemizedlist>
154
155<!--<bridgehead renderas="sect3">Additional Downloads</bridgehead>
156 <itemizedlist spacing="compact">
157 <listitem>
158 <para>
159 Required patch:
160 <ulink url="&patch-root;/rustc-&rust-version;-llvm9_fixes-1.patch"/>
161 </para>
162 </listitem>
163 </itemizedlist>-->
164
165 <bridgehead renderas="sect3">Rust Dependencies</bridgehead>
166
167 <bridgehead renderas="sect4">Required</bridgehead>
168 <para role="required">
169 <xref linkend="cmake"/>
170 </para>
171
172 <bridgehead renderas="sect4">Recommended</bridgehead>
173 <para role="recommended">
174 <xref linkend="curl"/>,
175 <xref linkend="libssh2"/>, and
176 <xref linkend="llvm"/>
177 (built with -DLLVM_LINK_LLVM_DYLIB=ON so that rust can link to
178 system LLVM instead of building its shipped version)
179 </para>
180
181 <note>
182 <para>
183 If a recommended dependency is not installed, a shipped copy in the
184 Rustc source tarball will be built and used.
185 </para>
186 </note>
187
188 <bridgehead renderas="sect4">Optional</bridgehead>
189 <para role="optional">
190 <xref linkend="gdb"/> (used by the test suite if it is present) and
191 <ulink url='https://libgit2.org/'>libgit2</ulink>
192 </para>
193
194 <para condition="html" role="usernotes">
195 User Notes: <ulink url="&blfs-wiki;/rust"/>
196 </para>
197 </sect2>
198
199 <sect2 role="installation">
200 <title>Installation of Rust</title>
201
202 <note>
203 <para>
204 Currently the rust compiler produces SSE2 instructions for 32-bit x86,
205 causing the generated code to be broken on 32-bit systems without a
206 SSE2-capable processor. All x86 processor models released after
207 2004 should be SSE2-capable. Run
208 <command>lscpu | grep sse2</command> as a test. If it outputs
209 anything, your CPU is SSE2-capable and OK. Otherwise you may try
210 to build this package <emphasis>on a SSE2-capable system</emphasis>
211 with the following fix applied:
212 </para>
213
214 <!-- computeroutput used deliberately to stop anyone from copying
215 blindly -->
216<screen role="nodump"><computeroutput>sed 's@pentium4@pentiumpro@' -i \
217 compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs</computeroutput></screen>
218
219 <para>
220 And copy the resulting
221 <filename class="directory">/opt/rustc-&rust-version;</filename>
222 to the system without SSE2 capability. But this change is still
223 under upstream review and not tested by BLFS editors.
224 </para>
225 </note>
226
227 <para>
228 To install into the
229 <filename class="directory">/opt</filename> directory, remove any
230 existing <filename>/opt/rustc</filename> symlink
231 and create a new directory (i.e. with a different name if trying a
232 modified build of the same version).
233 As the <systemitem class="username">root</systemitem>
234 user:
235 </para>
236
237<screen role="root"><userinput>mkdir -pv /opt/rustc-&rust-version; &amp;&amp;
238ln -svfn rustc-&rust-version; /opt/rustc</userinput></screen>
239
240 <note>
241 <para>
242 If multiple versions of <application>Rust</application> are installed
243 in <filename class="directory">/opt</filename>, changing to another
244 version only requires changing the <filename> /opt/rustc</filename>
245 symbolic link and then running <command>ldconfig</command>.
246 </para>
247 </note>
248
249 <para>
250 Create a suitable <filename>config.toml</filename> file which will
251 configure the build.
252 </para>
253
254<screen><userinput>cat &lt;&lt; EOF &gt; config.toml
255<literal># see config.toml.example for more possible options
256# See the 8.4 book for an old example using shipped LLVM
257# e.g. if not installing clang, or using a version before 13.0
258
259# tell x.py to not keep printing an annoying warning
260changelog-seen = 2
261
262[llvm]
263# by default, rust will build for a myriad of architectures
264targets = "X86"
265
266# When using system llvm prefer shared libraries
267link-shared = true
268
269[build]
270# omit docs to save time and space (default is to build them)
271docs = false
272
273# install extended tools: cargo, clippy, etc
274extended = true
275
276# Do not query new versions of dependencies online.
277locked-deps = true
278
279# Specify which extended tools (those from the default install).
280tools = ["cargo", "clippy", "rustfmt"]
281
282# Use the source code shipped in the tarball for the dependencies.
283# The combination of this and the "locked-deps" entry avoids downloading
284# many crates from Internet, and makes the Rustc build more stable.
285vendor = true
286
287[install]
288prefix = "/opt/rustc-&rust-version;"
289docdir = "share/doc/rustc-&rust-version;"
290
291[rust]
292channel = "stable"
293description = "for BLFS &version;"
294
295# BLFS used to not install the FileCheck executable from llvm,
296# so disabled codegen tests. The assembly tests rely on FileCheck
297# and cannot easily be disabled, so those will anyway fail if
298# FileCheck has not been installed.
299#codegen-tests = false
300
301[target.x86_64-unknown-linux-gnu]
302# NB the output of llvm-config (i.e. help options) may be
303# dumped to the screen when config.toml is parsed.
304llvm-config = "/usr/bin/llvm-config"
305
306[target.i686-unknown-linux-gnu]
307# NB the output of llvm-config (i.e. help options) may be
308# dumped to the screen when config.toml is parsed.
309llvm-config = "/usr/bin/llvm-config"
310
311</literal>
312EOF</userinput></screen>
313
314<!--<para>
315 Adapt rustc to allow it to build and function with the changes in LLVM-9:
316 </para>
317
318<screen><userinput remap="pre">patch -Np1 -i ../rustc-&rust-version;-llvm9_fixes-1.patch</userinput></screen>-->
319
320 <para>
321 Compile <application>Rust</application> by running the following
322 commands:
323 </para>
324
325<!-- fixed in 1.58.0, retain as a reminder that fixed crates can be used
326<screen><userinput>sed -i -e '/^curl /s/0.4.38/0.4.40/' \
327 -e '/^curl-sys /s/0.4.48/0.4.50/' \
328 src/tools/cargo/Cargo.toml &amp;&amp; -->
329
330<screen><userinput>{ [ ! -e /usr/include/libssh2.h ] ||
331 export LIBSSH2_SYS_USE_PKG_CONFIG=1; } &amp;&amp;
332python3 ./x.py build</userinput></screen>
333
334 <note>
335 <para>
336 The test suite will generate some messages in the
337 <phrase revision="sysv">system log</phrase>
338 <phrase revision="systemd">systemd journal</phrase>
339 for traps on invalid opcodes, and for segmentation faults.
340 In themselves these are nothing to worry about, just a way for the
341 test to be terminated.
342 </para>
343 </note>
344
345 <para>
346 To run the tests (again using all available CPUs) issue:
347 </para>
348
349<screen remap="test"><userinput>python3 ./x.py test --verbose --no-fail-fast | tee rustc-testlog</userinput></screen>
350
351 <para>
352 If <command>FileCheck</command> from <application>LLVM</application> has
353 not been installed, all 47 tests from the <quote>assembly</quote> suite
354 will fail.
355 </para>
356
357 <para>
358 As with all large test suites, other tests might fail on some machines -
359 if the number of additional failures is in the single digits,
360 check the log for 'failures:' and review lines above that, particularly the
361 'stderr:' lines. Any mention of
362 SIGSEGV or signal 11 in a failing test is a cause for concern.
363 </para>
364
365 <para>
366 If you get any <emphasis>other</emphasis> failing test which reports an
367 issue number then you should search for that issue. For example, when
368 rustc &gt;= 1.41.1 was built with a version of sysllvm before 10.0 the test
369 for issue 69225 failed <ulink
370 url="https://github.com/rust-lang/rust/issues/69225"/> and that should be
371 regarded as a critical failure (they released 1.41.1 because of it).
372 Most other failures will not be critical.
373 </para>
374
375 <para>
376 Therefore, you should determine the number of failures.
377 </para>
378
379 <para>
380 The number of tests which passed and failed can be found by running:
381 </para>
382
383<!-- split into two lines for narrower screen windows -->
384<screen remap="test"><userinput>grep '^test result:' rustc-testlog |
385 awk '{sum1 += $4; sum2 += $6} END { print sum1 " passed; " sum2 " failed" }'</userinput></screen>
386
387 <para>
388 The other available fields are $8 for those which were ignored
389 (i.e. skipped), $10 for 'measured' and $12 for 'filtered out' but both
390 those last two are probably zero.
391 </para>
392
393 <para>
394 Now, as the &root; user, install the package:
395 </para>
396
397 <note>
398 <para>
399 If <command>sudo</command> or <command>su</command> is invoked for
400 switching to the &root; user, ensure
401 <envar>LIBSSH2_SYS_USE_PKG_CONFIG</envar> is correctly passed or the
402 following command may completely rebuild this package. For
403 <command>sudo</command>, use the
404 <option>--preserve-env=LIBSSH2_SYS_USE_PKG_CONFIG</option> option.
405 For <command>su</command>, do <emphasis>not</emphasis> use the
406 <option>-</option> or <option>--login</option>.
407 </para>
408 </note>
409
410<screen role='root'><userinput>python3 ./x.py install</userinput></screen>
411
412 </sect2>
413
414 <sect2 role="commands">
415 <title>Command Explanations</title>
416
417 <para>
418 <command>ln -svfn rustc-&rust-version; /opt/rustc</command>: if this is
419 not the first use of the <filename class="directory">/opt/rustc</filename>
420 symlink, overwrite it by forcing, and use the '-n' flag to avoid getting
421 confusing results from e.g. <command>ls -l</command>.
422 </para>
423
424 <para>
425 <command>targets = "X86"</command>: this avoids building all the available
426 linux cross-compilers (AArch64, MIPS, PowerPC, SystemZ, etc). Unfortunately,
427 rust insists on installing source files for these below
428 <filename class="directory">/opt/rustc/lib/src</filename>.
429 </para>
430
431 <para>
432 <command>extended = true</command>: this installs several tools
433 (specified by the <literal>tools</literal> entry) alongside
434 <command>rustc</command>.
435 </para>
436
437 <para>
438 <command>tools = ["cargo", "clippy", "rustfmt"]</command>: if the tools
439 are not scecified, the absence of <application>Miri</application> now
440 causes the install to fail. But <application>Miri</application> is not
441 built in the stable channel. Some of the other tools are unlikely to
442 be useful unless using (old) code analyzers or editing the standard library.
443 This set match those from the 'default' profile in binary command
444 <command>rustup</command> which are recommended for most users, except that
445 the documentation was disabled at the start of the '[build]' section.
446 </para>
447
448 <para>
449 <command>channel = "stable"</command>: this ensures only stable features
450 can be used, the default in <filename>config.toml</filename> is to use
451 development features, which is not appropriate for a released version.
452 </para>
453
454 <!-- comment while using shipped LLVM -->
455 <para>
456 <command>[target.x86_64-unknown-linux-gnu]</command>: the syntax of
457 <filename>config.toml</filename> requires an <literal>llvm-config</literal>
458 entry for each target for which system-llvm is to be used. Change the target
459 to <literal>[target.i686-unknown-linux-gnu]</literal> if you are building
460 on 32-bit x86. This whole section may be omitted if you wish to build
461 against the shipped llvm, or do not have clang, but the resulting build will
462 be larger and take longer.
463 </para>
464
465<!--<para>
466 <command>sed -i -e '/^curl /s/0.4.38/0.4.40/' ... </command>: two crates
467 normally downloaded for this release do not correctly initialise
468 <application>curl</application> if using
469 <application>openssl-3.0.0</application>. Upstream has fixed that for a
470 future release, this sed causes the fixed versions to be used.
471 </para>-->
472
473 <!-- https://github.com/alexcrichton/ssh2-rs/issues/173 -->
474 <para>
475 <command>export LIBSSH2_SYS_USE_PKG_CONFIG=1</command>: Allow
476 <command>cargo</command> to link to system libssh2.
477 </para>
478
479<!--<para>
480 <command>export RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi"</command>:
481 This adds a link to libffi to any RUSTFLAGS you may already be passing
482 to the build. On some systems, linking fails to include libffi unless
483 this is used. The reason why this is needed is not clear.
484 2023-01-14 : assumed to be no longer needed, but it is some years
485 since one person reported needing this, keep it commented for the moment.
486 </para>-->
487
488 <para>
489 <command>--verbose</command>: this switch can sometimes provide more
490 information about a test which fails.
491 </para>
492
493 <para>
494 <command>--no-fail-fast</command>: this switch ensures that the test suite
495 will not stop at the first error.
496 </para>
497
498 </sect2>
499
500 <sect2 role="configuration">
501 <title>Configuring Rust</title>
502
503 <sect3 id="rustc-config">
504 <title>Configuration Information</title>
505
506 <para>
507 If you installed <application>rustc</application> in
508 <filename class="directory">/opt</filename>, you need to update the
509 following configuration files so that <application>rustc</application>
510 is correctly found by other packages and system processes.
511 </para>
512
513 <para>
514 As the <systemitem class="username">root</systemitem> user, create
515 the <filename>/etc/profile.d/rustc.sh</filename> file:
516 </para>
517
518<screen role="root"><userinput>cat &gt; /etc/profile.d/rustc.sh &lt;&lt; "EOF"
519<literal># Begin /etc/profile.d/rustc.sh
520
521pathprepend /opt/rustc/bin PATH
522
523# Include /opt/rustc/man in the MANPATH variable to access manual pages
524pathappend /opt/rustc/share/man MANPATH
525
526# End /etc/profile.d/rustc.sh</literal>
527EOF</userinput></screen>
528
529 <para>
530 Immediately after installation, update the current PATH
531 for your current shell as a normal user:
532 </para>
533
534<screen><userinput>source /etc/profile.d/rustc.sh</userinput></screen>
535
536 </sect3>
537 </sect2>
538
539
540 <sect2 role="content">
541 <title>Contents</title>
542
543 <segmentedlist>
544 <segtitle>Installed Programs</segtitle>
545 <segtitle>Installed Libraries</segtitle>
546 <segtitle>Installed Directories</segtitle>
547
548 <seglistitem>
549 <seg>
550 cargo-clippy, cargo-fmt, cargo, clippy-driver, rust-gdb,
551 rust-gdbgui, rust-lldb, rustc, rustdoc, and rustfmt
552 </seg>
553 <seg>
554 librustc-driver-&lt;16-byte-hash&gt;.so,
555 libstd-&lt;16-byte-hash&gt;.so, and
556 libtest-&lt;16-byte-hash&gt;.so
557 </seg>
558 <seg>
559 ~/.cargo,
560 /opt/rustc, symbolic link to
561 /opt/rustc-&rust-version;
562 </seg>
563 </seglistitem>
564 </segmentedlist>
565
566 <variablelist>
567 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
568 <?dbfo list-presentation="list"?>
569 <?dbhtml list-presentation="table"?>
570
571 <varlistentry id="cargo-clippy">
572 <term><command>cargo-clippy</command></term>
573 <listitem>
574 <para>
575 provides lint checks for a cargo package
576 </para>
577 <indexterm zone="rust cargo-clippy">
578 <primary sortas="b-cargo-clippy">cargo-clippy</primary>
579 </indexterm>
580 </listitem>
581 </varlistentry>
582
583 <varlistentry id="cargo-fmt">
584 <term><command>cargo-fmt</command></term>
585 <listitem>
586 <para>
587 formats all bin and lib files of the current crate using
588 rustfmt
589 </para>
590 <indexterm zone="rust cargo-fmt">
591 <primary sortas="b-cargo-fmt">cargo-fmt</primary>
592 </indexterm>
593 </listitem>
594 </varlistentry>
595
596<!-- <varlistentry id="cargo-miri">
597 <term><command>cargo-miri</command></term>
598 <listitem>
599 <para>
600 is for use by Miri to interpret bin crates and tests. It is
601 not installed by default.
602 </para>
603 <indexterm zone="rust cargo-miri">
604 <primary sortas="b-cargo-miri">cargo-miri</primary>
605 </indexterm>
606 </listitem>
607 </varlistentry>-->
608
609 <varlistentry id="cargo">
610 <term><command>cargo</command></term>
611 <listitem>
612 <para>
613 is the Package Manager for Rust
614 </para>
615 <indexterm zone="rust cargo">
616 <primary sortas="b-cargo">cargo</primary>
617 </indexterm>
618 </listitem>
619 </varlistentry>
620
621 <varlistentry id="clippy-driver">
622 <term><command>clippy-driver</command></term>
623 <listitem>
624 <para>
625 provides lint checks for Rust
626 </para>
627 <indexterm zone="rust clippy-driver">
628 <primary sortas="b-clippy-driver">clippy-driver</primary>
629 </indexterm>
630 </listitem>
631 </varlistentry>
632
633<!-- <varlistentry id="miri">
634 <term><command>miri</command></term>
635 <listitem>
636 <para>
637 is an interpreter for Rust's mid-level intermediate representation
638 (MIR). It is not installed by default.
639 </para>
640 <indexterm zone="rust miri">
641 <primary sortas="b-miri">miri</primary>
642 </indexterm>
643 </listitem>
644 </varlistentry>
645
646 <varlistentry id="rls">
647 <term><command>rls</command></term>
648 <listitem>
649 <para>
650 is the Rust Language Server. This can run in the background to
651 provide IDEs, editors, and other tools with information about Rust
652 programs
653 </para>
654 <indexterm zone="rust rls">
655 <primary sortas="b-rls">rls</primary>
656 </indexterm>
657 </listitem>
658 </varlistentry>
659
660 <varlistentry id="rust-analyzer">
661 <term><command>rust-analyzer</command></term>
662 <listitem>
663 <para>
664 is an implementation of Language Server Protocol for the Rust
665 programming language.
666 </para>
667 <indexterm zone="rust rust-analyzer">
668 <primary sortas="b-rust-analyzer">rust-analyzer</primary>
669 </indexterm>
670 </listitem>
671 </varlistentry>
672
673 <varlistentry id="rust-demangler">
674 <term><command>rust-demangler</command></term>
675 <listitem>
676 <para>
677 converts a list of Rust mangled symbols into a
678 corresponding list of demangled symbols
679 </para>
680 <indexterm zone="rust rust-demangler">
681 <primary sortas="b-rust-demangler">rust-demangler</primary>
682 </indexterm>
683 </listitem>
684 </varlistentry> -->
685
686 <varlistentry id="rust-gdb">
687 <term><command>rust-gdb</command></term>
688 <listitem>
689 <para>
690 is a wrapper script for gdb, pulling in Python pretty-printing
691 modules installed in
692 <filename class="directory">/opt/rustc-&rust-version;/lib/rustlib/etc</filename>
693 </para>
694 <indexterm zone="rust rust-gdb">
695 <primary sortas="b-rust-gdb">rust-gdb</primary>
696 </indexterm>
697 </listitem>
698 </varlistentry>
699
700 <varlistentry id="rust-gdbgui">
701 <term><command>rust-gdbgui</command></term>
702 <listitem>
703 <para>
704 is a wrapper script for a graphical front end to gdb that runs in a
705 browser
706 </para>
707 <indexterm zone="rust rust-gdbgui">
708 <primary sortas="b-rust-gdbgui">rust-gdbgui</primary>
709 </indexterm>
710 </listitem>
711 </varlistentry>
712
713 <varlistentry id="rust-lldb">
714 <term><command>rust-lldb</command></term>
715 <listitem>
716 <para>
717 is a wrapper script for LLDB (the LLVM debugger)
718 pulling in the Python pretty-printing modules
719 </para>
720 <indexterm zone="rust rust-lldb">
721 <primary sortas="b-rust-lldb">rust=lldb</primary>
722 </indexterm>
723 </listitem>
724 </varlistentry>
725
726 <varlistentry id="rustc">
727 <term><command>rustc</command></term>
728 <listitem>
729 <para>
730 is the rust compiler
731 </para>
732 <indexterm zone="rust rustc">
733 <primary sortas="b-rustc">rustc</primary>
734 </indexterm>
735 </listitem>
736 </varlistentry>
737
738 <varlistentry id="rustdoc">
739 <term><command>rustdoc</command></term>
740 <listitem>
741 <para>
742 generates documentation from rust source code
743 </para>
744 <indexterm zone="rust rustdoc">
745 <primary sortas="b-rustdoc">rustdoc</primary>
746 </indexterm>
747 </listitem>
748 </varlistentry>
749
750 <varlistentry id="rustfmt">
751 <term><command>rustfmt</command></term>
752 <listitem>
753 <para>
754 formats rust code
755 </para>
756 <indexterm zone="rust rustfmt">
757 <primary sortas="b-rustfmt">rustfmt</primary>
758 </indexterm>
759 </listitem>
760 </varlistentry>
761
762 <varlistentry id="libstd">
763 <term><filename class="libraryfile">libstd-&lt;16-byte-hash&gt;.so</filename></term>
764 <listitem>
765 <para>
766 is the Rust Standard Library, the foundation of portable Rust software
767 </para>
768 <indexterm zone="rust libstd">
769 <primary sortas="c-libstd">libstd-&lt;16-byte-hash&gt;.so</primary>
770 </indexterm>
771 </listitem>
772 </varlistentry>
773 </variablelist>
774 </sect2>
775
776</sect1>
Note: See TracBrowser for help on using the repository browser.