Skip to content

Fix incorrect vc optimization of FourQ for release mode.#517

Merged
philippwerner merged 4 commits into
developfrom
bugfix/2025-08-18-fix-incorrect-VC-optimization
Aug 26, 2025
Merged

Fix incorrect vc optimization of FourQ for release mode.#517
philippwerner merged 4 commits into
developfrom
bugfix/2025-08-18-fix-incorrect-VC-optimization

Conversation

@cyber-pc

@cyber-pc cyber-pc commented Aug 25, 2025

Copy link
Copy Markdown
Collaborator

This PR includes the following fixes and improvements:

  • Fix incorrect public key generation: In release mode, MSVC applies an unexpected optimization that changes the order of operations, causing incorrect results. Debug mode remains unaffected.
  • Initialize AVX-512 constants for FourQ in ContractTest.
  • Add unit tests for FourQ operations to ensure correctness.

Notes

  • The public key generation issue only reproduces on my echo node.
  • The FourQ unit tests fail on both my machine and @Franziska-Mueller’s machine without changed of this PR.

Update:

  • This PR only need for VS2022 version 17.14, for older version (like 17.13) it is not needed.

@philippwerner philippwerner left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @cyber-pc. Very good finding and fix. 👍

I went through the code and it looks all correct to me. Assuming the tests run without error in both the old and the new version of MSVC (I haven't tested that), this PR is ready for merging IMO.

@cyber-pc

Copy link
Copy Markdown
Collaborator Author

This PR is tested and good to be merged.

@philippwerner philippwerner merged commit 82d37bf into develop Aug 26, 2025
1 check passed
@philippwerner philippwerner deleted the bugfix/2025-08-18-fix-incorrect-VC-optimization branch August 26, 2025 07:06
hackerby888 added a commit to hackerby888/qubic-core-lite that referenced this pull request Aug 27, 2025
* Verify SC files automatically (qubic#506)

* compliance changes for CCF SC

* compliance changes for GQMPROP SC

* compliance changes for MSVAULT SC

* compliance changes for QEARN SC

* compliance changes for QBAY SC

* compliance changes for QUOTTERY SC

* compliance changes for QUTIL SC

* compliance changes for QX SC

* Qx: add div type explicitly to fix compile errors in test project

* compliance changes for TestExampleD SC

* add contract verify workflow

* Update contract-verify.yml

* update branch name in contract-verify.yml

* find all contract files to verify

* fix typo in contract-verify.yml

* print full path to file list

* use list of contract files as input for verify action

* only trigger contract-verify.yml when contract files or workflow file changed

* use published action in contract-verify.yml

* Revert "use published action in contract-verify.yml"

This reverts commit 6fbd535.

* mention contract verification tool in contracts.md

* make QPI div and mod constexpr

* update contract verify tool text in contracts.md

* add STATIC_ASSERT macro to enable use of static asserts in SC files

* remove workflow trigger on feature branch before merging into develop

* contributing doc: add paragraph about curly braces style

* update contract guidelines (qubic#512)

* remove unused defines that clash with QPI definitions

* fix: fixed gtest bug in qearn (qubic#516)

* fix: fixed gtest bug in qearn

* fix: removed unnecessary local variables in BEGIN_EPOCH procedure

* update contract verify tool to v0.3.3-beta

* Fix incorrect vc optimization of FourQ for release mode. (qubic#517)

* Add unittest for fourq.

* Fix MSVC misoptimization causing incorrect operation ordering.

* Unittest: Ensure FourQ is initialized if signature verification is used in contract testing.

* Add comment for optimization bug of MSVC.

* networking: support private IPs (qubic#513)

* nw: support private IPs

* remove redundant code

* fix warning

* add checking boundary when accessing publicPeers

* Fix bug relate to invalid mining seed of qpi mining. (qubic#518)

* update params for epoch 176 / v1.257.0

* Increase target tick duration

The delay function did not work due to bugs. Now the delay function
works and tick time should decrease.

---------

Co-authored-by: Franziska Mueller <11660876+Franziska-Mueller@users.noreply.github.com>
Co-authored-by: TakaYuPP <yutotaka24@gmail.com>
Co-authored-by: cyber-pc <165458555+cyber-pc@users.noreply.github.com>
Co-authored-by: dkat <39078779+krypdkat@users.noreply.github.com>
Co-authored-by: fnordspace <qubic@fnord.space>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants