phpv8 / v8js

V8 Javascript Engine for PHP — This PHP extension embeds the Google V8 Javascript Engine
http://pecl.php.net/package/v8js
MIT License
1.83k stars 200 forks source link

V8Js 3.0.0 #525

Open redbullmarky opened 7 months ago

redbullmarky commented 7 months ago

Hey It's probably time to consider creating a new release, as we're a little behind despite having added some little features and fixes since these:

Release: Version 2.1.1 (June 19) Tag: Version 2.1.2 (Aug 20)

I'll start collecting some of the things changed since, so the notes & docs can be updated etc.

dinamic commented 3 months ago

The major selling point for the new tag would be the PHP 8 support.

The current version in PECL is 2.1.2 and it does not play well with PHP 8.

configure:5825: checking for V8 version
configure:5855: g++ -o conftest -g -O2  -I/usr/local/include -std=c++11  -L/usr/local/lib conftest.cpp -lstdc++   -lv8_libplatform -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lv8  >&5
In file included from /usr/include/node/v8-local-handle.h:12,
                 from /usr/include/node/v8-array-buffer.h:12,
                 from /usr/include/node/v8.h:24,
                 from conftest.cpp:10:
/usr/include/node/v8-internal.h: In function 'void v8::internal::PerformCastCheck(T*)':
/usr/include/node/v8-internal.h:646:38: error: 'remove_cv_t' is not a member of 'std'; did you mean 'remove_cv'?
  646 |             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
      |                                      ^~~~~~~~~~~
      |                                      remove_cv
/usr/include/node/v8-internal.h:646:38: error: 'remove_cv_t' is not a member of 'std'; did you mean 'remove_cv'?
  646 |             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
      |                                      ^~~~~~~~~~~
      |                                      remove_cv
/usr/include/node/v8-internal.h:646:50: error: template argument 2 is invalid
  646 |             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
      |                                                  ^
/usr/include/node/v8-internal.h:646:63: error: '::Perform' has not been declared
  646 |             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
      |                                                               ^~~~~~~
configure:5855: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PHP_V8_EXEC_PATH "/usr/local/lib/libv8.so"
| /* end confdefs.h.  */
| #include <v8.h>
| #include <iostream>
| #include <fstream>
| using namespace std;
|
| int main ()
| {
|   ofstream testfile ("conftestval");
|   if (testfile.is_open()) {
|       testfile << v8::V8::GetVersion();
|       testfile << "\n";
|       testfile.close();
|       return 0;
|   }
|   return 1;
| }
configure:5867: result: NONE
configure:5894: error: could not determine libv8 version