diff --git a/.github/workflows/changelog-preview.yml b/.github/workflows/changelog-preview.yml new file mode 100644 index 000000000..30c6083c6 --- /dev/null +++ b/.github/workflows/changelog-preview.yml @@ -0,0 +1,18 @@ +name: Changelog Preview +on: + pull_request: + types: + - opened + - synchronize + - reopened + - edited + - labeled + - unlabeled +permissions: + contents: write + pull-requests: write + +jobs: + changelog-preview: + uses: getsentry/craft/.github/workflows/changelog-preview.yml@v2 + secrets: inherit diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e3290798f..01fb7ac42 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,12 +4,16 @@ on: workflow_dispatch: inputs: version: - description: Version to release - required: true + description: Version to release (or "auto") + required: false force: description: Force a release even when there are release-blockers (optional) required: false +permissions: + contents: write + pull-requests: write + jobs: release: runs-on: ubuntu-latest @@ -30,7 +34,7 @@ jobs: - run: rustup toolchain install stable --profile minimal --no-self-update - name: Prepare release - uses: getsentry/action-prepare-release@v1 + uses: getsentry/craft@c6e2f04939b6ee67030588afbb5af76b127d8203 # v2 env: GITHUB_TOKEN: ${{ steps.token.outputs.token }} with: diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f318d5f2..e2ea6e0fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## 12.17.2 + +**Fixes** + +- symcache: Fixed an unsound implementation of `Pod` ([#958](https://github.com/getsentry/symbolic/pull/958)) + +## 12.17.1 + +**Fixes** + +- minidump: Define default .ra rules for PPC and ARM ([#949](https://github.com/getsentry/symbolic/pull/949)) + ## 12.17.0 - feat(pdb): Extract the srcsrv integration name for metrics ([#944](https://github.com/getsentry/symbolic/pull/944)) diff --git a/Cargo.lock b/Cargo.lock index 924a709f0..a51fdc9fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,7 +4,16 @@ version = 4 [[package]] name = "addr2line" -version = "12.17.0-dd" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli 0.31.1", +] + +[[package]] +name = "addr2line" +version = "12.17.2-dd" dependencies = [ "anyhow", "clap", @@ -13,15 +22,15 @@ dependencies = [ [[package]] name = "adler2" -version = "2.0.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "ahash" -version = "0.8.12" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "once_cell", @@ -31,19 +40,34 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.4" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] +[[package]] +name = "alloca" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7d05ea6aea7e9e64d25b9156ba2fee3fdd659e34e41063cd2fc7cd020d7f4" +dependencies = [ + "cc", +] + [[package]] name = "allocator-api2" version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -61,9 +85,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.21" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -76,37 +100,36 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.5" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.11" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "once_cell_polyfill", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -126,24 +149,6 @@ dependencies = [ "regex", ] -[[package]] -name = "ar_archive_writer" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c269894b6fe5e9d7ada0cf69b5bf847ff35bc25fc271f08e1d080fce80339a" -dependencies = [ - "object", -] - -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" -dependencies = [ - "derive_arbitrary", -] - [[package]] name = "arrayvec" version = "0.7.6" @@ -163,9 +168,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.89" +version = "0.1.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" dependencies = [ "proc-macro2", "quote", @@ -174,9 +179,24 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line 0.24.2", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] [[package]] name = "base64-simd" @@ -226,9 +246,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" [[package]] name = "bitvec" @@ -244,9 +264,9 @@ dependencies = [ [[package]] name = "breakpad-symbols" -version = "0.22.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f012b493245d982c24a716dd716d06188af966f685ce3cafe02e197ab7fb59" +checksum = "9b544545512b213899840bb26f72cd13f9fb4c3de3dd5f8dc7219688f54aebe9" dependencies = [ "async-trait", "cachemap2", @@ -256,7 +276,7 @@ dependencies = [ "minidump-common", "nom", "range-map", - "thiserror 1.0.69", + "thiserror 2.0.18", "tracing", ] @@ -271,20 +291,26 @@ dependencies = [ [[package]] name = "bstr" -version = "1.12.1" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" dependencies = [ "memchr", - "regex-automata", + "regex-automata 0.4.9", "serde", ] [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" @@ -316,11 +342,10 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.48" +version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c481bdbf0ed3b892f6f806287d72acd515b352a4ec27a208489b8c1bc839633a" +checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7" dependencies = [ - "find-msvc-tools", "jobserver", "libc", "shlex", @@ -328,20 +353,21 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ + "android-tzdata", "iana-time-zone", "num-traits", "serde", - "windows-link", + "windows-targets 0.52.6", ] [[package]] @@ -379,18 +405,18 @@ checksum = "b0fc239e0f6cb375d2402d48afb92f76f5404fd1df208a41930ec81eda078bea" [[package]] name = "clap" -version = "4.5.53" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" +checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.53" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" +checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" dependencies = [ "anstream", "anstyle", @@ -400,21 +426,21 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.6" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "console" -version = "0.15.11" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" +checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" dependencies = [ "encode_unicode", "libc", @@ -430,9 +456,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpp_demangle" -version = "0.4.5" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2bb79cb74d735044c972aae58ed0aaa9a837e85b01106a54c39e42e97f62253" +checksum = "0667304c32ea56cb4cd6d2d7c0cfe9a2f8041229db8c033af7f8d69492429def" dependencies = [ "cfg-if", ] @@ -448,25 +474,24 @@ dependencies = [ [[package]] name = "criterion" -version = "0.5.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +checksum = "4d883447757bb0ee46f233e9dc22eb84d93a9508c9b868687b274fc431d886bf" dependencies = [ + "alloca", "anes", "cast", "ciborium", "clap", "criterion-plot", - "is-terminal", - "itertools 0.10.5", + "itertools 0.13.0", "num-traits", - "once_cell", "oorandom", + "page_size", "plotters", "rayon", "regex", "serde", - "serde_derive", "serde_json", "tinytemplate", "walkdir", @@ -474,12 +499,12 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.5.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +checksum = "ed943f81ea2faa8dcecbbfa50164acf95d555afec96a27871663b300e387b2e4" dependencies = [ "cast", - "itertools 0.10.5", + "itertools 0.13.0", ] [[package]] @@ -513,7 +538,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.7.0", "crossterm_winapi", "libc", "mio", @@ -534,15 +559,15 @@ dependencies = [ [[package]] name = "crunchy" -version = "0.2.4" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "data-encoding" -version = "2.9.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "debugid" @@ -556,7 +581,7 @@ dependencies = [ [[package]] name = "debuginfo_debug" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "anyhow", "clap", @@ -565,24 +590,13 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.5" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", ] -[[package]] -name = "derive_arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "displaydoc" version = "0.2.5" @@ -596,7 +610,7 @@ dependencies = [ [[package]] name = "dump_cfi" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "anyhow", "clap", @@ -605,7 +619,7 @@ dependencies = [ [[package]] name = "dump_sources" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "clap", "symbolic", @@ -613,9 +627,9 @@ dependencies = [ [[package]] name = "either" -version = "1.15.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "elementtree" @@ -628,9 +642,9 @@ dependencies = [ [[package]] name = "elsa" -version = "1.11.2" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9abf33c656a7256451ebb7d0082c5a471820c31269e49d807c538c252352186e" +checksum = "d98e71ae4df57d214182a2e5cb90230c0192c6ddfcaa05c36453d46a54713e10" dependencies = [ "stable_deref_trait", ] @@ -652,18 +666,18 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.14" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -684,20 +698,15 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" -[[package]] -name = "find-msvc-tools" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" - [[package]] name = "flate2" -version = "1.1.5" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" +checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369" dependencies = [ "crc32fast", "miniz_oxide", + "zlib-rs", ] [[package]] @@ -706,11 +715,17 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "form_urlencoded" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -770,16 +785,21 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.4" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", - "r-efi", - "wasip2", + "wasi", ] +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + [[package]] name = "gimli" version = "0.32.3" @@ -803,13 +823,12 @@ dependencies = [ [[package]] name = "half" -version = "2.7.1" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" dependencies = [ "cfg-if", "crunchy", - "zerocopy", ] [[package]] @@ -820,14 +839,19 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", "allocator-api2", - "serde", ] [[package]] name = "hashbrown" -version = "0.16.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", + "serde", +] [[package]] name = "heck" @@ -835,12 +859,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - [[package]] name = "hex" version = "0.4.3" @@ -863,15 +881,14 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", - "log", "wasm-bindgen", "windows-core", ] @@ -887,22 +904,21 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ "displaydoc", - "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locale_core" -version = "2.1.1" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ "displaydoc", "litemap", @@ -911,66 +927,104 @@ dependencies = [ "zerovec", ] +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + [[package]] name = "icu_normalizer" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ + "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", "icu_provider", "smallvec", + "utf16_iter", + "utf8_iter", + "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] name = "icu_properties" -version = "2.1.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ + "displaydoc", "icu_collections", - "icu_locale_core", + "icu_locid_transform", "icu_properties_data", "icu_provider", - "zerotrie", + "tinystr", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] name = "icu_provider" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ "displaydoc", - "icu_locale_core", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", "writeable", "yoke", "zerofrom", - "zerotrie", "zerovec", ] +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "idna" -version = "1.1.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ "idna_adapter", "smallvec", @@ -979,9 +1033,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ "icu_normalizer", "icu_properties", @@ -989,9 +1043,9 @@ dependencies = [ [[package]] name = "if_chain" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd62e6b5e86ea8eeeb8db1de02880a6abc01a397b2ebb64b5d74ac255318f5cb" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" [[package]] name = "indent_write" @@ -1001,14 +1055,13 @@ checksum = "0cfe9645a18782869361d9c8732246be7b410ad4e919d3609ebabdac00ba12c3" [[package]] name = "indexmap" -version = "2.12.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.15.2", "serde", - "serde_core", ] [[package]] @@ -1022,11 +1075,12 @@ dependencies = [ [[package]] name = "insta" -version = "1.44.3" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5c943d4415edd8153251b6f197de5eb1640e56d84e8d9159bea190421c73698" +checksum = "6513e4067e16e69ed1db5ab56048ed65db32d10ba5fc1217f5393f8f17d8b5a5" dependencies = [ "console", + "linked-hash-map", "once_cell", "serde", "similar", @@ -1044,54 +1098,42 @@ dependencies = [ "syn", ] -[[package]] -name = "is-terminal" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.61.2", -] - [[package]] name = "is_terminal_polyfill" -version = "1.70.2" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" -version = "0.10.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] [[package]] name = "itertools" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jobserver" -version = "0.1.34" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ - "getrandom", "libc", ] @@ -1112,15 +1154,15 @@ dependencies = [ "swc_common", "swc_ecma_parser", "swc_ecma_visit", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" dependencies = [ "once_cell", "wasm-bindgen", @@ -1140,44 +1182,57 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.177" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "linked-hash-map" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "litemap" -version = "0.8.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" -version = "0.4.14" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ + "autocfg", "scopeguard", ] +[[package]] +name = "lockfree-object-pool" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" + [[package]] name = "log" -version = "0.4.28" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "matchers" -version = "0.2.0" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] @@ -1188,24 +1243,24 @@ checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4" [[package]] name = "memchr" -version = "2.7.6" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" -version = "0.9.9" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] [[package]] name = "minidump" -version = "0.22.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc7268c0afe5aa2fd6fde310e6cda158f0b3581f317c5a5c7d170861f9b90a6" +checksum = "a902ca21d9772a66d3d1b050b3436dcadb192694be01409e0219902dcf4bc1e8" dependencies = [ "debugid", "encoding_rs", @@ -1213,9 +1268,10 @@ dependencies = [ "minidump-common", "num-traits", "procfs-core", + "prost", "range-map", "scroll 0.12.0", - "thiserror 1.0.69", + "thiserror 2.0.18", "time", "tracing", "uuid", @@ -1223,11 +1279,11 @@ dependencies = [ [[package]] name = "minidump-common" -version = "0.22.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde999358cca8fb9397c4298bb27c4a603c13ee6b3a646da514b20be582a21e" +checksum = "2e16d10087ae9e375bad7a40e8ef5504bc08e808ccc6019067ff9de42a84570f" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.7.0", "debugid", "num-derive", "num-traits", @@ -1238,9 +1294,9 @@ dependencies = [ [[package]] name = "minidump-processor" -version = "0.22.1" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ab4c99352eb8bcc861eb06ceae910fc1d0a8395acc9ffd961fc230c9c12ca0" +checksum = "ee81ed67b9b37e3e1e47b3677bebe739499b12dcec7cdc74440990fde64e232b" dependencies = [ "async-trait", "breakpad-symbols", @@ -1252,16 +1308,16 @@ dependencies = [ "scroll 0.12.0", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.18", "tracing", "yaxpeax-x86", ] [[package]] name = "minidump-unwind" -version = "0.22.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2bc4d6066050b350c5dddf066a25bfd6c9f20b8919dc66501d831524ab4dd4" +checksum = "4aa8b7212f59c525f93c62457c54f9f9ac550316ee0e41f129b4b19165d5acd1" dependencies = [ "async-trait", "breakpad-symbols", @@ -1273,7 +1329,7 @@ dependencies = [ [[package]] name = "minidump_stackwalk" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "async-trait", "clap", @@ -1281,7 +1337,7 @@ dependencies = [ "minidump-processor", "minidump-unwind", "symbolic", - "thiserror 1.0.69", + "thiserror 2.0.18", "tokio", "tracing", "tracing-subscriber", @@ -1318,11 +1374,12 @@ dependencies = [ [[package]] name = "msvc-demangler" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4c25a3bb7d880e8eceab4822f3141ad0700d20f025991c1f03bd3d00219a5fc" +checksum = "fbeff6bd154a309b2ada5639b2661ca6ae4599b34e8487dc276d2cd637da2d76" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.7.0", + "itoa", ] [[package]] @@ -1356,11 +1413,12 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.50.3" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ - "windows-sys 0.61.2", + "overload", + "winapi", ] [[package]] @@ -1411,16 +1469,16 @@ dependencies = [ [[package]] name = "object" -version = "0.32.2" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] [[package]] name = "object_debug" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "clap", "symbolic", @@ -1428,21 +1486,15 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "oorandom" -version = "11.1.5" +version = "11.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" +checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" [[package]] name = "outref" @@ -1450,11 +1502,27 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "page_size" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "parking_lot" -version = "0.12.5" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core", @@ -1462,15 +1530,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.12" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-link", + "windows-targets 0.52.6", ] [[package]] @@ -1500,9 +1568,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "phf" @@ -1511,7 +1579,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ "phf_macros", - "phf_shared", + "phf_shared 0.11.3", ] [[package]] @@ -1520,8 +1588,8 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ - "phf_shared", - "rand 0.8.5", + "phf_shared 0.11.3", + "rand", ] [[package]] @@ -1531,12 +1599,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" dependencies = [ "phf_generator", - "phf_shared", + "phf_shared 0.11.3", "proc-macro2", "quote", "syn", ] +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher 0.3.11", +] + [[package]] name = "phf_shared" version = "0.11.3" @@ -1560,9 +1637,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "plain" @@ -1598,15 +1675,6 @@ dependencies = [ "plotters-backend", ] -[[package]] -name = "potential_utf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] - [[package]] name = "powerfmt" version = "0.2.0" @@ -1615,9 +1683,9 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.21" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ "zerocopy", ] @@ -1630,9 +1698,9 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -1643,49 +1711,72 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.7.0", "hex", ] [[package]] name = "proguard" -version = "5.8.0" +version = "5.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "260b8aaeeb4bc5175bb90a599f51d74a560f19de428c2d058c67eac92b5085d3" +checksum = "485ce6a0eaff8ca5566dde882ee2ef65dc25ba9f3ef1dba1129a8dd78a181952" dependencies = [ "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.18", "uuid", "watto", ] [[package]] name = "proptest" -version = "1.9.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.10.0", + "bitflags 2.7.0", + "lazy_static", "num-traits", - "rand 0.9.2", + "rand", "rand_chacha", "rand_xorshift", - "regex-syntax", + "regex-syntax 0.8.5", "rusty-fork", "tempfile", "unarray", ] +[[package]] +name = "prost" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "psm" -version = "0.1.28" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d11f2fedc3b7dafdc2851bc52f277377c5473d378859be234bc7ebb593144d01" +checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810" dependencies = [ - "ar_archive_writer", "cc", ] @@ -1697,19 +1788,13 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.42" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - [[package]] name = "radium" version = "0.7.0" @@ -1722,27 +1807,19 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -dependencies = [ + "libc", "rand_chacha", - "rand_core 0.9.3", + "rand_core", ] [[package]] name = "rand_chacha" -version = "0.9.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", + "rand_core", ] [[package]] @@ -1750,23 +1827,17 @@ name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ "getrandom", ] [[package]] name = "rand_xorshift" -version = "0.4.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core 0.9.3", + "rand_core", ] [[package]] @@ -1791,9 +1862,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.11.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -1801,9 +1872,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.13.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -1811,47 +1882,62 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.18" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.7.0", ] [[package]] name = "regex" -version = "1.12.2" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata", - "regex-syntax", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] name = "regex-automata" -version = "0.4.13" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.8.5", ] [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "rustc-demangle" -version = "0.1.26" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" @@ -1861,15 +1947,15 @@ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustix" -version = "1.1.2" +version = "0.38.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.7.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -1880,9 +1966,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" dependencies = [ "fnv", "quick-error", @@ -1890,12 +1976,6 @@ dependencies = [ "wait-timeout", ] -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - [[package]] name = "same-file" version = "1.0.6" @@ -1934,9 +2014,9 @@ dependencies = [ [[package]] name = "scroll_derive" -version = "0.12.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1783eabc414609e28a5ba76aee5ddd52199f7107a0b24c2e9746a1ecc34a683d" +checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" dependencies = [ "proc-macro2", "quote", @@ -1945,9 +2025,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.27" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" [[package]] name = "seq-macro" @@ -1987,15 +2067,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -2021,9 +2101,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook" -version = "0.3.18" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" dependencies = [ "libc", "signal-hook-registry", @@ -2031,9 +2111,9 @@ dependencies = [ [[package]] name = "signal-hook-mio" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" +checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" dependencies = [ "libc", "mio", @@ -2042,9 +2122,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.7" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -2057,9 +2137,9 @@ checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] name = "similar" -version = "2.7.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" +checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e" dependencies = [ "bstr", "unicode-segmentation", @@ -2067,9 +2147,9 @@ dependencies = [ [[package]] name = "similar-asserts" -version = "1.7.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b441962c817e33508847a22bd82f03a30cff43642dc2fae8b050566121eb9a" +checksum = "cfe85670573cd6f0fa97940f26e7e6601213c3b0555246c24234131f88c5709e" dependencies = [ "console", "similar", @@ -2089,15 +2169,18 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" -version = "1.15.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smart-default" @@ -2141,7 +2224,7 @@ dependencies = [ [[package]] name = "sourcemapcache_debug" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "anyhow", "clap", @@ -2156,20 +2239,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85cd3e3828fb4dd5ba0e7091777edb6c3db3cd2d6fc10547b29b40f6949a29be" dependencies = [ "memchr", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "stable_deref_trait" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stacker" -version = "0.1.22" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1f8b29fb42aafcea4edeeb6b2f2d7ecd0d969c48b4cf0d2e64aafc471dd6e59" +checksum = "799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b" dependencies = [ "cc", "cfg-if", @@ -2186,13 +2269,14 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "string_cache" -version = "0.8.9" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" dependencies = [ "new_debug_unreachable", + "once_cell", "parking_lot", - "phf_shared", + "phf_shared 0.10.0", "precomputed-hash", "serde", ] @@ -2257,7 +2341,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a573a0c72850dec8d4d8085f152d5778af35a2520c3093b242d2d1d50776da7c" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.7.0", "is-macro", "num-bigint", "once_cell", @@ -2276,7 +2360,7 @@ version = "27.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f1a51af1a92cd4904c073b293e491bbc0918400a45d58227b34c961dd6f52d7" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.7.0", "either", "num-bigint", "phf", @@ -2340,7 +2424,7 @@ dependencies = [ [[package]] name = "symbolic" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "symbolic-cfi", "symbolic-common", @@ -2355,7 +2439,7 @@ dependencies = [ [[package]] name = "symbolic-cabi" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "anyhow", "proguard", @@ -2366,19 +2450,19 @@ dependencies = [ [[package]] name = "symbolic-cfi" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "insta", "similar-asserts", "symbolic-common", "symbolic-debuginfo", "symbolic-testutils", - "thiserror 1.0.69", + "thiserror 2.0.18", ] [[package]] name = "symbolic-common" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "debugid", "memmap2", @@ -2392,7 +2476,7 @@ dependencies = [ [[package]] name = "symbolic-debuginfo" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "criterion", "debugid", @@ -2400,10 +2484,9 @@ dependencies = [ "elsa", "fallible-iterator 0.3.0", "flate2", - "gimli", + "gimli 0.32.3", "goblin", "insta", - "lazy_static", "nom", "nom-supreme", "once_cell", @@ -2421,7 +2504,7 @@ dependencies = [ "symbolic-ppdb", "symbolic-testutils", "tempfile", - "thiserror 1.0.69", + "thiserror 2.0.18", "wasmparser", "zip", "zstd", @@ -2429,7 +2512,7 @@ dependencies = [ [[package]] name = "symbolic-demangle" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "cc", "cpp_demangle", @@ -2441,7 +2524,7 @@ dependencies = [ [[package]] name = "symbolic-il2cpp" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "indexmap", "serde_json", @@ -2451,7 +2534,7 @@ dependencies = [ [[package]] name = "symbolic-ppdb" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "flate2", "indexmap", @@ -2460,28 +2543,28 @@ dependencies = [ "symbolic-common", "symbolic-debuginfo", "symbolic-testutils", - "thiserror 1.0.69", + "thiserror 2.0.18", "uuid", "watto", ] [[package]] name = "symbolic-sourcemapcache" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "js-source-scopes", "sourcemap", "symbolic-common", "symbolic-testutils", - "thiserror 1.0.69", + "thiserror 2.0.18", "tracing", "watto", ] [[package]] name = "symbolic-symcache" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "criterion", "indexmap", @@ -2490,18 +2573,18 @@ dependencies = [ "symbolic-debuginfo", "symbolic-il2cpp", "symbolic-testutils", - "thiserror 1.0.69", + "thiserror 2.0.18", "tracing", "watto", ] [[package]] name = "symbolic-testutils" -version = "12.17.0-dd" +version = "12.17.2-dd" [[package]] name = "symbolic-unreal" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "anylog", "bytes", @@ -2509,19 +2592,18 @@ dependencies = [ "elementtree", "flate2", "insta", - "lazy_static", "regex", "scroll 0.12.0", "serde", "similar-asserts", "symbolic-testutils", - "thiserror 1.0.69", + "thiserror 2.0.18", "time", ] [[package]] name = "symcache_debug" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "anyhow", "clap", @@ -2530,9 +2612,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.111" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -2541,9 +2623,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", @@ -2558,15 +2640,16 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.23.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" dependencies = [ + "cfg-if", "fastrand", "getrandom", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -2580,11 +2663,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -2600,9 +2683,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -2611,18 +2694,19 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.9" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", + "once_cell", ] [[package]] name = "time" -version = "0.3.44" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -2635,15 +2719,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -2651,9 +2735,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.2" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ "displaydoc", "zerovec", @@ -2671,19 +2755,20 @@ dependencies = [ [[package]] name = "tokio" -version = "1.48.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ + "backtrace", "pin-project-lite", "tokio-macros", ] [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", @@ -2692,9 +2777,9 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.43" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -2704,9 +2789,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.31" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", @@ -2715,9 +2800,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.35" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -2736,14 +2821,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.22" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex-automata", + "regex", "sharded-slab", "smallvec", "thread_local", @@ -2754,14 +2839,20 @@ dependencies = [ [[package]] name = "triomphe" -version = "0.1.15" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" +checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85" dependencies = [ "serde", "stable_deref_trait", ] +[[package]] +name = "typed-path" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3015e6ce46d5ad8751e4a772543a30c7511468070e98e64e20165f8f81155b64" + [[package]] name = "unarray" version = "0.1.4" @@ -2770,15 +2861,15 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-id-start" -version = "1.4.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81b79ad29b5e19de4260020f8919b443b2ef0277d242ce532ec7b7a2cc8b6007" +checksum = "2f322b60f6b9736017344fa0635d64be2f458fbc04eef65f6be22976dd1ffd5b" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" @@ -2794,7 +2885,7 @@ checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "unreal_engine_crash" -version = "12.17.0-dd" +version = "12.17.2-dd" dependencies = [ "clap", "symbolic", @@ -2802,16 +2893,21 @@ dependencies = [ [[package]] name = "url" -version = "2.5.7" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", "percent-encoding", - "serde", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -2826,9 +2922,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.1" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" dependencies = [ "js-sys", "sha1_smol", @@ -2837,9 +2933,9 @@ dependencies = [ [[package]] name = "valuable" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "version_check" @@ -2855,9 +2951,9 @@ checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" [[package]] name = "wait-timeout" -version = "0.2.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" dependencies = [ "libc", ] @@ -2874,24 +2970,15 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" -dependencies = [ - "wit-bindgen", -] +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" dependencies = [ "cfg-if", "once_cell", @@ -2902,9 +2989,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2912,9 +2999,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" dependencies = [ "bumpalo", "proc-macro2", @@ -2925,22 +3012,21 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" dependencies = [ "unicode-ident", ] [[package]] name = "wasmparser" -version = "0.214.0" +version = "0.243.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5309c1090e3e84dad0d382f42064e9933fdaedb87e468cc239f0eabea73ddcb6" +checksum = "f6d8db401b0528ec316dfbe579e6ab4152d61739cfe076706d2009127970159d" dependencies = [ - "ahash", - "bitflags 2.10.0", - "hashbrown 0.14.5", + "bitflags 2.7.0", + "hashbrown 0.15.2", "indexmap", "semver", "serde", @@ -2948,19 +3034,20 @@ dependencies = [ [[package]] name = "watto" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6746b5315e417144282a047ebb82260d45c92d09bf653fa9ec975e3809be942b" +checksum = "bfbc1480663d640f8c9f7a1ac70922eea60ac16fea79df883177df3bc7bb8b49" dependencies = [ + "hashbrown 0.15.2", "leb128", - "thiserror 1.0.69", + "thiserror 2.0.18", ] [[package]] name = "web-sys" -version = "0.3.83" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" dependencies = [ "js-sys", "wasm-bindgen", @@ -2984,11 +3071,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.11" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -2999,61 +3086,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-implement" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "windows-interface" -version = "0.59.3" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link", + "windows-targets 0.52.6", ] [[package]] @@ -3074,15 +3111,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-targets" version = "0.48.5" @@ -3205,16 +3233,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "wit-bindgen" -version = "0.46.0" +name = "write16" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" [[package]] name = "writeable" -version = "0.6.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "wyz" @@ -3227,9 +3255,9 @@ dependencies = [ [[package]] name = "yaxpeax-arch" -version = "0.2.8" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f005c964432a1f9ee04598e094a3eb5f7568f6b33e89a2762d7bef6fbe8b255" +checksum = "36274fcc5403da2a7636ffda4d02eca12a1b2b8267b9d2e04447bd2ccfc72082" dependencies = [ "crossterm", "num-traits", @@ -3239,9 +3267,9 @@ dependencies = [ [[package]] name = "yaxpeax-x86" -version = "1.2.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107477944697db42c41326f82d4c65b769b32512cdad1e086f36f0e0f25ff45" +checksum = "9a9a30b7dd533c7b1a73eaf7c4ea162a7a632a2bb29b9fff47d8f2cc8513a883" dependencies = [ "cfg-if", "num-traits", @@ -3252,10 +3280,11 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ + "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -3263,9 +3292,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", @@ -3275,18 +3304,19 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.30" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea879c944afe8a2b25fef16bb4ba234f47c694565e97383b36f3a878219065c" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.30" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf955aa904d6040f70dc8e9384444cb1030aed272ba3cb09bbc4ab9e7c1f34f5" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", @@ -3295,18 +3325,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", @@ -3314,22 +3344,11 @@ dependencies = [ "synstructure", ] -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - [[package]] name = "zerovec" -version = "0.11.5" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" dependencies = [ "yoke", "zerofrom", @@ -3338,9 +3357,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", @@ -3349,56 +3368,67 @@ dependencies = [ [[package]] name = "zip" -version = "2.4.2" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" +checksum = "c42e33efc22a0650c311c2ef19115ce232583abbe80850bc8b66509ebef02de0" dependencies = [ - "arbitrary", "crc32fast", - "crossbeam-utils", - "displaydoc", "flate2", "indexmap", "memchr", - "thiserror 2.0.17", + "typed-path", "zopfli", ] +[[package]] +name = "zlib-rs" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3" + +[[package]] +name = "zmij" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02aae0f83f69aafc94776e879363e9771d7ecbffe2c7fbb6c14c5e00dfe88439" + [[package]] name = "zopfli" -version = "0.8.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +checksum = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946" dependencies = [ "bumpalo", "crc32fast", + "lockfree-object-pool", "log", + "once_cell", "simd-adler32", ] [[package]] name = "zstd" -version = "0.13.3" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.2.4" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index 1f236df51..3b294849a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ members = ["symbolic*", "examples/*"] [workspace.package] edition = "2021" -rust-version = "1.82" +rust-version = "1.83" [workspace.dependencies] anyhow = "1.0.32" @@ -14,13 +14,13 @@ bytes = "1.4.0" cc = "1.0.79" chrono = { version = "0.4.23", default-features = false, features = ["std"] } clap = "4.4.5" -cpp_demangle = "0.4.1" -criterion = { version = "0.5.1", features = ["html_reports"] } +cpp_demangle = "0.5.1" +criterion = { version = "0.8.1", features = ["html_reports"] } debugid = "0.8.0" elementtree = "1.2.3" elsa = "1.8.0" fallible-iterator = "0.3.0" -flate2 = { version = "1.0.25", default-features = false, features = [ +flate2 = { version = "1.1.8", default-features = false, features = [ "rust_backend", ] } gimli = { version = "0.32.3", default-features = false, features = [ @@ -31,21 +31,19 @@ gimli = { version = "0.32.3", default-features = false, features = [ goblin = { version = "0.8.0", default-features = false } indexmap = "2.0.0" insta = { version = "1.28.0", features = ["yaml"] } -itertools = "0.13.0" -# Point to master branch which has the swc fix for serde compatibility (>= 0.7.0) +itertools = "0.14.0" js-source-scopes = "0.7.0" -lazy_static = "1.4.0" memmap2 = "0.9.0" -minidump = "0.22.0" -minidump-processor = "0.22.0" -minidump-unwind = "0.22.0" -msvc-demangler = "0.10.0" +minidump = "0.26.1" +minidump-processor = "0.26.1" +minidump-unwind = "0.26.1" +msvc-demangler = "0.11.0" nom = "7.1.3" nom-supreme = "0.8.0" once_cell = "1.17.1" parking_lot = "0.12.1" pdb-addr2line = "0.10.4" -proguard = { version = "5.4.0", features = ["uuid"] } +proguard = { version = "5.8.1", features = ["uuid"] } proptest = "1.6.0" regex = "1.7.1" rustc-demangle = "0.1.21" @@ -59,18 +57,16 @@ smallvec = "1.10.0" sourcemap = "9.2.2" stable_deref_trait = "1.2.0" tempfile = "3.4.0" -thiserror = "1.0.39" +thiserror = "2.0.17" time = { version = "0.3.20", features = ["formatting"] } tokio = "1.36.0" tracing = "0.1.34" tracing-subscriber = "0.3.11" uuid = "1.3.0" walkdir = "2.3.1" -wasmparser = "0.214.0" -watto = { version = "0.1.0", features = ["writer", "strings"] } -# We are currently pinning a known good version prior to https://github.com/zip-rs/zip2/issues/189 -# (dd) NOTE: previously pinned to 2.1.1, however this version is now yanked from crates.io -zip = { version = "=2.4.2", default-features = false, features = ["deflate"] } +wasmparser = "0.243.0" +watto = { version = "0.2.0", features = ["writer", "strings"] } +zip = { version = "7.2.0", default-features = false, features = ["deflate"] } zstd = { version = "0.13.1" } diff --git a/README.md b/README.md index e494115bf..69b8c8664 100644 --- a/README.md +++ b/README.md @@ -163,7 +163,7 @@ To run these examples, use the `run` script. For example: Symbolic tries to not break MSRV compatibility but makes no guarantees about the Rust version. Although you can expect Rust version compatibility of **at least 6 months**. -The current MSRV is 1.82. +The current MSRV is 1.83. ## License diff --git a/examples/addr2line/Cargo.toml b/examples/addr2line/Cargo.toml index ca631c047..b37b7ab28 100644 --- a/examples/addr2line/Cargo.toml +++ b/examples/addr2line/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "addr2line" -version = "12.17.0-dd" +version = "12.17.2-dd" authors = ["Jan Michael Auer "] edition = "2021" publish = false @@ -10,4 +10,4 @@ publish = false [dependencies] anyhow = { workspace = true } clap = { workspace = true } -symbolic = { version = "12.17.0-dd", path = "../../symbolic", features = ["demangle"] } +symbolic = { version = "12.17.2-dd", path = "../../symbolic", features = ["demangle"] } diff --git a/examples/addr2line/src/main.rs b/examples/addr2line/src/main.rs index 93c99ecaa..dce017b02 100644 --- a/examples/addr2line/src/main.rs +++ b/examples/addr2line/src/main.rs @@ -93,8 +93,8 @@ fn execute(matches: &ArgMatches) -> Result<()> { print_name( symbol .name - .as_ref() - .map(|n| Name::new(n.as_ref(), NameMangling::Mangled, Language::Unknown)), + .as_deref() + .map(|n| Name::new(n, NameMangling::Mangled, Language::Unknown)), matches, ); print_range(symbol.address, Some(symbol.size), matches); diff --git a/examples/debuginfo_debug/Cargo.toml b/examples/debuginfo_debug/Cargo.toml index 91757d887..7323cc23e 100644 --- a/examples/debuginfo_debug/Cargo.toml +++ b/examples/debuginfo_debug/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "debuginfo_debug" -version = "12.17.0-dd" +version = "12.17.2-dd" authors = ["Markus Stange "] edition = "2021" publish = false @@ -10,6 +10,6 @@ publish = false [dependencies] anyhow = { workspace = true } clap = { workspace = true } -symbolic = { version = "12.17.0-dd", path = "../../symbolic", features = [ +symbolic = { version = "12.17.2-dd", path = "../../symbolic", features = [ "demangle", ] } diff --git a/examples/dump_cfi/Cargo.toml b/examples/dump_cfi/Cargo.toml index c8ccd9a9b..24a5b6461 100644 --- a/examples/dump_cfi/Cargo.toml +++ b/examples/dump_cfi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dump_cfi" -version = "12.17.0-dd" +version = "12.17.2-dd" authors = ["Jan Michael Auer "] edition = "2021" publish = false @@ -10,4 +10,4 @@ publish = false [dependencies] anyhow = { workspace = true } clap = { workspace = true } -symbolic = { version = "12.17.0-dd", path = "../../symbolic", features = ["cfi"] } +symbolic = { version = "12.17.2-dd", path = "../../symbolic", features = ["cfi"] } diff --git a/examples/dump_sources/Cargo.toml b/examples/dump_sources/Cargo.toml index 810f1c50d..ea05f75b5 100644 --- a/examples/dump_sources/Cargo.toml +++ b/examples/dump_sources/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dump_sources" -version = "12.17.0-dd" +version = "12.17.2-dd" authors = ["Jan Michael Auer "] edition = "2021" publish = false @@ -9,4 +9,4 @@ publish = false [dependencies] clap = { workspace = true } -symbolic = { version = "12.17.0-dd", path = "../../symbolic" } +symbolic = { version = "12.17.2-dd", path = "../../symbolic" } diff --git a/examples/minidump_stackwalk/Cargo.toml b/examples/minidump_stackwalk/Cargo.toml index 83ada8dae..05ef1ba68 100644 --- a/examples/minidump_stackwalk/Cargo.toml +++ b/examples/minidump_stackwalk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "minidump_stackwalk" -version = "12.17.0-dd" +version = "12.17.2-dd" authors = ["Jan Michael Auer "] edition = "2021" publish = false @@ -13,7 +13,7 @@ clap = { workspace = true } minidump = { workspace = true } minidump-processor = { workspace = true } minidump-unwind = { workspace = true } -symbolic = { version = "12.17.0-dd", path = "../../symbolic", features = [ +symbolic = { version = "12.17.2-dd", path = "../../symbolic", features = [ "symcache", "demangle", "cfi", diff --git a/examples/object_debug/Cargo.toml b/examples/object_debug/Cargo.toml index b069d1e55..25ee8fc1e 100644 --- a/examples/object_debug/Cargo.toml +++ b/examples/object_debug/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "object_debug" -version = "12.17.0-dd" +version = "12.17.2-dd" authors = ["Jan Michael Auer "] edition = "2021" publish = false @@ -9,4 +9,4 @@ publish = false [dependencies] clap = { workspace = true } -symbolic = { version = "12.17.0-dd", path = "../../symbolic" } +symbolic = { version = "12.17.2-dd", path = "../../symbolic" } diff --git a/examples/sourcemapcache_debug/Cargo.toml b/examples/sourcemapcache_debug/Cargo.toml index 0fe1c0125..c5698ff8f 100644 --- a/examples/sourcemapcache_debug/Cargo.toml +++ b/examples/sourcemapcache_debug/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sourcemapcache_debug" -version = "12.17.0-dd" +version = "12.17.2-dd" authors = ["Sentry "] edition = "2021" publish = false @@ -8,7 +8,7 @@ publish = false [dependencies] anyhow = { workspace = true } clap = { workspace = true } -symbolic = { version = "12.17.0-dd", path = "../../symbolic", features = [ +symbolic = { version = "12.17.2-dd", path = "../../symbolic", features = [ "sourcemapcache", ] } tracing-subscriber = { workspace = true, features = ["env-filter"] } diff --git a/examples/symcache_debug/Cargo.toml b/examples/symcache_debug/Cargo.toml index 7547e51d3..e1b327712 100644 --- a/examples/symcache_debug/Cargo.toml +++ b/examples/symcache_debug/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symcache_debug" -version = "12.17.0-dd" +version = "12.17.2-dd" authors = ["Jan Michael Auer "] edition = "2021" publish = false @@ -10,7 +10,7 @@ publish = false [dependencies] anyhow = { workspace = true } clap = { workspace = true } -symbolic = { version = "12.17.0-dd", path = "../../symbolic", features = [ +symbolic = { version = "12.17.2-dd", path = "../../symbolic", features = [ "symcache", "demangle", "il2cpp", diff --git a/examples/unreal_engine_crash/Cargo.toml b/examples/unreal_engine_crash/Cargo.toml index 022a99776..8b2e6c294 100644 --- a/examples/unreal_engine_crash/Cargo.toml +++ b/examples/unreal_engine_crash/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "unreal_engine_crash" -version = "12.17.0-dd" +version = "12.17.2-dd" authors = ["Jan Michael Auer "] edition = "2021" publish = false @@ -9,6 +9,6 @@ publish = false [dependencies] clap = { workspace = true } -symbolic = { version = "12.17.0-dd", path = "../../symbolic", features = [ +symbolic = { version = "12.17.2-dd", path = "../../symbolic", features = [ "unreal", ] } diff --git a/symbolic-cabi/Cargo.toml b/symbolic-cabi/Cargo.toml index a2c767bd5..75498ae17 100644 --- a/symbolic-cabi/Cargo.toml +++ b/symbolic-cabi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-cabi" -version = "12.17.0-dd" +version = "12.17.2-dd" license = "MIT" authors = [ "Armin Ronacher ", @@ -23,7 +23,7 @@ crate-type = ["cdylib", "lib"] proguard = { workspace = true, features = ["uuid"] } anyhow = "1.0.32" sourcemap = { workspace = true } -symbolic = { version = "12.17.0-dd", path = "../symbolic", features = [ +symbolic = { version = "12.17.2-dd", path = "../symbolic", features = [ "cfi", "debuginfo", "demangle", diff --git a/symbolic-cabi/src/proguard.rs b/symbolic-cabi/src/proguard.rs index 92c91caec..226becb2b 100644 --- a/symbolic-cabi/src/proguard.rs +++ b/symbolic-cabi/src/proguard.rs @@ -60,9 +60,9 @@ ffi_fn! { let inner = SelfCell::new(byteview, |data| { let mapping = ProguardMapping::new(&*data); let mapper = if !initialize_param_mapping { - ProguardMapper::new(mapping.clone()) + ProguardMapper::new(mapping) } else { - ProguardMapper::new_with_param_mapping(mapping.clone(), initialize_param_mapping) + ProguardMapper::new_with_param_mapping(mapping, initialize_param_mapping) }; Inner { mapping, mapper } }); diff --git a/symbolic-cfi/Cargo.toml b/symbolic-cfi/Cargo.toml index 2dc90ce6a..ff18fc35e 100644 --- a/symbolic-cfi/Cargo.toml +++ b/symbolic-cfi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-cfi" -version = "12.17.0-dd" +version = "12.17.2-dd" license = "MIT" authors = [ "Armin Ronacher ", @@ -16,8 +16,8 @@ edition.workspace = true rust-version.workspace = true [dependencies] -symbolic-common = { version = "12.17.0-dd", path = "../symbolic-common" } -symbolic-debuginfo = { version = "12.17.0-dd", path = "../symbolic-debuginfo" } +symbolic-common = { version = "12.17.2-dd", path = "../symbolic-common" } +symbolic-debuginfo = { version = "12.17.2-dd", path = "../symbolic-debuginfo" } thiserror = { workspace = true } [dev-dependencies] diff --git a/symbolic-cfi/src/lib.rs b/symbolic-cfi/src/lib.rs index 939700e17..023830718 100644 --- a/symbolic-cfi/src/lib.rs +++ b/symbolic-cfi/src/lib.rs @@ -109,6 +109,19 @@ static ARM64: &[&str] = &[ "v20", "v21", "v22", "v23", "v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31", ]; +/// Names for 32-bit and 64-bit PowerPC CPU registers by register number. +static PPC: &[&str] = &[ + "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13", "r14", + "r15", "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27", + "r28", "r29", "r30", "r31", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "f10", + "f11", "f12", "f13", "f14", "f15", "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", + "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", "", "lr", "ctr", "", "cr0", "cr1", + "cr2", "cr3", "cr4", "cr5", "cr6", "cr7", "xer", "vr0", "vr1", "vr2", "vr3", "vr4", "vr5", + "vr6", "vr7", "vr8", "vr9", "vr10", "vr11", "vr12", "vr13", "vr14", "vr15", "vr16", "vr17", + "vr18", "vr19", "vr20", "vr21", "vr22", "vr23", "vr24", "vr25", "vr26", "vr27", "vr28", "vr29", + "vr30", "vr31", "", "vscr", "", "", "", "tfhar", "tfiar", "texasr", +]; + /// Names for MIPS CPU registers by register number. static MIPS: &[&str] = &[ "$zero", "$at", "$v0", "$v1", "$a0", "$a1", "$a2", "$a3", "$t0", "$t1", "$t2", "$t3", "$t4", @@ -311,6 +324,7 @@ fn cfi_register_name(arch: CpuFamily, register: u16) -> Option<&'static str> { CpuFamily::Amd64 => X86_64.get(index), CpuFamily::Arm64 | CpuFamily::Arm64_32 => ARM64.get(index), CpuFamily::Arm32 => ARM.get(index), + CpuFamily::Ppc32 | CpuFamily::Ppc64 => PPC.get(index), CpuFamily::Mips32 | CpuFamily::Mips64 => MIPS.get(index), _ => None, }; @@ -803,14 +817,24 @@ impl AsciiCfiWriter { Self::write_register_rule(&mut line, info.arch, register, rule, ra)?; } } - // On MIPS: if no explicit rule was encountered for the return address, - // emit a rule stating that the return address should be recovered from the - // $ra register. - if row.start_address() == start - && !ra_written - && matches!(info.arch, Arch::Mips | Arch::Mips64) - { - write!(line, " .ra: $ra")?; + // If no explicit rule was encountered for the return address on the INIT row, + // emit a default rule for architectures where the return address is in a register. + if row.start_address() == start && !ra_written { + let cpu_family = info.arch.cpu_family(); + if matches!( + cpu_family, + CpuFamily::Arm32 + | CpuFamily::Arm64 + | CpuFamily::Arm64_32 + | CpuFamily::Mips32 + | CpuFamily::Mips64 + | CpuFamily::Ppc32 + | CpuFamily::Ppc64 + ) { + if let Some(reg) = cfi_register_name(cpu_family, ra.0) { + write!(line, " .ra: {reg}")?; + } + } } if written { @@ -1333,4 +1357,10 @@ mod tests { fn test_cfi_register_name_none() { assert_eq!(cfi_register_name(CpuFamily::Arm64, 33), None); } + + #[test] + fn test_cfi_register_name_ppc_lr() { + assert_eq!(cfi_register_name(CpuFamily::Ppc32, 65), Some("lr")); + assert_eq!(cfi_register_name(CpuFamily::Ppc64, 65), Some("lr")); + } } diff --git a/symbolic-cfi/tests/snapshots/test_cfi__cfi_elf_arm64.snap b/symbolic-cfi/tests/snapshots/test_cfi__cfi_elf_arm64.snap new file mode 100644 index 000000000..cf0fe434c --- /dev/null +++ b/symbolic-cfi/tests/snapshots/test_cfi__cfi_elf_arm64.snap @@ -0,0 +1,24 @@ +--- +source: symbolic-cfi/tests/test_cfi.rs +assertion_line: 119 +expression: cfi +--- +STACK CFI INIT 574 30 .cfa: sp 0 + .ra: x30 +STACK CFI INIT 5a4 3c .cfa: sp 0 + .ra: x30 +STACK CFI INIT 5e0 30 .cfa: sp 0 + .ra: x30 +STACK CFI 5e4 .cfa: sp 32 + x29: .cfa -32 + ^ .ra: .cfa -24 + ^ +STACK CFI 5ec x19: .cfa -16 + ^ +STACK CFI 60c .cfa: sp 0 + +STACK CFI INIT 610 4 .cfa: sp 0 + .ra: x30 +STACK CFI INIT 620 4 .cfa: sp 0 + .ra: x30 +STACK CFI INIT 624 8 .cfa: sp 0 + .ra: x30 +STACK CFI INIT 630 c .cfa: sp 0 + .ra: x30 +STACK CFI INIT 640 24 .cfa: sp 0 + .ra: x30 +STACK CFI INIT 510 8 .cfa: sp 0 + .ra: x30 +STACK CFI INIT 670 7c .cfa: sp 0 + .ra: x30 +STACK CFI 674 .cfa: sp 64 + x29: .cfa -64 + ^ .ra: .cfa -56 + ^ +STACK CFI 67c x19: .cfa -48 + ^ x20: .cfa -40 + ^ +STACK CFI 688 x21: .cfa -32 + ^ x22: .cfa -24 + ^ +STACK CFI 690 x23: .cfa -16 + ^ x24: .cfa -8 + ^ +STACK CFI 6e8 .cfa: sp 0 + +STACK CFI INIT 6f0 4 .cfa: sp 0 + .ra: x30 diff --git a/symbolic-cfi/tests/test_cfi.rs b/symbolic-cfi/tests/test_cfi.rs index ee9241888..1d5e56489 100644 --- a/symbolic-cfi/tests/test_cfi.rs +++ b/symbolic-cfi/tests/test_cfi.rs @@ -106,3 +106,16 @@ fn cfi_from_pe_windows() -> Result<(), Error> { Ok(()) } + +#[test] +fn cfi_from_elf_arm64() -> Result<(), Error> { + let buffer = ByteView::open(fixture("linux/arm64/cfi_test"))?; + let object = Object::parse(&buffer)?; + + let buf: Vec = AsciiCfiWriter::transform(&object)?; + let cfi = str::from_utf8(&buf)?; + // Verify that .ra: x30 appears in INIT rows + insta::assert_snapshot!("cfi_elf_arm64", cfi); + + Ok(()) +} diff --git a/symbolic-common/Cargo.toml b/symbolic-common/Cargo.toml index 8a64ddd63..d15d85abf 100644 --- a/symbolic-common/Cargo.toml +++ b/symbolic-common/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-common" -version = "12.17.0-dd" +version = "12.17.2-dd" license = "MIT" authors = [ "Armin Ronacher ", diff --git a/symbolic-debuginfo/Cargo.toml b/symbolic-debuginfo/Cargo.toml index 428b2f498..40f50ee4e 100644 --- a/symbolic-debuginfo/Cargo.toml +++ b/symbolic-debuginfo/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-debuginfo" -version = "12.17.0-dd" +version = "12.17.2-dd" license = "MIT" authors = [ "Armin Ronacher ", @@ -64,7 +64,6 @@ ms = [ "goblin/pe32", "goblin/pe64", "goblin/std", - "once_cell", "parking_lot", "pdb-addr2line", "scroll", @@ -74,8 +73,6 @@ ms = [ ppdb = ["symbolic-ppdb"] # Source bundle creation sourcebundle = [ - "lazy_static", - "once_cell", "parking_lot", "regex", "serde_json", @@ -96,7 +93,6 @@ fallible-iterator = { workspace = true } flate2 = { workspace = true, optional = true } gimli = { workspace = true, optional = true } goblin = { workspace = true, optional = true } -lazy_static = { workspace = true, optional = true } once_cell = { workspace = true, optional = true } nom = { workspace = true, optional = true } nom-supreme = { workspace = true, optional = true } @@ -108,8 +104,8 @@ serde = { workspace = true } serde_json = { workspace = true, optional = true } smallvec = { workspace = true, optional = true } srcsrv = { version = "0.2", optional = true } -symbolic-common = { version = "12.17.0-dd", path = "../symbolic-common" } -symbolic-ppdb = { version = "12.17.0-dd", path = "../symbolic-ppdb", optional = true } +symbolic-common = { version = "12.17.2-dd", path = "../symbolic-common" } +symbolic-ppdb = { version = "12.17.2-dd", path = "../symbolic-ppdb", optional = true } thiserror = { workspace = true } wasmparser = { workspace = true, optional = true } zip = { workspace = true, optional = true } diff --git a/symbolic-debuginfo/fuzz/Cargo.toml b/symbolic-debuginfo/fuzz/Cargo.toml index bcb500ddf..3f9587357 100644 --- a/symbolic-debuginfo/fuzz/Cargo.toml +++ b/symbolic-debuginfo/fuzz/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-debuginfo-fuzz" -version = "12.17.0-dd" +version = "12.17.2-dd" authors = ["Automatically generated"] publish = false edition = "2021" diff --git a/symbolic-debuginfo/src/ppdb.rs b/symbolic-debuginfo/src/ppdb.rs index c22c96a70..45be649e9 100644 --- a/symbolic-debuginfo/src/ppdb.rs +++ b/symbolic-debuginfo/src/ppdb.rs @@ -3,8 +3,8 @@ use std::borrow::Cow; use std::collections::HashMap; use std::fmt; use std::iter; +use std::sync::OnceLock; -use once_cell::sync::OnceCell; use symbolic_common::{Arch, CodeId, DebugId}; use symbolic_ppdb::EmbeddedSource; use symbolic_ppdb::{Document, FormatError, PortablePdb}; @@ -144,7 +144,7 @@ impl fmt::Debug for PortablePdbObject<'_> { /// A debug session for a Portable PDB object. pub struct PortablePdbDebugSession<'data> { ppdb: PortablePdb<'data>, - sources: OnceCell>>, + sources: OnceLock>>, } #[derive(Debug, Clone)] @@ -157,7 +157,7 @@ impl<'data> PortablePdbDebugSession<'data> { fn new(ppdb: &'_ PortablePdb<'data>) -> Result { Ok(PortablePdbDebugSession { ppdb: ppdb.clone(), - sources: OnceCell::new(), + sources: OnceLock::new(), }) } diff --git a/symbolic-debuginfo/src/sourcebundle/mod.rs b/symbolic-debuginfo/src/sourcebundle/mod.rs index d87afe9a5..fe69b39ab 100644 --- a/symbolic-debuginfo/src/sourcebundle/mod.rs +++ b/symbolic-debuginfo/src/sourcebundle/mod.rs @@ -51,7 +51,7 @@ use std::fmt::{Display, Formatter}; use std::fs::{File, OpenOptions}; use std::io::{BufReader, BufWriter, ErrorKind, Read, Seek, Write}; use std::path::Path; -use std::sync::Arc; +use std::sync::{Arc, LazyLock}; use std::{fmt, io}; use parking_lot::Mutex; @@ -80,9 +80,7 @@ static MANIFEST_PATH: &str = "manifest.json"; /// Path at which files will be written into the bundle. static FILES_PATH: &str = "files"; -lazy_static::lazy_static! { - static ref SANE_PATH_RE: Regex = Regex::new(r":?[/\\]+").unwrap(); -} +static SANE_PATH_RE: LazyLock = LazyLock::new(|| Regex::new(r":?[/\\]+").unwrap()); /// The error type for [`SourceBundleError`]. #[non_exhaustive] diff --git a/symbolic-debuginfo/src/wasm/parser.rs b/symbolic-debuginfo/src/wasm/parser.rs index 1fa4fd5b7..d28b4350b 100644 --- a/symbolic-debuginfo/src/wasm/parser.rs +++ b/symbolic-debuginfo/src/wasm/parser.rs @@ -130,9 +130,9 @@ impl<'data> super::WasmObject<'data> { // The code section contains the actual function bodies, this payload is emitted at // the beginning of the section. This one is important as the code section offset is // used to calculate relative addresses in a `DwarfDebugSession` - Payload::CodeSectionStart { range, count, .. } => { + Payload::CodeSectionStart { range, .. } => { code_offset = range.start as u64; - validator.code_section_start(count, &range)?; + validator.code_section_start(&range)?; } // We get one of these for each local function body Payload::CodeSectionEntry(body) => { @@ -178,8 +178,11 @@ impl<'data> super::WasmObject<'data> { } // The name section contains the symbol names for items, notably functions "name" => { - let reader = - BinaryReader::new(reader.data(), reader.data_offset(), features); + let reader = BinaryReader::new_features( + reader.data(), + reader.data_offset(), + features, + ); let nsr = NameSectionReader::new(reader); for name in nsr { @@ -229,30 +232,30 @@ fn get_function_info( body: wasmparser::FunctionBody, validator: &mut wasmparser::FuncValidator, ) -> Result<(u64, u64), WasmError> { - let mut body = body.get_binary_reader(); - - let function_address = body.original_position() as u64; + let mut locals_reader = body.get_binary_reader(); + let function_address = locals_reader.original_position() as u64; // locals, we _can_ just skip this, but might as well validate while we're here { - for _ in 0..body.read_var_u32()? { - let pos = body.original_position(); - let count = body.read()?; - let ty = body.read()?; + for _ in 0..locals_reader.read_var_u32()? { + let pos = locals_reader.original_position(); + let count = locals_reader.read()?; + let ty = locals_reader.read()?; validator.define_locals(pos, count, ty)?; } } - while !body.eof() { - let pos = body.original_position(); - let inst = body.read_operator()?; + let mut operators_reader = body.get_operators_reader()?; + while !operators_reader.eof() { + let pos = operators_reader.original_position(); + let inst = operators_reader.read()?; validator.op(pos, &inst)?; } - validator.finish(body.original_position())?; + operators_reader.finish()?; Ok(( function_address, - body.original_position() as u64 - function_address, + operators_reader.original_position() as u64 - function_address, )) } diff --git a/symbolic-debuginfo/tests/test_objects.rs b/symbolic-debuginfo/tests/test_objects.rs index 861b4e871..a7faed811 100644 --- a/symbolic-debuginfo/tests/test_objects.rs +++ b/symbolic-debuginfo/tests/test_objects.rs @@ -1,4 +1,4 @@ -use std::{env, ffi::CString, fmt, io::BufWriter}; +use std::{ffi::CString, fmt, io::BufWriter}; use symbolic_common::ByteView; use symbolic_debuginfo::{ diff --git a/symbolic-demangle/Cargo.toml b/symbolic-demangle/Cargo.toml index 50be35d54..11a14bd10 100644 --- a/symbolic-demangle/Cargo.toml +++ b/symbolic-demangle/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-demangle" -version = "12.17.0-dd" +version = "12.17.2-dd" license = "MIT" authors = [ "Armin Ronacher ", @@ -33,7 +33,7 @@ swift = ["cc"] cpp_demangle = { workspace = true, optional = true } msvc-demangler = { workspace = true, optional = true } rustc-demangle = { workspace = true, optional = true } -symbolic-common = { version = "12.17.0-dd", path = "../symbolic-common" } +symbolic-common = { version = "12.17.2-dd", path = "../symbolic-common" } [build-dependencies] cc = { workspace = true, optional = true } diff --git a/symbolic-il2cpp/Cargo.toml b/symbolic-il2cpp/Cargo.toml index 7206bba76..3de0da8b3 100644 --- a/symbolic-il2cpp/Cargo.toml +++ b/symbolic-il2cpp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-il2cpp" -version = "12.17.0-dd" +version = "12.17.2-dd" license = "MIT" authors = ["Sentry "] documentation = "https://docs.rs/symbolic-il2cpp" @@ -15,5 +15,5 @@ rust-version.workspace = true [dependencies] indexmap = { workspace = true } serde_json = { workspace = true } -symbolic-common = { version = "12.17.0-dd", path = "../symbolic-common" } -symbolic-debuginfo = { version = "12.17.0-dd", path = "../symbolic-debuginfo" } +symbolic-common = { version = "12.17.2-dd", path = "../symbolic-common" } +symbolic-debuginfo = { version = "12.17.2-dd", path = "../symbolic-debuginfo" } diff --git a/symbolic-ppdb/Cargo.toml b/symbolic-ppdb/Cargo.toml index 5180501f8..1dbd6c072 100644 --- a/symbolic-ppdb/Cargo.toml +++ b/symbolic-ppdb/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-ppdb" -version = "12.17.0-dd" +version = "12.17.2-dd" license = "MIT" authors = [ "Sebastian Zivota ", @@ -25,7 +25,7 @@ flate2 = { workspace = true } indexmap = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } -symbolic-common = { version = "12.17.0-dd", path = "../symbolic-common" } +symbolic-common = { version = "12.17.2-dd", path = "../symbolic-common" } thiserror = { workspace = true } uuid = { workspace = true } watto = { workspace = true } diff --git a/symbolic-ppdb/fuzz/Cargo.toml b/symbolic-ppdb/fuzz/Cargo.toml index 2369153ef..d82c88881 100644 --- a/symbolic-ppdb/fuzz/Cargo.toml +++ b/symbolic-ppdb/fuzz/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-ppdb-fuzz" -version = "12.17.0-dd" +version = "12.17.2-dd" authors = ["Automatically generated"] publish = false edition = "2021" diff --git a/symbolic-sourcemapcache/Cargo.toml b/symbolic-sourcemapcache/Cargo.toml index 970a79d65..29f1d22ed 100644 --- a/symbolic-sourcemapcache/Cargo.toml +++ b/symbolic-sourcemapcache/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-sourcemapcache" -version = "12.17.0-dd" +version = "12.17.2-dd" license = "MIT" authors = ["Sentry "] documentation = "https://docs.rs/symbolic-sourcemapcache" @@ -15,7 +15,7 @@ edition = "2021" itertools = { workspace = true } js-source-scopes = { workspace = true } sourcemap = { workspace = true } -symbolic-common = { version = "12.17.0-dd", path = "../symbolic-common" } +symbolic-common = { version = "12.17.2-dd", path = "../symbolic-common" } thiserror = { workspace = true } tracing = { workspace = true } watto = { workspace = true } diff --git a/symbolic-sourcemapcache/src/writer.rs b/symbolic-sourcemapcache/src/writer.rs index 1d9922f3d..56961cd08 100644 --- a/symbolic-sourcemapcache/src/writer.rs +++ b/symbolic-sourcemapcache/src/writer.rs @@ -129,12 +129,8 @@ impl SourceMapCacheWriter { }; let orig_files = match &sm { - DecodedMap::Regular(sm) => sm - .sources() - .zip_longest(sm.source_contents().map(Option::unwrap_or_default)), - DecodedMap::Hermes(smh) => smh - .sources() - .zip_longest(smh.source_contents().map(Option::unwrap_or_default)), + DecodedMap::Regular(sm) => sm.sources().zip_longest(sm.source_contents()), + DecodedMap::Hermes(smh) => smh.sources().zip_longest(smh.source_contents()), DecodedMap::Index(_smi) => unreachable!(), }; @@ -146,10 +142,14 @@ impl SourceMapCacheWriter { tracing::trace_span!("extract original files").in_scope(|| { for orig_file in orig_files { let (name, source) = orig_file.or_default(); + let name_offset = string_table.insert(name) as u32; - let source_offset = string_table.insert(source) as u32; + + let source_offset = + source.map_or(u32::MAX, |source| string_table.insert(source) as u32); + let line_offsets_start = line_offsets.len() as u32; - Self::append_line_offsets(source, &mut line_offsets); + Self::append_line_offsets(source.unwrap_or_default(), &mut line_offsets); let line_offsets_end = line_offsets.len() as u32; files.push(( diff --git a/symbolic-symcache/Cargo.toml b/symbolic-symcache/Cargo.toml index 179e7886a..b604ebfe6 100644 --- a/symbolic-symcache/Cargo.toml +++ b/symbolic-symcache/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-symcache" -version = "12.17.0-dd" +version = "12.17.2-dd" license = "MIT" authors = [ "Armin Ronacher ", @@ -23,9 +23,9 @@ all-features = true [dependencies] indexmap = { workspace = true } -symbolic-common = { version = "12.17.0-dd", path = "../symbolic-common" } -symbolic-debuginfo = { version = "12.17.0-dd", path = "../symbolic-debuginfo" } -symbolic-il2cpp = { version = "12.17.0-dd", path = "../symbolic-il2cpp", optional = true } +symbolic-common = { version = "12.17.2-dd", path = "../symbolic-common" } +symbolic-debuginfo = { version = "12.17.2-dd", path = "../symbolic-debuginfo" } +symbolic-il2cpp = { version = "12.17.2-dd", path = "../symbolic-il2cpp", optional = true } thiserror = { workspace = true } tracing = { workspace = true } watto = { workspace = true } diff --git a/symbolic-symcache/src/lib.rs b/symbolic-symcache/src/lib.rs index d0d9f7b1d..9eea45866 100644 --- a/symbolic-symcache/src/lib.rs +++ b/symbolic-symcache/src/lib.rs @@ -152,7 +152,7 @@ impl std::fmt::Debug for SymCache<'_> { f.debug_struct("SymCache") .field("version", &self.header.version) .field("debug_id", &self.header.debug_id) - .field("arch", &self.header.arch) + .field("arch", &Arch::from_u32(self.header.arch)) .field("files", &self.header.num_files) .field("functions", &self.header.num_functions) .field("source_locations", &self.header.num_source_locations) @@ -256,7 +256,7 @@ impl<'data> SymCache<'data> { /// The architecture of the symbol file. pub fn arch(&self) -> Arch { - self.header.arch + Arch::from_u32(self.header.arch) } /// The debug identifier of the cache file. diff --git a/symbolic-symcache/src/raw.rs b/symbolic-symcache/src/raw.rs index 1d29cd87c..88764aa1b 100644 --- a/symbolic-symcache/src/raw.rs +++ b/symbolic-symcache/src/raw.rs @@ -3,7 +3,7 @@ use watto::Pod; -use symbolic_common::{Arch, DebugId}; +use symbolic_common::DebugId; /// The magic file preamble as individual bytes. const SYMCACHE_MAGIC_BYTES: [u8; 4] = *b"SYMC"; @@ -37,7 +37,10 @@ pub(crate) struct Header { /// Debug identifier of the object file. pub(crate) debug_id: DebugId, /// CPU architecture of the object file. - pub(crate) arch: Arch, + /// + /// This cannot be [`symbolic_common::Arch`] because + /// not every bit pattern is valid for that type. + pub(crate) arch: u32, /// Number of included [`File`]s. pub(crate) num_files: u32, @@ -142,4 +145,17 @@ mod tests { assert_eq!(mem::size_of::(), 4); assert_eq!(mem::align_of::(), 4); } + + #[test] + fn test_header_arch_from_bytes() { + // Create an array of `u32`s and later transmute it to a slice of `u8`. + // This is to get a `u8` slice which is 4-byte aligned. + let mut nums = [0u32; 20]; + // There are 40B, or 10 `u32`, before `arch` in the header. + nums[10] = 17; + let ptr = &raw const nums as *const u8; + let bytes: &[u8] = unsafe { std::slice::from_raw_parts(ptr, 80) }; + + let _arch = Header::ref_from_bytes(bytes).unwrap().arch; + } } diff --git a/symbolic-symcache/src/writer.rs b/symbolic-symcache/src/writer.rs index 728f95e1e..ed79341fd 100644 --- a/symbolic-symcache/src/writer.rs +++ b/symbolic-symcache/src/writer.rs @@ -489,7 +489,7 @@ impl<'a> SymCacheConverter<'a> { version: crate::SYMCACHE_VERSION, debug_id: self.debug_id, - arch: self.arch, + arch: self.arch as u32, num_files, num_functions, diff --git a/symbolic-testutils/Cargo.toml b/symbolic-testutils/Cargo.toml index 89634f10e..f222c1620 100644 --- a/symbolic-testutils/Cargo.toml +++ b/symbolic-testutils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-testutils" -version = "12.17.0-dd" +version = "12.17.2-dd" license = "MIT" edition = "2021" publish = false diff --git a/symbolic-testutils/fixtures/linux/arm64/build.sh b/symbolic-testutils/fixtures/linux/arm64/build.sh new file mode 100755 index 000000000..0f66435f5 --- /dev/null +++ b/symbolic-testutils/fixtures/linux/arm64/build.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# Build ARM64 ELF fixture for CFI testing +# Requires: aarch64-linux-gnu-gcc + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$SCRIPT_DIR" + +# Compile with debug info and optimization +# -g: Generate debug info (CFI is emitted correctly at any optimization level) +# -O2: Standard optimization, representative of real-world binaries +aarch64-linux-gnu-gcc \ + -g \ + -O2 \ + -o cfi_test \ + cfi_test.c + +# Verify the output +file cfi_test +echo "ARM64 fixture generated: cfi_test" diff --git a/symbolic-testutils/fixtures/linux/arm64/cfi_test b/symbolic-testutils/fixtures/linux/arm64/cfi_test new file mode 100755 index 000000000..cfbfbdec6 Binary files /dev/null and b/symbolic-testutils/fixtures/linux/arm64/cfi_test differ diff --git a/symbolic-testutils/fixtures/linux/arm64/cfi_test.c b/symbolic-testutils/fixtures/linux/arm64/cfi_test.c new file mode 100644 index 000000000..e50fe3ccf --- /dev/null +++ b/symbolic-testutils/fixtures/linux/arm64/cfi_test.c @@ -0,0 +1,28 @@ +// Simple functions that will produce CFI records. +// The compiler typically won't emit explicit RA rules on INIT rows +// since the return address is in LR (x30) by default on ARM64. + +void leaf_function(void) { + // Leaf function - no stack frame needed + // Should produce CFI INIT without explicit .ra rule +} + +int callee(int x) { + // Non-leaf function that may need to save LR + return x + 1; +} + +int caller(int x) { + // Function that calls another, needs to save/restore LR + return callee(x) + callee(x + 1); +} + +int recursive(int n) { + if (n <= 0) return 0; + return n + recursive(n - 1); +} + +int main(void) { + leaf_function(); + return caller(1) + recursive(5); +} diff --git a/symbolic-unreal/Cargo.toml b/symbolic-unreal/Cargo.toml index ec0f284ca..118c9832a 100644 --- a/symbolic-unreal/Cargo.toml +++ b/symbolic-unreal/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic-unreal" -version = "12.17.0-dd" +version = "12.17.2-dd" license = "MIT" authors = [ "Armin Ronacher ", @@ -30,7 +30,6 @@ bytes = { workspace = true } chrono = { workspace = true } elementtree = { workspace = true } flate2 = { workspace = true } -lazy_static = { workspace = true } regex = { workspace = true } scroll = { workspace = true, features = ["derive"] } serde = { workspace = true, optional = true } diff --git a/symbolic-unreal/src/container.rs b/symbolic-unreal/src/container.rs index e91ce0bc8..828ede31e 100644 --- a/symbolic-unreal/src/container.rs +++ b/symbolic-unreal/src/container.rs @@ -150,11 +150,18 @@ impl Unreal4Crash { (header, files) } else { + // Guard against very short invalid streams making it through the decoder. + // See https://github.com/rust-lang/flate2-rs/issues/499. + let file_count_offset = bytes + .len() + .checked_sub(4) + .ok_or(Unreal4Error::from(Unreal4ErrorKind::BadCompression))?; + // The header is repeated at the beginning and the end of the file. The first one is // merely a placeholder, the second contains actual information. However, it's not // possible to parse it right away, so we only read the file count and parse the rest // progressively. - let file_count = bytes.pread_with::(bytes.len() - 4, scroll::LE)? as usize; + let file_count = bytes.pread_with::(file_count_offset, scroll::LE)? as usize; // Ignore the initial header and use the one at the end of the file instead. bytes.gread_with::(&mut offset, scroll::LE)?; @@ -426,7 +433,10 @@ mod tests { #[test] fn test_parse_invalid_input() { - let crash = &[0u8; 1]; + // In newer versions of `flate2`, very short invalid streams don't necessarily + // trigger a decoding error. + // See https://github.com/rust-lang/flate2-rs/issues/499. + let crash = &[0u8; 16]; let result = Unreal4Crash::parse(crash); let error = result.expect_err("empty crash"); @@ -436,6 +446,17 @@ mod tests { assert_eq!(source.to_string(), "corrupt deflate stream"); } + #[test] + fn test_parse_short_invalid_input() { + let crash = &[0u8; 1]; + + let result = Unreal4Crash::parse(crash); + let error = result.expect_err("empty crash"); + assert_eq!(error.kind(), Unreal4ErrorKind::BadCompression); + + assert!(error.source().is_none()); + } + // The size of the unreal_crash fixture when decompressed. const DECOMPRESSED_SIZE: usize = 440752; diff --git a/symbolic-unreal/src/logs.rs b/symbolic-unreal/src/logs.rs index 6f4a1bcab..9e42b68ff 100644 --- a/symbolic-unreal/src/logs.rs +++ b/symbolic-unreal/src/logs.rs @@ -1,6 +1,7 @@ +use std::sync::LazyLock; + use anylog::LogEntry; use chrono::{DateTime, Utc}; -use lazy_static::lazy_static; use regex::Regex; #[cfg(any(test, feature = "serde"))] use time::format_description::well_known::Rfc3339; @@ -11,12 +12,13 @@ use crate::Unreal4ErrorKind; #[cfg(test)] use similar_asserts::assert_eq; -lazy_static! { - /// https://github.com/EpicGames/UnrealEngine/blob/f509bb2d6c62806882d9a10476f3654cf1ee0634/Engine/Source/Runtime/Core/Private/GenericPlatform/GenericPlatformTime.cpp#L79-L93 - /// Note: Date is always in US format (dd/MM/yyyy) and time is local - /// Example: Log file open, 12/13/18 15:54:53 - static ref LOG_FIRST_LINE: Regex = Regex::new(r"Log file open, (?P\d\d)/(?P\d\d)/(?P\d\d) (?P\d\d):(?P\d\d):(?P\d\d)$").unwrap(); -} +/// +/// +/// Note: Date is always in US format (dd/MM/yyyy) and time is local +/// Example: Log file open, 12/13/18 15:54:53 +static LOG_FIRST_LINE: LazyLock = LazyLock::new(|| { + Regex::new(r"Log file open, (?P\d\d)/(?P\d\d)/(?P\d\d) (?P\d\d):(?P\d\d):(?P\d\d)$").unwrap() +}); #[cfg(feature = "serde")] fn serialize_timestamp( diff --git a/symbolic/Cargo.toml b/symbolic/Cargo.toml index 1a5ee9ef7..12549e0e4 100644 --- a/symbolic/Cargo.toml +++ b/symbolic/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symbolic" -version = "12.17.0-dd" +version = "12.17.2-dd" license = "MIT" authors = [ "Armin Ronacher ", @@ -35,12 +35,12 @@ unreal = ["symbolic-unreal"] unreal-serde = ["unreal", "common-serde", "symbolic-unreal/serde"] [dependencies] -symbolic-cfi = { version = "12.17.0-dd", path = "../symbolic-cfi", optional = true } -symbolic-common = { version = "12.17.0-dd", path = "../symbolic-common" } -symbolic-debuginfo = { version = "12.17.0-dd", path = "../symbolic-debuginfo", optional = true } -symbolic-demangle = { version = "12.17.0-dd", path = "../symbolic-demangle", optional = true } -symbolic-il2cpp = { version = "12.17.0-dd", path = "../symbolic-il2cpp", optional = true } -symbolic-ppdb = { version = "12.17.0-dd", path = "../symbolic-ppdb", optional = true } -symbolic-sourcemapcache = { version = "12.17.0-dd", path = "../symbolic-sourcemapcache", optional = true } -symbolic-symcache = { version = "12.17.0-dd", path = "../symbolic-symcache", optional = true } -symbolic-unreal = { version = "12.17.0-dd", path = "../symbolic-unreal", optional = true } +symbolic-cfi = { version = "12.17.2-dd", path = "../symbolic-cfi", optional = true } +symbolic-common = { version = "12.17.2-dd", path = "../symbolic-common" } +symbolic-debuginfo = { version = "12.17.2-dd", path = "../symbolic-debuginfo", optional = true } +symbolic-demangle = { version = "12.17.2-dd", path = "../symbolic-demangle", optional = true } +symbolic-il2cpp = { version = "12.17.2-dd", path = "../symbolic-il2cpp", optional = true } +symbolic-ppdb = { version = "12.17.2-dd", path = "../symbolic-ppdb", optional = true } +symbolic-sourcemapcache = { version = "12.17.2-dd", path = "../symbolic-sourcemapcache", optional = true } +symbolic-symcache = { version = "12.17.2-dd", path = "../symbolic-symcache", optional = true } +symbolic-unreal = { version = "12.17.2-dd", path = "../symbolic-unreal", optional = true }