Comments (5)
Adding to the current situation is that VERIFY_CHECK is not side-effect safe when built with --enable-coverage
which lead to bugs in coverage mode in the past. In fact, there are again unused variable warnings right now when compiling master with --enable-coverage
. So an additional advantage of your suggestion is that VERIFY_CHECK in coverage mode isn't special anymore which would hopefully reduce maintenance of that mode.
from secp256k1.
Agree, I think we should make VERIFY_CHECK
compile to nothing in non-VERIFY mode. It was worthwhile to aim for side-effect freeness, but the way to codebase has evolved I believe makes the benefit not worth the cost. As pointed out in #904, the benefit is effectively restricted already to the simplest cases, where arguably it doesn't matter much anyway.
I wouldn't actually rename the verify_
functions to be upper case, but instead leave them as lowercase functions, but with an uppercase macro around them (maybe one that also compiles to nothing in non-VERIFY mode, so that not even a dummy verify_
function is needed in that case). This is just for style reasons - I think it's good that a reader can guess what is a function and what is a macro just on the name.
from secp256k1.
I wouldn't actually rename the
verify_
functions to be upper case, but instead leave them as lowercase functions, but with an uppercase macro around them [...]
Sounds good to me.
@theStack Are you interested to look into this by any chance?
from secp256k1.
I wouldn't actually rename the
verify_
functions to be upper case, but instead leave them as lowercase functions, but with an uppercase macro around them [...]Sounds good to me.
@theStack Are you interested to look into this by any chance?
Yes, planning to tackle this within the next days.
from secp256k1.
This is done, except for the potential renaming to "assert", which is now tracked in #1449.
from secp256k1.
Related Issues (20)
- ci: Add a "compile the headers" job
- ci: Add a constant-time test job that uses MSan HOT 2
- ci: Future of CI after Cirrus pricing change HOT 37
- mingw-w64: "visibility attribute not supported in this configuration; ignored" under `-flto` HOT 5
- Silent Payments (BIP352) module -- discussion about scope and interface HOT 2
- Compile with: --with-ecmult-window=24 --with-ecmult-gen-precision=8
- ARM assembly: "missing .note.GNU-stack section implies executable stack" with recent ld
- ci: Random Valgrind MacOS build failures HOT 3
- Error: undefined symbol: secp256k1_ecdsa_recoverable_signature_parse_compact HOT 1
- Prefix all macros with SECP256K1_
- Add MuSig2 module HOT 6
- secp256k1_fe_set_b32_mod doesn't actually reduce anything HOT 4
- No implementation found HOT 2
- Add bitcoin as a topic to this repository HOT 1
- fe_sqr tests could be improved HOT 5
- docs: "pointer to context object" vs "context object"
- tests: Tidy the util functions HOT 2
- Rename.md
- Compiling for Windows 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from secp256k1.