source: general/prog/rust.xml@ 7975c68a

11.1 11.2 11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 7975c68a was 3e8c126, checked in by Pierre Labastie <pierre.labastie@…>, 2 years ago

Updates and a fix:

Update to LLVM-13.0.0
Update to rustc-1.56.0
Fix Seamonkey to build with the new version of rust

  • Property mode set to 100644
File size: 27.3 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.gz">
8 <!ENTITY rust-download-ftp " ">
9 <!ENTITY rust-md5sum "2a5f12b375b9b8fffe2340f6c2d27eab">
10 <!ENTITY rust-size "172 MB">
11 <!-- Gentle Reminder: buildsize is how much the user requires for the real
12 install, i.e. the source with its DESTDIR *plus* the DESTDIR. You
13 can 'mkdir /tmp/RUST ; cp -a install/* /tmp/RUST' and then run 'du -sch'
14 to measure it, or du -sm to look at the size of the build tree before and
15 after the tests. -->
16
17 <!ENTITY rust-buildsize "8.8 GB (424 MB installed) including 285 MB of ~/.cargo files for the user building this. Add 5.9 GB including extra 273 MB of ~/.cargo files if running the tests">
18 <!ENTITY rust-time "22 SBU (including download time; add 13 SBU for tests, both on a 4-core machine)">
19]>
20
21<sect1 id="rust" xreflabel="rustc-&rust-version;">
22 <?dbhtml filename="rust.html"?>
23
24 <sect1info>
25 <date>$Date$</date>
26 </sect1info>
27
28 <title>Rustc-&rust-version;</title>
29
30 <indexterm zone="rust">
31 <primary sortas="a-rust">Rust</primary>
32 </indexterm>
33
34 <sect2 role="package">
35 <title>Introduction to Rust</title>
36
37 <para>
38 The <application>Rust</application> programming language is designed
39 to be a safe, concurrent, practical language.
40 </para>
41
42 <para>
43 This package is updated on a six-weekly release cycle. Because it is
44 such a large and slow package to build, is at the moment only required
45 by a few packages in this book, and particularly because newer versions
46 tend to break older mozilla packages, the BLFS editors take the view that
47 it should only be updated when that is necessary (either to fix problems,
48 or to allow a new version of a package to build).
49 </para>
50
51 <para>
52 As with many other programming languages, rustc (the rust compiler)
53 needs a binary from which to bootstrap. It will download a stage0 binary
54 and many cargo crates (these are actually .tar.gz source archives) at
55 the start of the build, so you cannot compile it without an internet
56 connection.
57 </para>
58
59 <para>
60 These crates will then remain in various forms (cache, directories of
61 extracted source), in <filename class="directory">~/.cargo</filename> for
62 ever more. It is common for large <application>rust</application> packages
63 to use multiple versions of some crates. If you purge the files before
64 updating this package, very few crates will need to be updated by the
65 packages in this book which use it (and they will be downloaded as
66 required). But if you retain an older version as a fallback option and
67 then use it (when <emphasis>not</emphasis> building in
68 <filename class="directory">/usr</filename>), it is likely that it will
69 then have to re-download some crates. For a full download (i.e. starting
70 with an empty or missing <filename class="directory">~/.cargo</filename>)
71 downloading the external cargo files for this version only takes a minute
72 or so on a fast network.
73 </para>
74
75 <note>
76 <para>
77 Although BLFS usually installs in <filename
78 class="directory">/usr</filename>, when you later upgrade to a newer
79 version of <application>rust</application> the old libraries in <filename
80 class="directory">/usr/lib/rustlib</filename> will remain, with various
81 hashes in their names, but will not be usable and will waste space. The
82 editors recommend placing the files in the <filename
83 class="directory">/opt</filename> directory. In particular, if you
84 have reason to rebuild with a modified configuration (e.g. using the
85 shipped LLVM after building with shared LLVM, or for the
86 reverse situation) it is possible for the install to leave a broken
87 <command>cargo</command> program. In such a situation, either remove
88 the existing installation first, or use a different prefix such as
89 /opt/rustc-&rust-version;-build2.
90 </para>
91
92 <para>
93 If you prefer, you can of course change the prefix to <filename
94 class="directory">/usr</filename> and omit the
95 <command>ldconfig</command> and the actions to add rustc to the PATH.
96 </para>
97 </note>
98
99 <para>
100 The current <application>rustbuild</application> build-system will use
101 all processors, although it does not scale well and often falls
102 back to just using one core while waiting for a library to compile.
103 However it can be mostly limited to a specified number of processors by
104 a combination of adding the switch <literal>--jobs &lt;N&gt;</literal>
105 (e.g. '--jobs 4' to limit to 4 processors) on each invocation of
106 <command>python3 ./x.py</command> <emphasis>and</emphasis> using an
107 environment variable <envar>CARGO_BUILD_JOBS=&lt;N&gt;</envar>. At the
108 moment this is not effective when some of the rustc tests are run.
109 </para>
110
111 <para>
112 The current version of rust's num_cpus crate now recognizes that cgroups
113 can be used to restrict which processors it is allowed to use. So if your
114 machine lacks DRAM (typically, less than 2GB DRAM per core) that might be
115 an alternative to taking CPUs offline.
116 <phrase revision="sysv">In sysv systems cgroups requires <ulink
117 url="https://sourceforge.net/projects/libcg/">libcgroup</ulink>.</phrase>
118 <phrase revision="systemd">That can apparently be achieved by writing
119 custom unit files.</phrase>
120 </para>
121
122 <para>
123 At the moment <application>Rust</application> does not provide any
124 guarantees of a stable ABI.
125 </para>
126
127 <note>
128 <para>
129 Rustc defaults to building for ALL supported architectures, using a
130 shipped copy of LLVM. In BLFS the build is only for the X86
131 architecture.
132 If you intend to develop rust crates, this build may not be good
133 enough for your purposes.
134 </para>
135 <para>
136 The build times of this version when repeated on the same machine are
137 often reasonably consistent, but as with all compilations using
138 <command>rustc</command> there can be some very slow outliers.
139 </para>
140 <para>
141 Unusually, a DESTDIR-style method is being used to install this package.
142 This is because running the install as root not only downloads all of the
143 cargo files again (to <filename>/root/.cargo</filename>), it then spends
144 a very long time recompiling. Using this method saves a lot of time, at
145 the cost of extra disk space.
146 </para>
147 </note>
148
149 &lfs110a_checked;
150
151 <bridgehead renderas="sect3">Package Information</bridgehead>
152 <itemizedlist spacing="compact">
153 <listitem>
154 <para>
155 Download (HTTP): <ulink url="&rust-download-http;"/>
156 </para>
157 </listitem>
158 <listitem>
159 <para>
160 Download (FTP): <ulink url="&rust-download-ftp;"/>
161 </para>
162 </listitem>
163 <listitem>
164 <para>
165 Download MD5 sum: &rust-md5sum;
166 </para>
167 </listitem>
168 <listitem>
169 <para>
170 Download size: &rust-size;
171 </para>
172 </listitem>
173 <listitem>
174 <para>
175 Estimated disk space required: &rust-buildsize;
176 </para>
177 </listitem>
178 <listitem>
179 <para>
180 Estimated build time: &rust-time;
181 </para>
182 </listitem>
183 </itemizedlist>
184
185<!--<bridgehead renderas="sect3">Additional Downloads</bridgehead>
186 <itemizedlist spacing="compact">
187 <listitem>
188 <para>
189 Required patch:
190 <ulink url="&patch-root;/rustc-&rust-version;-llvm9_fixes-1.patch"/>
191 </para>
192 </listitem>
193 </itemizedlist>-->
194
195 <bridgehead renderas="sect3">Rust Dependencies</bridgehead>
196
197 <bridgehead renderas="sect4">Required</bridgehead>
198 <para role="required">
199 <xref linkend="curl"/>,
200 <xref linkend="cmake"/>, and
201 <xref linkend="libssh2"/>
202 </para>
203
204 <bridgehead renderas="sect4">Recommended</bridgehead>
205 <para role="recommended">
206 <package>clang</package> from <xref linkend="llvm"/>
207 (built with -DLLVM_LINK_LLVM_DYLIB=ON so that rust can link to
208 system LLVM instead of building its shipped version)
209 If using an older version, see the config.toml file below re
210 using the shipped llvm, because of rust issue 69225.
211 </para>
212
213 <bridgehead renderas="sect4">Optional</bridgehead>
214 <para role="optional">
215 <xref linkend="gdb"/> (used by the testsuite if it is present)
216 </para>
217
218 <para condition="html" role="usernotes">
219 User Notes: <ulink url="&blfs-wiki;/rust"/>
220 </para>
221 </sect2>
222
223 <sect2 role="installation">
224 <title>Installation of Rust</title>
225
226 <para>
227 To install into the
228 <filename class="directory">/opt</filename> directory, remove the symlink
229 and create a new directory (i.e. with a different name if trying a
230 modified build).
231 As the <systemitem class="username">root</systemitem>
232 user:
233 </para>
234
235<screen role="root"><userinput>mkdir /opt/rustc-&rust-version; &amp;&amp;
236ln -svfin rustc-&rust-version; /opt/rustc</userinput></screen>
237
238 <note>
239 <para>
240 If multiple versions of <application>Rust</application> are installed
241 in <filename class="directory">/opt</filename>, changing to another
242 version only requires changing the <filename> /opt/rustc</filename>
243 symbolic link and then running <command>ldconfig</command>.
244 </para>
245 </note>
246
247 <para>
248 Create a suitable <filename>config.toml</filename> file which will
249 configure the build.
250 </para>
251
252<screen><userinput>cat &lt;&lt; EOF &gt; config.toml
253<literal># see config.toml.example for more possible options
254# See the 8.4 book for an example using shipped LLVM
255# e.g. if not installing clang, or using a version before 10.0
256[llvm]
257# by default, rust will build for a myriad of architectures
258targets = "X86"
259
260# When using system llvm prefer shared libraries
261link-shared = true
262
263[build]
264# omit docs to save time and space (default is to build them)
265docs = false
266
267# install cargo as well as rust
268extended = true
269
270[install]
271prefix = "/opt/rustc-&rust-version;"
272docdir = "share/doc/rustc-&rust-version;"
273
274[rust]
275channel = "stable"
276rpath = false
277
278# BLFS does not install the FileCheck executable from llvm,
279# so disable codegen tests
280codegen-tests = false
281
282[target.x86_64-unknown-linux-gnu]
283# NB the output of llvm-config (i.e. help options) may be
284# dumped to the screen when config.toml is parsed.
285llvm-config = "/usr/bin/llvm-config"
286
287[target.i686-unknown-linux-gnu]
288# NB the output of llvm-config (i.e. help options) may be
289# dumped to the screen when config.toml is parsed.
290llvm-config = "/usr/bin/llvm-config"
291
292</literal>
293EOF</userinput></screen>
294
295<!--<para>
296 Adapt rustc to allow it to build and function with the changes in LLVM-9:
297 </para>
298
299<screen><userinput remap="pre">patch -Np1 -i ../rustc-&rust-version;-llvm9_fixes-1.patch</userinput></screen>-->
300
301 <para>
302 Compile <application>Rust</application> by running the following
303 commands:
304 </para>
305
306<screen><userinput>export RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi" &amp;&amp;
307python3 ./x.py build --exclude src/tools/miri</userinput></screen>
308
309 <note>
310 <para>
311 The testsuite will generate some messages in the
312 <phrase revision="sysv">system log</phrase>
313 <phrase revision="systemd">systemd journal</phrase>
314 for traps on invalid opcodes, and for segmentation faults.
315 In themselves these are nothing to worry about, just a way for the
316 test to be terminated.
317 </para>
318 </note>
319
320 <para>
321 To run the tests issue <command>python3 ./x.py test --verbose
322 --no-fail-fast | tee rustc-testlog</command>: as with the build, that
323 will use all available CPUs.
324 </para>
325
326 <para>
327 At a minimum, fourteen tests will fail: all the tests (eleven) in
328 the <quote>assembly</quote> suite,
329 run-make-fulldeps/long-linker-command-lines, run-make-fulldeps/print-cfg,
330 run-make-fulldeps/sysroot-crates-are-unstable.
331 If <command>gdb</command> is installed, another failure
332 (debuginfo/function-names.rs) can be expected.
333 </para>
334
335 <para>
336 As with all large testsuites, other tests might fail on some machines -
337 if the number of additional failures is in the single digits,
338 check the log for 'FAILED' and review lines above that, particularly the
339 'stderr:' lines. Any mention of
340 SIGSEGV or signal 11 in a failing test is a cause for concern.
341 </para>
342
343 <para>
344 If you get any <emphasis>other</emphasis> failing test which reports an
345 issue number then you should search for that issue. For example, when
346 rustc &gt;= 1.41.1 was built with a version of sysllvm before 10.0 the test
347 for issue 69225 failed <ulink
348 url="https://github.com/rust-lang/rust/issues/69225"/> and that should be
349 regarded as a critical failure (they released 1.41.1 because of it).
350 Most other failures will not be critical.
351 </para>
352
353 <para>
354 Therefore, you should determine the number of failures.
355 </para>
356
357<!--
358 The total number
359 of tests varies depending on which dependencies are present, e.g. more
360 will be run if <command>gdb</command> is available. If you wish, the
361 total number which were considered can be found if you run:
362 </para>
363
364<screen remap="test"><userinput>egrep 'running [[:digit:]]+ test' rustc-testlog | awk '{ sum += $2 } END { print sum }'</userinput></screen>-->
365
366 <para>
367 The number of tests which failed can be found by running:
368 </para>
369
370<screen remap="test"><userinput>grep '^test result:' rustc-testlog | awk '{ sum += $6 } END { print sum }'</userinput></screen>
371
372 <para>
373 And similarly if you care about how many tests passed use $4, for those
374 which were ignored (i.e. skipped) use $8 (and $10 for 'measured', $12 for
375 'filtered out' but both are probably zero).
376 </para>
377
378 <para>
379 Still as your normal user, do a DESTDIR install:
380 </para>
381
382<screen><userinput>export LIBSSH2_SYS_USE_PKG_CONFIG=1 &amp;&amp;
383DESTDIR=${PWD}/install python3 ./x.py install &amp;&amp;
384unset LIBSSH2_SYS_USE_PKG_CONFIG</userinput></screen>
385
386 <para>
387 Now, as the <systemitem class="username">root</systemitem> user
388 install the files from the DESTDIR:
389 </para>
390
391<screen role="root"><userinput>chown -R root:root install &amp;&amp;
392cp -a install/* /</userinput></screen>
393
394 </sect2>
395
396 <sect2 role="commands">
397 <title>Command Explanations</title>
398
399 <para>
400 <command>ln -svfn rustc-&rust-version; /opt/rustc</command>: if this is
401 not the first use of the <filename class="directory">/opt/rustc</filename>
402 symlink, overwrite it by forcing, and use the '-n' flag to avoid getting
403 confusing results from e.g. <command>ls -l</command>.
404 </para>
405
406 <para>
407 <command>targets = "X86"</command>: this avoids building all the available
408 linux cross-compilers (Aarch64, MIPS, PowerPC, SystemZ, etc). Unfortunately,
409 rust insists on installing source files for these below
410 <filename class="directory">/opt/rustc/lib/src</filename>.
411 </para>
412
413 <para>
414 <command>extended = true</command>: this installs Cargo alongside Rust.
415 </para>
416
417 <para>
418 <command>channel = "stable"</command>: this ensures only stable features
419 can be used, the default in <filename>config.toml</filename> is to use
420 development features, which is not appropriate for a released version.
421 </para>
422
423 <para>
424 <command>rpath = false</command>: by default, <command>rust</command> can
425 be run from where it was built, without being installed. That adds DT_RPATH
426 entries to all of the ELF files, which produces very messy output from
427 <command>ldd</command>, showing the libraries in the place they were built,
428 even if they have been deleted from there after the install.
429 </para>
430
431 <!-- comment while using shipped LLVM -->
432 <para>
433 <command>[target.x86_64-unknown-linux-gnu]</command>: the syntax of
434 <filename>config.toml</filename> requires an <literal>llvm-config</literal>
435 entry for each target for which system-llvm is to be used. Change the target
436 to <literal>[target.i686-unknown-linux-gnu]</literal> if you are building
437 on 32-bit x86. This whole section may be omitted if you wish to build
438 against the shipped llvm, or do not have clang, but the resulting build will
439 be larger and take longer.
440 </para>
441
442 <para>
443 <command>export RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi"</command>:
444 This adds a link to libffi to any RUSTFLAGS you may already be passing
445 to the build. On some systems, linking fails to include libffi unless
446 this is used. The reason why this is needed is not clear.
447 </para>
448
449 <para>
450 <command>--exclude src/tools/miri</command>: For a long time, the miri
451 crate (an interpreter for the Midlevel Intermediate Representation)
452 has failed to build on releases. It is optional, but the failure
453 messages can persuade people that the whole build failed. However,
454 although it is not built in the main compile, with rustc-1.35.0 it
455 now got compiled during the install, but it was broken in that version.
456 <!-- might be unbroken in 1.36.0, if so remove broken from description
457 of miri below. https://github.com/rust-lang/rust/issues/61830 -->
458 Omitting it should save a little time.
459 </para>
460
461 <para>
462 <command>--verbose</command>: this switch can sometimes provide more
463 information about a test which fails.
464 </para>
465
466 <para>
467 <command>--no-fail-fast</command>: this switch ensures that the testsuite
468 will not stop at the first error.
469 </para>
470
471 <para>
472 <command>export LIBSSH2_SYS_USE_PKG_CONFIG=1</command>: On some systems,
473 cairo fails to link during the install because it cannot find libssh2.
474 This seems to fix it, but again the reason why the problem occurs is not
475 understood.
476 </para>
477
478 <para>
479 <command>DESTDIR=${PWD}/install python3 ./x.py install</command>: This
480 effects a DESTDIR-style install in the source tree,creating an <filename
481 class="directory">install</filename> directory. Note that DESTDIR installs
482 need an absolute path, passing 'install' will not work.
483 </para>
484
485 <para>
486 <command>chown -R root:root install</command>: the DESTDIR install
487 was run by a regular user, who owns the files. For security, change their
488 owner before doing a simple copy to install them.
489 </para>
490
491 </sect2>
492
493 <sect2 role="configuration">
494 <title>Configuring Rust</title>
495
496 <sect3 id="rustc-config">
497 <title>Configuration Information</title>
498
499 <para>
500 If you installed <application>rustc</application> in
501 <filename class="directory">/opt</filename>, you need to update the
502 following configuration files so that <application>rustc</application>
503 is correctly found by other packages and system processes.
504 </para>
505
506 <para>
507 As the <systemitem class="username">root</systemitem> user, update
508 the <filename>/etc/ld.so.conf</filename> file and the dynamic linker's
509 run-time cache file:
510 </para>
511
512<screen role="root"><userinput>cat &gt;&gt; /etc/ld.so.conf &lt;&lt; EOF
513<literal># Begin rustc addition
514
515/opt/rustc/lib
516
517# End rustc addition</literal>
518EOF
519
520ldconfig</userinput></screen>
521
522 <indexterm zone="rust rustc-config">
523 <primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary>
524 </indexterm>
525
526 <para>
527 As the <systemitem class="username">root</systemitem> user, create
528 the <filename>/etc/profile.d/rustc.sh</filename> file:
529 </para>
530
531<screen role="root"><userinput>cat &gt; /etc/profile.d/rustc.sh &lt;&lt; "EOF"
532<literal># Begin /etc/profile.d/rustc.sh
533
534pathprepend /opt/rustc/bin PATH
535
536# End /etc/profile.d/rustc.sh</literal>
537EOF</userinput></screen>
538
539 <para>
540 Immediately after installation, update the current PATH
541 for your current shell as a normal user:
542 </para>
543
544<screen><userinput>source /etc/profile.d/rustc.sh</userinput></screen>
545
546 </sect3>
547 </sect2>
548
549
550 <sect2 role="content">
551 <title>Contents</title>
552
553 <segmentedlist>
554 <segtitle>Installed Programs</segtitle>
555 <segtitle>Installed Libraries</segtitle>
556 <segtitle>Installed Directories</segtitle>
557
558 <seglistitem>
559 <seg>
560 cargo-clippy, cargo-fmt, cargo-miri (optional), cargo, clippy-driver,
561 miri (optional),
562 rls, rust-demangler, rust-gdb, rust-gdbgui, rust-lldb, rustc,
563 rustdoc, rustfmt.
564 </seg>
565 <seg>
566 librustc-driver-&lt;16-byte-hash&gt;.so,
567 libstd-&lt;16-byte-hash&gt;.so, and
568 libtest-&lt;16-byte-hash&gt;.so
569 </seg>
570 <seg>
571 ~/.cargo,
572 /opt/rustc, symbolic link to
573 /opt/rustc-&rust-version;
574 </seg>
575 </seglistitem>
576 </segmentedlist>
577
578 <variablelist>
579 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
580 <?dbfo list-presentation="list"?>
581 <?dbhtml list-presentation="table"?>
582
583 <varlistentry id="cargo-clippy">
584 <term><command>cargo-clippy</command></term>
585 <listitem>
586 <para>
587 provides lint checks for a cargo package
588 </para>
589 <indexterm zone="rust cargo-clippy">
590 <primary sortas="b-cargo-clippy">cargo-clippy</primary>
591 </indexterm>
592 </listitem>
593 </varlistentry>
594
595 <varlistentry id="cargo-fmt">
596 <term><command>cargo-fmt</command></term>
597 <listitem>
598 <para>
599 formats all bin and lib files of the current crate using
600 rustfmt
601 </para>
602 <indexterm zone="rust cargo-fmt">
603 <primary sortas="b-cargo-fmt">cargo-fmt</primary>
604 </indexterm>
605 </listitem>
606 </varlistentry>
607
608 <varlistentry id="cargo-miri">
609 <term><command>cargo-miri</command></term>
610 <listitem>
611 <para>
612 <!-- FIXME reword to 'is used by' if Miri installed
613 AND works enough to report its \-\-help -->
614 is for use by Miri to interpret bin crates and tests
615 </para>
616 <indexterm zone="rust cargo-miri">
617 <primary sortas="b-cargo-miri">cargo-miri</primary>
618 </indexterm>
619 </listitem>
620 </varlistentry>
621
622 <varlistentry id="cargo">
623 <term><command>cargo</command></term>
624 <listitem>
625 <para>
626 is the Package Manager for Rust
627 </para>
628 <indexterm zone="rust cargo">
629 <primary sortas="b-cargo">cargo</primary>
630 </indexterm>
631 </listitem>
632 </varlistentry>
633
634 <varlistentry id="clippy-driver">
635 <term><command>clippy-driver</command></term>
636 <listitem>
637 <para>
638 provides lint checks for Rust
639 </para>
640 <indexterm zone="rust clippy-driver">
641 <primary sortas="b-clippy-driver">clippy-driver</primary>
642 </indexterm>
643 </listitem>
644 </varlistentry>
645
646 <varlistentry id="miri">
647 <term><command>miri</command></term>
648 <listitem>
649 <para>
650 is an interpreter for Rust's mid-level intermediate representation
651 (MIR). It is broken in this version
652 </para>
653 <indexterm zone="rust miri">
654 <primary sortas="b-miri">miri</primary>
655 </indexterm>
656 </listitem>
657 </varlistentry>
658
659 <varlistentry id="rls">
660 <term><command>rls</command></term>
661 <listitem>
662 <para>
663 is the Rust Language Server. This can run in the background to
664 provide IDEs, editors, and other tools with information about Rust
665 programs
666 </para>
667 <indexterm zone="rust rls">
668 <primary sortas="b-rls">rls</primary>
669 </indexterm>
670 </listitem>
671 </varlistentry>
672
673 <varlistentry id="rust-analyzer">
674 <term><command>rust-analyzer</command></term>
675 <listitem>
676 <para>
677 is an implementation of Language Server Protocol for the Rust
678 programming language.
679 </para>
680 <indexterm zone="rust rust-analyzer">
681 <primary sortas="b-rust-analyzer">rust-analyzer</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.