Only change is a performance improvement. See https://github.com/bitcoin-core/univalue/pull/21#issue-333858474 and https://github.com/bitcoin-core/univalue/pull/15#issue-186748173
Update univalue subtree #17324
pull MarcoFalke wants to merge 2 commits into bitcoin:master from MarcoFalke:1910-updateUnivalue changing 3 files +6 −18-
MarcoFalke commented at 8:26 PM on October 30, 2019: member
-
fa0b3da36c
Squashed 'src/univalue/' changes from 7890db99d6..5a58a46671
5a58a46671 Merge #21: Remove hand-coded UniValue destructor. b4cdfc4f47 Remove hand-coded UniValue destructor. 7fba60b5ad Merge #17: [docs] Update readme 4577454e7e Merge #13: Fix typo ac7e73cda8 [docs] Update readme 4a4964729b Fix typo git-subtree-dir: src/univalue git-subtree-split: 5a58a46671d3c1711e93d2fc7961085515c8c7a7
-
Update univalue subtree fa439e88af
-
MarcoFalke commented at 8:27 PM on October 30, 2019: member
The last update was more than a year ago: #14164#issue-213911287
- MarcoFalke added the label Upstream on Oct 30, 2019
- MarcoFalke added the label Needs gitian build on Oct 30, 2019
- MarcoFalke added the label Build system on Oct 30, 2019
- MarcoFalke removed the label Build system on Oct 30, 2019
- MarcoFalke added the label RPC/REST/ZMQ on Oct 30, 2019
-
laanwj commented at 8:25 AM on October 31, 2019: member
There have also been some changes last year in https://github.com/jgarzik/univalue/commits/master, do we want to include them?
-
jnewbery commented at 1:34 PM on October 31, 2019: member
ACK fa439e88af944082875e1fdb1cd8bb5a74b88b56
-
MarcoFalke commented at 2:20 PM on October 31, 2019: member
There have also been some changes last year in https://github.com/jgarzik/univalue/commits/master, do we want to include them?
We check the return value of
Univalue::readeverywhere, so I'd rather not add some clumsygoto. I'd prefer a nodiscard attribute. -
jgarzik commented at 2:39 PM on October 31, 2019: contributor
There have also been some changes last year in https://github.com/jgarzik/univalue/commits/master, do we want to include them?
We check the return value of
Univalue::readeverywhere, so I'd rather not add some clumsygoto. I'd prefer a nodiscard attribute.Can you specify which commit or line of code this refers to? Bitcoin Core is a major user of univalue, and we want to avoid a situation where Bitcoin's univalue diverges from the Debian/Ubuntu univalue.
-
DrahtBot commented at 6:26 PM on October 31, 2019: member
Bench

Bench config
Bitcoinperf commit e671f5d5dfd49724af3b234ebfd1076345822e92 OS: Ubuntu Eoan YML:
--- # Cache a built bitcoin src directory and restore it from the cache on # subsequent runs. cache_build: false # If true, the first git clone will be cached and copied from as necessary. cache_git: true # Set to false to make cache dropping optional and bypass various safety checks. safety_checks: false compilers: - clang - gcc benches: build: num_jobs: 9 microbench: filter: '.*Json.*' to_bench: - gitref: 'fa439e88af944082875e1fdb1cd8bb5a74b88b56' - gitref: 'master' -
DrahtBot commented at 11:26 PM on October 31, 2019: member
<!--a722867cd34abeea1fadc8d60700f111-->
Gitian builds
File commit 08e29473126d5cc4df6d2b3f368c6f6f641c0bd8<br>(master) commit b6dee2867e03b1b6d5c3a5524bdaf0d383e23cee<br>(master and this pull) bitcoin-0.19.99-aarch64-linux-gnu-debug.tar.gz 00b1465b4199e5a9...bd87017df20f4796...bitcoin-0.19.99-aarch64-linux-gnu.tar.gz 665c2633693785b7...3d2d9486683ca03d...bitcoin-0.19.99-arm-linux-gnueabihf-debug.tar.gz 0be5c1b77ba6a66b...78e643a2be2a084d...bitcoin-0.19.99-arm-linux-gnueabihf.tar.gz 370d8b18ae0f6026...5d9427fc837232de...bitcoin-0.19.99-i686-pc-linux-gnu-debug.tar.gz 60c9df005c733991...8626c48fc8ed679b...bitcoin-0.19.99-i686-pc-linux-gnu.tar.gz b05dc039b6b4447a...3f6a0f4875b7b3db...bitcoin-0.19.99-osx-unsigned.dmg 404f1195d6b57945...17fcc2a92d408664...bitcoin-0.19.99-osx64.tar.gz 2ce2ee4b9c3d4164...a464d3f85207c551...bitcoin-0.19.99-riscv64-linux-gnu-debug.tar.gz b7050d25c59992e4...95513a7ca0a845fa...bitcoin-0.19.99-riscv64-linux-gnu.tar.gz d172699be8e0c0d1...f24a9012c703589b...bitcoin-0.19.99-win64-debug.zip 1f3d5167443ff984...cb4d1a849bcb3443...bitcoin-0.19.99-win64-setup-unsigned.exe 44fb74650e3d85d4...580add514d677004...bitcoin-0.19.99-win64.zip 38942c65e9ad0810...d5038709bc1dc49f...bitcoin-0.19.99-x86_64-linux-gnu-debug.tar.gz 704eee6bfa940e63...27e27bfc9f3b5e4a...bitcoin-0.19.99-x86_64-linux-gnu.tar.gz dfca3e31b40e1fe0...d05b65b0a3e7caf6...bitcoin-0.19.99.tar.gz cf0fc2fd3d592a12...aba4774e53fb08a4...bitcoin-core-linux-0.20-res.yml 20249e5e68aa0c1b...b097a933aa2c962b...bitcoin-core-osx-0.20-res.yml 3cd30f76c232b8ac...55e589689bc5588d...bitcoin-core-win-0.20-res.yml a4349a184bc08402...2da53c846f3b4e08...linux-build.log 0183d87a737bfd87...f27b3c485e3c6fa7...osx-build.log 0f01eb2509cb12c3...efcaadd0ca459548...win-build.log ea9197760a17c9d2...339ef1a3b861d972...bitcoin-core-linux-0.20-res.yml.diff b3b3a5c5a1c425fa...bitcoin-core-osx-0.20-res.yml.diff 2ae5cf9ab2e0db5e...bitcoin-core-win-0.20-res.yml.diff 122bfab20dff08b0...linux-build.log.diff fbff79b3de64ca4d...osx-build.log.diff 54b98f5ecad88339...win-build.log.diff 153ee20f65a44863... - DrahtBot removed the label Needs gitian build on Oct 31, 2019
-
laanwj commented at 10:21 AM on November 1, 2019: member
We check the return value of Univalue::read everywhere, so I'd rather not add some clumsy goto. I'd prefer a nodiscard attribute.
Ok. Thanks for the explanation It's useful to document why we're not taking certain changes from upstream.
ACK fa439e88af944082875e1fdb1cd8bb5a74b88b56
-
jgarzik commented at 11:25 AM on November 1, 2019: contributor
We check the return value of Univalue::read everywhere, so I'd rather not add some clumsy goto. I'd prefer a nodiscard attribute.
Ok. Thanks for the explanation It's useful to document why we're not taking certain changes from upstream.
It would be better for the trees not to diverge. Will look at removing "clumsy goto" related code, and work to eliminate this code-divergence issue.
- MarcoFalke referenced this in commit ddd46293bd on Nov 1, 2019
- MarcoFalke merged this on Nov 1, 2019
- MarcoFalke closed this on Nov 1, 2019
- sidhujag referenced this in commit 7e60df339f on Nov 1, 2019
-
luke-jr commented at 6:22 PM on November 5, 2019: member
The so-called "clumsy goto" in this case looks like pretty reasonable use of goto...
- MarcoFalke deleted the branch on Nov 5, 2019
-
MarcoFalke commented at 6:26 PM on November 5, 2019: member
We don't use
gotoanywhere else in the code base and this case can be replaced with a one line helper function that clears the Univalue and returns false. -
laanwj commented at 9:20 PM on November 5, 2019: member
Also, while it has definite uses in C, the use of
gotois generally unnecessary in modern C++. -
MarcoFalke commented at 11:03 PM on November 12, 2019: member
Speedup for gcc: https://codespeed.bitcoinperf.com/timeline/?exe=3%2C4%2C2%2C1%2C5&base=1%2B23&ben=micro.gcc.RpcMempool&env=1&revs=50&equid=off&quarts=on&extr=on and: https://codespeed.bitcoinperf.com/timeline/?exe=3%2C4%2C2%2C1%2C5&base=1%2B23&ben=micro.gcc.BlockToJsonVerbose&env=1&revs=50&equid=off&quarts=on&extr=on
No speedup for clang: https://codespeed.bitcoinperf.com/timeline/?exe=3%2C4%2C2%2C1%2C5&base=1%2B23&ben=micro.clang.RpcMempool&env=1&revs=50&equid=off&quarts=on&extr=on and: https://codespeed.bitcoinperf.com/timeline/?exe=3%2C4%2C2%2C1%2C5&base=1%2B23&ben=micro.clang.BlockToJsonVerbose&env=1&revs=50&equid=off&quarts=on&extr=on
- PastaPastaPasta referenced this in commit c13d1d2f16 on Mar 14, 2020
- PastaPastaPasta referenced this in commit a4dfd54ecf on Mar 14, 2020
- sidhujag referenced this in commit 6f2beed546 on Nov 10, 2020
- ckti referenced this in commit 0e2a775c66 on Mar 28, 2021
- MarcoFalke locked this on Dec 16, 2021