Doing advent of code with CUDA and rust.

Overview

advent-of-cuda

I want to get better at writing cuda kernels so I plan on doing advent of code with cuda.

You can follow along here.

This for advent of code 2023.

Some days problems wont be able to be solved this way, but we will just take them as we go! Probably will modify the problems just to learn things.

You will need cuda installed and llvm, see here.

The kernels themselves are in the gpu/ directory. Then I test them from the code in src/.

This repo depends on a super old toolchain because of the rust cuda sdk. In areas the rust cuda sdk won't work for what we want, we can wrap c++ in rust.

Comments
  • Update rayon requirement from =1.5.1 to =1.8.0

    Update rayon requirement from =1.5.1 to =1.8.0

    Updates the requirements on rayon to permit the latest version.

    Changelog

    Sourced from rayon's changelog.

    Release rayon 1.6.1 (2022-12-09)

    • Simplified par_bridge to only pull one item at a time from the iterator, without batching. Threads that are waiting for iterator items will now block appropriately rather than spinning CPU. (Thanks @​njaard!)
    • Added protection against recursion in par_bridge, so iterators that also invoke rayon will not cause mutex recursion deadlocks.

    Release rayon-core 1.10.1 (2022-11-18)

    • Fixed a race condition with threads going to sleep while a broadcast starts.

    Release rayon 1.6.0 / rayon-core 1.10.0 (2022-11-18)

    • The minimum supported rustc is now 1.56.
    • The new IndexedParallelIterator::fold_chunks and fold_chunks_with methods work like ParallelIterator::fold and fold_with with fixed-size chunks of items. This may be useful for predictable batching performance, without the allocation overhead of IndexedParallelIterator::chunks.
    • New "broadcast" methods run a given function on all threads in the pool. These run at a sort of reduced priority after each thread has exhausted their local work queue, but before they attempt work-stealing from other threads.
      • The global broadcast function and ThreadPool::broadcast method will block until completion, returning a Vec of all return values.
      • The global spawn_broadcast function and methods on ThreadPool, Scope, and ScopeFifo will run detached, without blocking the current thread.
    • Panicking methods now use #[track_caller] to report the caller's location.
    • Fixed a truncated length in vec::Drain when given an empty range.

    Contributors

    Thanks to all of the contributors for this release!

    Release rayon 1.5.3 (2022-05-13)

    • The new ParallelSliceMut::par_sort_by_cached_key is a stable sort that caches the keys for each item -- a parallel version of slice::sort_by_cached_key.

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • Bump Swatinem/rust-cache from 1 to 2

    Bump Swatinem/rust-cache from 1 to 2

    Bumps Swatinem/rust-cache from 1 to 2.

    Release notes

    Sourced from Swatinem/rust-cache's releases.

    v2.0.0

    • The action code was refactored to allow for caching multiple workspaces and different target directory layouts.
    • The working-directory and target-dir input options were replaced by a single workspaces option that has the form of $workspace -> $target.
    • Support for considering env-vars as part of the cache key.
    • The sharedKey input option was renamed to shared-key for consistency.

    v1.4.0

    • Clean both debug and release target directories.

    v1.3.0

    • Use Rust toolchain file as additional cache key.
    • Allow for a configurable target-dir.

    v1.2.0

    • Cache ~/.cargo/bin.
    • Support for custom $CARGO_HOME.
    • Add a cache-hit output.
    • Add a new sharedKey option that overrides the automatic job-name based key.

    v1.1.0

    • Add a new working-directory input.
    • Support caching git dependencies.
    • Lots of other improvements.

    v1.0.1

    • Improved logging output.
    • Make sure to consider all-features dependencies when pruning.
    • Work around macOS cache corruption.
    • Remove git-db cache for now.
    Changelog

    Sourced from Swatinem/rust-cache's changelog.

    Changelog

    2.7.1

    • Update toml parser to fix parsing errors.

    2.7.0

    • Properly cache trybuild tests.

    2.6.2

    • Fix toml parsing.

    2.6.1

    • Fix hash contributions of Cargo.lock/Cargo.toml files.

    2.6.0

    • Add "buildjet" as a second cache-provider backend.
    • Clean up sparse registry index.
    • Do not clean up src of -sys crates.
    • Remove .cargo/credentials.toml before saving.

    2.5.1

    • Fix hash contribution of Cargo.lock.

    2.5.0

    • feat: Rm workspace crates version before caching.
    • feat: Add hash of .cargo/config.toml to key.

    2.4.0

    • Fix cache key stability.
    • Use 8 character hash components to reduce the key length, making it more readable.

    2.3.0

    • Add cache-all-crates option, which enables caching of crates installed by workflows.
    • Add installed packages to cache key, so changes to workflows that install rust tools are detected and cached properly.
    • Fix cache restore failures due to upstream bug.
    • Fix EISDIR error due to globed directories.
    • Update runtime @actions/cache, @actions/io and dev typescript dependencies.
    • Update npm run prepare so it creates distribution files with the right line endings.

    2.2.1

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 0
  • Bump Jimver/cuda-toolkit from 0.2.4 to 0.2.11

    Bump Jimver/cuda-toolkit from 0.2.4 to 0.2.11

    Bumps Jimver/cuda-toolkit from 0.2.4 to 0.2.11.

    Release notes

    Sourced from Jimver/cuda-toolkit's releases.

    v0.2.11

    What's Changed

    Full Changelog: https://github.com/Jimver/cuda-toolkit/compare/v0.2.10...v0.2.11

    v0.2.10

    What's Changed

    Full Changelog: https://github.com/Jimver/cuda-toolkit/compare/v0.2.9...v0.2.10

    v0.2.9

    New CUDA versions!

    • Now supporting CUDA versions 12.0.0 up to and including 12.1.0

    What's Changed

    ... (truncated)

    Commits
    • acce010 Add docs for non-cuda-sub-packages to README
    • 1655ee1 Prepare v0.2.11 release
    • c0432b8 Update dist
    • 257a101 Add links to CUDA toolkit 12.2.0
    • bd00ab9 Update dist
    • 3800432 Don't prepend cuda- prefix to ubuntu package names
    • 6974ecc Merge pull request #216 from Jimver/release-v0.2.10
    • 0f4de59 Update version to 0.2.10
    • 4e45657 Merge pull request #210 from Jimver/dependabot/npm_and_yarn/actions/artifact-...
    • 3ba0076 Build bundle
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 0
  • Bump actions/checkout from 2 to 4

    Bump actions/checkout from 2 to 4

    Bumps actions/checkout from 2 to 4.

    Release notes

    Sourced from actions/checkout's releases.

    v4.0.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3...v4.0.0

    v3.6.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3.5.3...v3.6.0

    v3.5.3

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3...v3.5.3

    v3.5.2

    What's Changed

    Full Changelog: https://github.com/actions/checkout/compare/v3.5.1...v3.5.2

    v3.5.1

    What's Changed

    New Contributors

    ... (truncated)

    Changelog

    Sourced from actions/checkout's changelog.

    Changelog

    v4.1.0

    v4.0.0

    v3.6.0

    v3.5.3

    v3.5.2

    v3.5.1

    v3.5.0

    v3.4.0

    v3.3.0

    v3.2.0

    v3.1.0

    v3.0.2

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 0
  • Update regex-syntax requirement from =0.6.28 to =0.8.2

    Update regex-syntax requirement from =0.6.28 to =0.8.2

    Updates the requirements on regex-syntax to permit the latest version.

    Changelog

    Sourced from regex-syntax's changelog.

    1.10.2 (2023-10-16)

    This is a new patch release that fixes a search regression where incorrect matches could be reported.

    Bug fixes:

    1.10.1 (2023-10-14)

    This is a new patch release with a minor increase in the number of valid patterns and a broadening of some literal optimizations.

    New features:

    • FEATURE 04f5d7be: Loosen ASCII-compatible rules such that regexes like (?-u:☃) are now allowed.

    Performance improvements:

    • PERF 8a8d599f: Broader the reverse suffix optimization to apply in more cases.

    1.10.0 (2023-10-09)

    This is a new minor release of regex that adds support for start and end word boundary assertions. That is, \< and \>. The minimum supported Rust version has also been raised to 1.65, which was released about one year ago.

    The new word boundary assertions are:

    • \< or \b{start}: a Unicode start-of-word boundary (\W|\A on the left, \w on the right).
    • \> or \b{end}: a Unicode end-of-word boundary (\w on the left, \W|\z on the right)).
    • \b{start-half}: half of a Unicode start-of-word boundary (\W|\A on the left).
    • \b{end-half}: half of a Unicode end-of-word boundary (\W|\z on the right).

    The \< and \> are GNU extensions to POSIX regexes. They have been added to the regex crate because they enjoy somewhat broad support in other regex engines as well (for example, vim). The \b{start} and \b{end} assertions are aliases for \< and \>, respectively.

    The \b{start-half} and \b{end-half} assertions are not found in any

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • Update regex requirement from =1.7.1 to =1.10.2

    Update regex requirement from =1.7.1 to =1.10.2

    Updates the requirements on regex to permit the latest version.

    Changelog

    Sourced from regex's changelog.

    1.7.1 (2023-01-09)

    This release was done principally to try and fix the doc.rs rendering for the regex crate.

    Performance improvements:

    Bug fixes:

    1.7.0 (2022-11-05)

    This release principally includes an upgrade to Unicode 15.

    New features:

    1.6.0 (2022-07-05)

    This release principally includes an upgrade to Unicode 14.

    New features:

    Bug fixes:

    1.5.6 (2022-05-20)

    This release includes a few bug fixes, including a bug that produced incorrect

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • Update thread_local requirement from =1.1.4 to =1.1.7

    Update thread_local requirement from =1.1.4 to =1.1.7

    Updates the requirements on thread_local to permit the latest version.

    Commits
    • d9c6ff3 Bump version to 1.1.7
    • 4315fdf Properly handle arbitrary TLS destruction order
    • 905dad5 Bump version to 1.1.6
    • b45a736 Remove incorrect thread_id::try_get function
    • 63c4c62 Make criterion a normal dev-dependency
    • da1bb2a Bump MSRV to 1.59 and update CI to Github Actions
    • d350189 Bump version to 1.1.5
    • 1466993 Merge pull request #44 from Amanieu/split-tls
    • cedabb1 Add a "nightly" feature to use #[thread_local]
    • 6631b73 Split the thread-id TLS into 2 variables
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • Update rayon-core requirement from =1.10.0 to =1.12.0

    Update rayon-core requirement from =1.10.0 to =1.12.0

    Updates the requirements on rayon-core to permit the latest version.

    Changelog

    Sourced from rayon-core's changelog.

    Release rayon 1.8.0 / rayon-core 1.12.0 (2023-09-20)

    • The minimum supported rustc is now 1.63.
    • Added ThreadPoolBuilder::use_current_thread to use the builder thread as part of the new thread pool. That thread does not run the pool's main loop, but it may participate in work-stealing if it yields to rayon in some way.
    • Implemented FromParallelIterator<T> for Box<[T]>, Rc<[T]>, and Arc<[T]>, as well as FromParallelIterator<Box<str>> and ParallelExtend<Box<str>> for String.
    • ThreadPoolBuilder::build_scoped now uses std::thread::scope.
    • The default number of threads is now determined using std::thread::available_parallelism instead of the num_cpus crate.
    • The internal logging facility has been removed, reducing bloat for all users.
    • Many smaller performance tweaks and documentation updates.

    Release rayon 1.7.0 / rayon-core 1.11.0 (2023-03-03)

    • The minimum supported rustc is now 1.59.
    • Added a fallback when threading is unsupported.
    • The new ParallelIterator::take_any and skip_any methods work like unordered IndexedParallelIterator::take and skip, counting items in whatever order they are visited in parallel.
    • The new ParallelIterator::take_any_while and skip_any_while methods work like unordered Iterator::take_while and skip_while, which previously had no parallel equivalent. The "while" condition may be satisfied from anywhere in the parallel iterator, affecting all future items regardless of position.
    • The new yield_now and yield_local functions will cooperatively yield execution to Rayon, either trying to execute pending work from the entire pool or from just the local deques of the current thread, respectively.

    Release rayon-core 1.10.2 (2023-01-22)

    • Fixed miri-reported UB for SharedReadOnly tags protected by a call.

    Release rayon 1.6.1 (2022-12-09)

    • Simplified par_bridge to only pull one item at a time from the iterator, without batching. Threads that are waiting for iterator items will now block appropriately rather than spinning CPU. (Thanks @​njaard!)
    • Added protection against recursion in par_bridge, so iterators that also invoke rayon will not cause mutex recursion deadlocks.

    Release rayon-core 1.10.1 (2022-11-18)

    • Fixed a race condition with threads going to sleep while a broadcast starts.

    Release rayon 1.6.0 / rayon-core 1.10.0 (2022-11-18)

    • The minimum supported rustc is now 1.56.
    • The new IndexedParallelIterator::fold_chunks and fold_chunks_with methods

    ... (truncated)

    Commits
    • 7449d7d Merge #1093
    • b3d9e3f Release rayon 1.8.0 and rayon-core 1.12.0
    • 3fe51e5 Fix clippy::let_and_return
    • 082f215 Merge #1087
    • ea0c06d core: registry: Factor out "wait till out of work" part of the main loop.
    • 75524e2 Merge #1063
    • 01d2800 Ignore the multi-threaded test on emscripten/wasm
    • 40b59c0 core: Make use_current_thread error rather than panic when already in the pool.
    • f4db4d7 core: tests: Add some basic tests for ThreadPoolBuilder::use_current_thread.
    • 87274ad core: registry: Add some more documentation for ThreadPoolBuilder::use_curren...
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • Update byteorder requirement from =1.4.0 to =1.5.0

    Update byteorder requirement from =1.4.0 to =1.5.0

    Updates the requirements on byteorder to permit the latest version.

    Changelog

    Sourced from byteorder's changelog.

    WARNING: This CHANGELOG is no longer updated. The activity for this project is sparse enough that you should refer to the commit log instead.

    1.3.4

    This patch release squashes deprecation warnings for the try! macro, in accordance with byteorder's minimum supported Rust version (currently at Rust 1.12.0).

    1.3.3

    This patch release adds ByteOrder::write_i8_into() as a simple, safe interface for ordinarily unsafe or tedious code.

    1.3.2

    This patch release adds ReadBytesExt::read_i8_into() as a simple, safe interface for ordinarily unsafe or tedious code.

    1.3.1

    This minor release performs mostly small internal changes. Going forward, these are not going to be incorporated into the changelog.

    1.3.0

    This new minor release now enables i128 support automatically on Rust compilers that support 128-bit integers. The i128 feature is now a no-op, but continues to exist for backward compatibility purposes. The crate continues to maintain compatibility with Rust 1.12.0.

    This release also deprecates the ByteOrder trait methods read_f32_into_unchecked and read_f64_into_unchecked in favor of read_f32_into and read_f64_into. This was an oversight from the 1.2 release where the corresponding methods on ReadBytesExt were deprecated.

    quickcheck and rand were bumped to 0.8 and 0.6, respectively.

    A few small documentation related bugs have been fixed.

    1.2.7

    This patch release excludes some CI files from the crate release and updates the license field to use OR instead of /.

    ... (truncated)

    Commits
    • ec068ee 1.5.0
    • 0cfb84d cargo: a few small fixups
    • 62b0e31 changelog: add a note about it not being updated
    • dd41ee2 msrv: bump to Rust 1.60
    • 52cc70c safety: verify alignment requirements of floats vs ints
    • c0b6678 impl: remove unsafe code from read_uint and read_uint128 methods
    • 1e2d8b0 impl: eliminate unsafe_write_num_bytes
    • 368cb55 impl: refactor write_slice macro slightly
    • c01f0fe impl: eliminate special case checking target_endian
    • 3409ee1 perf: convert endianess while reading slice in a single pass
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
Owner
Jess Frazelle
A superhero with supervillain tendencies.
Jess Frazelle
A validations framework for doing quality control in studios.

Untitled Checks Framework Overview This framework is designed to provide a system to write checks for studio work. This includes validating assets (ri

Scott Wilson 8 Jan 28, 2023
My solutions for the Advent of Code 2021 in Scala, Python, Haskell and Rust.

Advent of Code 2021 These are my Advent of Code 2021 solutions written in Scala 3, Haskell, Python and Rust. Day Title L1 L2 L3 L4 01 Sonar Sweep Scal

Axel Suárez 2 Oct 14, 2022
My solutions for the 2021 edition of the Advent of Code, using Rust and SOM (Simple Object Machine)

Advent of Code 2021 These are my solutions for the 2021 edition of the Advent of Code. The solutions are all implemented using both Rust and SOM (Simp

Nicolas Polomack 1 Dec 23, 2021
A cli tool to automatically download and upload advent of code problems.

Advent of Code CLI CLI client for advent of code. The purpose of this tool is so you don't have to leave your editor while participating (if you are l

Tobias Walle 43 Dec 7, 2023
⭐ Advent of Code 2020: Мade with Rust

Advent of Code 2020: Мade with Rust When I was solving puzzles, my goal was to practice writing idiomatic Rust. My solutions do not claim to be the fa

Sergey Grishakov 9 Sep 15, 2022
⭐ Advent of Code 2021: Мade with Rust

Advent of Code 2021: Мade with Rust When I was solving puzzles, my goal was to practice writing idiomatic Rust. My solutions do not claim to be the fa

Sergey Grishakov 13 Dec 2, 2021
Advent of Code 2021 puzzles & solutions in Rust

Advent of Code 2021 These are puzzles for the Advent of Code 2021 challenge, written and solved in the Rust programming language. The puzzle for each

Chevy Ray Johnston 8 Dec 19, 2021
Advent of Code 2021 (Rust)

aoc-2021 Advent of Code 2021 with Rust. To build and run the project This project uses cargo-aoc. More detailed instructions can be found at that proj

Belén Albeza 13 Dec 23, 2021
Advent of Code 2021, also an attempt to practice a bit of Rust.

Advent of Code 2021 Advent of Code 2021 (my first one!), also an attempt to practice a bit of Rust. Running (Assuming that the respective inputs are i

Edoardo Debenedetti 1 Dec 3, 2021
My solutions to Advent of Code 2021 (mostly in rust)

Advent of Code 2021 Small code to solve problems at https://adventofcode.com/2021. Most of the code are written in Rust. How to run solutions For exam

“Plane” Abhabongse  Janthong 3 Apr 22, 2022
Learning Rust through Advent of Code 2021 - probably not very clean!

AoC 2021 ======== I'm using AoC2021 as an excuse to learn Rust (and maybe some other languages). Please do *not* use this repository as a good source

Andrew Zhu 0 Dec 8, 2021
🎄My Advent of Code 2021 solutions in the Rust programming language

Advent of Code 2021 in Rust My Advent of Code 2021 solutions in the Rust programming language. This repository holds a separate Rust project for each

Tim Visée 227 Dec 16, 2022
Advent of Code 2021, in rust this year

Advent of Code 2021 ?? Solutions for the 2021 edition of Advent of Code. This year, I try to do this in Rust ?? . I discover the language, so do not t

Florian Gaudin-Delrieu 1 Aug 12, 2022
My solutions for Advent of Code 2021, in Rust

Advent of Code 2021 These are my solutions. I have decided to use Rust for now. I'm new to Rust, so it might be some of the worst Rust code you've see

Samyak Sarnayak 1 Jan 1, 2022
My solution for the advent of code 2021, mainly written in Rust

Advent-of-Code-2021 My solution for the advent of code 2021, written in Rust Error Handle NOPE!!! unwrap() everything everywhere Use To run all of the

Nguyen Le Duy 0 Jan 8, 2022
Solutions to Advent of Code 2021, coded in rust

Advent of Code 2021 (aoc-2021-rust) Solutions to Advent of Code 2021 (https://adventofcode.com/2021), coded as part of my efforts to learn Rust Run co

null 0 Dec 24, 2021
Advent of Code 2022 (Rust)

Advent of Code 2022 ?? | -+- A /=\ /\ /\ ___ _ __ _ __ __ __ i/ O \i / \/

Dominik Harmim 2 Dec 15, 2022
Advent of Code 2022 Solutions (in Rust)

Advent of Code 2022 My solutions for Advent of Code 2022, written in Rust. This repository provides a good template for anyone interested in writing t

Sam Mohr 3 Dec 2, 2022
My solutions for Advent of Code 2022, written in Rust

Template largely copied from RikvanToor/aoc-rust-template, upgraded for clap v4. This template can be forked/cloned from beeb/aoc-rust. Usage First, f

Valentin Bersier 2 Dec 15, 2022