Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
d06a362
feat: add increment and decrement operations
Totto16 Oct 10, 2025
db7c30a
feat: add tests for postincrement and add ehlpers for -- and ++ to th…
Totto16 Oct 10, 2025
005c76b
fix: use INT64_MAX and UINT64_MAX, so that the values are correct
Totto16 Oct 10, 2025
24312bb
fix: add tests for pre increment
Totto16 Oct 10, 2025
3283377
fix: make 0 always positive
Totto16 Oct 10, 2025
e1cc149
fix: add tests for increment and fix leading zero issue
Totto16 Oct 10, 2025
da8ebf0
fix: add more c raw tests
Totto16 Oct 12, 2025
8f95224
fix: ad helper function for checking if bigint is zero
Totto16 Oct 12, 2025
643c3d6
feat: add shift methods
Totto16 Oct 14, 2025
cb2f258
feat: add better shift function in c
Totto16 Oct 14, 2025
2d6e7f0
feat: add c declarations for div and mod
Totto16 Oct 14, 2025
e8d5e25
xi: fix c++ operator implementation
Totto16 Oct 14, 2025
9454b9e
fix: use common function for setting a bigint with numbers_count of 1
Totto16 Oct 14, 2025
1a80443
fix: use uint64_t in ceil helper division
Totto16 Oct 14, 2025
0644d80
feat: add fast path in multiplication, that uses shift, if the second…
Totto16 Oct 14, 2025
352e4e2
feat: also check for power of two in first operand of multiplication
Totto16 Oct 14, 2025
0692930
feat: add implementations for shift operations
Totto16 Oct 14, 2025
d576167
feat: add basic implementations for div and mod
Totto16 Oct 14, 2025
40042be
feat: implement normal right bitshift
Totto16 Oct 15, 2025
26a56eb
fix: fix ceiling division
Totto16 Oct 15, 2025
48a82ac
feat: add tests for shifts
Totto16 Oct 15, 2025
3d2390a
feat: remove shifts by bigints, as they don't make sense
Totto16 Oct 15, 2025
6d80440
fix: error out in fast multiplication step, if the shift would exceed…
Totto16 Oct 15, 2025
5f2327f
fix: fix usage of bigint_helper_get_power_of_2
Totto16 Oct 17, 2025
c08a9be
feat: refactor the order of checks in the main multiplication method
Totto16 Oct 17, 2025
0d82f27
fix: fix left shift
Totto16 Oct 19, 2025
773cdea
fix: rename internal methods, so that the name makes more sense
Totto16 Oct 19, 2025
d9efb0a
fix: cover all of shift_left
Totto16 Oct 19, 2025
4e89c40
fix: fiy naming of "normalizing" functions
Totto16 Oct 19, 2025
d37991a
fix: fix short circuit in right shift impl
Totto16 Oct 19, 2025
f673031
fix: make test for correct normalizing
Totto16 Oct 19, 2025
82b12c5
feat: implement mod
Totto16 Oct 24, 2025
0e81302
fix: don't mod by 0
Totto16 Oct 24, 2025
329d2e7
fix: add tests for mod
Totto16 Oct 24, 2025
765b8fe
feat: make bigint_from_list_of_numbers also take the signedness of th…
Totto16 Oct 26, 2025
41a59a0
fix: use the correct order in the BigIntTest constructor, that takes …
Totto16 Oct 26, 2025
0b83158
fix: make copy of BigIntTest correctly copy the values array
Totto16 Oct 31, 2025
accfac3
add bigger test for modulo
Totto16 Oct 31, 2025
65b5052
fix: add more test cases for mod
Totto16 Oct 31, 2025
881dece
feat: correctly "invert" the result of the mod, when necessary
Totto16 Oct 31, 2025
f66cb2e
fix: fix truncated mod tests, as the "generated" tests were wrong
Totto16 Oct 31, 2025
2b5e744
feat: add final mod test. test the euclidian mode
Totto16 Oct 31, 2025
a75e330
feat: add ceiled mod too, it is nearly the same as the floored one
Totto16 Oct 31, 2025
732d116
feat: add c impl test for ceiled mod
Totto16 Oct 31, 2025
fdb1c3b
feat: uncomment the generic mod test
Totto16 Oct 31, 2025
00ab999
feat: fix tommath test compilation
Totto16 Oct 31, 2025
f013aaa
fix: fix gcc 14 compilation, by not even using the first ASSERT value
Totto16 Oct 31, 2025
ea5b42b
fix: fix normal compilation
Totto16 Oct 31, 2025
a4a01a3
feat: add avx or similar feature detection for aarch64 and x86_64 at …
Totto16 Nov 2, 2025
8e6643b
fix: fix ifdef edge case, by adding #error there
Totto16 Nov 2, 2025
2024d23
feat: add spport for bitwise operations
Totto16 Nov 8, 2025
7aafe65
fix: fix compilation of the cpu specific targets
Totto16 Nov 8, 2025
10c2264
fix: annotate params with in, out and inout, so that the user knows t…
Totto16 Nov 8, 2025
50b1f64
feat: check sizes, for which it makes sense to use hardware acceleration
Totto16 Nov 8, 2025
c314e2e
fix: use c86_64 inline assembly, to make divmod a asm "one liner"
Totto16 Nov 8, 2025
a5c9dcd
feat: remove sve2 as special target
Totto16 Nov 10, 2025
2b1629c
feat: add basic arm54 devcontainer
Totto16 Nov 10, 2025
69b040a
feat: improve the devcontainer, symlink clang
Totto16 Nov 10, 2025
8be7111
feat: improve the devcontainer, add extensions
Totto16 Nov 10, 2025
4c9e2c2
fix: use never devcontainer json structure
Totto16 Nov 10, 2025
9090298
fix: fix permissions (at least locally, as ubuntu has the same uid as…
Totto16 Nov 10, 2025
93de2f7
fix: install mold and other clang and llvm tools in devcontainer
Totto16 Nov 10, 2025
314b275
fix: fix sve intrinsics in arm64
Totto16 Nov 10, 2025
1d6b88f
feat: add devconrainer base + riscv config
Totto16 Nov 10, 2025
0001aed
feat: also add amd64 container
Totto16 Nov 10, 2025
719ec44
feat: symlink build folder for clangd, so that it is correct in every…
Totto16 Nov 10, 2025
3168954
feat: move devcontainer files, so that they are recognized
Totto16 Nov 10, 2025
748736f
fix: devcontainer, don't use base.json, but hide the base config in t…
Totto16 Nov 10, 2025
135109c
fix: fix the if bash expression in the dockerfile
Totto16 Nov 10, 2025
fa1f4c3
fix: use arch to symlink correct folder
Totto16 Nov 10, 2025
7f6ccb1
feat: devcontainer, fix the symlinking
Totto16 Nov 10, 2025
7e2811b
fix: move label content to devcontainer file
Totto16 Nov 10, 2025
b7f008a
feat: install clang in a script, so that riscv also installs the corr…
Totto16 Nov 10, 2025
4718569
feat: use /usr/bin/clangd instead of versioned binary
Totto16 Nov 10, 2025
af5c45b
fix: use the correct clang install method, it was reversed before
Totto16 Nov 10, 2025
95e1345
fix: also install llvm-<version>, so that the symlinking works on riscv
Totto16 Nov 10, 2025
c358729
ci: also build the arm64 clang variant
Totto16 Nov 10, 2025
647b2f1
fix: fix small compilation error on riscv
Totto16 Nov 10, 2025
a1cdc63
fix: only have the hardware accelerated functions on architectures, t…
Totto16 Nov 10, 2025
32dfba6
feat: add hardware acceleration detection for riscv, compile and runtime
Totto16 Nov 10, 2025
beb3060
feat: add first draft for riscv RVV
Totto16 Nov 11, 2025
227e668
fix: fix cpu target detection for riscv rvv
Totto16 Nov 11, 2025
f8db264
feat: implement riscv RVV dynamic sizeless support
Totto16 Nov 11, 2025
024f7a6
fix: fix functions annotatet with RVV
Totto16 Nov 11, 2025
9328b98
feat: use best lmul result, when finding rvv vl + lmul values, not la…
Totto16 Nov 11, 2025
fe17b7d
feat: use restrict for array pointers
Totto16 Nov 11, 2025
034ef92
fix: cover all paths of the same bigint bit operations
Totto16 Nov 11, 2025
d6a5a05
chore: remove legacy macro
Totto16 Nov 11, 2025
bd3f948
fix: fix tommath MPWrapper
Totto16 Nov 12, 2025
2648e7d
feat: implement the mod modes for tommath tests
Totto16 Nov 12, 2025
62711f2
fix: fix libtommath mod behaviour, as the builtin mod doesn't really …
Totto16 Nov 12, 2025
6653ccb
feat: use the builtin tommath floored modulo
Totto16 Nov 12, 2025
7b7034e
fx: fix aligned alloc call with windows
Totto16 Nov 12, 2025
c29c744
fix: support vs 2026, include sal.h
Totto16 Nov 12, 2025
0d1e724
fix: fix features in windows
Totto16 Nov 12, 2025
b678671
fix: rename duplicate variable in tests
Totto16 Nov 12, 2025
8222e09
fix: use correct type for libtommath value, so that windows + linux w…
Totto16 Nov 12, 2025
0d446dc
fix: fix lobtommath shift operatiosn, the operand uint64_t could ove…
Totto16 Nov 12, 2025
13b5fd7
fix: fix test types and gtest ::testing namespace in windows
Totto16 Nov 12, 2025
d5f707b
fix: include sal.h only on windows
Totto16 Nov 12, 2025
d203db6
fix: fix name of ALIGNED_ALLOC under linux
Totto16 Nov 12, 2025
b3b8fe3
fix: rename duplicate variable in tests
Totto16 Nov 12, 2025
2de0bbb
fix: fix normal tests type, long != int64_t
Totto16 Nov 12, 2025
dd79d8d
fix: fix death tests under windows, signals don't work there
Totto16 Nov 12, 2025
b6d1cb3
fix: fix radix_type template in tommath
Totto16 Nov 12, 2025
b80b93d
fix: correctly detect and ifdef macos in features
Totto16 Nov 12, 2025
c7e4968
fix: fix a few clang tidy errors
Totto16 Nov 12, 2025
fceaa5d
fix: fix more clang-tidy errors
Totto16 Nov 12, 2025
0ab8d5d
fix: fix more clang-tidy errors
Totto16 Nov 12, 2025
3cabda9
fix: fix features clang-tidy errors
Totto16 Nov 12, 2025
ac7e2c3
fix: fix bigint_helper_get_full_copy
Totto16 Nov 12, 2025
a013f53
feat: implement bitwise operation in c++
Totto16 Nov 12, 2025
12b01cb
feat: implement bitwise operations for test Bigint
Totto16 Nov 12, 2025
7367a7e
feat: add bitwise or test
Totto16 Nov 12, 2025
0c547c8
feat: add bitwise and and xor test
Totto16 Nov 12, 2025
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
2 changes: 1 addition & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# taken from https://github.com/cpp-linter/cpp-linter-action/blob/main/demo/.clang-tidy
---
Checks: "clang-diagnostic-*,clang-analyzer-*,bugprone-*,misc-*,performance-*,readability-*,portability-*,modernize-*,cppcoreguidelines-*,google-*,llvm-*,cert-*,-llvm-header-guard,-modernize-use-nullptr,-misc-include-cleaner,-cert-err33-c,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,-cppcoreguidelines-macro-to-enum,-modernize-macro-to-enum,-readability-function-cognitive-complexity,-google-readability-function-size,-readability-function-size,-modernize-use-trailing-return-type,-llvm-else-after-return,readability-else-after-return,-readability-implicit-bool-conversion,-google-readability-todo,-portability-avoid-pragma-once,-cppcoreguidelines-macro-usage,-readability-use-concise-preprocessor-directives,-cppcoreguidelines-owning-memory,-cppcoreguidelines-pro-bounds-array-to-pointer-decay"
Checks: "clang-diagnostic-*,clang-analyzer-*,bugprone-*,misc-*,performance-*,readability-*,portability-*,modernize-*,cppcoreguidelines-*,google-*,llvm-*,cert-*,-llvm-header-guard,-modernize-use-nullptr,-misc-include-cleaner,-cert-err33-c,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,-cppcoreguidelines-macro-to-enum,-modernize-macro-to-enum,-readability-function-cognitive-complexity,-google-readability-function-size,-readability-function-size,-modernize-use-trailing-return-type,-llvm-else-after-return,readability-else-after-return,-readability-implicit-bool-conversion,-google-readability-todo,-portability-avoid-pragma-once,-cppcoreguidelines-macro-usage,-readability-use-concise-preprocessor-directives,-cppcoreguidelines-owning-memory,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-avoid-magic-numbers"
WarningsAsErrors: ""
HeaderFilterRegex: "src/.*"
ExcludeHeaderFilterRegex: src/thirdparty/.*|subprojects/.*
Expand Down
51 changes: 51 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
ARG UBUNTU_VARIANT=24.04
ARG BUILD_PLATFORM

FROM --platform=${BUILD_PLATFORM} ubuntu:${UBUNTU_VARIANT}

LABEL devcontainer.metadata='[{ \
"remoteUser": "ubuntu", \
"features": {} \
}]'

COPY ./post_run.sh ./install_clang.sh /tmp/

# Prevent interactive prompts
ENV DEBIAN_FRONTEND=noninteractive

ENV CC_LD="mold"
ENV LD="mold"
ENV CXX_LD="mold"

# Install common utilities, gcc 14 and clang, also prepare meson
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
sudo \
bash-completion \
build-essential \
ca-certificates \
curl \
git \
less \
locales \
wget \
gcc-14 g++-14 \
python3-pip \
libgmp-dev \
ninja-build \
pkg-config \
mold \
&& pip install meson --break-system-packages \
&& chmod +x /tmp/install_clang.sh \
&& /tmp/install_clang.sh \
&& rm /tmp/install_clang.sh \
&& rm -rf /var/lib/apt/lists/*

# setup post run script and directories
RUN chmod +x /tmp/post_run.sh \
&& mkdir -pv /runtime/ \
&& chown ubuntu:ubuntu /runtime/ \
&& chmod 755 /runtime/

USER ubuntu
WORKDIR /work
52 changes: 52 additions & 0 deletions .devcontainer/amd64/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"name": "Ubuntu 24.04 Dev Amd64",
"build": {
"dockerfile": "../Dockerfile",
"args": {
"UBUNTU_VARIANT": "24.04",
"BUILD_PLATFORM": "linux/amd64"
}
},
"runArgs": [
"--platform=linux/amd64"
],
"mounts": [
"source=${localWorkspaceFolder},target=/work,type=bind,consistency=cached"
],
"postCreateCommand": "/tmp/post_run.sh",
"workspaceFolder": "/work",
"customizations": {
"vscode": {
"extensions": [
"xaver.clang-format",
"llvm-vs-code-extensions.vscode-clangd",
"mesonbuild.mesonbuild"
],
"settings": {
"terminal.integrated.shell.linux": "/bin/bash",
"clangd.path": "/usr/bin/clangd",
"clangd.arguments": [
"--all-scopes-completion",
"--background-index",
"--background-index-priority=background",
"--clang-tidy",
"--completion-style=bundled",
"--function-arg-placeholders",
"--enable-config",
"-j",
"3",
"--malloc-trim",
"--pretty",
"--header-insertion=never",
"--compile-commands-dir=/runtime/build_sym_link"
],
"[c]": {
"editor.defaultFormatter": "xaver.clang-format"
},
"[cpp]": {
"editor.defaultFormatter": "xaver.clang-format"
}
}
}
}
}
52 changes: 52 additions & 0 deletions .devcontainer/arm64/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"name": "Ubuntu 24.04 Dev Arm64",
"build": {
"dockerfile": "../Dockerfile",
"args": {
"UBUNTU_VARIANT": "24.04",
"BUILD_PLATFORM": "linux/arm64/v8"
}
},
"runArgs": [
"--platform=linux/arm64/v8"
],
"mounts": [
"source=${localWorkspaceFolder},target=/work,type=bind,consistency=cached"
],
"postCreateCommand": "/tmp/post_run.sh",
"workspaceFolder": "/work",
"customizations": {
"vscode": {
"extensions": [
"xaver.clang-format",
"llvm-vs-code-extensions.vscode-clangd",
"mesonbuild.mesonbuild"
],
"settings": {
"terminal.integrated.shell.linux": "/bin/bash",
"clangd.path": "/usr/bin/clangd",
"clangd.arguments": [
"--all-scopes-completion",
"--background-index",
"--background-index-priority=background",
"--clang-tidy",
"--completion-style=bundled",
"--function-arg-placeholders",
"--enable-config",
"-j",
"3",
"--malloc-trim",
"--pretty",
"--header-insertion=never",
"--compile-commands-dir=/runtime/build_sym_link"
],
"[c]": {
"editor.defaultFormatter": "xaver.clang-format"
},
"[cpp]": {
"editor.defaultFormatter": "xaver.clang-format"
}
}
}
}
}
104 changes: 104 additions & 0 deletions .devcontainer/install_clang.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
#!/usr/bin/env bash

set -xe

function register_clang_version {
local version="$1"
local priority="$2"

echo "registering clang v${version} with priority ${priority}"

update-alternatives \
--install /usr/bin/llvm-config llvm-config "/usr/bin/llvm-config-${version}" "${priority}" \
--slave /usr/bin/llvm-ar llvm-ar "/usr/bin/llvm-ar-${version}" \
--slave /usr/bin/llvm-as llvm-as "/usr/bin/llvm-as-${version}" \
--slave /usr/bin/llvm-bcanalyzer llvm-bcanalyzer "/usr/bin/llvm-bcanalyzer-${version}" \
--slave /usr/bin/llvm-cov llvm-cov "/usr/bin/llvm-cov-${version}" \
--slave /usr/bin/llvm-diff llvm-diff "/usr/bin/llvm-diff-${version}" \
--slave /usr/bin/llvm-dis llvm-dis "/usr/bin/llvm-dis-${version}" \
--slave /usr/bin/llvm-dwarfdump llvm-dwarfdump "/usr/bin/llvm-dwarfdump-${version}" \
--slave /usr/bin/llvm-extract llvm-extract "/usr/bin/llvm-extract-${version}" \
--slave /usr/bin/llvm-link llvm-link "/usr/bin/llvm-link-${version}" \
--slave /usr/bin/llvm-mc llvm-mc "/usr/bin/llvm-mc-${version}" \
--slave /usr/bin/llvm-mcmarkup llvm-mcmarkup "/usr/bin/llvm-mcmarkup-${version}" \
--slave /usr/bin/llvm-nm llvm-nm "/usr/bin/llvm-nm-${version}" \
--slave /usr/bin/llvm-objdump llvm-objdump "/usr/bin/llvm-objdump-${version}" \
--slave /usr/bin/llvm-ranlib llvm-ranlib "/usr/bin/llvm-ranlib-${version}" \
--slave /usr/bin/llvm-readobj llvm-readobj "/usr/bin/llvm-readobj-${version}" \
--slave /usr/bin/llvm-rtdyld llvm-rtdyld "/usr/bin/llvm-rtdyld-${version}" \
--slave /usr/bin/llvm-size llvm-size "/usr/bin/llvm-size-${version}" \
--slave /usr/bin/llvm-stress llvm-stress "/usr/bin/llvm-stress-${version}" \
--slave /usr/bin/llvm-symbolizer llvm-symbolizer "/usr/bin/llvm-symbolizer-${version}" \
--slave /usr/bin/llvm-tblgen llvm-tblgen "/usr/bin/llvm-tblgen-${version}"

update-alternatives \
--install /usr/bin/clang clang "/usr/bin/clang-${version}" "${priority}" \
--slave /usr/bin/clang++ clang++ "/usr/bin/clang++-${version}" \
--slave /usr/bin/asan_symbolize asan_symbolize "/usr/bin/asan_symbolize-${version}" \
--slave /usr/bin/c-index-test c-index-test "/usr/bin/c-index-test-${version}" \
--slave /usr/bin/clang-check clang-check "/usr/bin/clang-check-${version}" \
--slave /usr/bin/clang-cl clang-cl "/usr/bin/clang-cl-${version}" \
--slave /usr/bin/clang-cpp clang-cpp "/usr/bin/clang-cpp-${version}" \
--slave /usr/bin/clang-format clang-format "/usr/bin/clang-format-${version}" \
--slave /usr/bin/clang-format-diff clang-format-diff "/usr/bin/clang-format-diff-${version}" \
--slave /usr/bin/clang-include-fixer clang-include-fixer "/usr/bin/clang-include-fixer-${version}" \
--slave /usr/bin/clang-offload-bundler clang-offload-bundler "/usr/bin/clang-offload-bundler-${version}" \
--slave /usr/bin/clang-query clang-query "/usr/bin/clang-query-${version}" \
--slave /usr/bin/clang-rename clang-rename "/usr/bin/clang-rename-${version}" \
--slave /usr/bin/clang-reorder-fields clang-reorder-fields "/usr/bin/clang-reorder-fields-${version}" \
--slave /usr/bin/clang-tidy clang-tidy "/usr/bin/clang-tidy-${version}" \
--slave /usr/bin/lldb lldb "/usr/bin/lldb-${version}" \
--slave /usr/bin/lldb-server lldb-server "/usr/bin/lldb-server-${version}" \
--slave /usr/bin/lldb-dap lldb-dap "/usr/bin/lldb-dap-${version}" \
--slave /usr/bin/ld.lld ld.lld "/usr/bin/ld.lld-${version}"

update-alternatives \
--install /usr/bin/clangd clangd "/usr/bin/clangd-${version}" "${priority}"
}

function install_clang_via_apt() {
CLANG_VERSION="$1"

apt-get install -y --no-install-recommends \
"clang-$CLANG_VERSION" \
"clangd-$CLANG_VERSION" \
"clang-tidy-$CLANG_VERSION" \
"clang-format-$CLANG_VERSION" \
"clang-tools-$CLANG_VERSION" \
"lld-$CLANG_VERSION" \
"lldb-$CLANG_VERSION" \
"llvm-$CLANG_VERSION"

register_clang_version "$CLANG_VERSION" "$CLANG_VERSION"

}

function install_clang_via_llvm() {
CLANG_VERSION="$1"

apt-get install -y --no-install-recommends \
lsb-release \
wget \
software-properties-common \
gnupg

wget apt.llvm.org/llvm.sh -O "/tmp/llvm.sh"
chmod +x /tmp/llvm.sh

/tmp/llvm.sh "$CLANG_VERSION"
rm /tmp/llvm.sh

install_clang_via_apt "$CLANG_VERSION"

}

ARCH="$(uname -m)"

if [ "$ARCH" = "riscv64" ]; then
install_clang_via_apt 20
elif [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "aarch64" ]; then
install_clang_via_llvm 21
else
echo "invalid arch: '$ARCH'"
exit 2
fi
22 changes: 22 additions & 0 deletions .devcontainer/post_run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/usr/bin/env bash

set -xe

TARGET_DIR="/runtime/build_sym_link"

if [ -e "$TARGET_DIR" ]; then
rm "$TARGET_DIR"
fi

ARCH="$(uname -m)"

if [ "$ARCH" = "riscv64" ]; then
ln -s /work/build_riscv "$TARGET_DIR"
elif [ "$ARCH" = "aarch64" ]; then
ln -s /work/build_arm64 "$TARGET_DIR"
elif [ "$ARCH" = "x86_64" ]; then
ln -s /work/build "$TARGET_DIR"
else
echo "invalid arch: '$ARCH'"
exit 2
fi
52 changes: 52 additions & 0 deletions .devcontainer/riscv64/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"name": "Ubuntu 24.04 Dev RiscV64",
"build": {
"dockerfile": "../Dockerfile",
"args": {
"UBUNTU_VARIANT": "24.04",
"BUILD_PLATFORM": "linux/riscv64"
}
},
"runArgs": [
"--platform=linux/riscv64"
],
"mounts": [
"source=${localWorkspaceFolder},target=/work,type=bind,consistency=cached"
],
"postCreateCommand": "/tmp/post_run.sh",
"workspaceFolder": "/work",
"customizations": {
"vscode": {
"extensions": [
"xaver.clang-format",
"llvm-vs-code-extensions.vscode-clangd",
"mesonbuild.mesonbuild"
],
"settings": {
"terminal.integrated.shell.linux": "/bin/bash",
"clangd.path": "/usr/bin/clangd",
"clangd.arguments": [
"--all-scopes-completion",
"--background-index",
"--background-index-priority=background",
"--clang-tidy",
"--completion-style=bundled",
"--function-arg-placeholders",
"--enable-config",
"-j",
"3",
"--malloc-trim",
"--pretty",
"--header-insertion=never",
"--compile-commands-dir=/runtime/build_sym_link"
],
"[c]": {
"editor.defaultFormatter": "xaver.clang-format"
},
"[cpp]": {
"editor.defaultFormatter": "xaver.clang-format"
}
}
}
}
}
6 changes: 6 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ jobs:
use-clang: false
arm: true

- name: Linux (Clang, ARM64)
os: ubuntu
os-version: 24.04-arm
use-clang: true
arm: true

- name: Linux (GCC, x86_64)
os: ubuntu
os-version: 24.04
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
step-summary: true
file-annotations: true
ignore: subprojects|build|test|*.cpp|*.hpp
extra-args: -std=c23
extra-args: -std=c23 -DBIGINT_C_LIB_INTERNAL_USAGE

- uses: cpp-linter/cpp-linter-action@v2
name: Lint C++ Files
Expand Down
Loading
Loading