Skip to content

Commit

Permalink
Enhance wasm with checkpoint and restore support (bytecodealliance#2333)
Browse files Browse the repository at this point in the history
- Add wasm_runtime_checkpoint/wasm_runtime_restore API
- Support AOT and Classic Interpreter mode checkpoint and debug through OS signal, tested on windows/mac/linux aarch64/x64
- Static instrument the AOT to have the checkpoint and restore switches
- Add sub extra library folder for implementing the ckpt-restore
- Include extra dependency of yalantinglib

Co-authored-by: Aibo Hu <[email protected]>
Co-authored-by: kikispace <[email protected]>
Co-authored-by: Brian Zhao <[email protected]>
Signed-off-by: victoryang00 <[email protected]>
  • Loading branch information
4 people committed Apr 25, 2024
1 parent 1b9fbb1 commit 4636fa0
Show file tree
Hide file tree
Showing 208 changed files with 28,809 additions and 2,825 deletions.
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/blank_issue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
name: Blank Issue
about: Create a blank issue.
title: ''
---
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/improvement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Improvement
about: A feature request or code improvement.
title: ''
labels: ''
assignees: ''
---

Thanks for filing a feature request! Please fill out the TODOs below.

#### Feature

TODO: Brief description of the feature/improvement you'd like to see in WAMR

#### Benefit

TODO: What is the value of adding this in WAMR? What problems does it solve?

#### Implementation

TODO: Do you have an implementation plan, and/or ideas for data structures or
algorithms to use?

#### Alternatives

TODO: What are the alternative implementation approaches or alternative ways to
solve the problem that this feature would solve? How do these alternatives
compare to this proposal?
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/report_bug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: WAMR bug or defect report
about: Report a bug or defect in WAMR
title: ''
---

Thanks for filing a bug or defect report! Please fill out the TODOs below.

### Subject of the issue

Describe the bug or defect here.

### Test case

Upload the related wasm file, wast file or the source files if you can.

### Your environment

* Host OS
* WAMR version, platform, cpu architecture, running mode, etc.

### Steps to reproduce

Tell us how to reproduce this bug or defect.

### Expected behavior

Tell us what should happen

### Actual behavior

Tell us what happens instead

### Extra Info

Anything else you'd like to add?
15 changes: 13 additions & 2 deletions .github/workflows/build_llvm_libraries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,19 @@ jobs:
- name: checkout
uses: actions/checkout@v4

- name: install dependencies
run: /usr/bin/env python3 -m pip install -r requirements.txt
- name: install dependencies for non macos-14
if: inputs.os != 'macos-14'
run: /usr/bin/env python3 -m pip install --break-system-packages -r requirements.txt
working-directory: build-scripts

- name: install dependencies for macos-14
if: inputs.os == 'macos-14'
run: /usr/bin/env python3 -m pip install --break-system-packages -r requirements.txt
working-directory: build-scripts

- name: install dependencies for macos-14
if: inputs.os == 'macos-14'
run: /usr/bin/env python3 -m pip install --break-system-packages -r requirements.txt --break-system-packages
working-directory: build-scripts

- name: retrive the last commit ID
Expand Down
114 changes: 114 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
name: "CodeQL"

on:
#pull_request:
# types:
# - opened
# branches: '*'
#push:
# branches: [ "main" ]
# midnight UTC
schedule:
- cron: '0 0 * * *'
# allow to be triggered manually
workflow_dispatch:

jobs:
analyze:
if: github.repository == 'bytecodealliance/wasm-micro-runtime'
name: Analyze
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners
# Consider using larger runners for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-20.04' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]

steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: recursive

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}

# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
queries: security-and-quality

# Command-line programs to run using the OS shell.
# See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.

- run: |
./.github/workflows/codeql_buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}"
upload: false
id: step1

# Filter out rules with low severity or high false positve rate
# Also filter out warnings in third-party code
- name: Filter out unwanted errors and warnings
uses: advanced-security/filter-sarif@v1
with:
patterns: |
-**:cpp/path-injection
-**:cpp/world-writable-file-creation
-**:cpp/poorly-documented-function
-**:cpp/potentially-dangerous-function
-**:cpp/use-of-goto
-**:cpp/integer-multiplication-cast-to-long
-**:cpp/comparison-with-wider-type
-**:cpp/leap-year/*
-**:cpp/ambiguously-signed-bit-field
-**:cpp/suspicious-pointer-scaling
-**:cpp/suspicious-pointer-scaling-void
-**:cpp/unsigned-comparison-zero
-**/cmake*/Modules/**
input: ${{ steps.step1.outputs.sarif-output }}/cpp.sarif
output: ${{ steps.step1.outputs.sarif-output }}/cpp.sarif

- name: Upload CodeQL results to code scanning
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: ${{ steps.step1.outputs.sarif-output }}
category: "/language:${{matrix.language}}"

- name: Upload CodeQL results as an artifact
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: codeql-results
path: ${{ steps.step1.outputs.sarif-output }}
retention-days: 10

- name: Fail if an error is found
run: |
./.github/workflows/codeql_fail_on_error.py \
${{ steps.step1.outputs.sarif-output }}/cpp.sarif
Loading

0 comments on commit 4636fa0

Please sign in to comment.