-
Notifications
You must be signed in to change notification settings - Fork 1k
Rtools gcc type errors, old data.table fwrite #7689
Copy link
Copy link
Open
Labels
atimeRequests related to adding/improving/monitoring performance regression tests via atime.Requests related to adding/improving/monitoring performance regression tests via atime.fwrite
Description
I am trying to run a performance test,
tinfo <- atime::atime_pkg_test_info("../..")
names(tinfo$test.call)
tname <- "DT[by] fixed in #4558"
tcall <- tinfo$test.call[[tname]]
tres <- eval(tcall)it includes comparison with old data.table versions, but Rtools 4.5 gcc on windows 11 gives me type errors.
I guess this is specific to Rtools gcc, because performance tests are working on Ubuntu GHA.
gcc -I"c:/PROGRA~1/R/R-45~1.2/include" -DNDEBUG -I"C:/rtools45/x86_64-w64-mingw32.static.posix/include" -fopenmp -O2 -Wall -std=gnu2x -mfpmath=sse -msse2 -mstackrealign -c fwrite.c -o fwrite.o
fwrite.c:60:6: error: conflicting types for 'writeBool8'; have 'void(int8_t *, int64_t, char **)' {aka 'void(signed char *, long long int, char **)'}
60 | void writeBool8(int8_t *col, int64_t row, char **pch)
| ^~~~~~~~~~
In file included from fwrite.c:25:
fwrite.h:14:6: note: previous declaration of 'writeBool8' with type 'void(void)'
14 | void writeBool8();
| ^~~~~~~~~~
fwrite.c:68:6: error: conflicting types for 'writeBool32'; have 'void(int32_t *, int64_t, char **)' {aka 'void(int *, long long int, char **)'}
68 | void writeBool32(int32_t *col, int64_t row, char **pch)
| ^~~~~~~~~~~
fwrite.h:15:6: note: previous declaration of 'writeBool32' with type 'void(void)'
15 | void writeBool32();
| ^~~~~~~~~~~
fwrite.c:80:6: error: conflicting types for 'writeBool32AsString'; have 'void(int32_t *, int64_t, char **)' {aka 'void(int *, long long int, char **)'}
80 | void writeBool32AsString(int32_t *col, int64_t row, char **pch)
| ^~~~~~~~~~~~~~~~~~~
fwrite.h:16:6: note: previous declaration of 'writeBool32AsString' with type 'void(void)'
16 | void writeBool32AsString();
| ^~~~~~~~~~~~~~~~~~~
fwrite.c:106:6: error: conflicting types for 'writeInt32'; have 'void(int32_t *, int64_t, char **)' {aka 'void(int *, long long int, char **)'}
106 | void writeInt32(int32_t *col, int64_t row, char **pch)
| ^~~~~~~~~~
fwrite.h:17:6: note: previous declaration of 'writeInt32' with type 'void(void)'
17 | void writeInt32();
| ^~~~~~~~~~
fwrite.c:122:6: error: conflicting types for 'writeInt64'; have 'void(int64_t *, int64_t, char **)' {aka 'void(long long int *, long long int, char **)'}
122 | void writeInt64(int64_t *col, int64_t row, char **pch)
| ^~~~~~~~~~
fwrite.h:18:6: note: previous declaration of 'writeInt64' with type 'void(void)'
18 | void writeInt64();
| ^~~~~~~~~~
fwrite.c:177:6: error: conflicting types for 'writeFloat64'; have 'void(double *, int64_t, char **)' {aka 'void(double *, long long int, char **)'}
177 | void writeFloat64(double *col, int64_t row, char **pch)
| ^~~~~~~~~~~~
fwrite.h:19:6: note: previous declaration of 'writeFloat64' with type 'void(void)'
19 | void writeFloat64();
| ^~~~~~~~~~~~
fwrite.c:301:6: error: conflicting types for 'writeComplex'; have 'void(Rcomplex *, int64_t, char **)' {aka 'void(Rcomplex *, long long int, char **)'}
301 | void writeComplex(Rcomplex *col, int64_t row, char **pch)
| ^~~~~~~~~~~~
fwrite.h:20:6: note: previous declaration of 'writeComplex' with type 'void(void)'
20 | void writeComplex();
| ^~~~~~~~~~~~
fwrite.c:340:6: error: conflicting types for 'writeITime'; have 'void(int32_t *, int64_t, char **)' {aka 'void(int *, long long int, char **)'}
340 | void writeITime(int32_t *col, int64_t row, char **pch) {
| ^~~~~~~~~~
fwrite.h:21:6: note: previous declaration of 'writeITime' with type 'void(void)'
21 | void writeITime();
| ^~~~~~~~~~
fwrite.c:394:6: error: conflicting types for 'writeDateInt32'; have 'void(int32_t *, int64_t, char **)' {aka 'void(int *, long long int, char **)'}
394 | void writeDateInt32(int32_t *col, int64_t row, char **pch) {
| ^~~~~~~~~~~~~~
fwrite.h:22:6: note: previous declaration of 'writeDateInt32' with type 'void(void)'
22 | void writeDateInt32();
| ^~~~~~~~~~~~~~
fwrite.c:398:6: error: conflicting types for 'writeDateFloat64'; have 'void(double *, int64_t, char **)' {aka 'void(double *, long long int, char **)'}
398 | void writeDateFloat64(double *col, int64_t row, char **pch) {
| ^~~~~~~~~~~~~~~~
fwrite.h:23:6: note: previous declaration of 'writeDateFloat64' with type 'void(void)'
23 | void writeDateFloat64();
| ^~~~~~~~~~~~~~~~
fwrite.c:402:6: error: conflicting types for 'writePOSIXct'; have 'void(double *, int64_t, char **)' {aka 'void(double *, long long int, char **)'}
402 | void writePOSIXct(double *col, int64_t row, char **pch)
| ^~~~~~~~~~~~
fwrite.h:24:6: note: previous declaration of 'writePOSIXct' with type 'void(void)'
24 | void writePOSIXct();
| ^~~~~~~~~~~~
fwrite.c:462:6: error: conflicting types for 'writeNanotime'; have 'void(int64_t *, int64_t, char **)' {aka 'void(long long int *, long long int, char **)'}
462 | void writeNanotime(int64_t *col, int64_t row, char **pch)
| ^~~~~~~~~~~~~
fwrite.h:25:6: note: previous declaration of 'writeNanotime' with type 'void(void)'
25 | void writeNanotime();
| ^~~~~~~~~~~~~
fwrite.c:545:6: error: conflicting types for 'writeString'; have 'void(const void *, int64_t, char **)' {aka 'void(const void *, long long int, char **)'}
545 | void writeString(const void *col, int64_t row, char **pch)
| ^~~~~~~~~~~
fwrite.h:26:6: note: previous declaration of 'writeString' with type 'void(void)'
26 | void writeString();
| ^~~~~~~~~~~
fwrite.c:550:6: error: conflicting types for 'writeCategString'; have 'void(const void *, int64_t, char **)' {aka 'void(const void *, long long int, char **)'}
550 | void writeCategString(const void *col, int64_t row, char **pch)
| ^~~~~~~~~~~~~~~~
fwrite.h:27:6: note: previous declaration of 'writeCategString' with type 'void(void)'
27 | void writeCategString();
| ^~~~~~~~~~~~~~~~
In file included from fwrite.h:6:
fwrite.c: In function 'fwriteMain':
fwrite.c:631:15: warning: format '%d' expects argument of type 'int', but argument 3 has type 'const void *' [-Wformat=]
631 | DTPRINT(_("\nargs.doRowNames=%d args.rowNames=%d doQuote=%d args.nrow=%"PRId64" args.ncol=%d eolLen=%d\n"),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
po.h:3:42: note: in definition of macro '_'
3 | #define _(String) dgettext("data.table", String)
| ^~~~~~
fwrite.c:631:52: note: format string is defined here
631 | DTPRINT(_("\nargs.doRowNames=%d args.rowNames=%d doQuote=%d args.nrow=%"PRId64" args.ncol=%d eolLen=%d\n"),
| ~^
| |
| int
| %p
fwrite.c:713:23: warning: format '%d' expects argument of type 'int', but argument 2 has type 'size_t' {aka 'long long unsigned int'} [-Wformat=]
713 | if (!buff) STOP(_("Unable to allocate %d MiB for header: %s"), headerLen / 1024 / 1024, strerror(errno));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
po.h:3:42: note: in definition of macro '_'
3 | #define _(String) dgettext("data.table", String)
| ^~~~~~
fwrite.c:713:44: note: format string is defined here
713 | if (!buff) STOP(_("Unable to allocate %d MiB for header: %s"), headerLen / 1024 / 1024, strerror(errno));
| ~^
| |
| int
| %lld
fwrite.c:748:18: warning: format '%d' expects argument of type 'int', but argument 2 has type 'size_t' {aka 'long long unsigned int'} [-Wformat=]
748 | STOP(_("Unable to allocate %d MiB for zbuffer: %s"), zbuffSize / 1024 / 1024, strerror(errno)); // # nocov
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
po.h:3:42: note: in definition of macro '_'
3 | #define _(String) dgettext("data.table", String)
| ^~~~~~
fwrite.c:748:39: note: format string is defined here
748 | STOP(_("Unable to allocate %d MiB for zbuffer: %s"), zbuffSize / 1024 / 1024, strerror(errno)); // # nocov
| ~^
| |
| int
| %lld
fwrite.c:812:31: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long long unsigned int' [-Wformat=]
812 | STOP("Unable to allocate %d MB * %d thread buffers; '%d: %s'. Please read ?fwrite for nThread, buffMB and verbose options.",
| ~^
| |
| int
| %lld
813 | (size_t)buffSize/(1024^2), nth, errno, strerror(errno));
| ~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| long long unsigned int
fwrite.c:822:33: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long long unsigned int' [-Wformat=]
822 | STOP("Unable to allocate %d MB * %d thread compressed buffers; '%d: %s'. Please read ?fwrite for nThread, buffMB and verbose options.",
| ~^
| |
| int
| %lld
823 | (size_t)zbuffSize/(1024^2), nth, errno, strerror(errno));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| long long unsigned int
make: *** [c:/PROGRA~1/R/R-45~1.2/etc/x64/Makeconf:289: fwrite.o] Error 1
ERROR: compilation failed for package 'data.table.f750448a2efcd258b3aba57136ee6a95ce56b302'
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
atimeRequests related to adding/improving/monitoring performance regression tests via atime.Requests related to adding/improving/monitoring performance regression tests via atime.fwrite