Skip to content

Commit

Permalink
Merge branch 'master' into ci-more
Browse files Browse the repository at this point in the history
  • Loading branch information
mikkelfj committed Oct 24, 2023
2 parents 109a40b + 0e925e1 commit fafde2d
Show file tree
Hide file tree
Showing 76 changed files with 1,355 additions and 576 deletions.
60 changes: 60 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: CI

on: [push, pull_request]

env:
CTEST_OUTPUT_ON_FAILURE: 1

jobs:
ubuntu-ninja-clang:
name: Ubuntu (ninja, clang)
runs-on: ubuntu-22.04
steps:
- name: Prepare
run: |
sudo apt update
sudo apt install ninja-build
- uses: actions/checkout@v3
- name: Build and run tests
env:
CC: clang
CXX: clang++
run: |
scripts/test.sh
ubuntu-make-gcc:
name: Ubuntu (make, gcc)
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Build and run tests
env:
CC: gcc
CXX: g++
run: |
scripts/initbuild.sh make
scripts/test.sh
macos:
name: macOS
runs-on: macos-12
steps:
- name: Prepare
run: |
brew install cmake ninja
- uses: actions/checkout@v3
- name: Build and run tests
run: |
scripts/test.sh
windows:
name: Windows
runs-on: windows-2022
steps:
- uses: microsoft/[email protected]
- uses: actions/checkout@v3
- name: Build and run tests
run: |
cmake .
msbuild FlatCC.sln /m /property:Configuration=Release
ctest -VV
193 changes: 193 additions & 0 deletions .github/workflows/weekly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
name: Weekly

on:
workflow_dispatch:
schedule:
- cron: '0 10 * * 1' # Mon 10.00 UTC

env:
CTEST_OUTPUT_ON_FAILURE: 1

jobs:
clang:
name: Clang ${{ matrix.clang-version }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
clang-version: [5, 7, 9, 11, 13, 15]
steps:
- name: Setup Clang
uses: aminya/setup-cpp@v1
with:
llvm: ${{ matrix.clang-version }}
- uses: actions/checkout@v3
- name: Build and run tests
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
clang-32bit:
name: Clang 32bit
runs-on: ubuntu-20.04
steps:
- name: Prepare
run: |
sudo apt update
sudo apt install gcc-multilib g++-multilib
- uses: actions/checkout@v3
- name: Build and run tests
env:
CC: clang
CXX: clang++
run: |
scripts/initbuild.sh make-32bit
scripts/test.sh
gcc-old:
name: GCC 4.4
runs-on: ubuntu-20.04
steps:
- name: Setup GCC
run: |
wget http://launchpadlibrarian.net/336269522/libmpfr4_3.1.6-1_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-4.4/gcc-4.4-base_4.4.7-8ubuntu1_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-4.4/cpp-4.4_4.4.7-8ubuntu1_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-4.4/gcc-4.4_4.4.7-8ubuntu1_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-4.4/libstdc++6-4.4-dev_4.4.7-8ubuntu1_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-4.4/g++-4.4_4.4.7-8ubuntu1_amd64.deb
sudo dpkg -i ./libmpfr4_3.1.6-1_amd64.deb
sudo dpkg -i ./gcc-4.4-base_4.4.7-8ubuntu1_amd64.deb
sudo dpkg -i ./cpp-4.4_4.4.7-8ubuntu1_amd64.deb
sudo dpkg -i ./gcc-4.4_4.4.7-8ubuntu1_amd64.deb
sudo dpkg -i ./libstdc++6-4.4-dev_4.4.7-8ubuntu1_amd64.deb ./g++-4.4_4.4.7-8ubuntu1_amd64.deb
- uses: actions/checkout@v3
- name: Build and run tests
env:
CC: gcc-4.4
CXX: g++-4.4
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
gcc:
name: GCC ${{ matrix.gcc-version }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
gcc-version: [7, 9, 11]
steps:
- name: Setup GCC
uses: aminya/setup-cpp@v1
with:
gcc: ${{ matrix.gcc-version }}
- uses: actions/checkout@v3
- name: Build and run tests
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
gcc-32bit:
name: GCC 32bit
runs-on: ubuntu-20.04
steps:
- name: Prepare
run: |
sudo apt update
sudo apt install gcc-multilib g++-multilib
- uses: actions/checkout@v3
- name: Build and run tests
run: |
scripts/initbuild.sh make-32bit
scripts/test.sh
intel:
name: Intel ${{ matrix.compiler }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
compiler: [icc, icx]
steps:
- name: Prepare
run: |
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | \
gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | \
sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt update
sudo apt install intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2021.4.0
- name: Setup Intel oneAPI
run: |
source /opt/intel/oneapi/setvars.sh
printenv >> $GITHUB_ENV
- uses: actions/checkout@v3
- name: Build and run tests
env:
CC: ${{ matrix.compiler }}
CXX: ${{ matrix.compiler }}
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
macos-clang:
name: macOS Clang
runs-on: macos-11
steps:
- uses: actions/checkout@v3
- name: Build and run tests
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
macos-gcc:
name: macOS GCC ${{ matrix.gcc-version }}
runs-on: macos-11
strategy:
fail-fast: false
matrix:
gcc-version: [9, 12]
steps:
- uses: actions/checkout@v3
- name: Prepare
run: |
brew install gcc@${{ matrix.gcc-version }}
- name: Build and run tests
env:
CC: gcc-${{ matrix.gcc-version }}
CXX: g++-${{ matrix.gcc-version }}
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
windows:
name: Windows Visual Studio ${{ matrix.version }}
runs-on: windows-${{ matrix.version }}
strategy:
fail-fast: false
matrix:
version: [2019, 2022]
steps:
- uses: microsoft/[email protected]
- uses: actions/checkout@v3
- name: Build and run tests
run: |
cmake .
msbuild FlatCC.sln /m /property:Configuration=Release
ctest -VV
cmake-minimum-required:
name: CMake 2.8.12 (min. required)
runs-on: ubuntu-20.04
steps:
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v1
with:
cmake-version: 2.8.12
- uses: actions/checkout@v3
- name: Build and run tests
run: |
cmake --version
scripts/initbuild.sh make-concurrent
scripts/test.sh
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ bin/*
lib/*
release/*
scripts/build.cfg
compile_flags.txt
compile_commands.json
.cache
60 changes: 56 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,32 @@
# Change Log

## [0.6.1-pre]
## [0.6.2-pre]

- CMake: avoid assuming location of build dir during configuration.
- Use untyped integer constants in place of enums for public interface flags to
allow for safe bit masking operations (PR #248).
- Added experimental support for generating `compile_commands.json` via
`CMakeList.txt` for use with clangd.
- Remove `fallthrough` macro for improved portability (#247, #252).
- Added `parse_float/double_compare`, `parse_float/double_is_equal` to
portable library, and added `parse_float/double_isnan` to mirror isinf.
This should help with GCC 32-bit double precision conversion issue.
- Add Github Actions builds to replace stale Travis CI build. This also
includes source code fixes for some build variants. Although
Windows build is included it only covers recent 64-bit Windows. More
work is need for older Windows variants. (#250).
- Increase maximum allowed schema file size from 64 KiB to 1 MB (#256).
- Fix seg fault in json parser while adding null characters to a too
short input string for a fixed length char array struct field (#257).
- Fix regression where empty namespace in schema does not reset root scope
correctly in parser (#265).
- Fix lexer checks that breaks with UTF-8, notably UTF-8 schema comments (#267).
- Add sanitizer flag for clang debug and related warnings (input from several PRs incl. #237)

## [0.6.1]

- Add `flatcc_builder_alloc` and `flatcc_builder_free` to handle situations
where stanard allocation has been redefined via macros so `free` is no longer
where standard allocation has been redefined via macros so `free` is no longer
safe to use. These are similar to the existing `aligned_alloc/free` functions.
- Fix a potential, but never seen, low level race condition in the builder when
writing a union field because the builder might reallocate between type
Expand Down Expand Up @@ -35,8 +58,37 @@
- Fix cli options so common files can be generated without schema files
(PR #156).
- Make build.sh work for non-bash shells (PR #159).
- Fix parsing json struct as roort (#157)
- Add support for optional scalar values (#162)
- Fix parsing json struct as roort (#157).
- Add support for optional scalar values (#162).
- Fix enum out of range (#176).
- Add stdalign support for TCC compiler (#174).
- Add RPC data to bfbs binary schema (#181).
- Fix support for printing JSON enum vectors (#182).
- Silence GCC 11 identation warning (#183).
- Fix type of code field on json test (#184).
- Add `end_loc` to parser state of root json parsers (#186).
- BREAKING: Add per table `<name>_file_extension` and fixed wrong per table
`<name>_file_identifier` assignment when multiple files are included due to
macro expansion conflict. Extensions are now specified without extra dot
prefix unless specified explicitly in the schema file. The default extension
is now 'bin' instead of '.bin' (#187).
- Fix buffer overrun when parser reports error on large symbols (#188).
- BREAKING: Print --version to stdout, not stderr.
- Fix schema parser returning on success on some failure modes (#193).
- Fix larger integer literal types in JSON parser and printer (#194).
- Add pattributes.h to portable library and replace GCC fallthrough comments
with fallthough attribute to also silence clang warnings (#203).
- Remove misguided include guards from `portable/pdiagnostic_push/pop.h` and fix
related and expected warnings in other code. NOTE: End user code might be
affected because warnigs were disabled more broadly than intended. Also note
that warnings will still be disabled after pop if the compiler does not
support push/pop diagnostics (#205).
- Fix verifier crash on malicious string length input (#221).
- Fix potential crash parsing unterminated JSON (#223).
- Allow 0 (and other unknown values) as schema default value for enums with
`bit_flags` attribute.
- Disable -pedantic flag for GCC >= 8, it just keeps breaking perfectly valid
code (#227).

## [0.6.0]

Expand Down
Loading

0 comments on commit fafde2d

Please sign in to comment.