andrjohns / QuickJSR

R interface for the QuickJS lightweight javascript engine
Other
18 stars 0 forks source link

QuickJSR 1.2.0 could not be installed on FreeBSD #53

Closed jszhao closed 5 months ago

jszhao commented 5 months ago

I have tried to install QuickJSR 1.2.0 (the version on CRAN) on a FreeBSD workstation. However, I get the following error:

quickjs/quickjs-libc.c:702:12: error: use of undeclared identifier 'environ'
  702 |     envp = environ;
      |            ^
quickjs/quickjs-libc.c:1941:5: error: unknown type name 'sighandler_t'; did you mean '__sighandler_t'?
 1941 |     sighandler_t handler;
      |     ^~~~~~~~~~~~
      |     __sighandler_t
/usr/include/sys/signal.h:161:14: note: '__sighandler_t' declared here
  161 | typedef void __sighandler_t(int);
      |              ^
quickjs/quickjs-libc.c:1958:21: error: non-object type '__sighandler_t' (aka 'void (int)') is not assignable
 1958 |             handler = SIG_DFL;
      |             ~~~~~~~ ^
quickjs/quickjs-libc.c:1960:21: error: non-object type '__sighandler_t' (aka 'void (int)') is not assignable
 1960 |             handler = SIG_IGN;
      |             ~~~~~~~ ^
quickjs/quickjs-libc.c:2908:19: error: use of undeclared identifier 'environ'
 2908 |     char **envp = environ;
      |                   ^
quickjs/quickjs-libc.c:3084:17: error: use of undeclared identifier 'environ'
 3084 |     if (envp != environ) {
      |                 ^
6 errors generated.

Additional, there are also two warnings:

quickjs/quickjs.c:10855:30: warning: implicit conversion from 'long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
 10855 |                 else if (d > INT64_MAX)
       |                            ~ ^~~~~~~~~
/usr/include/x86/_stdint.h:86:19: note: expanded from macro 'INT64_MAX'
   86 | #define INT64_MAX       0x7fffffffffffffff
      |                         ^~~~~~~~~~~~~~~~~~
quickjs/quickjs.c:55457:25: warning: implicit conversion from 'long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
 55457 |     if (isnan(d) || d > INT64_MAX)
       |                       ~ ^~~~~~~~~
/usr/include/x86/_stdint.h:86:19: note: expanded from macro 'INT64_MAX'
   86 | #define INT64_MAX       0x7fffffffffffffff
      |                         ^~~~~~~~~~~~~~~~~~
2 warnings generated.

Now, there are several packages that depends on QuickJSR, it's important to make it work. Thanks a lot.