Skip to content

Commit

Permalink
Merge pull request #3 from DVLab-NTU/develop
Browse files Browse the repository at this point in the history
New version of GV
  • Loading branch information
hchchiu authored Oct 3, 2024
2 parents fc8106d + 557e02c commit 08d3b8c
Show file tree
Hide file tree
Showing 563 changed files with 185,333 additions and 55,453 deletions.
50 changes: 17 additions & 33 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,44 +1,28 @@
---
IndentWidth: 4
---
# Specify Language
Language: Cpp
BasedOnStyle: Google

# ___ Short statement ___
# "if (a) return"; can be put on a single line.
AllowShortIfStatementsOnASingleLine: AllIfsAndElse
IndentWidth: 4
# no column limit
ColumnLimit: 0

# If "true", "while (true) continue"; can be put on a single line.
AllowShortLoopsOnASingleLine: true
AlignTrailingComments: true
AlignAfterOpenBracket: true
IndentRequires: false

# int f() { return 0; } can be put on a single line.
AllowShortFunctionsOnASingleLine: Inline
# puts public, private, on the same column with class definition
AccessModifierOffset: -4

# ___ Align ___
# Horizontally aligns arguments after an open bracket.
AlignAfterOpenBracket: Align
PackConstructorInitializers: BinPack

# Align consecutive declarations
AlignConsecutiveDeclarations:
Enabled: true
AcrossComments: true
Consecutive: true
# "if (a) return"; can be put on a single line.
AllowShortIfStatementsOnASingleLine: AllIfsAndElse

# Align consecutive assignments.
AlignConsecutiveAssignments: Consecutive

# The return type of the function on its own line.
AlwaysBreakAfterDefinitionReturnType: TopLevel

# The column limit.
ColumnLimit: 80
# Enum Style
AllowShortEnumsOnASingleLine: true

# Extern and Class indent setting
BreakBeforeBraces: Custom
BraceWrapping:
AfterExternBlock: true
AfterClass: true
AfterEnum: true
# Indent extern "C" block
IndentExternBlock: Indent

IndentAccessModifiers: true
PointerAlignment: Left
AlignArrayOfStructures: Left
8 changes: 8 additions & 0 deletions .cmake-format.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Specify line width for formatting
line_width: 100

# Indentation settings
indent_width: 8
continuation_indent_width: 8
tab_size: 4
use_tab: false
64 changes: 41 additions & 23 deletions .github/workflows/build-linux.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,50 @@
name: Build(Linux)
on:
push:
branches: [ "main","develop"]
pull_request:
branches: [ "main","develop"]
push:
branches: ["main", "develop"]
pull_request:
branches: ["main", "develop"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Modify INSTALL.sh
run: |
sed -i "s/.\/gv;//g" ./INSTALL.sh
- name: Install Dependencies
shell: bash
run: |
sudo apt-get update
sudo apt-get install gperf build-essential bison flex libreadline-dev gawk tcl-dev libffi-dev git graphviz xdot pkg-config python3 libboost-system-dev libboost-python-dev libboost-filesystem-dev zlib1g-dev
- name: Cache CMake dependency source code
uses: actions/cache@v3
env:
cache-name: cache-cmake-engine-sources
with:
# CMake cache is at ${{github.workspace}}/build/_deps but we only will cache folders ending in '-src' to cache source code
path: ${{github.workspace}}/build/engines/src/engine-*
# Cache hash is dependent on CMakeLists files anywhere as these can change what's in the cache, as well as cmake modules files
# key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('./CMakeLists.txt') }}
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('./CMakeLists.txt') }}
# it's acceptable to reuse caches for different CMakeLists content if exact match is not available and unlike build caches, we
# don't need to restrict these by OS or compiler as it's only source code that's being cached
restore-keys: |
${{ runner.os }}-${{ env.cache-name }}-
- name: Install Dependencies
shell: bash
run: |
ls
sudo apt-get update
sudo apt-get -y install gperf build-essential bison flex libreadline-dev gawk tcl-dev libffi-dev git cmake parallel
sudo apt-get -y install graphviz xdot pkg-config python3 libboost-system-dev libboost-python-dev libboost-filesystem-dev zlib1g-dev
- name: Install GV
run: sudo ./INSTALL.sh
- name: Install GV
run: |
echo "Start to build the GV "
make build
- name: Install Yosys
working-directory: ${{github.workspace}}/build/engines/src/engine-yosys
run: |
echo "Start to install the Yosys"
sudo make install
- name: Check GV library
run: ldd ./gv
- name: Run tests
run: ./gv -f tests/test.dofile
- name: Run tests
shell: bash
run: make test
64 changes: 44 additions & 20 deletions .github/workflows/build-macos.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,50 @@
name: Build(MacOS)
on:
push:
branches: [ "main","develop"]
pull_request:
branches: [ "main","develop"]
push:
branches: ["main", "develop"]
pull_request:
branches: ["main", "develop"]
jobs:
build:
runs-on: macos-12
steps:
- uses: actions/checkout@v3
build:
runs-on: macos-latest
env:
ACTIONS_CACHE_DEBUG: true # Enable cache debug mode
steps:
- uses: actions/checkout@v3

- name: Modify INSTALL.sh
run: |
sed -i -e "s/.\/gv;//g" ./INSTALL.sh
- name: Install Dependencies
shell: bash
run: |
brew install bison flex gawk libffi pkg-config bash
- name: Cache CMake dependency source code
uses: actions/cache@v3
env:
cache-name: cache-cmake-engine-sources
with:
# CMake cache is at ${{github.workspace}}/build/_deps but we only will cache folders ending in '-src' to cache source code
path: ${{github.workspace}}/build/engines/src/engine-*
# Cache hash is dependent on CMakeLists files anywhere as these can change what's in the cache, as well as cmake modules files
# key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('./CMakeLists.txt') }}
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('./CMakeLists.txt') }}
# it's acceptable to reuse caches for different CMakeLists content if exact match is not available and unlike build caches, we
# don't need to restrict these by OS or compiler as it's only source code that's being cached
restore-keys: |
${{ runner.os }}-${{ env.cache-name }}-
- name: Install GV
run: sudo ./INSTALL.sh
- name: Install Dependencies
shell: bash
run: brew tap Homebrew/bundle && brew bundle

- name: Export the brew path
shell: bash
run: |
brew install bison
echo 'export PATH="$(brew --prefix bison)/bin:$PATH"' >> $GITHUB_ENV
# export PATH="$(brew --prefix bison)/bin:$(brew --prefix)/bin:$PATH"

- name: Verify the brew path
shell: bash
run: bison --version

# - name: Install GV
# run: make
#
# - name: Run tests
# run: make test

- name: Run tests
run: ./gv -f tests/test.dofile
61 changes: 44 additions & 17 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,19 +1,46 @@
/src/lib/*.a
/src/lib/*.so
/src/lib/lib.d

/engine
/include
*.o
*.d
*.a
/gv
/lib
btorinfo.log
test.btor
*.dofile
*.v
*.btor
# engine files and folders
engine/
# static library files
lib/
# headers files
include/


# makefile files
src/*/*.mak
# cmake files
build/
# object files
src/*/*.o
# yosys extension files
src/ext/*.so
src/ext/*.d

# yosys execution files
yosys-abc
yosys-config

# vscode configuration files and folders
.vscode/

# vim configuration files and folders
.cache/
compile_commands.json

# simulation files
.sim_main.cpp
.sim.cpp
.tb

# design and log files
*.aig
.vscode
*.v
*.txt
*.json
*.history

# gv
gv

# debugging files
debug.dofile
15 changes: 15 additions & 0 deletions Brewfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
brew "bison"
brew "flex"
brew "gawk"
brew "libffi"
brew "git"
brew "graphviz"
brew "pkg-config"
brew "python3"
brew "tcl-tk"
brew "xdot"
brew "bash"
brew "boost-python3"
brew "llvm"
brew "gmp"
brew "parallel"
Loading

0 comments on commit 08d3b8c

Please sign in to comment.