Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
11c4f99
Makefile: break apart steps in `make clean`
xobs Oct 19, 2019
09607e9
Add support for WASI platform in tmpFile.
whitequark Apr 30, 2020
eea20ff
Add support for WASI platform in cmdCheckShellEscape.
whitequark Apr 30, 2020
70ed4da
Add support for WASI platform in Gia_ManGnuplotShow.
whitequark Apr 30, 2020
9366e4f
Add support for WASI platform in Abc_ShowFile.
whitequark Apr 30, 2020
2db5f19
Add support for WASI platform in Util_SignalSystem.
whitequark Apr 30, 2020
fd2c9b1
Remove ABC_NO_RLIMIT macro, use defined(__wasm) instead.
whitequark Apr 30, 2020
ef2d917
Add WASI platform support to main.
whitequark Jun 22, 2020
81febe5
Add WASI platform support to glucose.
whitequark Jun 22, 2020
341db25
Merge pull request #6 from whitequark/wasi-signal
eddiehung Jun 22, 2020
2343da6
Makefile: support ccache for compiling ABC.
sterin Nov 19, 2020
4f5f73d
Merge pull request #8 from cr1901/dep-ccache
whitequark Nov 25, 2020
d2d6bbd
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Nov 12, 2021
e289a80
Add WASI platform support to bsat2 and glucose.
whitequark Dec 29, 2020
e792072
Define S_IREAD|IWRITE macros using IRUSR|IWUSR
mohamed Aug 3, 2020
f6fa2dd
Add WASI platform support to glucose2.
mmicko Nov 11, 2021
87a0a71
write_cex - add minimize using algorithm from cexinfo command
mmicko Nov 19, 2021
264dfc7
Extend WASI platform support for glucose2.
whitequark Nov 27, 2021
1aeff03
Enable writing of minimized Cex in non-names mode
clairexen Feb 15, 2022
db7ebfb
Cleanups in write_cex output format
clairexen Feb 15, 2022
cea4130
Fixes and more cleanups in write_cex output code
clairexen Feb 15, 2022
57ef73b
Merge pull request #10 from YosysHQ/yosys-experimental
clairexen Feb 15, 2022
b4790a6
Merge pull request #11 from YosysHQ/writecex_cexinfo
mmicko Feb 15, 2022
f36724e
read_cex (#12)
mmicko Mar 4, 2022
d7ecb23
gcc 4.8 fix
mmicko Mar 4, 2022
00b674d
fix buffer error
mmicko Mar 22, 2022
b29e8a7
Make read_cex able to append if some latches are missing
mmicko Apr 13, 2022
43a15df
Fix for unhandled aiw file commands
mmicko Apr 15, 2022
3da9357
Merge pull request #14 from YosysHQ/micko/read_cex_fix
mmicko Apr 18, 2022
c84323b
Add missing class names in FreeBSD-ifdefed code.
yurivict Dec 29, 2021
6234e18
Give more reasonable error on read_cex and handle status
mmicko May 6, 2022
09a7e6d
distinquish between old and new format as well
mmicko May 6, 2022
69ffaa0
read_cex: Allow reading cex that has extra registers
jix Jul 1, 2022
1863430
Merge pull request #16 from jix/read_cex_chagnes
jix Jul 1, 2022
163af36
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Jul 4, 2022
f159bef
Prevent types from stdint to be defined under abc namespace
mmicko Jul 4, 2022
5f40c47
Add support for WASI platform in Wln_ConvertToRtl.
whitequark Jul 7, 2022
8f5c823
Merge pull request #17 from YosysHQ/wasi-wlnRtl
whitequark Jul 7, 2022
c95d949
Revert "Remove ABC_NO_RLIMIT macro, use defined(__wasm) instead."
mmicko Jul 15, 2022
b6c0b36
do not include -lrt or -ldl on platform that do not support them
josuah Jul 8, 2022
4e89fc7
Export version
mmicko Jul 25, 2022
7cc11f7
Merge pull request #18 from josuah/yosys-experimental
mmicko Jul 27, 2022
8c923ad
Add '-p' option to 'constr' to allow fully removing constraints
jix Aug 5, 2022
feedbc7
read_cex: Faster parsing and care bits for verification
jix Aug 5, 2022
20f970f
write_cex: Check for unsupported multi-PO SAT based minimization
jix Aug 5, 2022
aa21961
Support using large liberty files
mmicko Sep 7, 2022
ab5b16e
Additional fix for large liberty files
mmicko Sep 8, 2022
be9a35c
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Nov 9, 2022
18b9c61
Add WASI support in Exa4_ManSolve.
whitequark Feb 4, 2023
a8f0ef2
Merge pull request #20 from YosysHQ/wasi-Exa4_ManSolve
whitequark Feb 4, 2023
3f9b465
casts: add casts for unsigned -> signed int
xobs Feb 15, 2023
f89df80
Add WASI support in Abc_Clock.
whitequark Feb 23, 2023
0551ef2
Merge pull request #22 from YosysHQ/wasi-Abc_Clock
whitequark Feb 23, 2023
2c1c83f
Merge pull request #21 from xobs/cast-unsigned-signed
whitequark Feb 23, 2023
0b36135
Merge remote-tracking branch 'origin/master' into yosys-experimental
mmicko Jun 6, 2023
1de4eaf
fix segfault
mmicko Jun 6, 2023
1bd088d
fold: Option (-s) to make sequential cleanup optional
jix Jun 7, 2023
bb64142
Merge pull request #23 from jix/fold-s
clairexen Jun 28, 2023
9537f39
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Sep 11, 2023
6b66b81
Add WASI support in Abc_ThreadClock.
whitequark Feb 23, 2023
89a5395
Add WASI support in Cnf_RunSolverOnce and Cnf_SplitCnfFile.
whitequark Sep 13, 2023
daad9ed
Add WASI support in Gia_StochProcessOne.
whitequark Sep 13, 2023
896e5e7
disable command history
mmicko Oct 13, 2023
f63471b
pdr -X to write CEXes immediately
jix Feb 2, 2024
acbe1b1
Fix pdr timing output
jix Feb 7, 2024
c832967
Improved anytime pdr
jix Feb 27, 2024
ecce27c
Skip -ldl on NetBSD; it does not exist. Skip -lrt on NetBSD; it is
thorpej Mar 3, 2024
0cd90d0
Merge pull request #27 from jix/pdr-X
jix Mar 4, 2024
b83985c
Add `&mfs -r` for re-import testing
povik Mar 22, 2024
fda4902
&mfs: Fix issues with traversal when re-importing network
povik Mar 22, 2024
d7fc8fe
&mfs: Handle blackboxes robustly
povik Mar 22, 2024
1107634
&mfs: Make it no biggie when a network is all blackboxes, no whiteboxes
povik Mar 22, 2024
316eec6
Fix Assertion using &if: `pCutSet->nCuts > 0'
davidar Mar 31, 2024
accf504
Apply patch to If_ObjPerformMappingChoice too
davidar Apr 1, 2024
ccc02c4
Merge pull request #30 from povik/&mfs-fixes
nakengelhardt Apr 11, 2024
078afe9
Merge pull request #31 from davidar/fix-55
nakengelhardt Apr 11, 2024
1446b75
Merge pull request #29 from thorpej/dev/pkgsrc-patch-NetBSD-1
mmicko Apr 11, 2024
2c52e3f
Support out of tree builds
RCoeurjoly Apr 11, 2024
208b486
Merge branch 'master' of https://github.com/berkeley-abc/abc into yos…
povik Apr 22, 2024
b502f00
Fix prototype mismatch for `Gia_ManSimRsb`
povik Apr 22, 2024
03da96f
Patch for lack of `system` on WASM
povik Apr 23, 2024
237d813
Modify include guards in cmd.c so that Windows compilers don't compil…
cr1901 Apr 27, 2024
04f5040
Fix archive reproducibility
lf- Jun 27, 2024
28d955c
Merge pull request #35 from lf-/jade/fix-gitarchive
widlarizer Jul 8, 2024
bf64a92
Merge remote-tracking branch 'upstream/master' into yosys-experimental
povik Aug 7, 2024
57f93e6
Merge branch 'povik/fix-transfer-timing' into yosys-experimental
povik Aug 8, 2024
2188bc7
Merge branch 'povik/fix-atomic_store-call' into yosys-experimental
povik Aug 8, 2024
745ea92
Merge remote-tracking branch 'upstream/master' into yosys-experimental
povik Oct 3, 2024
cac8f99
Revert "Merge pull request #247 from QuantamHD/abc_unit_tests"
alanminko Sep 17, 2023
013023f
Fix UB in `&mfs -r` print
povik Jan 20, 2025
8700bb5
Merge pull request #37 from YosysHQ/povik/fix-mfs-ub
povik Jan 20, 2025
43b9a4d
Merge remote-tracking branch 'upstream/master' into yosys-experimental
povik Mar 11, 2025
5ecc7c3
Revert addition of CaDiCaL
povik Mar 11, 2025
f2d68d5
Fix mingw compilation
mmicko Mar 12, 2025
44a2996
Revert "Revert addition of CaDiCaL"
mmicko Apr 8, 2025
1cdaaad
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Apr 8, 2025
20416c1
mingw fixes
mmicko Apr 8, 2025
e55d316
WASI build fix
mmicko Apr 8, 2025
fcd8ac3
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Jul 29, 2025
fa7fa16
Disable this code for now
mmicko Aug 5, 2025
8827baf
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Sep 3, 2025
fa18634
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Oct 13, 2025
1d7c059
Adds unit testing framework to ABC
QuantamHD Sep 13, 2023
7e961f4
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Nov 6, 2025
1c5ed1c
Revert "Extending support of CI/CO timing info."
mmicko Nov 6, 2025
131a50d
Merge commit 'ba852596b4a11e492e9682662a3e8d1a9be4d765' into yosys-ex…
mmicko Nov 25, 2025
ef1a3d0
Revert "Merge pull request #30 from povik/&mfs-fixes"
mmicko Dec 5, 2025
49efc5b
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Dec 5, 2025
b816c2d
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Dec 10, 2025
bd05a64
Fix WASI build
mmicko Dec 10, 2025
c6966aa
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Dec 22, 2025
6c34efd
Fixing revert/merge difference in code
mmicko Dec 22, 2025
9182a80
WASI build fix for solver command
mmicko Dec 22, 2025
3b36aa1
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Dec 29, 2025
ef74590
WASI fixes
mmicko Dec 30, 2025
799ba63
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Jan 5, 2026
01ad37a
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Jan 19, 2026
9dcae29
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Jan 28, 2026
7901021
MINGW proper pthread handling
mmicko Jan 29, 2026
734f64d
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Feb 2, 2026
c18b835
Merge remote-tracking branch 'upstream/master' into yosys-experimental
mmicko Feb 11, 2026
6dea73e
Fix MinGW/Windows build compatibility
robtaylor Feb 22, 2026
66c03f3
Fix CI: modernize Windows build and prevent duplicate workflow runs
robtaylor Feb 22, 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
1 change: 1 addition & 0 deletions .github/workflows/build-posix-cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Build Posix CMake

on:
push:
branches: [main, master]
pull_request:

jobs:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/build-posix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Build Posix

on:
push:
branches: [main, master]
pull_request:

jobs:
Expand Down
60 changes: 25 additions & 35 deletions .github/workflows/build-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,63 +2,53 @@ name: Build Windows

on:
push:
branches: [main, master]
pull_request:

jobs:

build-windows:

runs-on: windows-2019
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
mingw-w64-x86_64-cmake
mingw-w64-x86_64-ninja
make

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

- name: Prepare MSVC
uses: bus1/cabuild/action/msdevshell@v1
with:
architecture: x86
- name: Configure CMake
run: |
ABC_USE_STDINT_H=1 cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-DWIN32 -DWIN32_NO_DLL" -DCMAKE_CXX_FLAGS="-DWIN32 -DWIN32_NO_DLL" -DREADLINE_FOUND=FALSE -DABC_SKIP_TESTS=1 -B build

- name: Upgrade project files to latest Visual Studio, ignoring upgrade errors, and build
- name: Build
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>'
}
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_"
if ($LASTEXITCODE -ne 0) { throw "Build failed with exit code $LASTEXITCODE" }
cmake --build build

- name: Test Executable
run: |
copy lib\x86\pthreadVC2.dll _TEST\
.\_TEST\abc.exe -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"
if ($LASTEXITCODE -ne 0) { throw "Test failed with exit code $LASTEXITCODE" }
./build/abc.exe -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"

- name: Stage Executable
run: |
mkdir staging
copy _TEST\abc.exe staging\
mkdir -p staging
cp build/abc.exe staging/

- name: Upload package artifact
uses: actions/upload-artifact@v4
Expand Down
19 changes: 17 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -141,11 +141,26 @@ endif
# LIBS := -ldl -lrt
LIBS += -lm
ifneq ($(OS), $(filter $(OS), FreeBSD OpenBSD NetBSD))
LIBS += -ldl
ifeq ($(findstring MINGW,$(OS)),)
ifeq ($(findstring MSYS,$(OS)),)
LIBS += -ldl
endif
endif
endif

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

ifneq ($(findstring MINGW,$(OS)),)
LIBS += -lshlwapi
endif
ifneq ($(findstring MSYS,$(OS)),)
LIBS += -lshlwapi
endif

ifdef ABC_USE_LIBSTDCXX
Expand Down
18 changes: 16 additions & 2 deletions src/base/abci/abc.c
Original file line number Diff line number Diff line change
Expand Up @@ -32668,7 +32668,7 @@ int Abc_CommandPdr( Abc_Frame_t * pAbc, int argc, char ** argv )
int c;
Pdr_ManSetDefaultParams( pPars );
Extra_UtilGetoptReset();
while ( ( c = Extra_UtilGetopt( argc, argv, "MFCDQTHGSLIaxrmuyfqipdegjonctkvwzhb" ) ) != EOF )
while ( ( c = Extra_UtilGetopt( argc, argv, "MFCDQTHGSLIXalxrmuyfqipdegjonctkvwzhb" ) ) != EOF )
{
switch ( c )
{
Expand Down Expand Up @@ -32789,9 +32789,21 @@ int Abc_CommandPdr( Abc_Frame_t * pAbc, int argc, char ** argv )
pPars->pInvFileName = argv[globalUtilOptind];
globalUtilOptind++;
break;
case 'X':
if ( globalUtilOptind >= argc )
{
Abc_Print( -1, "Command line switch \"-X\" should be followed by a directory name.\n" );
goto usage;
}
pPars->pCexFilePrefix = argv[globalUtilOptind];
globalUtilOptind++;
break;
case 'a':
pPars->fSolveAll ^= 1;
break;
case 'l':
pPars->fAnytime ^= 1;
break;
case 'x':
pPars->fStoreCex ^= 1;
break;
Expand Down Expand Up @@ -32899,7 +32911,7 @@ int Abc_CommandPdr( Abc_Frame_t * pAbc, int argc, char ** argv )
return 0;

usage:
Abc_Print( -2, "usage: pdr [-MFCDQTHGS <num>] [-LI <file>] [-axrmuyfqipdegjonctkvwzh]\n" );
Abc_Print( -2, "usage: pdr [-MFCDQTHGS <num>] [-LI <file>] [-X <prefix>] [-axrmuyfqipdegjonctkvwzh]\n" );
Abc_Print( -2, "\t model checking using property directed reachability (aka IC3)\n" );
Abc_Print( -2, "\t pioneered by Aaron R. Bradley (http://theory.stanford.edu/~arbrad/)\n" );
Abc_Print( -2, "\t with improvements by Niklas Een (http://een.se/niklas/)\n" );
Expand All @@ -32914,7 +32926,9 @@ int Abc_CommandPdr( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print( -2, "\t-S num : * value to seed the SAT solver with [default = %d]\n", pPars->nRandomSeed );
Abc_Print( -2, "\t-L file: the log file name [default = %s]\n", pLogFileName ? pLogFileName : "no logging" );
Abc_Print( -2, "\t-I file: the invariant file name [default = %s]\n", pPars->pInvFileName ? pPars->pInvFileName : "default name" );
Abc_Print( -2, "\t-X pref: when solving all outputs, store CEXes immediately as <pref>*.aiw [default = %s]\n", pPars->pCexFilePrefix ? pPars->pCexFilePrefix : "disabled");
Abc_Print( -2, "\t-a : toggle solving all outputs even if one of them is SAT [default = %s]\n", pPars->fSolveAll? "yes": "no" );
Abc_Print( -2, "\t-l : toggle anytime schedule when solving all outputs [default = %s]\n", pPars->fAnytime? "yes": "no" );
Abc_Print( -2, "\t-x : toggle storing CEXes when solving all outputs [default = %s]\n", pPars->fStoreCex? "yes": "no" );
Abc_Print( -2, "\t-r : toggle using more effort in generalization [default = %s]\n", pPars->fTwoRounds? "yes": "no" );
Abc_Print( -2, "\t-m : toggle using monolythic CNF computation [default = %s]\n", pPars->fMonoCnf? "yes": "no" );
Expand Down
2 changes: 1 addition & 1 deletion src/base/cmd/cmdHist.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ ABC_NAMESPACE_IMPL_START
/// DECLARATIONS ///
////////////////////////////////////////////////////////////////////////

#define ABC_USE_HISTORY 1
// #define ABC_USE_HISTORY 1

////////////////////////////////////////////////////////////////////////
/// FUNCTION DEFINITIONS ///
Expand Down
2 changes: 1 addition & 1 deletion src/misc/util/utilPth.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ static inline int nanosleep(const struct timespec *req, struct timespec *rem) {
#include <atomic>
using namespace std;
#else
#ifndef _WIN32
#if !defined(_WIN32) || defined(__MINGW32__)
#include <stdatomic.h>
#else
// MSVC doesn't have stdatomic.h, use Interlocked functions instead
Expand Down
3 changes: 3 additions & 0 deletions src/proof/pdr/pdr.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ struct Pdr_Par_t_
int fSilent; // totally silent execution
int fSolveAll; // do not stop when found a SAT output
int fStoreCex; // enable storing counter-examples in MO mode
int fAnytime; // enable anytime scheduling
int fUseBridge; // use bridge interface
int fUsePropOut; // use property output
int nFailOuts; // the number of failed outputs
Expand All @@ -86,6 +87,7 @@ struct Pdr_Par_t_
abctime timeLastSolved; // the time when the last output was solved
Vec_Int_t * vOutMap; // in the multi-output mode, contains status for each PO (0 = sat; 1 = unsat; negative = undecided)
char * pInvFileName; // invariable file name
char * pCexFilePrefix; // CEX output prefix
int fBlocking; // clause pushing with blocking
};

Expand All @@ -98,6 +100,7 @@ struct Pdr_Par_t_
////////////////////////////////////////////////////////////////////////

/*=== pdrCore.c ==========================================================*/
extern void Pdr_OutputCexToDir( Pdr_Par_t * pPars, Abc_Cex_t * pCex );
extern void Pdr_ManSetDefaultParams( Pdr_Par_t * pPars );
extern int Pdr_ManSolve( Aig_Man_t * p, Pdr_Par_t * pPars );

Expand Down
Loading
Loading