Hi,

With rustc 1.53, rust has stabilized integer::BITS and it makes the
lexical-core crate vendored in suricata to fail to build with rustc
1.53.0.

The following diff backport lexical-core fix which is landed in
lexical-core 0.7.5 (suricata is using 0.6.7).

Upstream discussion: 
https://forum.suricata.io/t/latest-suricata-6-0-2-with-rustc-has-trouble-installing-with-error-could-not-compile-lexical-core/1461

The diff is ugly, mostly due to cargo-checksum.json change. but I
think it is preferable to have a diff instead of a post-patch sed
command as the sed command might be easily forgotten on update.

I tested the build with lang/rust 1.53.0.

Comments or OK ?
-- 
Sebastien Marie


Index: patches/patch-rust_vendor_lexical-core__cargo-checksum_json
===================================================================
RCS file: patches/patch-rust_vendor_lexical-core__cargo-checksum_json
diff -N patches/patch-rust_vendor_lexical-core__cargo-checksum_json
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-rust_vendor_lexical-core__cargo-checksum_json 19 Jun 2021 
08:16:48 -0000
@@ -0,0 +1,10 @@
+$OpenBSD$
+Backport of https://github.com/Alexhuszagh/rust-lexical/pull/56 for rustc 
1.53.0
+
+Index: rust/vendor/lexical-core/.cargo-checksum.json
+--- rust/vendor/lexical-core/.cargo-checksum.json.orig
++++ rust/vendor/lexical-core/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"CHANGELOG":"36ac8dc0bc46ac1c9fc0bdd1f2cbcbfa8d43684f22aac97d33132e33b2cc3081","Cargo.toml":"fd799e21273a9c2181bd45a562d8226a9835d9611f66db71cbeb6fe93b60db0b","LICENSE-APACHE":"8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"c99e5c41324109869738a8bd5cfb41b12c0254abef471b3de9790c91807009d0","build.rs":"8dbe6619d4be32c7f81cdc849a5d40067c03913136b6b536cfc616d398efce79","src/atof/algorithm/alias.rs":"19143a97dc6a2bdd8b212b43d8cea79dc3f8ec776f7cc27d6dc20621ae70b7bd","src/atof/algorithm/bhcomp.rs":"d07c730e02c786d28d5565ca56f41d08c686830cec739ca8b6fddcf78c4cb570","src/atof/algorithm/bigcomp.rs":"da3e4110c26414b86015f34a74898073bdf1ac95555e7e400e5449809df549eb","src/atof/algorithm/bignum.rs":"5809ac8acb417047e43ea4d4c6126b66799576cb26fdea400ce9b5fb28852044","src/atof/algorithm/cached.rs":"6c81da44969500f039ef06da804a84fc9d1f79c5a4081c50952d9ceb12d70bbe","src/atof/algorithm/cached_float160.rs":"e0e7ab1fafe4b3793bdbd8710f3d2c5417a4c70c263b9f1399f4dc09991a6f3a","src/atof/algorithm/cached_float80.rs":"f9dc141c121d33dd54b2867d41e063694ca2a8bd73d3a91a4cb9499293cf7d8c","src/atof/algorithm/correct.rs":"c1a9eeec5bc514a704812f7dd06ccdc9264ed0c8e8bbfc043a546deeffd55567","src/atof/algorithm/errors.rs":"d422d28471a70f0035e226d474168ba5f28852d113b52b9617b98f6aa53c7937","src/atof/algorithm/format/exponent.rs":"77fc9ad541617d52295bd7892c455788382d27c37ac807a1bb43b3601c2e50a8","src/atof/algorithm/format/generic.rs":"aab554937a5e92c1ae88d47a8a8a1b7234e3879d38d9bdf097355f871499ea3c","src/atof/algorithm/format/ignore.rs":"0ea14e66f65129ec1898614c7900b7a4c32916343b5d08d0da48e891935b957e","src/atof/algorithm/format/interface.rs":"baa1120664d88ae9551b8ffd892c712e0da8757815d53db0b51f5dd974d30d97","src/atof/algorithm/format/mod.rs":"a7c377b51d702ccdd4bf205c7bfaab0c5c250b583fd0bec5dddf0728fbe7a398","src/atof/algorithm/format/permissive.rs":"bb708d2bd5ac1519ec27e53e58ffb0c4d7c1299a23b336aa5c4941485183a72b","src/atof/algorithm/format/standard.rs":"7e2d3f92c99eaf8bc54add5306b5b5d42b89d1e170b087a52da1f6793143f250","src/atof/algorithm/format/traits.rs":"1b3ad92f70bcc87f3cb23243c13df5f6a7963d236e361f9657e61b72c35208ce","src/atof/algorithm/format/trim.rs":"54003724a6b5b3e3c74df2a2913a1540031069dc7a52357fba5232d0f8f64677","src/atof/algorithm/format/validate.rs":"e019bd24989194abf956b227fcd53c407aba873eaf3f3bed00a236f41ddbbba0","src/atof/algorithm/incorrect.rs":"51f237f9a72a35d1cce1831e68dfaa42b09fa52ca95401fbbc61f49b3734156c","src/atof/algorithm/large_powers.rs":"b778f15dc831be4e132448dbe04e19a6946926773bb9dea89fe8426ef8e10282","src/atof/algorithm/large_powers_32.rs":"f1c191113cf80d922adbfcf7811450508aff06074b456eada8ece00106c95486","src/atof/algorithm/large_powers_64.rs":"644b40cd84f81964c241085720b631cfd41a026f95aee27328d6ef12069673ab","src/atof/algorithm/math.rs":"430e4d2e17850090761ef945cdd32ff2a80049777bd566d31d03b7989703002e","src/atof/algorithm/mod.rs":"8f50d4328bd444c1d23579bd8dd7b3936c046322893af5e6fb11389219994a40","src/atof/algorithm/small_powers.rs":"37e0ad6aa7e0576c824b00090c2561e8b5fddfd2ab23c7a4e913d88c780d25eb","src/atof/algorithm/small_powers_32.rs":"5b974d3ea5ee4a5c459b32206bb1a6949b4831af299d7ea0122a6142b8c7f153","src/atof/algorithm/small_powers_64.rs":"16f260763b9e6a7b6365f9ae120305b43a4e2676ba7b62fff5a44e868d2637d0","src/atof/api.rs":"f8477127f117b7acf6b82e2a07a629c3003a846ffb28658b9347aa5a8cfc275d","src/atof/mod.rs":"4ea3fb2ecc03484da240ab78960d20577e095605a81364c4edc1a975f4337aae","src/atoi/api.rs":"42c7d00838b74db9ae993b0977ac354e724e2e800433252e1bec705102a96fbe","src/atoi/exponent.rs":"9477ce345fe9ea3365b388f7a3b3693ee80fe15c4f714ccef943143757b77832","src/atoi/generic.rs":"dcabc6609862e64618c452d03b9c58c4d2a76158a5f2eecae016689d8ac3913a","src/atoi/mantissa.rs":"713a9c9cf8e5d92499af4a3ca97a3b0aa841135b392b291583f5030d63873084","src/atoi/mod.rs":"68c2c460b56398c495e42024243c4f114c47f2c96273c1ce8274edc7a8ac3fda","src/atoi/shared.rs":"290eed81a5523b6563abc85414ff7627106eaa3e822e3ecab85c8171a514bc6b","src/float/convert.rs":"a509409ee547a7258b2b4dea5f1bcfa331f7185bef8187d89d95faf319a8f010","src/float/float.rs":"a093ed7ff1dd8879b3705e9bceec2d026f3cd1506a29ec6fcd9ad4f903baed77","src/float/mantissa.rs":"22fe797e3763d7e0d801ad1be4c4017569134096bfe10569d717411dc7bf3a91","src/float/mod.rs":"8a769a10c564cd55b380685b8fb1318e2a4f41a2f42befcbef0defe0e726cd65","src/float/rounding.rs":"90edcdd5aa3b59b9a86995324f32f80d45d6f7dacc911b47f8bbb415426e8d1a","src/float/shift.rs":"8f0c62e3fa5645bee43bb7c9dd3cca20d9b0251f543d3be50b82a41dada28d0e","src/ftoa/api.rs":"4851db7ed9b15ad66643bd9728160211d2996443fa2662dfd548a045d9ea3ea7","src/ftoa/grisu2.rs":"2cf9c3274835a852142895abcf518caa70c7f5333cc3149069eebcfaebed2600","src/ftoa/grisu3.rs":"451489ee3708cb1cf02c6f7a4c3fca2316fd503f692492675f3b7e89f1d2908c","src/ftoa/mod.rs":"9609a66efc47f8ca474a3f993ebb98117cd91c1c1dc27ba5b23440d6b3f1471b","src/ftoa/radix.rs":"90e903a7d66ec8d59a53c432a70fbbedc1869d35b9e07222e0fdba93508fe661","src/ftoa/ryu.rs":"34f914a8cf40bd90c900cdd284ff01f9738ec1da4205f3b60f3fb238ff15103f","src/itoa/api.rs":"30ad0a420f22d67814af7c44199bbff4f48dfac96285570a388a5c5ea87577bd","src/itoa/decimal.rs":"e87c32c48ba788e8814999d23cb532dc057b7025057365bccf606638fa707298","src/itoa/generic.rs":"86ba11b32d981bcfc4037c29b345868530ca73dac3446cc5be4fd59ff876c2ea","src/itoa/mod.rs":"9b7e96338a0003a9d3176b91387c7cc0590c3c4c799b2bc1478e553515bbc9bd","src/itoa/naive.rs":"d27437d8b4669c7a2fa8f3f8869bd6aab5f18a0d618fbf1f3bcbc5f1ae90e4a0","src/lib.rs":"c10c744d9ab0b6bb434e8316d0de318a0bdb4bca47ff1627c7c08379b7b6d9e3","src/util/algorithm.rs":"2a448aac0b0d6c6c21ba356e9704a6673eddf11415038206eed48c1968cedf21","src/util/assert.rs":"668ff920c1724105055f565948c1674f858e74634432ab8d4514b8bf2ed688f1","src/util/bound.rs":"469c49e6a883edf9c0ae012813ceac50c9fc97462aea049f390cf07268071e2d","src/util/cast.rs":"bbd1a2b4f2b7eb3b93a6f462a792b09846d6b1e25232d34371befe0978179558","src/util/config.rs":"5b2c91da5108e7119cc7ea7438ba23f2fce29fb68efe5a06ca3f8609c5855736","src/util/consume.rs":"df25df0020d8a322a894e85bc8a202385e57b93242b9e285e5892b0091b42c50","src/util/div128.rs":"fb6943a8adbfa565075980246bb2a75784dc78f83bb40ff9e178cd066e82f7b0","src/util/error.rs":"19d523338ff6ea82312988dcc8f7bed4c3a96985df071553b3bd5ed228625c1b","src/util/format.rs":"9613c6e34e599928a7825d4917d55e373a3df4230789b2e23d6f91e5e68bbd4b","src/util/index.rs":"eadc46ee24b008f766f9f70d44e3e9b475c38154351cae3eefd49c0218f66400","src/util/iterator.rs":"2d4b6f3e628e9ce91687adb90c6ee8ffd52b5e3bead649ee4a8ef497f34aa8f6","src/util/mask.rs":"299b00fc1ce149c7f8763602345d21cab9d91207ef6519ea1d175248f63f05e0","src/util/mod.rs":"408853a93ee8073b297c94e120297f23739d732076a2aeaefa361e5d7763523a","src/util/num.rs":"82def6e5fee09a69eb7690838702602790b4804268f431a75047d476ee77a80b","src/util/perftools.rs":"3dde4045fe630543474e1b70c7eecf73efb7a8c474bfee7f1b2ef619fafe265e","src/util/pointer_methods.rs":"a083b854936b21e8f54f3510952945979fae47993322500e597cc2e4769ecd79","src/util/pow.rs":"7b15310b98fa562329232e8bd963aef5ebf521e54e249cfc7005d7eacfb1598a","src/util/primitive.rs":"102337c82de940d7b492e63af222eaa7cf477468a344672366784e9553dab801","src/util/range_bounds.rs":"2d069fa04ff31715a02c5e067aa0b390b4692ba245617cc8e4fb58abdb09b0fc","src/util/result.rs":"cc3c8d7a81b2bd4d3d83d27525df9e2954d149ee1ddf543d51b405371493cc9e","src/util/rounding.rs":"be2e3d282ffcb176ee6530d42a67bc57474b3fc9e16de6989ffa43d5997d4670","src/util/sequence.rs":"d3030dac73c74abf420683962513499c448abab2b68c5fb8b0e785cf9f6be0db","src/util/sign.rs":"528ce4d64de019a454cb70bdf104a02712999587a2bc87ff96bda703e3f69cb9","src/util/skip_value.rs":"6e1f5158bfc64cab16ef711e51c79e3c6c8912e19d4b88586779fab9bc9de97f","src/util/slice_index.rs":"4f9e340c0a351f6ca81cea962a18ea8431aeb0fb4c5e959cb940f991f66789b5","src/util/table.rs":"5209ac4585b9dece2efac6d1b50237aaa0fda00c537783e543e1332bf9b1247a","src/util/test.rs":"7726ea1ff853961fe06a4ec382a9870f6b7e5701d4ea8bb477e9d29b8d6bd82e","src/util/traits.rs":"d8f10a673e63738254b0403929e384538182b81098b4b2819081c5d28fb63fbb","src/util/wrapped.rs":"e030e29ee4413bfa9b976dfd7e04143389294950fb60826c78c54d07790d9619"},"package":"f86d66d380c9c5a685aaac7a11818bdfa1f733198dfd9ec09c70b762cd12ad6f"}
+\ No newline at end of file
++{"files":{"CHANGELOG":"36ac8dc0bc46ac1c9fc0bdd1f2cbcbfa8d43684f22aac97d33132e33b2cc3081","Cargo.toml":"fd799e21273a9c2181bd45a562d8226a9835d9611f66db71cbeb6fe93b60db0b","LICENSE-APACHE":"8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"c99e5c41324109869738a8bd5cfb41b12c0254abef471b3de9790c91807009d0","build.rs":"8dbe6619d4be32c7f81cdc849a5d40067c03913136b6b536cfc616d398efce79","src/atof/algorithm/alias.rs":"19143a97dc6a2bdd8b212b43d8cea79dc3f8ec776f7cc27d6dc20621ae70b7bd","src/atof/algorithm/bignum.rs":"5809ac8acb417047e43ea4d4c6126b66799576cb26fdea400ce9b5fb28852044","src/atof/algorithm/cached.rs":"6c81da44969500f039ef06da804a84fc9d1f79c5a4081c50952d9ceb12d70bbe","src/atof/algorithm/cached_float160.rs":"e0e7ab1fafe4b3793bdbd8710f3d2c5417a4c70c263b9f1399f4dc09991a6f3a","src/atof/algorithm/cached_float80.rs":"f9dc141c121d33dd54b2867d41e063694ca2a8bd73d3a91a4cb9499293cf7d8c","src/atof/algorithm/correct.rs":"c1a9eeec5bc514a704812f7dd06ccdc9264ed0c8e8bbfc043a546deeffd55567","src/atof/algorithm/errors.rs":"d422d28471a70f0035e226d474168ba5f28852d113b52b9617b98f6aa53c7937","src/atof/algorithm/format/exponent.rs":"77fc9ad541617d52295bd7892c455788382d27c37ac807a1bb43b3601c2e50a8","src/atof/algorithm/format/generic.rs":"aab554937a5e92c1ae88d47a8a8a1b7234e3879d38d9bdf097355f871499ea3c","src/atof/algorithm/format/ignore.rs":"0ea14e66f65129ec1898614c7900b7a4c32916343b5d08d0da48e891935b957e","src/atof/algorithm/format/interface.rs":"baa1120664d88ae9551b8ffd892c712e0da8757815d53db0b51f5dd974d30d97","src/atof/algorithm/format/mod.rs":"a7c377b51d702ccdd4bf205c7bfaab0c5c250b583fd0bec5dddf0728fbe7a398","src/atof/algorithm/format/permissive.rs":"bb708d2bd5ac1519ec27e53e58ffb0c4d7c1299a23b336aa5c4941485183a72b","src/atof/algorithm/format/standard.rs":"7e2d3f92c99eaf8bc54add5306b5b5d42b89d1e170b087a52da1f6793143f250","src/atof/algorithm/format/traits.rs":"1b3ad92f70bcc87f3cb23243c13df5f6a7963d236e361f9657e61b72c35208ce","src/atof/algorithm/format/trim.rs":"54003724a6b5b3e3c74df2a2913a1540031069dc7a52357fba5232d0f8f64677","src/atof/algorithm/format/validate.rs":"e019bd24989194abf956b227fcd53c407aba873eaf3f3bed00a236f41ddbbba0","src/atof/algorithm/incorrect.rs":"51f237f9a72a35d1cce1831e68dfaa42b09fa52ca95401fbbc61f49b3734156c","src/atof/algorithm/large_powers.rs":"b778f15dc831be4e132448dbe04e19a6946926773bb9dea89fe8426ef8e10282","src/atof/algorithm/large_powers_32.rs":"f1c191113cf80d922adbfcf7811450508aff06074b456eada8ece00106c95486","src/atof/algorithm/large_powers_64.rs":"644b40cd84f81964c241085720b631cfd41a026f95aee27328d6ef12069673ab","src/atof/algorithm/mod.rs":"8f50d4328bd444c1d23579bd8dd7b3936c046322893af5e6fb11389219994a40","src/atof/algorithm/small_powers.rs":"37e0ad6aa7e0576c824b00090c2561e8b5fddfd2ab23c7a4e913d88c780d25eb","src/atof/algorithm/small_powers_32.rs":"5b974d3ea5ee4a5c459b32206bb1a6949b4831af299d7ea0122a6142b8c7f153","src/atof/algorithm/small_powers_64.rs":"16f260763b9e6a7b6365f9ae120305b43a4e2676ba7b62fff5a44e868d2637d0","src/atof/api.rs":"f8477127f117b7acf6b82e2a07a629c3003a846ffb28658b9347aa5a8cfc275d","src/atof/mod.rs":"4ea3fb2ecc03484da240ab78960d20577e095605a81364c4edc1a975f4337aae","src/atoi/api.rs":"42c7d00838b74db9ae993b0977ac354e724e2e800433252e1bec705102a96fbe","src/atoi/exponent.rs":"9477ce345fe9ea3365b388f7a3b3693ee80fe15c4f714ccef943143757b77832","src/atoi/generic.rs":"dcabc6609862e64618c452d03b9c58c4d2a76158a5f2eecae016689d8ac3913a","src/atoi/mantissa.rs":"713a9c9cf8e5d92499af4a3ca97a3b0aa841135b392b291583f5030d63873084","src/atoi/mod.rs":"68c2c460b56398c495e42024243c4f114c47f2c96273c1ce8274edc7a8ac3fda","src/atoi/shared.rs":"290eed81a5523b6563abc85414ff7627106eaa3e822e3ecab85c8171a514bc6b","src/float/convert.rs":"a509409ee547a7258b2b4dea5f1bcfa331f7185bef8187d89d95faf319a8f010","src/float/float.rs":"a093ed7ff1dd8879b3705e9bceec2d026f3cd1506a29ec6fcd9ad4f903baed77","src/float/mantissa.rs":"22fe797e3763d7e0d801ad1be4c4017569134096bfe10569d717411dc7bf3a91","src/float/mod.rs":"8a769a10c564cd55b380685b8fb1318e2a4f41a2f42befcbef0defe0e726cd65","src/float/rounding.rs":"90edcdd5aa3b59b9a86995324f32f80d45d6f7dacc911b47f8bbb415426e8d1a","src/float/shift.rs":"8f0c62e3fa5645bee43bb7c9dd3cca20d9b0251f543d3be50b82a41dada28d0e","src/ftoa/api.rs":"4851db7ed9b15ad66643bd9728160211d2996443fa2662dfd548a045d9ea3ea7","src/ftoa/grisu2.rs":"2cf9c3274835a852142895abcf518caa70c7f5333cc3149069eebcfaebed2600","src/ftoa/grisu3.rs":"451489ee3708cb1cf02c6f7a4c3fca2316fd503f692492675f3b7e89f1d2908c","src/ftoa/mod.rs":"9609a66efc47f8ca474a3f993ebb98117cd91c1c1dc27ba5b23440d6b3f1471b","src/ftoa/radix.rs":"90e903a7d66ec8d59a53c432a70fbbedc1869d35b9e07222e0fdba93508fe661","src/ftoa/ryu.rs":"34f914a8cf40bd90c900cdd284ff01f9738ec1da4205f3b60f3fb238ff15103f","src/itoa/api.rs":"30ad0a420f22d67814af7c44199bbff4f48dfac96285570a388a5c5ea87577bd","src/itoa/decimal.rs":"e87c32c48ba788e8814999d23cb532dc057b7025057365bccf606638fa707298","src/itoa/generic.rs":"86ba11b32d981bcfc4037c29b345868530ca73dac3446cc5be4fd59ff876c2ea","src/itoa/mod.rs":"9b7e96338a0003a9d3176b91387c7cc0590c3c4c799b2bc1478e553515bbc9bd","src/itoa/naive.rs":"d27437d8b4669c7a2fa8f3f8869bd6aab5f18a0d618fbf1f3bcbc5f1ae90e4a0","src/lib.rs":"c10c744d9ab0b6bb434e8316d0de318a0bdb4bca47ff1627c7c08379b7b6d9e3","src/util/algorithm.rs":"2a448aac0b0d6c6c21ba356e9704a6673eddf11415038206eed48c1968cedf21","src/util/assert.rs":"668ff920c1724105055f565948c1674f858e74634432ab8d4514b8bf2ed688f1","src/util/bound.rs":"469c49e6a883edf9c0ae012813ceac50c9fc97462aea049f390cf07268071e2d","src/util/cast.rs":"bbd1a2b4f2b7eb3b93a6f462a792b09846d6b1e25232d34371befe0978179558","src/util/config.rs":"5b2c91da5108e7119cc7ea7438ba23f2fce29fb68efe5a06ca3f8609c5855736","src/util/consume.rs":"df25df0020d8a322a894e85bc8a202385e57b93242b9e285e5892b0091b42c50","src/util/div128.rs":"fb6943a8adbfa565075980246bb2a75784dc78f83bb40ff9e178cd066e82f7b0","src/util/error.rs":"19d523338ff6ea82312988dcc8f7bed4c3a96985df071553b3bd5ed228625c1b","src/util/format.rs":"9613c6e34e599928a7825d4917d55e373a3df4230789b2e23d6f91e5e68bbd4b","src/util/index.rs":"eadc46ee24b008f766f9f70d44e3e9b475c38154351cae3eefd49c0218f66400","src/util/iterator.rs":"2d4b6f3e628e9ce91687adb90c6ee8ffd52b5e3bead649ee4a8ef497f34aa8f6","src/util/mask.rs":"299b00fc1ce149c7f8763602345d21cab9d91207ef6519ea1d175248f63f05e0","src/util/mod.rs":"408853a93ee8073b297c94e120297f23739d732076a2aeaefa361e5d7763523a","src/util/num.rs":"82def6e5fee09a69eb7690838702602790b4804268f431a75047d476ee77a80b","src/util/perftools.rs":"3dde4045fe630543474e1b70c7eecf73efb7a8c474bfee7f1b2ef619fafe265e","src/util/pointer_methods.rs":"a083b854936b21e8f54f3510952945979fae47993322500e597cc2e4769ecd79","src/util/pow.rs":"7b15310b98fa562329232e8bd963aef5ebf521e54e249cfc7005d7eacfb1598a","src/util/primitive.rs":"102337c82de940d7b492e63af222eaa7cf477468a344672366784e9553dab801","src/util/range_bounds.rs":"2d069fa04ff31715a02c5e067aa0b390b4692ba245617cc8e4fb58abdb09b0fc","src/util/result.rs":"cc3c8d7a81b2bd4d3d83d27525df9e2954d149ee1ddf543d51b405371493cc9e","src/util/rounding.rs":"be2e3d282ffcb176ee6530d42a67bc57474b3fc9e16de6989ffa43d5997d4670","src/util/sequence.rs":"d3030dac73c74abf420683962513499c448abab2b68c5fb8b0e785cf9f6be0db","src/util/sign.rs":"528ce4d64de019a454cb70bdf104a02712999587a2bc87ff96bda703e3f69cb9","src/util/skip_value.rs":"6e1f5158bfc64cab16ef711e51c79e3c6c8912e19d4b88586779fab9bc9de97f","src/util/slice_index.rs":"4f9e340c0a351f6ca81cea962a18ea8431aeb0fb4c5e959cb940f991f66789b5","src/util/table.rs":"5209ac4585b9dece2efac6d1b50237aaa0fda00c537783e543e1332bf9b1247a","src/util/test.rs":"7726ea1ff853961fe06a4ec382a9870f6b7e5701d4ea8bb477e9d29b8d6bd82e","src/util/traits.rs":"d8f10a673e63738254b0403929e384538182b81098b4b2819081c5d28fb63fbb","src/util/wrapped.rs":"e030e29ee4413bfa9b976dfd7e04143389294950fb60826c78c54d07790d9619"},"package":"f86d66d380c9c5a685aaac7a11818bdfa1f733198dfd9ec09c70b762cd12ad6f"}
Index: patches/patch-rust_vendor_lexical-core_src_atof_algorithm_bhcomp_rs
===================================================================
RCS file: patches/patch-rust_vendor_lexical-core_src_atof_algorithm_bhcomp_rs
diff -N patches/patch-rust_vendor_lexical-core_src_atof_algorithm_bhcomp_rs
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-rust_vendor_lexical-core_src_atof_algorithm_bhcomp_rs 19 Jun 
2021 08:16:48 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+Backport of https://github.com/Alexhuszagh/rust-lexical/pull/56 for rustc 
1.53.0
+
+Index: rust/vendor/lexical-core/src/atof/algorithm/bhcomp.rs
+--- rust/vendor/lexical-core/src/atof/algorithm/bhcomp.rs.orig
++++ rust/vendor/lexical-core/src/atof/algorithm/bhcomp.rs
+@@ -59,7 +59,7 @@ pub(super) fn parse_mantissa<'a, Data>(data: Data, rad
+     let small_powers = Bigint::small_powers(radix);
+     let count = data.mantissa_digits();
+     let bits = count / integral_binary_factor(radix).as_usize();
+-    let bytes = bits / Limb::BITS;
++    let bytes = bits / <Limb as Integer>::BITS;
+ 
+     // Main loop
+     let step = small_powers.len() - 2;
Index: patches/patch-rust_vendor_lexical-core_src_atof_algorithm_bigcomp_rs
===================================================================
RCS file: patches/patch-rust_vendor_lexical-core_src_atof_algorithm_bigcomp_rs
diff -N patches/patch-rust_vendor_lexical-core_src_atof_algorithm_bigcomp_rs
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-rust_vendor_lexical-core_src_atof_algorithm_bigcomp_rs        
19 Jun 2021 08:16:48 -0000
@@ -0,0 +1,24 @@
+$OpenBSD$
+Backport of https://github.com/Alexhuszagh/rust-lexical/pull/56 for rustc 
1.53.0
+
+Index: rust/vendor/lexical-core/src/atof/algorithm/bigcomp.rs
+--- rust/vendor/lexical-core/src/atof/algorithm/bigcomp.rs.orig
++++ rust/vendor/lexical-core/src/atof/algorithm/bigcomp.rs
+@@ -154,7 +154,7 @@ pub(super) fn make_ratio<F: Float>(radix: u32, sci_exp
+     // Scale the denominator so it has the number of bits
+     // in the radix as the number of leading zeros.
+     let wlz = integral_binary_factor(radix).as_usize();
+-    let nlz = den.leading_zeros().wrapping_sub(wlz) & (u32::BITS - 1);
++    let nlz = den.leading_zeros().wrapping_sub(wlz) & (<u32 as Integer>::BITS 
- 1);
+     small::ishl_bits(den.data_mut(), nlz);
+     den.exp -= nlz.as_i32();
+ 
+@@ -172,7 +172,7 @@ pub(super) fn make_ratio<F: Float>(radix: u32, sci_exp
+         // denominator will be normalized.
+         // We need to add one to the quotient,since we're calculating the
+         // ceiling of the divmod.
+-        let (q, r) = shift.ceil_divmod(Limb::BITS);
++        let (q, r) = shift.ceil_divmod(<Limb as Integer>::BITS);
+         // Since we're using a power from the denominator to the
+         // numerator, we to invert r, not add u32::BITS.
+         let r = -r;
Index: patches/patch-rust_vendor_lexical-core_src_atof_algorithm_math_rs
===================================================================
RCS file: patches/patch-rust_vendor_lexical-core_src_atof_algorithm_math_rs
diff -N patches/patch-rust_vendor_lexical-core_src_atof_algorithm_math_rs
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-rust_vendor_lexical-core_src_atof_algorithm_math_rs   19 Jun 
2021 08:16:48 -0000
@@ -0,0 +1,181 @@
+$OpenBSD$
+Backport of https://github.com/Alexhuszagh/rust-lexical/pull/56 for rustc 
1.53.0
+
+Index: rust/vendor/lexical-core/src/atof/algorithm/math.rs
+--- rust/vendor/lexical-core/src/atof/algorithm/math.rs.orig
++++ rust/vendor/lexical-core/src/atof/algorithm/math.rs
+@@ -956,7 +956,7 @@ pub fn mul(x: Limb, y: Limb, carry: Limb)
+     // the following is always true:
+     // `Wide::max_value() - (Narrow::max_value() * Narrow::max_value()) >= 
Narrow::max_value()`
+     let z: Wide = as_wide(x) * as_wide(y) + as_wide(carry);
+-    (as_limb(z), as_limb(z >> Limb::BITS))
++    (as_limb(z), as_limb(z >> <Limb as Integer>::BITS))
+ }}
+ 
+ /// Multiply two small integers (with carry) (and return if overflow happens).
+@@ -979,7 +979,7 @@ pub fn div(x: Limb, y: Limb, rem: Limb)
+     -> (Limb, Limb)
+ {
+     // Cannot overflow, as long as wide is 2x as wide.
+-    let x = as_wide(x) | (as_wide(rem) << Limb::BITS);
++    let x = as_wide(x) | (as_wide(rem) << <Limb as Integer>::BITS);
+     let y = as_wide(y);
+     (as_limb(x / y), as_limb(x % y))
+ }}
+@@ -1046,7 +1046,7 @@ perftools_inline!{
+ pub fn trailing_zeros(x: &[Limb]) -> usize {
+     // Get the index of the last non-zero value
+     let index = trailing_zero_limbs(x);
+-    let mut count = index.saturating_mul(Limb::BITS);
++    let mut count = index.saturating_mul(<Limb as Integer>::BITS);
+     if let Some(value) = x.get(index) {
+         count = count.saturating_add(value.trailing_zeros().as_usize());
+     }
+@@ -1061,7 +1061,7 @@ pub fn bit_length(x: &[Limb]) -> usize {
+     // Avoid overflowing, calculate via total number of bits
+     // minus leading zero bits.
+     let nlz = leading_zeros(x);
+-    Limb::BITS.checked_mul(x.len())
++    <Limb as Integer>::BITS.checked_mul(x.len())
+         .map(|v| v - nlz)
+         .unwrap_or(usize::max_value())
+ }}
+@@ -1087,7 +1087,7 @@ pub fn ishr_bits<T>(x: &mut T, n: usize)
+     where T: CloneableVecLike<Limb>
+ {
+     // Need to shift by the number of `bits % Limb::BITS`.
+-    let bits = Limb::BITS;
++    let bits = <Limb as Integer>::BITS;
+     debug_assert!(n < bits && n != 0);
+ 
+     // Internally, for each item, we shift left by n, and add the previous
+@@ -1134,7 +1134,7 @@ pub fn ishr<T>(x: &mut T, n: usize)
+     -> bool
+     where T: CloneableVecLike<Limb>
+ {
+-    let bits = Limb::BITS;
++    let bits = <Limb as Integer>::BITS;
+     // Need to pad with zeros for the number of `bits / Limb::BITS`,
+     // and shift-left with carry for `bits % Limb::BITS`.
+     let rem = n % bits;
+@@ -1193,7 +1193,7 @@ pub fn ishl_bits<T>(x: &mut T, n: usize)
+     where T: CloneableVecLike<Limb>
+ {
+     // Need to shift by the number of `bits % Limb::BITS)`.
+-    let bits = Limb::BITS;
++    let bits = <Limb as Integer>::BITS;
+     debug_assert!(n < bits);
+     if n.is_zero() {
+         return;
+@@ -1253,7 +1253,7 @@ perftools_inline!{
+ pub fn ishl<T>(x: &mut T, n: usize)
+     where T: CloneableVecLike<Limb>
+ {
+-    let bits = Limb::BITS;
++    let bits = <Limb as Integer>::BITS;
+     // Need to pad with zeros for the number of `bits / Limb::BITS`,
+     // and shift-left with carry for `bits % Limb::BITS`.
+     let rem = n % bits;
+@@ -1912,7 +1912,7 @@ pub fn mul<T>(x: &[Limb], y: &[Limb])
+ // DIVISION
+ 
+ /// Constants for algorithm D.
+-const ALGORITHM_D_B: Wide = 1 << Limb::BITS;
++const ALGORITHM_D_B: Wide = 1 << <Limb as Integer>::BITS;
+ const ALGORITHM_D_M: Wide = ALGORITHM_D_B - 1;
+ 
+ /// Calculate qhat (an estimate for the quotient).
+@@ -1932,7 +1932,7 @@ fn calculate_qhat(x: &[Limb], y: &[Limb], j: usize)
+     //  rhat = (x[j+n]*B + x[j+n-1]) - qhat*y[n-1];
+     let x_jn = as_wide(x[j+n]);
+     let x_jn1 = as_wide(x[j+n-1]);
+-    let num = (x_jn << Limb::BITS) + x_jn1;
++    let num = (x_jn << <Limb as Integer>::BITS) + x_jn1;
+     let den = as_wide(y[n-1]);
+     let mut qhat = num / den;
+     let mut rhat = num - qhat * den;
+@@ -1949,7 +1949,7 @@ fn calculate_qhat(x: &[Limb], y: &[Limb], j: usize)
+     let y_n2 = as_wide(y[n-2]);
+     let y_n1 = as_wide(y[n-1]);
+     // This only happens when the leading bit of qhat is set.
+-    while qhat >= ALGORITHM_D_B || qhat * y_n2 > (rhat << Limb::BITS) + x_jn2 
{
++    while qhat >= ALGORITHM_D_B || qhat * y_n2 > (rhat << <Limb as 
Integer>::BITS) + x_jn2 {
+         qhat -= 1;
+         rhat += y_n1;
+         if rhat >= ALGORITHM_D_B {
+@@ -1989,7 +1989,7 @@ fn multiply_and_subtract<T>(x: &mut T, y: &T, qhat: Wi
+         let p = qhat * y_i;
+         t = x_ij.wrapping_sub(k).wrapping_sub(as_signed_wide(p & 
ALGORITHM_D_M));
+         x[i+j] = as_limb(t);
+-        k = as_signed_wide(p >> Limb::BITS) - (t >> Limb::BITS);
++        k = as_signed_wide(p >> <Limb as Integer>::BITS) - (t >> <Limb as 
Integer>::BITS);
+     }
+     t = as_signed_wide(x[j+n]) - k;
+     x[j+n] = as_limb(t);
+@@ -2045,7 +2045,7 @@ fn add_back<T>(x: &mut T, y: &T, mut t: SignedWide, j:
+         for i in 0..n {
+             t = as_signed_wide(as_wide(x[i+j]) + as_wide(y[i])) + k;
+             x[i+j] = as_limb(t);
+-            k = t >> Limb::BITS;
++            k = t >> <Limb as Integer>::BITS;
+         }
+         let x_jn = as_signed_wide(x[j+n]) + k;
+         x[j+n] = as_limb(x_jn);
+@@ -2068,7 +2068,7 @@ fn calculate_remainder<T>(x: &[Limb], y: &[Limb], s: u
+     let n = y.len();
+     let mut r = T::default();
+     r.reserve_exact(n);
+-    let rs = Limb::BITS - s;
++    let rs = <Limb as Integer>::BITS - s;
+     for i in 0..n-1 {
+         let xi = as_wide(x[i]) >> s;
+         let xi1 = as_wide(x[i+1]) << rs;
+@@ -2205,9 +2205,9 @@ pub fn quorem<T>(x: &mut T, y: &T)
+         let mut carry: Wide = 0;
+         for j in 0..m {
+             let p = as_wide(y[j]) * as_wide(q) + carry;
+-            carry = p >> Limb::BITS;
++            carry = p >> <Limb as Integer>::BITS;
+             let t = as_wide(x[j]).wrapping_sub(p & mask).wrapping_sub(borrow);
+-            borrow = (t >> Limb::BITS) & 1;
++            borrow = (t >> <Limb as Integer>::BITS) & 1;
+             x[j] = as_limb(t);
+         }
+         small::normalize(x);
+@@ -2220,9 +2220,9 @@ pub fn quorem<T>(x: &mut T, y: &T)
+         let mut carry: Wide = 0;
+         for j in 0..m {
+             let p = as_wide(y[j]) + carry;
+-            carry = p >> Limb::BITS;
++            carry = p >> <Limb as Integer>::BITS;
+             let t = as_wide(x[j]).wrapping_sub(p & mask).wrapping_sub(borrow);
+-            borrow = (t >> Limb::BITS) & 1;
++            borrow = (t >> <Limb as Integer>::BITS) & 1;
+             x[j] = as_limb(t);
+         }
+         small::normalize(x);
+@@ -3137,18 +3137,18 @@ mod tests {
+     fn leading_zeros_test() {
+         assert_eq!(Bigint::new().leading_zeros(), 0);
+ 
+-        assert_eq!(Bigint::from_u16(0xFF).leading_zeros(), Limb::BITS-8);
+-        assert_eq!(Bigint::from_u32(0xFF).leading_zeros(), Limb::BITS-8);
++        assert_eq!(Bigint::from_u16(0xFF).leading_zeros(), <Limb as 
Integer>::BITS-8);
++        assert_eq!(Bigint::from_u32(0xFF).leading_zeros(), <Limb as 
Integer>::BITS-8);
+         assert_eq!(Bigint::from_u64(0xFF00000000).leading_zeros(), 24);
+         
assert_eq!(Bigint::from_u128(0xFF000000000000000000000000).leading_zeros(), 24);
+ 
+-        assert_eq!(Bigint::from_u16(0xF).leading_zeros(), Limb::BITS-4);
+-        assert_eq!(Bigint::from_u32(0xF).leading_zeros(), Limb::BITS-4);
++        assert_eq!(Bigint::from_u16(0xF).leading_zeros(), <Limb as 
Integer>::BITS-4);
++        assert_eq!(Bigint::from_u32(0xF).leading_zeros(), <Limb as 
Integer>::BITS-4);
+         assert_eq!(Bigint::from_u64(0xF00000000).leading_zeros(), 28);
+         
assert_eq!(Bigint::from_u128(0xF000000000000000000000000).leading_zeros(), 28);
+ 
+-        assert_eq!(Bigint::from_u16(0xF0).leading_zeros(), Limb::BITS-8);
+-        assert_eq!(Bigint::from_u32(0xF0).leading_zeros(), Limb::BITS-8);
++        assert_eq!(Bigint::from_u16(0xF0).leading_zeros(), <Limb as 
Integer>::BITS-8);
++        assert_eq!(Bigint::from_u32(0xF0).leading_zeros(), <Limb as 
Integer>::BITS-8);
+         assert_eq!(Bigint::from_u64(0xF000000000).leading_zeros(), 24);
+         
assert_eq!(Bigint::from_u128(0xF0000000000000000000000000).leading_zeros(), 24);
+     }

Reply via email to