diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index 0fb2392aed..0000000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM registry.gitlab.com/jangorecki/dockerfiles/r-devel-gcc - -RUN apt-get -qq update \ - && apt-get install -y --no-install-recommends git diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index a1447f19e1..0000000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "build": { "dockerfile": "Dockerfile" } -} diff --git a/.devcontainer/r-devel-clang-ubsan/.Rprofile b/.devcontainer/r-devel-clang-ubsan/.Rprofile new file mode 100644 index 0000000000..344dd9f3cd --- /dev/null +++ b/.devcontainer/r-devel-clang-ubsan/.Rprofile @@ -0,0 +1,2 @@ +Sys.setenv(PROJ_PATH='/workspaces/data.table') +if (file.exists('.dev/cc.R')) source('.dev/cc.R') diff --git a/.devcontainer/r-devel-clang-ubsan/Dockerfile b/.devcontainer/r-devel-clang-ubsan/Dockerfile new file mode 100644 index 0000000000..edb4b245a4 --- /dev/null +++ b/.devcontainer/r-devel-clang-ubsan/Dockerfile @@ -0,0 +1,23 @@ +FROM rocker/r-devel-ubsan-clang:latest + +RUN apt-get -qq update \ + && apt-get install -y --no-install-recommends git + +COPY DESCRIPTION . + +# install dependencies without ubsan flags +RUN Rscript -e ' \ +read.dcf("DESCRIPTION", c("Imports", "Suggests")) |> \ + tools:::.split_dependencies() |> \ + names() |> \ + setdiff(tools:::.get_standard_package_names()$base) |> \ + install.packages() \ +' + +# setup cc() +WORKDIR /root +COPY .devcontainer/r-devel-clang-ubsan/.Rprofile . + +# set ubsan flags +WORKDIR .R +COPY .devcontainer/r-devel-clang-ubsan/Makevars . diff --git a/.devcontainer/r-devel-clang-ubsan/Makevars b/.devcontainer/r-devel-clang-ubsan/Makevars new file mode 100644 index 0000000000..1d241cb423 --- /dev/null +++ b/.devcontainer/r-devel-clang-ubsan/Makevars @@ -0,0 +1,6 @@ +CC=clang -fsanitize=address,undefined -fno-sanitize=float-divide-by-zero -fno-sanitize=alignment -fno-omit-frame-pointer +CXX=clang++ -fsanitize=address,undefined -fno-sanitize=float-divide-by-zero -fno-sanitize=alignment -fno-omit-frame-pointer -frtti +CFLAGS=-g -O3 -Wall -pedantic +FFLAGS=-g -O2 +CXXFLAGS=-g -O3 -Wall -pedantic +LDFLAGS=-L/usr/lib/gcc/x86_64-linux-gnu/11/libubsan.so -lubsan diff --git a/.devcontainer/r-devel-clang-ubsan/devcontainer.json b/.devcontainer/r-devel-clang-ubsan/devcontainer.json new file mode 100644 index 0000000000..f1d985f31e --- /dev/null +++ b/.devcontainer/r-devel-clang-ubsan/devcontainer.json @@ -0,0 +1,4 @@ +{ + "build": { "dockerfile": "Dockerfile", "context": "../.." }, + "customizations": { "vscode": { "extensions": [ "REditorSupport.r" ] } } +} diff --git a/.devcontainer/r-devel-gcc/.Rprofile b/.devcontainer/r-devel-gcc/.Rprofile new file mode 100644 index 0000000000..344dd9f3cd --- /dev/null +++ b/.devcontainer/r-devel-gcc/.Rprofile @@ -0,0 +1,2 @@ +Sys.setenv(PROJ_PATH='/workspaces/data.table') +if (file.exists('.dev/cc.R')) source('.dev/cc.R') diff --git a/.devcontainer/r-devel-gcc/Dockerfile b/.devcontainer/r-devel-gcc/Dockerfile new file mode 100644 index 0000000000..8ddeed4d8c --- /dev/null +++ b/.devcontainer/r-devel-gcc/Dockerfile @@ -0,0 +1,18 @@ +FROM registry.gitlab.com/jangorecki/dockerfiles/r-devel-gcc + +RUN apt-get -qq update \ + && apt-get install -y --no-install-recommends git + +COPY DESCRIPTION . + +RUN Rscript -e ' \ +read.dcf("DESCRIPTION", c("Imports", "Suggests")) |> \ + tools:::.split_dependencies() |> \ + names() |> \ + setdiff(tools:::.get_standard_package_names()$base) |> \ + install.packages() \ +' + +# setup cc() +WORKDIR /root +COPY .devcontainer/r-devel-gcc/.Rprofile . diff --git a/.devcontainer/r-devel-gcc/devcontainer.json b/.devcontainer/r-devel-gcc/devcontainer.json new file mode 100644 index 0000000000..f1d985f31e --- /dev/null +++ b/.devcontainer/r-devel-gcc/devcontainer.json @@ -0,0 +1,4 @@ +{ + "build": { "dockerfile": "Dockerfile", "context": "../.." }, + "customizations": { "vscode": { "extensions": [ "REditorSupport.r" ] } } +}