rust/library/core/src
bors 91b61a4ad6 Auto merge of #110389 - mazong1123:add-shortcut-for-grisu3, r=Mark-Simulacrum
Add shortcut for Grisu3 algorithm.

While Grisu3 is way more faster for most numbers compare to Dragon4, the fall back to Dragon4 procedure for certain numbers could cause some performance regressions compare to use Dragon4 directly. Mitigating the regression caused by falling back is important for a largely used core library.

In Grisu3 algorithm implementation, there's a shortcut to jump out earlier when the fractional or integrals cannot meet the requirement of requested digits. This could significantly improve the performance of converting floating number to string as it falls back even without starting trying the algorithm.

The original idea is from the [.NET implementation](https://github.com/dotnet/runtime/blob/main/src/libraries/System.Private.CoreLib/src/System/Number.Grisu3.cs#L602-L615) and the code was originally added in [this PR](https://github.com/dotnet/coreclr/pull/14646#issuecomment-350942050). This shortcut has been shipped long time ago and has been proved working.

Fix #110129
2023-04-25 07:05:50 +00:00
..
alloc core is now compilable 2023-04-16 07:20:26 +00:00
array Add intrinsics::transmute_unchecked 2023-04-22 17:22:03 -07:00
async_iter use consistent terminology 2022-10-29 09:23:12 +02:00
cell Auto merge of #106152 - SUPERCILEX:lazycell, r=Amanieu 2023-04-24 23:47:32 +00:00
char rm const traits in libcore 2023-04-16 06:49:27 +00:00
cmp Merge two different equality specialization traits in core 2023-03-01 14:42:06 -08:00
convert rm const traits in libcore 2023-04-16 06:49:27 +00:00
ffi fix tidy 2023-04-16 07:27:28 +00:00
fmt Add reason to #![unstable] tag. 2023-04-20 19:38:33 +02:00
future Remove identity_future indirection 2023-03-08 15:37:14 +01:00
hash core is now compilable 2023-04-16 07:20:26 +00:00
intrinsics Rollup merge of #110154 - DaniPopes:library-typos, r=JohnTitor 2023-04-14 21:11:12 +02:00
iter rm const traits in libcore 2023-04-16 06:49:27 +00:00
macros Revert "Remove #[alloc_error_handler] from the compiler and library" 2023-04-25 00:08:35 +02:00
mem Add intrinsics::transmute_unchecked 2023-04-22 17:22:03 -07:00
net remove some unneeded imports 2023-04-12 19:27:18 +02:00
num Auto merge of #110389 - mazong1123:add-shortcut-for-grisu3, r=Mark-Simulacrum 2023-04-25 07:05:50 +00:00
ops Auto merge of #110393 - fee1-dead-contrib:rm-const-traits, r=oli-obk 2023-04-19 13:03:40 +00:00
panic Rollup merge of #110110 - lukas-code:display-panic-info, r=JohnTitor 2023-04-14 21:11:12 +02:00
prelude Revert "Remove #[alloc_error_handler] from the compiler and library" 2023-04-25 00:08:35 +02:00
ptr Auto merge of #110393 - fee1-dead-contrib:rm-const-traits, r=oli-obk 2023-04-19 13:03:40 +00:00
slice Rollup merge of #110635 - scottmcm:zst-checks, r=the8472 2023-04-22 10:33:57 +09:00
str core is now compilable 2023-04-16 07:20:26 +00:00
sync rm const traits in libcore 2023-04-16 06:49:27 +00:00
task rm const traits in libcore 2023-04-16 06:49:27 +00:00
unicode Use hex literal for INDEX_MASK 2023-03-21 09:59:47 +01:00
any.rs rm const traits in libcore 2023-04-16 06:49:27 +00:00
arch.rs move core::arch into separate file 2022-11-20 10:28:14 +01:00
ascii.rs Inline <EscapeDefault as Iterator>::next 2022-03-10 15:35:22 +01:00
asserting.rs [RFC 2011] Library code 2022-05-22 07:18:32 -03:00
bool.rs core is now compilable 2023-04-16 07:20:26 +00:00
borrow.rs rm const traits in libcore 2023-04-16 06:49:27 +00:00
cell.rs rm const traits in libcore 2023-04-16 06:49:27 +00:00
clone.rs core is now compilable 2023-04-16 07:20:26 +00:00
cmp.rs Rollup merge of #110448 - ripytide:master, r=cuviper 2023-04-20 17:03:24 +09:00
default.rs rm const traits in libcore 2023-04-16 06:49:27 +00:00
error.md Small round of typo fixes 2022-11-04 20:06:18 -07:00
error.rs Bump to latest beta 2023-03-15 08:55:22 -04:00
hint.rs Fix grammar 2023-04-22 15:58:44 +01:00
internal_macros.rs rm const traits in libcore 2023-04-16 06:49:27 +00:00
intrinsics.rs Add intrinsics::transmute_unchecked 2023-04-22 17:22:03 -07:00
lib.rs readd const_trait to Drop, Destruct, and Fn* 2023-04-16 09:25:23 +00:00
marker.rs readd const_trait to Drop, Destruct, and Fn* 2023-04-16 09:25:23 +00:00
option.rs core is now compilable 2023-04-16 07:20:26 +00:00
panic.rs Replace libstd, libcore, liballoc in docs. 2022-12-30 14:00:40 +01:00
panicking.rs Auto merge of #98112 - saethlin:mir-alignment-checks, r=oli-obk 2023-03-31 08:50:35 +00:00
pin.rs Beautify pin! docs 2023-03-16 18:03:23 +01:00
primitive.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
primitive_docs.rs remove some unneeded imports 2023-04-12 19:27:18 +02:00
result.rs core is now compilable 2023-04-16 07:20:26 +00:00
time.rs Use fmt::Alignment instead of fmt::rt::v1::Alignment. 2023-04-20 18:03:47 +02:00
tuple.rs rm const traits in libcore 2023-04-16 06:49:27 +00:00
unit.rs Use implicit capture syntax in format_args 2022-03-10 10:23:40 -05:00