Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
c1ed182
Fix &synch2 crash with creating wrong mapping
phyzhenli Jan 6, 2026
62d05a8
Enable ccache in Makefile.
alanminko Feb 18, 2026
3dd086f
New command &divide, etc.
alanminko Feb 18, 2026
6c8b2cf
Compiler problem.
alanminko Feb 18, 2026
c7ea67b
Update command "history".
alanminko Feb 18, 2026
71c24a4
Fix backward required-time propagation through boxes
jon-greene Feb 19, 2026
8a856ce
Merge pull request #480 from jon-greene/fix-tim-man-get-co-required
alanminko Feb 20, 2026
771e703
Fix two bugs causing problems with &trace and boxes.
jon-greene Feb 20, 2026
2c6089f
Merge pull request #481 from jon-greene/fix-req-time-with-boxes
alanminko Feb 21, 2026
3b5036a
Fix required time handling for unconstrained POs, infinity arithmetic…
jon-greene Feb 22, 2026
0433d6e
Merge pull request #482 from jon-greene/fix-req-time-infinity
alanminko Feb 22, 2026
ec8b45a
Fix(Windows): Update to windows-2025
wjrforcyber Feb 23, 2026
e90839f
Merge pull request #484 from wjrforcyber/fix_windows_build
alanminko Feb 23, 2026
ce559b1
Refactor(Workflow): Windows build refactor
wjrforcyber Feb 24, 2026
2b0e38c
Merge branch 'berkeley-abc:master' into fix_windows_build
wjrforcyber Feb 24, 2026
ea6be8a
Merge pull request #486 from wjrforcyber/fix_windows_build
alanminko Feb 24, 2026
ef54c1d
Updating interface of &cec.
alanminko Feb 24, 2026
d5c1f2c
Adding callbacks to "scorr" and "&scorr".
alanminko Feb 26, 2026
c1937d1
Improvements to &sprove.
alanminko Feb 26, 2026
4e5c5e6
Compiler problem.
alanminko Feb 26, 2026
f3a17d3
Fixing assertion failure introduced by a recent PR.
alanminko Feb 27, 2026
ee40e40
Have the buffer grow with a 2x factor to avoid O(n^2) work when readi…
calewis Mar 2, 2026
d10a0d4
Merge pull request #488 from calewis/grow_faster
alanminko Mar 7, 2026
7553ef9
Merge pull request #471 from phyzhenli/master
alanminko Mar 7, 2026
c92cfab
Adding new line at the end of AIGER files.
alanminko Mar 8, 2026
ba69519
Adding command for calling external solvers.
alanminko Mar 8, 2026
a745d5e
Adding profiling to %ufar.
alanminko Mar 8, 2026
7ae0f49
Adding gla to sprove.
alanminko Mar 8, 2026
fa5029d
Updates to &if mapper.
alanminko Mar 11, 2026
cf5aef3
Fix compiler problems.
alanminko Mar 11, 2026
ca0fc3e
Adding support for Verilog dumping in "lutexact'.
alanminko Mar 20, 2026
2491721
Updates to &if mapper.
alanminko Mar 20, 2026
ceebb2d
Updated to &sprove.
alanminko Mar 23, 2026
3881f2d
Updated to &sprove.
alanminko Mar 24, 2026
7a28b20
Fix windows build.
alanminko Mar 24, 2026
60e0303
Fix a mismatch in cut selection.
alanminko Mar 25, 2026
6aaf0db
Fixing the required time problem.
alanminko Mar 25, 2026
b8059c3
Add support for second Verilog files in %ysoys and &cec
alanminko Mar 28, 2026
bef2327
Improvements to command "history".
alanminko Mar 28, 2026
2fb9b84
Add Windows fixes so abc compiles natively with GCC.
cr1901 Aug 9, 2025
59d0617
CI: add MinGW/MSYS2 build workflow
robtaylor Apr 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .github/scripts/abcexe.vcxproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<ProjectGuid>{6B6D7E0F-1234-4567-89AB-CDEF01234568}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>abcexe</RootNamespace>
<TargetName>abc</TargetName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>_TEST\</OutDir>
<IntDir>ReleaseExe\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<DisableSpecificWarnings>4146;4334;4996;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;WINDOWS;NDEBUG;_CONSOLE;ABC_DLL=ABC_DLLEXPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ABC_USE_PTHREADS;ABC_USE_CUDD;HAVE_STRUCT_TIMESPEC;_WINSOCKAPI_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>src</AdditionalIncludeDirectories>
<AdditionalOptions>/Zc:strictStrings- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;lib\x86\pthreadVC2.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\base\main\main.c" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="abclib.vcxproj">
<Project>{6B6D7E0F-1234-4567-89AB-CDEF01234567}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>
52 changes: 52 additions & 0 deletions .github/scripts/abclib.vcxproj.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<ProjectGuid>{6B6D7E0F-1234-4567-89AB-CDEF01234567}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>abclib</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>lib\</OutDir>
<IntDir>ReleaseLib\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<DisableSpecificWarnings>4146;4334;4996;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;WINDOWS;NDEBUG;_LIB;ABC_DLL=ABC_DLLEXPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ABC_USE_PTHREADS;ABC_USE_CUDD;HAVE_STRUCT_TIMESPEC;_WINSOCKAPI_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>src</AdditionalIncludeDirectories>
<AdditionalOptions>/Zc:strictStrings- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<OutputFile>$(OutDir)abcr.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
{{SOURCE_FILES}}
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>
22 changes: 22 additions & 0 deletions .github/scripts/abcspace.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "abclib", "abclib.vcxproj", "{6B6D7E0F-1234-4567-89AB-CDEF01234567}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "abcexe", "abcexe.vcxproj", "{6B6D7E0F-1234-4567-89AB-CDEF01234568}"
ProjectSection(ProjectDependencies) = postProject
{6B6D7E0F-1234-4567-89AB-CDEF01234567} = {6B6D7E0F-1234-4567-89AB-CDEF01234567}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6B6D7E0F-1234-4567-89AB-CDEF01234567}.Release|Win32.ActiveCfg = Release|Win32
{6B6D7E0F-1234-4567-89AB-CDEF01234567}.Release|Win32.Build.0 = Release|Win32
{6B6D7E0F-1234-4567-89AB-CDEF01234568}.Release|Win32.ActiveCfg = Release|Win32
{6B6D7E0F-1234-4567-89AB-CDEF01234568}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
EndGlobal
50 changes: 50 additions & 0 deletions .github/workflows/build-mingw.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Build MinGW

on:
push:
pull_request:

jobs:

build-mingw:

runs-on: windows-latest

defaults:
run:
shell: msys2 {0}

steps:

- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: false
install: >-
mingw-w64-x86_64-gcc
make

- name: Git Checkout
uses: actions/checkout@v4
with:
submodules: recursive

- name: Build
run: |
ABC_USE_STDINT_H=1 make -j$(nproc) CFLAGS="-DWIN32 -DWIN32_NO_DLL" abc

- name: Test Executable
run: |
./abc.exe -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"

- name: Stage Executable
run: |
mkdir -p staging
cp abc.exe staging/

- name: Upload package artifact
uses: actions/upload-artifact@v4
with:
name: package-mingw
path: staging/
65 changes: 38 additions & 27 deletions .github/workflows/build-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:

build-windows:

runs-on: windows-2019
runs-on: windows-2025

steps:

Expand All @@ -17,36 +17,47 @@ jobs:
with:
submodules: recursive

- name: Prepare MSVC
uses: bus1/cabuild/action/msdevshell@v1
- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1
with:
architecture: x86
arch: x86

- name: Upgrade project files to latest Visual Studio, ignoring upgrade errors, and build
- name: Copy project files from scripts
run: |
devenv abcspace.dsw /upgrade
# Fix the upgraded vcxproj files to use C++17
if (Test-Path abclib.vcxproj) {
$content = Get-Content abclib.vcxproj -Raw
if ($content -match '<LanguageStandard>') {
$content = $content -replace '<LanguageStandard>Default</LanguageStandard>', '<LanguageStandard>stdcpp17</LanguageStandard>'
} else {
# Add LanguageStandard if it doesn't exist
$content = $content -replace '(<ClCompile>)', '$1<LanguageStandard>stdcpp17</LanguageStandard>'
}
Set-Content abclib.vcxproj -NoNewline $content
}
if (Test-Path abcexe.vcxproj) {
$content = Get-Content abcexe.vcxproj -Raw
if ($content -match '<LanguageStandard>') {
$content = $content -replace '<LanguageStandard>Default</LanguageStandard>', '<LanguageStandard>stdcpp17</LanguageStandard>'
} else {
# Add LanguageStandard if it doesn't exist
$content = $content -replace '(<ClCompile>)', '$1<LanguageStandard>stdcpp17</LanguageStandard>'
copy .github\scripts\abcspace.sln .
copy .github\scripts\abcexe.vcxproj .

- name: Generate abclib.vcxproj from dsp
shell: powershell
run: |
# Parse source files from abclib.dsp
$dspContent = Get-Content "abclib.dsp" -Raw
$sourceFiles = [regex]::Matches($dspContent, 'SOURCE=\.\\([^\r\n]+)') | ForEach-Object { $_.Groups[1].Value } | Sort-Object -Unique

Write-Host "Found $($sourceFiles.Count) source files"

# Build source file items
$sourceItems = ""
foreach ($src in $sourceFiles) {
if ($src -match '\.c$') {
$sourceItems += " <ClCompile Include=`"$src`" />`r`n"
} elseif ($src -match '\.(cpp|cc)$') {
$sourceItems += " <ClCompile Include=`"$src`" />`r`n"
} elseif ($src -match '\.h$') {
$sourceItems += " <ClInclude Include=`"$src`" />`r`n"
}
Set-Content abcexe.vcxproj -NoNewline $content
}
msbuild abcspace.sln /m /nologo /v:m /p:Configuration=Release /p:UseMultiToolTask=true /p:PlatformToolset=v142 /p:PreprocessorDefinitions="_WINSOCKAPI_"

# Read template and replace placeholder
$template = Get-Content ".github\scripts\abclib.vcxproj.template" -Raw
$vcxproj = $template -replace '\{\{SOURCE_FILES\}\}', $sourceItems
Set-Content "abclib.vcxproj" $vcxproj -NoNewline

Write-Host "abclib.vcxproj generated successfully"

- name: Build
run: |
msbuild abcspace.sln /m /nologo /v:m /p:Configuration=Release /p:Platform=Win32 /p:UseMultiToolTask=true
if ($LASTEXITCODE -ne 0) { throw "Build failed with exit code $LASTEXITCODE" }

- name: Test Executable
Expand All @@ -64,4 +75,4 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: package-windows
path: staging/
path: staging/
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ abcext.dsp

abcexe.vcproj*
abclib.vcproj*
abcspace.sln
/abcspace.sln
abcspace.suo

*.pyc
Expand All @@ -62,4 +62,4 @@ tags

/cmake
/cscope
abc.history
abc.history
29 changes: 27 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ CXX := g++
AR := ar
LD := $(CXX)

# Auto-enable ccache if available
CCACHE := $(shell command -v ccache 2>/dev/null)
ifneq ($(CCACHE),)
CC := $(CCACHE) $(CC)
CXX := $(CCACHE) $(CXX)
endif

MSG_PREFIX ?=
ABCSRC ?= .
VPATH = $(ABCSRC)
Expand All @@ -23,7 +30,11 @@ $(call abc_info,$(MSG_PREFIX)Using AR=$(AR))
$(call abc_info,$(MSG_PREFIX)Using LD=$(LD))

PROG := abc

OS := $(shell uname -s)
ifneq ($(filter MINGW%,$(OS)),)
OS := MINGW
endif

MODULES := \
$(wildcard src/ext*) \
Expand Down Expand Up @@ -144,10 +155,15 @@ ifneq ($(OS), $(filter $(OS), FreeBSD OpenBSD NetBSD))
LIBS += -ldl
endif

ifneq ($(OS), $(filter $(OS), FreeBSD OpenBSD NetBSD Darwin))
ifneq ($(OS), $(filter $(OS), FreeBSD OpenBSD NetBSD Darwin MINGW))
LIBS += -lrt
endif

# For PathMatchSpecA.
ifeq ($(OS), MINGW)
LIBS += -lshlwapi
endif

ifdef ABC_USE_LIBSTDCXX
LIBS += -lstdc++
$(call abc_info,$(MSG_PREFIX)Using explicit -lstdc++)
Expand All @@ -157,7 +173,7 @@ $(call abc_info,$(MSG_PREFIX)Using CFLAGS=$(CFLAGS))
CXXFLAGS += $(CFLAGS) -std=c++17 -fno-exceptions

SRC :=
GARBAGE := core core.* *.stackdump ./tags $(PROG) arch_flags
GARBAGE := core core.* *.stackdump ./tags $(PROG) arch_flags $(PROG).in

.PHONY: all default tags clean docs cmake_info

Expand Down Expand Up @@ -219,13 +235,22 @@ clean:
$(VERBOSE)rm -rvf $(OBJ)
$(VERBOSE)rm -rvf $(GARBAGE)
$(VERBOSE)rm -rvf $(OBJ:.o=.d)
@if [ -n "$(CCACHE)" ]; then echo "$(MSG_PREFIX)ccache available: $(CCACHE)"; fi

tags:
etags `find . -type f -regex '.*\.\(c\|h\)'`

ifeq ($(OS), MINGW)
$(PROG): $(OBJ)
@echo "$(MSG_PREFIX)\`\` Constructing Response File:" $(notdir @$@.in)
$(file >$@.in,$^ $(LDFLAGS) $(LIBS))
@echo "$(MSG_PREFIX)\`\` Building binary:" $(notdir $@)
$(VERBOSE)$(LD) -o $@ @$@.in
else
$(PROG): $(OBJ)
@echo "$(MSG_PREFIX)\`\` Building binary:" $(notdir $@)
$(VERBOSE)$(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
endif

lib$(PROG).a: $(LIBOBJ)
@echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@)
Expand Down
4 changes: 4 additions & 0 deletions abclib.dsp

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading