Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
24 changes: 24 additions & 0 deletions .github/workflows/format.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
on:
push:
branches: master
pull_request:
branches:
- master

name: format_check

jobs:
format_check:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2

- name: Install ClangFormat
run: sudo apt-get install -y clang-format-10

- name: Run ClangFormat
run: make format clang_format=clang-format-10

- name: Check for a non-empty diff
run: git diff-files -U --exit-code

8 changes: 8 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,11 @@ test: all

clean:
@Rscript -e 'devtools::clean_dll()'

clang_format=`which clang-format`
format: $(shell find . -name *.hpp) $(shell find . -name *.cpp)
ifeq ($(findstring version 10,$(shell ${clang_format} --version 2>/dev/null)),)
@echo "clang-format 10 is required"
else
@${clang_format} -i $?
endif
4 changes: 1 addition & 3 deletions cpp11test/src/test-list.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,7 @@ context("list-C++") {
}

test_that("list::iterator uses VECTOR_ELT") {
cpp11::writable::list x({
cpp11::writable::integers({1, 2})
});
cpp11::writable::list x({cpp11::writable::integers({1, 2})});
cpp11::integers first(*x.begin());
expect_true(first[0] == 1);
expect_true(first[1] == 2);
Expand Down
6 changes: 3 additions & 3 deletions cpp11test/src/test-list_of.cpp
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
#include <testthat.h>
#include "cpp11/strings.hpp"
#include "cpp11/doubles.hpp"
#include "cpp11/list.hpp"
#include "cpp11/list_of.hpp"
#include "cpp11/strings.hpp"

context("list_of-C++") {
test_that("list_of works") {
using namespace cpp11::literals;

cpp11::writable::list x({"x"_nm = cpp11::writable::doubles({1., 2., 3.}),
"y"_nm = cpp11::writable::doubles({4., 5., 6.})});
"y"_nm = cpp11::writable::doubles({4., 5., 6.})});

cpp11::list_of<cpp11::doubles> res(x);

Expand All @@ -24,7 +24,7 @@ context("list_of-C++") {
using namespace cpp11::literals;

cpp11::writable::list x({"x"_nm = cpp11::writable::doubles({1., 2., 3.}),
"y"_nm = cpp11::writable::doubles({4., 5., 6.})});
"y"_nm = cpp11::writable::doubles({4., 5., 6.})});

cpp11::writable::list_of<cpp11::writable::doubles> res(x);

Expand Down
4 changes: 2 additions & 2 deletions inst/include/cpp11.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
#include "cpp11/matrix.hpp"
#include "cpp11/named_arg.hpp"
#include "cpp11/protect.hpp"
#include "cpp11/r_string.hpp"
#include "cpp11/r_vector.hpp"
#include "cpp11/raws.hpp"
#include "cpp11/sexp.hpp"
#include "cpp11/r_string.hpp"
#include "cpp11/strings.hpp"
#include "cpp11/r_vector.hpp"
5 changes: 3 additions & 2 deletions inst/include/cpp11/attribute_proxy.hpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#pragma once

#include <initializer_list> // for initializer_list
#include <string> // for string, basic_string
#include <initializer_list> // for initializer_list
#include <string> // for string, basic_string

#include "cpp11/R.hpp" // for SEXP, SEXPREC, Rf_install, PROTECT, Rf_...
#include "cpp11/as.hpp" // for as_sexp
#include "cpp11/protect.hpp" // for protect, safe, protect::function
Expand Down
12 changes: 6 additions & 6 deletions inst/include/cpp11/data_frame.hpp
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
#pragma once

#include <cstdlib> // for abs
#include <initializer_list> // for initializer_list
#include <string> // for string, basic_string
#include <utility> // for move
#include <cstdlib> // for abs
#include <cstdlib>
#include <initializer_list> // for initializer_list
#include <string> // for string, basic_string
#include <utility> // for move

#include "R_ext/Arith.h" // for NA_INTEGER
#include "cpp11/R.hpp" // for Rf_xlength, SEXP, SEXPREC, INTEGER
#include "cpp11/attribute_proxy.hpp" // for attribute_proxy
#include "cpp11/list.hpp" // for list, r_vector<>::r_vector, r_v...
#include "cpp11/r_vector.hpp" // for r_vector

#include <cstdlib>

namespace cpp11 {

class named_arg;
Expand Down
7 changes: 4 additions & 3 deletions inst/include/cpp11/doubles.hpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#pragma once

#include <algorithm> // for min
#include <array> // for array
#include <initializer_list> // for initializer_list
#include <algorithm> // for min
#include <array> // for array
#include <initializer_list> // for initializer_list

#include "R_ext/Arith.h" // for ISNA
#include "cpp11/R.hpp" // for SEXP, SEXPREC, Rf_allocVector, REAL
#include "cpp11/as.hpp" // for as_sexp
Expand Down
3 changes: 2 additions & 1 deletion inst/include/cpp11/environment.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include <string> // for string, basic_string
#include <string> // for string, basic_string

#include "Rversion.h" // for R_VERSION, R_Version
#include "cpp11/R.hpp" // for SEXP, SEXPREC, Rf_install, Rf_findVarIn...
#include "cpp11/as.hpp" // for as_sexp
Expand Down
7 changes: 4 additions & 3 deletions inst/include/cpp11/external_pointer.hpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#pragma once

#include <cstddef> // for nullptr_t, NULL
#include <memory> // for bad_weak_ptr
#include <type_traits> // for add_lvalue_reference
#include <cstddef> // for nullptr_t, NULL
#include <memory> // for bad_weak_ptr
#include <type_traits> // for add_lvalue_reference

#include "cpp11/R.hpp" // for SEXP, SEXPREC, TYPEOF, R_NilValue, R_C...
#include "cpp11/protect.hpp" // for protect, safe, protect::function
#include "cpp11/r_vector.hpp" // for type_error
Expand Down
8 changes: 5 additions & 3 deletions inst/include/cpp11/function.hpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
#pragma once

#include <string.h> // for strcmp
#include <string> // for string, basic_string
#include <utility> // for forward
#include <string.h> // for strcmp

#include <string> // for string, basic_string
#include <utility> // for forward

#include "cpp11/R.hpp" // for SEXP, SEXPREC, CDR, Rf_install, SETCAR
#include "cpp11/as.hpp" // for as_sexp
#include "cpp11/named_arg.hpp" // for named_arg
Expand Down
7 changes: 4 additions & 3 deletions inst/include/cpp11/integers.hpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#pragma once

#include <algorithm> // for min
#include <array> // for array
#include <initializer_list> // for initializer_list
#include <algorithm> // for min
#include <array> // for array
#include <initializer_list> // for initializer_list

#include "R_ext/Arith.h" // for NA_INTEGER
#include "cpp11/R.hpp" // for SEXP, SEXPREC, Rf_allocVector
#include "cpp11/as.hpp" // for as_sexp
Expand Down
3 changes: 2 additions & 1 deletion inst/include/cpp11/list.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include <initializer_list> // for initializer_list
#include <initializer_list> // for initializer_list

#include "cpp11/R.hpp" // for SEXP, SEXPREC, SET_VECTOR_ELT
#include "cpp11/attribute_proxy.hpp" // for attribute_proxy
#include "cpp11/named_arg.hpp" // for named_arg
Expand Down
3 changes: 2 additions & 1 deletion inst/include/cpp11/list_of.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include <string> // for string, basic_string
#include <string> // for string, basic_string

#include "cpp11/R.hpp" // for R_xlen_t, SEXP, SEXPREC, LONG_VECTOR_SUPPORT
#include "cpp11/list.hpp" // for list

Expand Down
7 changes: 4 additions & 3 deletions inst/include/cpp11/logicals.hpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#pragma once

#include <algorithm> // for min
#include <array> // for array
#include <initializer_list> // for initializer_list
#include <algorithm> // for min
#include <array> // for array
#include <initializer_list> // for initializer_list

#include "cpp11/R.hpp" // for Rboolean, SEXP, SEXPREC, Rf_all...
#include "cpp11/attribute_proxy.hpp" // for attribute_proxy
#include "cpp11/named_arg.hpp" // for named_arg
Expand Down
3 changes: 2 additions & 1 deletion inst/include/cpp11/matrix.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include <string> // for string
#include <string> // for string

#include "cpp11/R.hpp" // for SEXP, SEXPREC, R_xlen_t, Rboolean, INT...
#include "cpp11/r_string.hpp" // for r_string
#include "cpp11/r_vector.hpp" // for r_vector
Expand Down
8 changes: 5 additions & 3 deletions inst/include/cpp11/named_arg.hpp
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
#pragma once

#include <stddef.h> // for size_t
#include <stddef.h> // for size_t

#include <initializer_list> // for initializer_list
#include "cpp11/R.hpp" // for SEXP, SEXPREC, literals
#include "cpp11/as.hpp" // for as_sexp

#include "cpp11/R.hpp" // for SEXP, SEXPREC, literals
#include "cpp11/as.hpp" // for as_sexp

namespace cpp11 {
class named_arg {
Expand Down
12 changes: 7 additions & 5 deletions inst/include/cpp11/protect.hpp
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
#pragma once

#include <csetjmp> // for longjmp, setjmp, jmp_buf
#include <exception> // for exception
#include <stdexcept> // for std::runtime_error
#include <string> // for string, basic_string
#include <tuple> // for tuple, make_tuple

// NB: cpp11/R.hpp must precede R_ext includes so our definition of Rboolean is used
#include "cpp11/R.hpp" // for SEXP, SEXPREC, CDR, R_NilValue, CAR, R_Pres...

#include <csetjmp> // for longjmp, setjmp, jmp_buf
#include <exception> // for exception
#include <stdexcept> // for std::runtime_error
#include <string> // for string, basic_string
#include <tuple> // for tuple, make_tuple
#include "R_ext/Error.h" // for Rf_error, Rf_warning
#include "R_ext/Print.h" // for REprintf
#include "R_ext/Utils.h" // for R_CheckUserInterrupt
Expand Down
5 changes: 3 additions & 2 deletions inst/include/cpp11/r_string.hpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#pragma once

#include <string> // for string, basic_string, operator==
#include <type_traits> // for is_convertible, enable_if
#include <string> // for string, basic_string, operator==
#include <type_traits> // for is_convertible, enable_if

#include "R_ext/Memory.h" // for vmaxget, vmaxset
#include "cpp11/R.hpp" // for SEXP, SEXPREC, Rf_mkCharCE, Rf_translat...
#include "cpp11/as.hpp" // for as_sexp
Expand Down
24 changes: 13 additions & 11 deletions inst/include/cpp11/r_vector.hpp
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
#pragma once

#include <stddef.h> // for ptrdiff_t, size_t
#include <algorithm> // for max
#include <array> // for array
#include <cstdio> // for snprintf
#include <exception> // for exception
#include <initializer_list> // for initializer_list
#include <iterator> // for forward_iterator_tag, random_ac...
#include <stdexcept> // for out_of_range
#include <string> // for string, basic_string
#include <type_traits> // for decay, is_same, enable_if, is_c...
#include <utility> // for declval
#include <stddef.h> // for ptrdiff_t, size_t

#include <algorithm> // for max
#include <array> // for array
#include <cstdio> // for snprintf
#include <exception> // for exception
#include <initializer_list> // for initializer_list
#include <iterator> // for forward_iterator_tag, random_ac...
#include <stdexcept> // for out_of_range
#include <string> // for string, basic_string
#include <type_traits> // for decay, is_same, enable_if, is_c...
#include <utility> // for declval

#include "cpp11/R.hpp" // for R_xlen_t, SEXP, SEXPREC, Rf_xle...
#include "cpp11/attribute_proxy.hpp" // for attribute_proxy
#include "cpp11/protect.hpp" // for protect_sexp, release_protect
Expand Down
9 changes: 5 additions & 4 deletions inst/include/cpp11/raws.hpp
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#pragma once

#include <algorithm> // for min
#include <array> // for array
#include <cstdint> // for uint8_t
#include <initializer_list> // for initializer_list
#include <algorithm> // for min
#include <array> // for array
#include <cstdint> // for uint8_t
#include <initializer_list> // for initializer_list

#include "cpp11/R.hpp" // for RAW, SEXP, SEXPREC, Rf_allocVector
#include "cpp11/attribute_proxy.hpp" // for attribute_proxy
#include "cpp11/named_arg.hpp" // for named_arg
Expand Down
6 changes: 4 additions & 2 deletions inst/include/cpp11/sexp.hpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
#pragma once

#include <stddef.h> // for size_t
#include <string> // for string, basic_string
#include <stddef.h> // for size_t

#include <string> // for string, basic_string

#include "cpp11/R.hpp" // for SEXP, SEXPREC, REAL_ELT, R_NilV...
#include "cpp11/attribute_proxy.hpp" // for attribute_proxy
#include "cpp11/protect.hpp" // for protect_sexp, release_protect
Expand Down
5 changes: 3 additions & 2 deletions inst/include/cpp11/strings.hpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#pragma once

#include <initializer_list> // for initializer_list
#include <string> // for string, basic_string
#include <initializer_list> // for initializer_list
#include <string> // for string, basic_string

#include "cpp11/R.hpp" // for SEXP, TYPEOF, SEXPREC, SET_STRI...
#include "cpp11/as.hpp" // for as_sexp
#include "cpp11/attribute_proxy.hpp" // for attribute_proxy
Expand Down