Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 16 pull requests #129802

Closed
wants to merge 41 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
6ed283b
rustdoc-json: Add test for `Self` type
aDotInTheVoid Aug 15, 2024
ae6f8a7
allow BufReader::peek to be called on unsized types
lolbinarycat Aug 28, 2024
9200452
Stop using ty::GenericPredicates for non-predicates_of queries
compiler-errors Aug 29, 2024
eb8e78f
f32 docs: define 'arithmetic' operations
RalfJung Aug 29, 2024
9c910e8
llvm-wrapper: adapt for LLVM API changes
krasimirgg Aug 29, 2024
8c798c8
Simplify some extern providers
compiler-errors Aug 29, 2024
c71ede3
Add a test for trait solver overflow in MIR inliner cycle detection
saethlin Aug 29, 2024
c339541
Make the "detect-old-time" UI test more representative
cuviper Aug 29, 2024
99558dc
Update the `wasm-component-ld` binary dependency
alexcrichton Aug 29, 2024
fa4f892
Remove `Option<!>` return types.
nnethercote Aug 29, 2024
ed5161c
Remove `#[macro_use] extern crate tracing` from `rustc_mir_transform`.
nnethercote Aug 28, 2024
04a07dc
Remove `#[macro_use] extern crate tracing` from `rustc_infer`.
nnethercote Aug 29, 2024
37d1ce9
Remove `#[macro_use] extern crate tracing` from rustdoc.
nnethercote Aug 30, 2024
de02c4a
Remove `#[macro_use] extern crate tracing` from rustfmt helpers.
nnethercote Aug 30, 2024
ee5ec5a
Remove `#[macro_use] extern crate tracing` from rustfmt.
nnethercote Aug 30, 2024
08fadfd
add hyphen in floating-point
RalfJung Aug 30, 2024
67556ec
Remove `#[macro_use] extern crate tracing` from `rustc_borrowck`.
nnethercote Aug 29, 2024
cc16c90
Remove `#[macro_use] extern crate tracing` from `rustc_hir_analysis`.
nnethercote Aug 29, 2024
4b3fa8e
Remove `#[macro_use] extern crate tracing` from `rustc_trait_selection`.
nnethercote Aug 29, 2024
c5e4ff1
Remove `#[macro_use] extern crate tracing` from `rustc_hir_typeck`.
nnethercote Aug 29, 2024
f6b7727
enumerate the two parts of the NaN rules
RalfJung Aug 30, 2024
355d7c9
couple more crash tests
matthiaskrgr Aug 30, 2024
fff063e
add crashtests for several old unfixed ICEs
cyrgani Aug 30, 2024
1447e9c
Deny imports of rustc_type_ir::inherent outside of type ir + new trai…
compiler-errors Aug 28, 2024
f512892
mark joboet as on vacation
joboet Aug 30, 2024
c3b1336
Rollup merge of #129123 - aDotInTheVoid:rustdoc-json-self, r=fmease
workingjubilee Aug 31, 2024
8beadf5
Rollup merge of #129675 - lolbinarycat:bufreader_peek_unsized, r=work…
workingjubilee Aug 31, 2024
044669c
Rollup merge of #129678 - compiler-errors:type-ir-inherent, r=fmease
workingjubilee Aug 31, 2024
490937c
Rollup merge of #129723 - compiler-errors:extern-providers, r=lcnr
workingjubilee Aug 31, 2024
915ec41
Rollup merge of #129724 - nnethercote:rm-Option-bang, r=fee1-dead
workingjubilee Aug 31, 2024
ea5f66f
Rollup merge of #129725 - compiler-errors:predicates-of, r=fmease
workingjubilee Aug 31, 2024
0fa102c
Rollup merge of #129730 - RalfJung:float-arithmetic, r=workingjubilee
workingjubilee Aug 31, 2024
c6a17b1
Rollup merge of #129749 - krasimirgg:llvm-20-lto, r=nikic
workingjubilee Aug 31, 2024
b28c987
Rollup merge of #129757 - saethlin:half-a-recursion, r=compiler-errors
workingjubilee Aug 31, 2024
c5ccdf0
Rollup merge of #129760 - cuviper:old-timey, r=compiler-errors
workingjubilee Aug 31, 2024
24572d0
Rollup merge of #129762 - alexcrichton:update-wasm-component-ld, r=ji…
workingjubilee Aug 31, 2024
b49ba78
Rollup merge of #129767 - nnethercote:rm-extern-crate-tracing-4, r=ji…
workingjubilee Aug 31, 2024
cff2cc2
Rollup merge of #129774 - nnethercote:rm-extern-crate-tracing-remaind…
workingjubilee Aug 31, 2024
bc90926
Rollup merge of #129780 - cyrgani:master, r=compiler-errors
workingjubilee Aug 31, 2024
651bddc
Rollup merge of #129782 - matthiaskrgr:c, r=jieyouxu
workingjubilee Aug 31, 2024
a06e44b
Rollup merge of #129791 - joboet:ich_bin_dann_mal_weg, r=joboet
workingjubilee Aug 31, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
f32 docs: define 'arithmetic' operations
  • Loading branch information
RalfJung committed Aug 29, 2024
commit eb8e78f624fe4fbae1b5840be3a517cf148abf2b
35 changes: 19 additions & 16 deletions library/core/src/primitive_docs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1219,22 +1219,25 @@ mod prim_f16 {}
///
/// # NaN bit patterns
///
/// This section defines the possible NaN bit patterns returned by non-"bitwise" floating point
/// operations. The bitwise operations are unary `-`, `abs`, `copysign`; those are guaranteed to
/// exactly preserve the bit pattern of their input except for possibly changing the sign bit.
/// This section defines the possible NaN bit patterns returned by floating point operations.
///
/// A floating-point NaN value consists of:
/// - a sign bit
/// - a quiet/signaling bit
/// The bit pattern of a floating point NaN value is defined by:
/// - a sign bit.
/// - a quiet/signaling bit. Rust assumes that the quiet/signaling bit being set to `1` indicates a
/// quiet NaN (QNaN), and a value of `0` indicates a signaling NaN (SNaN). In the following we
/// will hence just call it the "quiet bit".
/// - a payload, which makes up the rest of the significand (i.e., the mantissa) except for the
/// quiet/signaling bit.
/// quiet bit.
///
/// Rust assumes that the quiet/signaling bit being set to `1` indicates a quiet NaN (QNaN), and a
/// value of `0` indicates a signaling NaN (SNaN). In the following we will hence just call it the
/// "quiet bit".
/// The rules for NaN values differ between *arithmetic* and *non-arithmetic* (or "bitwise")
/// operations. The non-arithmetic operations are unary `-`, `abs`, `copysign`, `signum`,
/// `{to,from}_bits`, `{to,from}_{be,le,ne}_bytes` and `is_sign_{positive,negative}`. These
/// operations are guaranteed to exactly preserve the bit pattern of their input except for possibly
/// changing the sign bit.
///
/// The following rules apply when a NaN value is returned: the result has a non-deterministic sign.
/// The quiet bit and payload are non-deterministically chosen from the following set of options:
/// The following rules apply when a NaN value is returned from an arithmetic operation: the result
/// has a non-deterministic sign. The quiet bit and payload are non-deterministically chosen from
/// the following set of options:
///
/// - **Preferred NaN**: The quiet bit is set and the payload is all-zero.
/// - **Quieting NaN propagation**: The quiet bit is set and the payload is copied from any input
Expand Down Expand Up @@ -1273,10 +1276,10 @@ mod prim_f16 {}
/// (e.g. `min`, `minimum`, `max`, `maximum`); other aspects of their semantics and which IEEE 754
/// operation they correspond to are documented with the respective functions.
///
/// When a floating-point operation is executed in `const` context, the same rules apply: no
/// guarantee is made about which of the NaN bit patterns described above will be returned. The
/// result does not have to match what happens when executing the same code at runtime, and the
/// result can vary depending on factors such as compiler version and flags.
/// When an arithmetic floating point operation is executed in `const` context, the same rules
/// apply: no guarantee is made about which of the NaN bit patterns described above will be
/// returned. The result does not have to match what happens when executing the same code at
/// runtime, and the result can vary depending on factors such as compiler version and flags.
///
/// ### Target-specific "extra" NaN values
// FIXME: Is there a better place to put this?
Expand Down
Loading