From d586af007403c678185e2dbcff23f0f3017341f6 Mon Sep 17 00:00:00 2001 From: Robert O'Callahan Date: Tue, 7 Apr 2026 23:21:17 +0000 Subject: [PATCH 1/6] Fix data race in ParallelDispatchThreadPool destruction --- kernel/threading.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel/threading.h b/kernel/threading.h index a041def2c..1aded4931 100644 --- a/kernel/threading.h +++ b/kernel/threading.h @@ -232,7 +232,6 @@ private: } void run_worker(int thread_num); - std::unique_ptr thread_pool; std::function *current_work = nullptr; // Keeps a correct count even when threads are exiting. int num_worker_threads_; @@ -291,6 +290,10 @@ private: done_workers.store(0, std::memory_order_relaxed); } #endif + // Ensure `thread_pool` is destroyed before any other members, + // forcing all threads to be joined before destroying the + // members (e.g. workers_to_main_signal_mutex) they might be using. + std::unique_ptr thread_pool; }; template From 6d2c445aebd37261d0e33ed4d90d09fd1a7bf618 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Wed, 8 Apr 2026 16:54:50 +0200 Subject: [PATCH 2/6] Release version 0.64 --- CHANGELOG | 8 +++++++- Makefile | 4 ++-- docs/source/conf.py | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 4b76986f3..7c5465dd2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,16 +2,22 @@ List of major changes and improvements between releases ======================================================= -Yosys 0.63 .. Yosys 0.64-dev +Yosys 0.63 .. Yosys 0.64 -------------------------- + * New commands and options + - Added "synth_analogdevices" pass to support synthesis + for Analog Devices FPGAs. * Various - Removed rarely-used options from ABC/ABC9. + - Removed "-S" option from "abc" pass. + - Removed "-fast" option from "abc9" and "abc9_exe". - Calls to "abc -g AND -fast" to map logic to AND-Inverter Graph form should be replaced with "aigmap". - The above change was made to SBY, so we recommend updating it. + - Added hardware latch support for Gowin FPGAs. Yosys 0.62 .. Yosys 0.63 -------------------------- diff --git a/Makefile b/Makefile index 33ff74fa4..38093681f 100644 --- a/Makefile +++ b/Makefile @@ -161,7 +161,7 @@ ifeq ($(OS), Haiku) CXXFLAGS += -D_DEFAULT_SOURCE endif -YOSYS_VER := 0.63 +YOSYS_VER := 0.64 ifneq (, $(shell command -v git 2>/dev/null)) ifneq (, $(shell git rev-parse --git-dir 2>/dev/null)) @@ -170,7 +170,7 @@ ifneq (, $(shell git rev-parse --git-dir 2>/dev/null)) YOSYS_VER := $(YOSYS_VER)+$(GIT_COMMIT_COUNT) endif else - YOSYS_VER := $(YOSYS_VER)+post +# YOSYS_VER := $(YOSYS_VER)+post endif endif diff --git a/docs/source/conf.py b/docs/source/conf.py index 458040db0..9520948cf 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -6,7 +6,7 @@ import os project = 'YosysHQ Yosys' author = 'YosysHQ GmbH' copyright ='2026 YosysHQ GmbH' -yosys_ver = "0.63" +yosys_ver = "0.64" # select HTML theme html_theme = 'furo-ys' From 74070911cdeb6093121a1576afa943085893a9ea Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Wed, 8 Apr 2026 18:11:46 +0200 Subject: [PATCH 3/6] Fix repository check in yml --- .github/workflows/prepare-docs.yml | 2 +- .github/workflows/wheels.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prepare-docs.yml b/.github/workflows/prepare-docs.yml index e2ebe9e69..68d9c92fd 100644 --- a/.github/workflows/prepare-docs.yml +++ b/.github/workflows/prepare-docs.yml @@ -90,7 +90,7 @@ jobs: make -C docs html -j$procs TARGETS= EXTRA_TARGETS= - name: Trigger RTDs build - if: ${{ needs.check_docs_rebuild.outputs.docs_export == 'true' && github.repository == 'YosysHQ/Yosys' }} + if: ${{ needs.check_docs_rebuild.outputs.docs_export == 'true' && github.repository == 'YosysHQ/yosys' }} uses: dfm/rtds-action@v1.1.0 with: webhook_url: ${{ secrets.RTDS_WEBHOOK_URL }} diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index aef87db28..8139b5af5 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -114,7 +114,7 @@ jobs: path: ./wheelhouse/*.whl upload_wheels: name: Upload Wheels - if: (github.repository == 'YosysHQ/Yosys') && (github.event_name == 'workflow_dispatch') + if: (github.repository == 'YosysHQ/yosys') && (github.event_name == 'workflow_dispatch') runs-on: ubuntu-latest # Specifying a GitHub environment is optional, but strongly encouraged environment: pypi From cb56f0197129a85bd3702952dfc96c8dab52dc30 Mon Sep 17 00:00:00 2001 From: Krystine Sherwin <93062060+KrystalDelusion@users.noreply.github.com> Date: Thu, 9 Apr 2026 10:17:58 +1200 Subject: [PATCH 4/6] prepare-docs.yml: Don't skip pushes --- .github/workflows/prepare-docs.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/prepare-docs.yml b/.github/workflows/prepare-docs.yml index 68d9c92fd..06c465c44 100644 --- a/.github/workflows/prepare-docs.yml +++ b/.github/workflows/prepare-docs.yml @@ -18,14 +18,15 @@ jobs: docs_export: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/docs-preview') || startsWith(github.ref, 'refs/tags/') }} steps: - id: skip_check - if: ${{ github.event_name != 'merge_group' }} uses: fkirc/skip-duplicate-actions@v5 with: paths_ignore: '["**/README.md"]' # don't cancel in case we're updating docs cancel_others: 'false' - # only run on push *or* pull_request, not both - concurrent_skipping: ${{ env.docs_export && 'never' || 'same_content_newer'}} + # push filtering means we only want to skip duplicates for PRs + do_not_skip: '["workflow_dispatch", "merge_group", "push"]' + concurrent_skipping: 'same_content_newer' + - id: docs_var run: echo "docs_export=${docs_export}" >> $GITHUB_OUTPUT From 7c714b8acce8643ba17844a399f0a6da8495308d Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Wed, 8 Apr 2026 18:11:46 +0200 Subject: [PATCH 5/6] Fix repository check in yml --- .github/workflows/prepare-docs.yml | 2 +- .github/workflows/wheels.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prepare-docs.yml b/.github/workflows/prepare-docs.yml index e2ebe9e69..68d9c92fd 100644 --- a/.github/workflows/prepare-docs.yml +++ b/.github/workflows/prepare-docs.yml @@ -90,7 +90,7 @@ jobs: make -C docs html -j$procs TARGETS= EXTRA_TARGETS= - name: Trigger RTDs build - if: ${{ needs.check_docs_rebuild.outputs.docs_export == 'true' && github.repository == 'YosysHQ/Yosys' }} + if: ${{ needs.check_docs_rebuild.outputs.docs_export == 'true' && github.repository == 'YosysHQ/yosys' }} uses: dfm/rtds-action@v1.1.0 with: webhook_url: ${{ secrets.RTDS_WEBHOOK_URL }} diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index aef87db28..8139b5af5 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -114,7 +114,7 @@ jobs: path: ./wheelhouse/*.whl upload_wheels: name: Upload Wheels - if: (github.repository == 'YosysHQ/Yosys') && (github.event_name == 'workflow_dispatch') + if: (github.repository == 'YosysHQ/yosys') && (github.event_name == 'workflow_dispatch') runs-on: ubuntu-latest # Specifying a GitHub environment is optional, but strongly encouraged environment: pypi From dbc6911f4051ab8aa4de195ea2a2f7c404d12930 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Thu, 9 Apr 2026 07:36:58 +0200 Subject: [PATCH 6/6] Next dev cycle --- CHANGELOG | 3 +++ Makefile | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 7c5465dd2..94e62df4b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,9 @@ List of major changes and improvements between releases ======================================================= +Yosys 0.64 .. Yosys 0.65-dev +-------------------------- + Yosys 0.63 .. Yosys 0.64 -------------------------- * New commands and options diff --git a/Makefile b/Makefile index 38093681f..fc5172cc0 100644 --- a/Makefile +++ b/Makefile @@ -170,7 +170,7 @@ ifneq (, $(shell git rev-parse --git-dir 2>/dev/null)) YOSYS_VER := $(YOSYS_VER)+$(GIT_COMMIT_COUNT) endif else -# YOSYS_VER := $(YOSYS_VER)+post + YOSYS_VER := $(YOSYS_VER)+post endif endif