Skip Menu |

This queue is for tickets about the JavaScript-V8 CPAN distribution.

Report information
The Basics
Id: 125397
Status: open
Priority: 0/
Queue: JavaScript-V8

People
Owner: Nobody in particular
Requestors: jkeenan [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Build failure with perl-5.28.0-RC1 on FreeBSD-11.1
Attempted today. clang is C compiler. cpanm is installer. Excerpt of cpanm build.log below: { author => "DGL", dist => "JavaScript-V8", distname => "JavaScript-V8-0.07", distversion => 0.07, grade => "FAIL", prereqs => undef, test_output => [ "Building and testing JavaScript-V8-0.07", "cp lib/JavaScript/V8.pm blib/lib/JavaScript/V8.pm", "cp lib/JavaScript/V8/Context.pm blib/lib/JavaScript/V8/Context.pm", "Running Mkbootstrap for V8 ()", "chmod 644 \"V8.bs\"", "\"/usr/home/jkeenan/var/tad/testing/perl-5.28.0-RC1/bin/perl\" -MExtUtils::Command::MM -e 'cp_nonempty' -- V8.bs blib/arch/auto/JavaScript/V8/V8.bs 644", "g++ -c -I. -fpermissive -O2 -pipe -fstack-protector -fno-strict-aliasing -DVERSION=\\\"0.07\\\" -DXS_VERSION=\\\"0.07\\\" -DPIC -fPIC \"-I/usr/home/jkeenan/var/tad/testing/perl-5.28.0-RC1/lib/5.28.0/amd64-freebsd/CORE\" V8Context.cpp", "V8Context.cpp: In constructor 'ObjectData::ObjectData(V8Context*, v8::Handle<v8::Object>, SV*)':", "V8Context.cpp:140:45: warning: 'static v8::Persistent<S> v8::Persistent<T>::New(v8::Handle<T>) [with T = v8::Object]' is deprecated [-Wdeprecated-declarations]", " , object(Persistent<Object>::New(object_))", " ^", "In file included from V8Context.h:4:0,", " from V8Context.cpp:1:", "/usr/local/include/v8.h:4932:15: note: declared here", " Persistent<T> Persistent<T>::New(Handle<T> that) {", " ^~~~~~~~~~~~~", "V8Context.cpp: In destructor 'virtual ObjectData::~ObjectData()':", "V8Context.cpp:152:20: warning: 'void v8::Persistent<T>::Dispose() [with T = v8::Object]' is deprecated [-Wdeprecated-declarations]", " object.Dispose();", " ^", "In file included from V8Context.h:4:0,", " from V8Context.cpp:1:", "/usr/local/include/v8.h:4996:6: note: declared here", " void Persistent<T>::Dispose() {", " ^~~~~~~~~~~~~", "V8Context.cpp: In constructor 'PerlObjectData::PerlObjectData(V8Context*, v8::Handle<v8::Object>, SV*)':", "V8Context.cpp:166:50: warning: 'void v8::Persistent<T>::MakeWeak(void*, v8::WeakReferenceCallback) [with T = v8::Object; v8::WeakReferenceCallback = void (*)(v8::Persistent<v8::Value>, void*)]' is deprecated [-Wdeprecated-declarations]", " object.MakeWeak(this, PerlObjectData::destroy);", " ^", "In file included from V8Context.h:4:0,", " from V8Context.cpp:1:", "/usr/local/include/v8.h:5013:6: note: declared here", " void Persistent<T>::MakeWeak(void* parameters, WeakReferenceCallback callback) {", " ^~~~~~~~~~~~~", "V8Context.cpp: In constructor 'PerlFunctionData::PerlFunctionData(V8Context*, SV*)':", "V8Context.cpp:238:24: error: 'Wrap' is not a member of 'v8::External'", " &External::Wrap(this)", " ^~~~~~~~", "V8Context.cpp: In static member function 'static v8::Handle<v8::Value> PerlFunctionData::v8invoke(const v8::Arguments&)':", "V8Context.cpp:247:65: error: 'Unwrap' is not a member of 'v8::External'", " PerlFunctionData* data = static_cast<PerlFunctionData*>(External::Unwrap(args[0]));", " ^~~~~~~~", "V8Context.cpp: In constructor 'V8Context::V8Context(int, const char*, bool, const char*)':", "V8Context.cpp:327:84: warning: 'static v8::Persistent<S> v8::Persistent<T>::New(v8::Handle<T>) [with T = v8::Function]' is deprecated [-Wdeprecated-declarations]", " make_function = Persistent<Function>::New(Handle<Function>::Cast(script->Run()));", " ^", "In file included from V8Context.h:4:0,", " from V8Context.cpp:1:", "/usr/local/include/v8.h:4932:15: note: declared here", " Persistent<T> Persistent<T>::New(Handle<T> that) {", " ^~~~~~~~~~~~~", "V8Context.cpp:329:62: warning: 'static v8::Persistent<S> v8::Persistent<T>::New(v8::Handle<T>) [with T = v8::String]' is deprecated [-Wdeprecated-declarations]", " string_wrap = Persistent<String>::New(String::New(\"wrap\"));", " ^", "In file included from V8Context.h:4:0,", " from V8Context.cpp:1:", "/usr/local/include/v8.h:4932:15: note: declared here", " Persistent<T> Persistent<T>::New(Handle<T> that) {", " ^~~~~~~~~~~~~", "V8Context.cpp: In member function 'void V8Context::register_object(ObjectData*)':", "V8Context.cpp:336:47: error: 'Wrap' is not a member of 'v8::External'", " data->object->SetHiddenValue(string_wrap, External::Wrap(data));", " ^~~~~~~~", "V8Context.cpp: In destructor 'V8Context::~V8Context()':", "V8Context.cpp:353:26: warning: 'void v8::Persistent<T>::Dispose() [with T = v8::Object]' is deprecated [-Wdeprecated-declarations]", " it->second.Dispose();", " ^", "In file included from V8Context.h:4:0,", " from V8Context.cpp:1:", "/usr/local/include/v8.h:4996:6: note: declared here", " void Persistent<T>::Dispose() {", " ^~~~~~~~~~~~~", "V8Context.cpp:355:21: warning: 'void v8::Persistent<T>::Dispose() [with T = v8::Context]' is deprecated [-Wdeprecated-declarations]", " context.Dispose();", " ^", "In file included from V8Context.h:4:0,", " from V8Context.cpp:1:", "/usr/local/include/v8.h:4996:6: note: declared here", " void Persistent<T>::Dispose() {", " ^~~~~~~~~~~~~", "V8Context.cpp: In member function 'SV* V8Context::seen_v8(v8::Handle<v8::Object>)':", "V8Context.cpp:492:37: error: 'Unwrap' is not a member of 'v8::External'", " ObjectData* data = (ObjectData*)External::Unwrap(wrap);", " ^~~~~~~~", "V8Context.cpp: In member function 'v8::Handle<v8::Object> V8Context::get_prototype(SV*)':", "V8Context.cpp:585:76: warning: 'static v8::Persistent<S> v8::Persistent<T>::New(v8::Handle<T>) [with T = v8::Object]' is deprecated [-Wdeprecated-declarations]", " prototype = prototypes[pkg] = Persistent<Object>::New(Object::New());", " ^", "In file included from V8Context.h:4:0,", " from V8Context.cpp:1:", "/usr/local/include/v8.h:4932:15: note: declared here", " Persistent<T> Persistent<T>::New(Handle<T> that) {", " ^~~~~~~~~~~~~", "*** Error code 1", "", "Stop.", "make: stopped in /usr/home/jkeenan/var/tad/testing/perl-5.28.0-RC1/.cpanm/work/1527089479.86980/JavaScript-V8-0.07", "-> FAIL Installing JavaScript::V8 failed. See /usr/home/jkeenan/var/tad/testing/perl-5.28.0-RC1/.cpanm/work/1527089479.86980/build.log for details. Retry with --force to force install it.", ], via => "App::cpanminus::reporter 0.17 (1.7043)", } Thank you very much. Jim Keenan
On 2018-05-24 09:42:57, JKEENAN wrote: Show quoted text
> Attempted today. clang is C compiler. cpanm is installer. Excerpt > of cpanm build.log below: > > { > author => "DGL", > dist => "JavaScript-V8", > distname => "JavaScript-V8-0.07", > distversion => 0.07, > grade => "FAIL", > prereqs => undef, > test_output => [ > "Building and testing JavaScript-V8-0.07", > "cp lib/JavaScript/V8.pm blib/lib/JavaScript/V8.pm", > "cp lib/JavaScript/V8/Context.pm > blib/lib/JavaScript/V8/Context.pm", > "Running Mkbootstrap for V8 ()", > "chmod 644 \"V8.bs\"", > "\"/usr/home/jkeenan/var/tad/testing/perl-5.28.0-RC1/bin/perl\" > -MExtUtils::Command::MM -e 'cp_nonempty' -- V8.bs > blib/arch/auto/JavaScript/V8/V8.bs 644", > "g++ -c -I. -fpermissive -O2 -pipe -fstack-protector -fno- > strict-aliasing -DVERSION=\\\"0.07\\\" -DXS_VERSION=\\\"0.07\\\" > -DPIC -fPIC \"-I/usr/home/jkeenan/var/tad/testing/perl-5.28.0- > RC1/lib/5.28.0/amd64-freebsd/CORE\" V8Context.cpp", > "V8Context.cpp: In constructor 'ObjectData::ObjectData(V8Context*, > v8::Handle<v8::Object>, SV*)':", > "V8Context.cpp:140:45: warning: 'static v8::Persistent<S> > v8::Persistent<T>::New(v8::Handle<T>) [with T = v8::Object]' is > deprecated [-Wdeprecated-declarations]", > " , object(Persistent<Object>::New(object_))", > " ^", > "In file included from V8Context.h:4:0,", > " from V8Context.cpp:1:", > "/usr/local/include/v8.h:4932:15: note: declared here", > " Persistent<T> Persistent<T>::New(Handle<T> that) {", > " ^~~~~~~~~~~~~", > "V8Context.cpp: In destructor 'virtual > ObjectData::~ObjectData()':", > "V8Context.cpp:152:20: warning: 'void v8::Persistent<T>::Dispose() > [with T = v8::Object]' is deprecated [-Wdeprecated-declarations]", > " object.Dispose();", > " ^", > "In file included from V8Context.h:4:0,", > " from V8Context.cpp:1:", > "/usr/local/include/v8.h:4996:6: note: declared here", > " void Persistent<T>::Dispose() {", > " ^~~~~~~~~~~~~", > "V8Context.cpp: In constructor > 'PerlObjectData::PerlObjectData(V8Context*, v8::Handle<v8::Object>, > SV*)':", > "V8Context.cpp:166:50: warning: 'void > v8::Persistent<T>::MakeWeak(void*, v8::WeakReferenceCallback) [with T > = v8::Object; v8::WeakReferenceCallback = void > (*)(v8::Persistent<v8::Value>, void*)]' is deprecated [-Wdeprecated- > declarations]", > " object.MakeWeak(this, PerlObjectData::destroy);", > " ^", > "In file included from V8Context.h:4:0,", > " from V8Context.cpp:1:", > "/usr/local/include/v8.h:5013:6: note: declared here", > " void Persistent<T>::MakeWeak(void* parameters, > WeakReferenceCallback callback) {", > " ^~~~~~~~~~~~~", > "V8Context.cpp: In constructor > 'PerlFunctionData::PerlFunctionData(V8Context*, SV*)':", > "V8Context.cpp:238:24: error: 'Wrap' is not a member of > 'v8::External'", > " &External::Wrap(this)", > " ^~~~~~~~", > "V8Context.cpp: In static member function 'static > v8::Handle<v8::Value> PerlFunctionData::v8invoke(const > v8::Arguments&)':", > "V8Context.cpp:247:65: error: 'Unwrap' is not a member of > 'v8::External'", > " PerlFunctionData* data = > static_cast<PerlFunctionData*>(External::Unwrap(args[0]));", > " > ^~~~~~~~", > "V8Context.cpp: In constructor 'V8Context::V8Context(int, const > char*, bool, const char*)':", > "V8Context.cpp:327:84: warning: 'static v8::Persistent<S> > v8::Persistent<T>::New(v8::Handle<T>) [with T = v8::Function]' is > deprecated [-Wdeprecated-declarations]", > " make_function = > Persistent<Function>::New(Handle<Function>::Cast(script->Run()));", > " > ^", > "In file included from V8Context.h:4:0,", > " from V8Context.cpp:1:", > "/usr/local/include/v8.h:4932:15: note: declared here", > " Persistent<T> Persistent<T>::New(Handle<T> that) {", > " ^~~~~~~~~~~~~", > "V8Context.cpp:329:62: warning: 'static v8::Persistent<S> > v8::Persistent<T>::New(v8::Handle<T>) [with T = v8::String]' is > deprecated [-Wdeprecated-declarations]", > " string_wrap = > Persistent<String>::New(String::New(\"wrap\"));", > " ^", > "In file included from V8Context.h:4:0,", > " from V8Context.cpp:1:", > "/usr/local/include/v8.h:4932:15: note: declared here", > " Persistent<T> Persistent<T>::New(Handle<T> that) {", > " ^~~~~~~~~~~~~", > "V8Context.cpp: In member function 'void > V8Context::register_object(ObjectData*)':", > "V8Context.cpp:336:47: error: 'Wrap' is not a member of > 'v8::External'", > " data->object->SetHiddenValue(string_wrap, > External::Wrap(data));", > " ^~~~~~~~", > "V8Context.cpp: In destructor 'V8Context::~V8Context()':", > "V8Context.cpp:353:26: warning: 'void v8::Persistent<T>::Dispose() > [with T = v8::Object]' is deprecated [-Wdeprecated-declarations]", > " it->second.Dispose();", > " ^", > "In file included from V8Context.h:4:0,", > " from V8Context.cpp:1:", > "/usr/local/include/v8.h:4996:6: note: declared here", > " void Persistent<T>::Dispose() {", > " ^~~~~~~~~~~~~", > "V8Context.cpp:355:21: warning: 'void v8::Persistent<T>::Dispose() > [with T = v8::Context]' is deprecated [-Wdeprecated-declarations]", > " context.Dispose();", > " ^", > "In file included from V8Context.h:4:0,", > " from V8Context.cpp:1:", > "/usr/local/include/v8.h:4996:6: note: declared here", > " void Persistent<T>::Dispose() {", > " ^~~~~~~~~~~~~", > "V8Context.cpp: In member function 'SV* > V8Context::seen_v8(v8::Handle<v8::Object>)':", > "V8Context.cpp:492:37: error: 'Unwrap' is not a member of > 'v8::External'", > " ObjectData* data = (ObjectData*)External::Unwrap(wrap);", > " ^~~~~~~~", > "V8Context.cpp: In member function 'v8::Handle<v8::Object> > V8Context::get_prototype(SV*)':", > "V8Context.cpp:585:76: warning: 'static v8::Persistent<S> > v8::Persistent<T>::New(v8::Handle<T>) [with T = v8::Object]' is > deprecated [-Wdeprecated-declarations]", > " prototype = prototypes[pkg] = > Persistent<Object>::New(Object::New());", > " > ^", > "In file included from V8Context.h:4:0,", > " from V8Context.cpp:1:", > "/usr/local/include/v8.h:4932:15: note: declared here", > " Persistent<T> Persistent<T>::New(Handle<T> that) {", > " ^~~~~~~~~~~~~", > "*** Error code 1", > "", > "Stop.", > "make: stopped in /usr/home/jkeenan/var/tad/testing/perl-5.28.0- > RC1/.cpanm/work/1527089479.86980/JavaScript-V8-0.07", > "-> FAIL Installing JavaScript::V8 failed. See > /usr/home/jkeenan/var/tad/testing/perl-5.28.0- > RC1/.cpanm/work/1527089479.86980/build.log for details. Retry with > --force to force install it.", > ], > via => "App::cpanminus::reporter 0.17 (1.7043)", > } > > Thank you very much. > Jim Keenan
I see "g++" here, so probably gcc is the compiler. Or did you symlink g++ to clang++?

Message body is not shown because it is too large.

Can you confirm which version of v8 you've got there?
Subject: Re: [rt.cpan.org #125397] Build failure with perl-5.28.0-RC1 on FreeBSD-11.1
Date: Wed, 10 Apr 2019 22:12:49 -0400
To: bug-JavaScript-V8 [...] rt.cpan.org
From: James E Keenan <jkeenan [...] pobox.com>
On 4/10/19 9:47 PM, Ed J via RT wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=125397 > > > Can you confirm which version of v8 you've got there? >
I cannot for certain, as the VM from which that report was filed no longer exists. I have another FreeBSD VM ... $ uname -mrs FreeBSD 11.1-RELEASE amd64 ... which was created about a month after that RT was filed and which is the VM in which I conduct monthly CPAN-river-3000 testing. In that VM I can invoke the following: ##### [vagrant@perl-reporter-03 ~]$ pkg info v8 v8-3.18.5_5 Name : v8 Version : 3.18.5_5 Installed on : Mon Jun 25 20:40:17 2018 EDT Origin : lang/v8 Architecture : FreeBSD:11:amd64 Prefix : /usr/local Categories : lang Licenses : BSD3CLAUSE Maintainer : sunpoet@FreeBSD.org WWW : http://code.google.com/p/v8/ Comment : Open source JavaScript engine by Google Shared Libs provided: libv8.so Annotations : FreeBSD_version: 1101001 cpe : cpe:2.3:a:google:v8:3.18.5:::::freebsd11:x64:5 repo_type : binary repository : FreeBSD Flat size : 6.75MiB Description : V8 is Google's open source JavaScript engine. V8 is written in C++ and is used in Google Chrome, the open source browser from Google. V8 implements ECMAScript as specified in ECMA-262, 5th edition, and runs on Windows (XP or newer), Mac OS X (10.5 or newer), and Linux systems that use IA-32, x64, or ARM processors. V8 can run standalone, or can be embedded into any C++ application. Git repository at https://github.com/v8/v8 WWW: http://code.google.com/p/v8/ ##### So it's almost certainly in the "3.18" range. HTH Jim Keenan
Thanks. I'm going through the process of building v8 from source, and the website indicates there are versions up to 7-something. I will see what I can figure out!
To follow up. 3.18 is inconveniently past the 3.14 range where v8 was being packaged for easy installation, but if I understand the versioning right, enormously behind the current version (7.5.99 at last check). This means that aiming at 3.18 doesn't seem to offer any benefits. The current plan is to try to get an Alien library going with recent v8, to move code that knows about building v8 to that. Then to make this module know how to talk to current v8, even though that will not be back-compatible. This seems like the best option, because there will be security problems with a 6+ year old version of v8.