<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/etc/dec2flt_table.py, branch 1.76.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.76.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.76.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2023-06-17T00:56:01+00:00</updated>
<entry>
<title>Apply changes to fix python linting errors</title>
<updated>2023-06-17T00:56:01+00:00</updated>
<author>
<name>Trevor Gross</name>
<email>tmgross@umich.edu</email>
</author>
<published>2023-06-10T16:06:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=22d00dcd47e0b8e18eb254966750fb523c726e4e'/>
<id>urn:sha1:22d00dcd47e0b8e18eb254966750fb523c726e4e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Changed dec2flt to use the Eisel-Lemire algorithm.</title>
<updated>2021-07-17T05:30:34+00:00</updated>
<author>
<name>Alex Huszagh</name>
<email>ahuszagh@gmail.com</email>
</author>
<published>2021-07-17T05:30:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8752b403695a8830913571f0fd5ebfcf1483db37'/>
<id>urn:sha1:8752b403695a8830913571f0fd5ebfcf1483db37</id>
<content type='text'>
Implementation is based off fast-float-rust, with a few notable changes.

- Some unsafe methods have been removed.
- Safe methods with inherently unsafe functionality have been removed.
- All unsafe functionality is documented and provably safe.
- Extensive documentation has been added for simpler maintenance.
- Inline annotations on internal routines has been removed.
- Fixed Python errors in src/etc/test-float-parse/runtests.py.
- Updated test-float-parse to be a library, to avoid missing rand dependency.
- Added regression tests for #31109 and #31407 in core tests.
- Added regression tests for #31109 and #31407 in ui tests.
- Use the existing slice primitive to simplify shared dec2flt methods
- Remove Miri ignores from dec2flt, due to faster parsing times.

- resolves #85198
- resolves #85214
- resolves #85234
- fixes #31407
- fixes #31109
- fixes #53015
- resolves #68396
- closes https://github.com/aldanor/fast-float-rust/issues/15
</content>
</entry>
<entry>
<title>Change twice used large const table to static</title>
<updated>2021-03-01T18:41:16+00:00</updated>
<author>
<name>David Tolnay</name>
<email>dtolnay@gmail.com</email>
</author>
<published>2021-03-01T07:51:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bd51dea6934d5c583fe9c8bc806e6287cac43f90'/>
<id>urn:sha1:bd51dea6934d5c583fe9c8bc806e6287cac43f90</id>
<content type='text'>
This table is used twice in core::num::dec2flt::algorithm::power_of_ten.
According to the semantics of const, a separate huge definition of the
table is inlined at both places.

    fn power_of_ten(e: i16) -&gt; Fp {
        assert!(e &gt;= table::MIN_E);
        let i = e - table::MIN_E;
        let sig = table::POWERS.0[i as usize];
        let exp = table::POWERS.1[i as usize];
        Fp { f: sig, e: exp }
    }

Theoretically this gets cleaned up by optimization passes, but in
practice I am experiencing a miscompile from LTO on this code. Making
the table a static, which would only be defined a single time and not
require attention from LTO, eliminates the miscompile and seems
semantically more appropriate anyway. A separate bug report on the LTO
bug is forthcoming.
</content>
</entry>
<entry>
<title>Enforce Python 3 as much as possible</title>
<updated>2020-04-10T13:09:58+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2019-11-21T12:57:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=38eb369fa4d06e55869a8fae62796a7b0085a5bd'/>
<id>urn:sha1:38eb369fa4d06e55869a8fae62796a7b0085a5bd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>remove unnecessary sys import</title>
<updated>2020-02-08T04:49:40+00:00</updated>
<author>
<name>Chris Simpkins</name>
<email>git.simpkins@gmail.com</email>
</author>
<published>2020-02-08T04:49:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f38e2701d862379eca06475d196438038ca72564'/>
<id>urn:sha1:f38e2701d862379eca06475d196438038ca72564</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make dec2flt_table compatible with rustfmt</title>
<updated>2019-11-30T04:17:09+00:00</updated>
<author>
<name>David Tolnay</name>
<email>dtolnay@gmail.com</email>
</author>
<published>2019-11-30T03:38:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d353a4c2672b6688899a833b022d9f75a7090b60'/>
<id>urn:sha1:d353a4c2672b6688899a833b022d9f75a7090b60</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove licenses</title>
<updated>2018-12-26T04:08:33+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2018-12-25T15:56:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2a663555ddf36f6b041445894a8c175cd1bc718c'/>
<id>urn:sha1:2a663555ddf36f6b041445894a8c175cd1bc718c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Speed up dec2flt fast path with additional tables.</title>
<updated>2016-01-12T21:25:16+00:00</updated>
<author>
<name>Robin Kruppe</name>
<email>robin.kruppe@gmail.com</email>
</author>
<published>2015-12-30T13:01:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=dad1df6c1ab8fa06e9c5a28a6849e61fcdaa5008'/>
<id>urn:sha1:dad1df6c1ab8fa06e9c5a28a6849e61fcdaa5008</id>
<content type='text'>
Add tables of small powers of ten used in the fast path. The tables are redundant: We could also use the big, more accurate table and round the value to the correct type (in fact we did just that before this commit). However, the rounding is extra work and slows down the fast path.

Because only very small exponents enter the fast path, the table and thus the space overhead is negligible. Speed-wise, this is a clear win on a [benchmark] comparing the fast path to a naive, hand-optimized, inaccurate algorithm. Specifically, this change narrows the gap from a roughly 5x difference to a roughly 3.4x difference.

[benchmark]: https://gist.github.com/Veedrac/dbb0c07994bc7882098e
</content>
</entry>
<entry>
<title>Script for generating the powers-of-ten tables necessary for correct and</title>
<updated>2015-08-08T15:15:25+00:00</updated>
<author>
<name>Robin Kruppe</name>
<email>robin.kruppe@gmail.com</email>
</author>
<published>2015-07-26T13:44:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b7e39a1c2dd24fd4110c22c70cad254365b0ffd3'/>
<id>urn:sha1:b7e39a1c2dd24fd4110c22c70cad254365b0ffd3</id>
<content type='text'>
fast decimal-to-float conversions.
</content>
</entry>
</feed>
