Commit Graph

214 Commits

Author SHA1 Message Date
David Tolnay e999a5a689
Update name of clippy clone impl lint
warning: lint `clippy::incorrect_clone_impl_on_copy_type` has been renamed to `clippy::non_canonical_clone_impl`
      --> src/lib.rs:76:13
       |
    76 |     #[allow(clippy::incorrect_clone_impl_on_copy_type)] // false positive https://github.com/rust-lang/rust-clippy/issues/11072
       |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::non_canonical_clone_impl`
       |
       = note: `#[warn(renamed_and_removed_lints)]` on by default
2023-09-13 22:47:39 -06:00
David Tolnay 633b6ae6b2
Ignore needless_doctest_main clippy lint
warning: needless `fn main` in doctest
      --> src/lib.rs:22:5
       |
    22 |   //! fn main() {
       |  _____^
    23 | | //!     let mut buffer = itoa::Buffer::new();
    24 | | //!     let printed = buffer.format(128u64);
    25 | | //!     assert_eq!(printed, "128");
    26 | | //! }
       | |_____^
       |
       = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_doctest_main
       = note: `-W clippy::needless-doctest-main` implied by `-W clippy::all`
       = help: to override `-W clippy::all` add `#[allow(clippy::needless_doctest_main)]`
2023-09-12 22:34:53 -06:00
David Tolnay 03549a22a1
Update actions/checkout@v3 -> v4 2023-09-04 22:34:58 -07:00
David Tolnay 359df33761
Revert "Temporarily disable -Zrandomize-layout due to rustc ICE"
Fixed in nightly-2023-07-23.

This reverts commit 5a2a69eed4.
2023-07-22 18:40:35 -07:00
David Tolnay 5a2a69eed4
Temporarily disable -Zrandomize-layout due to rustc ICE
https://github.com/rust-lang/rust/issues/113941
2023-07-21 20:22:40 -07:00
David Tolnay 81c115b833
Release 1.0.9 2023-07-15 13:44:22 -07:00
David Tolnay e3dcf52700
Opt in to generate-link-to-definition when building on docs.rs 2023-07-15 13:44:09 -07:00
David Tolnay a6af90ff98
Release 1.0.8 2023-07-03 11:20:56 -07:00
David Tolnay f834fdb88e
Add no-std::no-alloc category 2023-07-03 11:20:43 -07:00
David Tolnay 26259a9a1a
Release 1.0.7 2023-07-02 20:42:05 -07:00
David Tolnay 21ee1ba697
Suppress incorrect_clone_impl_on_copy_type clippy false positive
https://github.com/rust-lang/rust-clippy/issues/11072

    error: incorrect implementation of `clone` on a `Copy` type
      --> src/lib.rs:74:29
       |
    74 |       fn clone(&self) -> Self {
       |  _____________________________^
    75 | |         Buffer::new()
    76 | |     }
       | |_____^ help: change this to: `{ *self }`
       |
       = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incorrect_clone_impl_on_copy_type
       = note: `-D clippy::incorrect-clone-impl-on-copy-type` implied by `-D clippy::all`
2023-07-02 20:40:18 -07:00
David Tolnay 0dccfa4597
Ignore expl_impl_clone_on_copy pedantic clippy lint
error: you are implementing `Clone` explicitly on a `Copy` type
      --> src/lib.rs:72:1
       |
    72 | / impl Clone for Buffer {
    73 | |     #[inline]
    74 | |     fn clone(&self) -> Self {
    75 | |         Buffer::new()
    76 | |     }
    77 | | }
       | |_^
       |
    note: consider deriving `Clone` or removing `Copy`
      --> src/lib.rs:72:1
       |
    72 | / impl Clone for Buffer {
    73 | |     #[inline]
    74 | |     fn clone(&self) -> Self {
    75 | |         Buffer::new()
    76 | |     }
    77 | | }
       | |_^
       = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expl_impl_clone_on_copy
       = note: `-D clippy::expl-impl-clone-on-copy` implied by `-D clippy::pedantic`
2023-07-02 20:39:38 -07:00
David Tolnay 9c8ced9755
impl Copy for Buffer 2023-07-02 20:39:11 -07:00
David Tolnay f2d5e2750a
Remove .clippy.toml in favor of respecting rust-version from Cargo.toml 2023-06-15 18:47:05 -07:00
David Tolnay 97a5102fef
Show error details during miri setup in CI
Without this, if it fails, the only information printed is useless:

    Preparing a sysroot for Miri (target: x86_64-unknown-linux-gnu)...
    fatal error: failed to build sysroot; run `cargo miri setup` to see the error details
2023-05-23 08:29:45 -07:00
David Tolnay 57fa3a3878
Update fuzz crate gitignore to ignore coverage dir 2023-03-25 21:35:19 -07:00
David Tolnay 3cab737d59
Release 1.0.6 2023-03-03 15:18:01 -08:00
David Tolnay e9573cd99e
Enable type layout randomization in CI on nightly 2023-02-19 09:21:56 -08:00
David Tolnay 320250e56d
Support a manual trigger on CI workflow 2023-02-18 17:23:53 -08:00
David Tolnay 40db9e7ea8
Prevent actions duplication on noop merge commits 2023-02-01 17:55:23 -08:00
David Tolnay d79365b257
Speed up cargo fuzz CI job
https://github.com/rust-fuzz/cargo-fuzz/pull/317
2023-01-19 17:28:30 -08:00
David Tolnay 5bd582c965
Opt out -Zrustdoc-scrape-examples on docs.rs
I'd like a chance to audit all the code that rustdoc is inserting into
the docs. Currently I am skeptical that showing itoa's internal usages
of APIs is a net benefit to the public documentation. I am also
skeptical that quite so many examples are needed, and that they should
be featured so prominently in comparison to handwritten docs. Lastly I
wish there were a way to turn this behavior off on a more granular
basis.
2023-01-02 21:43:11 -08:00
David Tolnay a77f3c911f
Sync license text with rust-lang repos 2022-12-30 12:00:48 -08:00
David Tolnay ef4faeda61
Release 1.0.5 2022-12-17 11:20:14 -08:00
David Tolnay b74302f21e
Update build status badge 2022-12-15 17:52:40 -08:00
David Tolnay e035699d6b
Time out workflows after 45 minutes
GitHub's default timeout is 6 hours. Recently some of my GitHub Actions
jobs have started randomly stalling for that long, which is inconvenient
because it ties up a chunk of my runner quota. It apepars to be very
rare for a job to recover after stalling. It's better to time out
quicker and retry on a different runner.
2022-11-25 18:56:17 -08:00
David Tolnay faae88d4ea
Release 1.0.4 2022-10-06 16:06:04 -07:00
David Tolnay 29aa8d782b
Merge pull request #38 from dtolnay/nopanic
Add no-panic feature to confirm no panicking codepaths
2022-10-06 16:05:24 -07:00
David Tolnay 91ba6e8326
Add no-panic feature to confirm no panicking codepaths 2022-10-06 16:02:42 -07:00
David Tolnay 228add34e3
Remove default package.readme metadata from Cargo.toml
Since cargo 1.46.0, README.md is recognized by default.
2022-09-14 09:15:59 -07:00
David Tolnay 8c4881a3ad
GitHub Workflows security hardening 2022-09-02 15:09:29 -07:00
David Tolnay ccd581e524
Release 1.0.3 2022-08-03 06:52:18 -07:00
David Tolnay c9010e1515
Update keywords in crates.io metadata 2022-08-02 10:38:55 -07:00
David Tolnay c46afd3801
Add no-std category to crates.io metadata 2022-08-01 00:12:24 -07:00
David Tolnay f0139eb2f8
Add authors to Cargo.toml 2022-07-31 19:25:46 -07:00
David Tolnay 44ed979a8d
Sort package entries in Cargo.toml 2022-07-31 19:19:03 -07:00
David Tolnay 366ff427d7
Use upstreamed docs.rs icon in docs.rs badge 2022-06-11 10:17:10 -07:00
David Tolnay 8e8a84540e
Add actions job to notice outdated dependencies 2022-06-06 17:01:48 -07:00
David Tolnay f3485c0ef7
Release 1.0.2 2022-05-15 14:09:51 -07:00
David Tolnay e2a55ceb94
Add CI job to compile fuzz target 2022-05-15 13:55:36 -07:00
David Tolnay 9825ed8b12
Assert formatted integer parses back to the same value 2022-05-15 13:55:28 -07:00
David Tolnay 4f1481a12a
Assert size of string in fuzz target 2022-05-15 13:55:04 -07:00
David Tolnay 951c29d200
Rename ptr sized integer variants 2022-05-15 13:51:37 -07:00
David Tolnay ff6798f26e
Move ptr sized integer variant last 2022-05-15 13:51:36 -07:00
David Tolnay 6f99ca58e1
Format a single integer per fuzz call 2022-05-15 13:51:36 -07:00
David Tolnay 5638af52e1
Remove unneeded Clone impls from fuzz target 2022-05-15 13:51:36 -07:00
David Tolnay 6ba4e7ca6c
Depend on arbitrary crate directly 2022-05-15 13:51:36 -07:00
David Tolnay 534011840c
Copy cargo-fuzz generated gitignore 2022-05-15 13:51:36 -07:00
David Tolnay 8d798edf30
Touch up PR 32 manifest 2022-05-15 13:41:03 -07:00
David Tolnay 0d042acb34
Merge pull request #32 from adetaylor/fuzz
Add a fuzzer.
2022-05-15 13:40:06 -07:00
David Tolnay 5f720ce7a4
Run miri in stricter miri-strict-provenance mode 2022-05-06 04:01:33 -07:00
David Tolnay 079962b982
Drop unneeded quoting from env variable in workflows yaml 2022-04-28 19:29:09 -07:00
David Tolnay 71926ea4b0
Update workflows to actions/checkout@v3 2022-04-25 01:43:59 -07:00
David Tolnay 8f756bf621
Pull miri from miri branch of dtolnay/rust-toolchain 2022-04-24 15:47:45 -07:00
Adrian Taylor 5f0c1d0f8d Add a fuzzer. 2022-03-04 13:19:14 -08:00
David Tolnay e2364ef593
Detect warnings in CI 2021-12-31 22:22:30 -08:00
David Tolnay ba8dd88380
Release 1.0.1 2021-12-12 12:07:18 -08:00
David Tolnay 5d3b787011
Run clippy on benches as well 2021-12-12 12:04:30 -08:00
David Tolnay fcdb43ec93
Remove no longer triggered clippy suppressions 2021-12-12 12:03:59 -08:00
David Tolnay 52466ab21b
Resolve clippy transmute_ptr_to_ptr lint 2021-12-12 12:00:36 -08:00
David Tolnay f7502e28ab
Move buffer cast operation out of macro 2021-12-12 11:59:10 -08:00
David Tolnay e2609a2fb7
Combine IntegerPrivate into Sealed trait 2021-12-12 11:53:52 -08:00
David Tolnay 93b0d619fc
Inline impl_IntegerCommon macro 2021-12-12 11:52:29 -08:00
David Tolnay 260dfafbd9
Move buffer type to associated type of IntegerPrivate 2021-12-12 11:50:52 -08:00
David Tolnay 2d2eac29b4
Begin unifying write_to signature with write 2021-12-12 11:49:40 -08:00
David Tolnay 54b4f3db29
Guarantee that Integer: Copy 2021-12-12 11:46:02 -08:00
David Tolnay 0f27c02804
Move write implementation out to the private trait 2021-12-12 11:44:54 -08:00
David Tolnay e6a8f6f2f1
Release 1.0.0 2021-12-12 10:42:05 -08:00
David Tolnay ef7c22a081
Remove impl Copy on Buffer 2021-12-12 00:31:45 -08:00
David Tolnay 4f958fd42f
Reword Buffer documentation 2021-12-12 00:31:22 -08:00
David Tolnay bfd3ee6f24
Adjust chart margins and background for dark themes 2021-12-12 00:23:32 -08:00
David Tolnay 0788e27004
Merge pull request #31 from dtolnay/chart
Add latex code for performance chart
2021-12-12 00:02:25 -08:00
David Tolnay 8c3a8a47dd
Add latex code for performance chart 2021-12-12 00:00:11 -08:00
David Tolnay b85761ea04
Link to ryu as successor to dtoa 2021-12-11 21:19:33 -08:00
David Tolnay b618d972b2
Adjust documentation 2021-12-11 21:18:35 -08:00
David Tolnay 1d447bdf15
Delete outdated documentation 2021-12-11 21:08:50 -08:00
David Tolnay 58e20ae3f3
Drop std feature 2021-12-11 21:08:36 -08:00
David Tolnay f90632b9db
Delete io write function 2021-12-11 21:07:41 -08:00
David Tolnay 9cf53f1083
Delete fmt function 2021-12-11 21:07:14 -08:00
David Tolnay 42cb96a975
Clean up test and bench macro syntax 2021-12-11 21:04:54 -08:00
David Tolnay 6b06fb04f7
Remove attr matcher from test and bench macro
Formerly needed for conditional i128 support.
2021-12-11 21:02:37 -08:00
David Tolnay 2581c8cee7
Eliminate itoa::write and itoa::fmt from rustdoc 2021-12-11 20:59:11 -08:00
David Tolnay f42787cdc2
Eliminate itoa::write and itoa::fmt from readme 2021-12-11 20:58:56 -08:00
David Tolnay 259ae8a794
Eliminate itoa::write and itoa::fmt from benches 2021-12-11 20:58:55 -08:00
David Tolnay 1898210ac6
Eliminate itoa::write and itoa::fmt from tests 2021-12-11 20:44:52 -08:00
David Tolnay 865a5517ea
Remove 2015-style extern crate from test and benches 2021-12-11 20:41:09 -08:00
David Tolnay e970e7117f
Enable 128-bit impls unconditionally 2021-12-11 00:54:25 -08:00
David Tolnay 63d5944d90
Suppress remaining clippy lints in udiv128 2021-12-11 00:54:19 -08:00
David Tolnay fb7a827f32
Resolve precedence clippy lint
error: operator precedence can trip the unwary
      --> src/udiv128.rs:15:17
       |
    15 |     let high2 = x_hi as u128 * y_lo as u128 + m_lo as u128 >> 64;
       |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(x_hi as u128 * y_lo as u128 + m_lo as u128) >> 64`
       |
       = note: `-D clippy::precedence` implied by `-D clippy::all`
       = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence
2021-12-11 00:54:15 -08:00
David Tolnay 3091ce69da
Evaluate constant u128 factor 2021-12-11 00:54:10 -08:00
David Tolnay 3101467676
Replace deprecated mem::uninitialized with MaybeUninit 2021-12-11 00:31:43 -08:00
David Tolnay 035d16fda5
Resolve redundant_static_lifetimes clippy lint
error: constants have by default a `'static` lifetime
       --> src/lib.rs:161:24
        |
    161 | const DEC_DIGITS_LUT: &'static [u8] = b"\
        |                       -^^^^^^^----- help: consider removing `'static`: `&[u8]`
        |
        = note: `-D clippy::redundant-static-lifetimes` implied by `-D clippy::all`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes
2021-12-11 00:22:24 -08:00
David Tolnay 4d0a8c78c2
Raise clippy lints up to 1.31 compatibility 2021-12-11 00:22:02 -08:00
David Tolnay 36c5ae17b4
Convert clippy lint level attributes to tool attrs 2021-12-11 00:16:44 -08:00
David Tolnay 341086a6ff
Update to 2018 edition and rust 1.31+ 2021-12-11 00:14:08 -08:00
David Tolnay 96eef6ef6e
Track raw pointers in miri CI run 2021-12-11 00:04:28 -08:00
David Tolnay f1a3a6faf3
Merge pull request #30 from dtolnay/miri
Add a miri test job in CI
2021-12-10 23:09:08 -08:00
David Tolnay 415ab8cf9a
Add a miri test job in CI 2021-12-10 23:06:40 -08:00
David Tolnay d1d4554f26
Suppress broken semicolon_if_nothing_returned lint
Gonna assume this is due to https://github.com/rust-lang/rust-clippy/issues/7768.

    error: consider adding a `;` to the last statement for consistent formatting
       --> src/lib.rs:271:1
        |
    271 | / impl_Integer!(
    272 | |     I8_MAX_LEN => i8,
    273 | |     U8_MAX_LEN => u8,
    274 | |     I16_MAX_LEN => i16,
    ...   |
    277 | |     U32_MAX_LEN => u32
    278 | |     as u32);
        | |____________^
        |
        = note: `-D clippy::semicolon-if-nothing-returned` implied by `-D clippy::pedantic`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned
    help: add a `;` here
        |
    271 + impl_Integer!(
    272 +     I8_MAX_LEN => i8,
    273 +     U8_MAX_LEN => u8,
    274 +     I16_MAX_LEN => i16,
    275 +     U16_MAX_LEN => u16,
    276 +     I32_MAX_LEN => i32,
      ...

    error: consider adding a `;` to the last statement for consistent formatting
       --> src/lib.rs:280:1
        |
    280 | impl_Integer!(I64_MAX_LEN => i64, U64_MAX_LEN => u64 as u64);
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `impl_Integer!(I64_MAX_LEN => i64, U64_MAX_LEN => u64 as u64);;`
        |
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned

    error: consider adding a `;` to the last statement for consistent formatting
       --> src/lib.rs:289:1
        |
    289 | impl_Integer!(I64_MAX_LEN => isize, U64_MAX_LEN => usize as u64);
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `impl_Integer!(I64_MAX_LEN => isize, U64_MAX_LEN => usize as u64);;`
        |
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned
2021-10-04 23:50:01 -04:00
David Tolnay 93e32f72f8
Declare minimum Rust version in Cargo metadata 2021-10-02 01:52:37 -04:00