BRENDAN EICH suggests the source code compiler be V8 C++ SYNTAX SCRIPT

On Saturday, December 30, 2017 at 8:54:46 AM UTC-8, Bogdan Padalko wrote:
>
> Hi! 
>
> I'm trying to adapt changes from 
> https://github.com/v8/v8/commit/ffee558e14e28fc8b1f9a3c10ea3615e0d686c7b 
> to replace CreateDefaultPlatform with NewDefaultPlatform calls, however, 
> for some reason I'm getting
>
> /home/vagrant/php-v8/scripts/test_v8/hello_world.cpp:21: undefined 
> reference to `v8::platform::NewDefaultPlatform(int, 
> v8::platform::IdleTaskSupport, v8::platform::InProcessStackDumping, 
> std::unique_ptr<v8::TracingController, 
> std::default_delete<v8::TracingController> >)'
>
> error with the following code:
>
> #include <v8.h>
> #include <libplatform/libplatform.h>
>
> #include <stdlib.h>
> #include <string.h>
>
> using namespace v8;
>
> void weak_callback(const v8::WeakCallbackInfo<v8::Persistent<v8::String>>& 
> data) {
>   printf("Weak callback called\n");
>   data.GetParameter()->Reset();
> }
>
> int main(int argc, char* argv[]) {
>   // Initialize V8.
>   v8::V8::InitializeICU();
> //  v8::Platform *platform = v8::platform::CreateDefaultPlatform();
> //  v8::V8::InitializePlatform(platform);
>
>   std::unique_ptr<v8::Platform> platform = v8::platform::
> NewDefaultPlatform();
>   v8::V8::InitializePlatform(platform.get());
>
>   V8::Initialize();
>
>   v8::Isolate::CreateParams create_params;
>   create_params.array_buffer_allocator = v8::ArrayBuffer::Allocator::
> NewDefaultAllocator();
>
>   // Create a new Isolate and make it the current one.
>   Isolate* isolate = v8::Isolate::New(create_params);
>
>   v8::Persistent<v8::String> test;
>
>   {
>     Isolate::Scope isolate_scope(isolate);
>
>     // Create a stack-allocated handle scope.
>     HandleScope handle_scope(isolate);
>
>     // Create a new context.
>     Local<Context> context = Context::New(isolate);
>
>     // Enter the context for compiling and running the hello world script.
>     Context::Scope context_scope(context);
>
>
>     test.Reset(isolate, String::NewFromUtf8(isolate, "Hello' + ', World!'"
> ));
>     test.SetWeak(&test, weak_callback, v8::WeakCallbackType::kParameter);
>
>
>     // Create a string containing the JavaScript source code.
>     Local<String> source = String::NewFromUtf8(isolate, "(2+2*2) + ' ' + 
> 'Hello' + ', World!'");
>
>     // Compile the source code.
>     Local<Script> script = Script::Compile(source);
>
>     // Run the script to get the result.
>     Local<Value> result = script->Run();
>
>     // Convert the result to an UTF8 string and print it.
>     String::Utf8Value utf8(isolate, result);
>     printf("%s\n", *utf8);
>   }
>
>   isolate->LowMemoryNotification();
>
>
>   // Dispose the isolate and tear down V8.
>   isolate->Dispose();
>   V8::Dispose();
>   V8::ShutdownPlatform();
>
>   return 0;
> }
>
> build script:
>
> #!/bin/bash
>
> ROOT=/opt/libv8-6.5
> LIB_DIR=$ROOT/lib/
>
> SRC_DIR=$ROOT
> INCLUDE_DIR=$ROOT/include
>
> set -x
>
> g++ -std=c++14 hello_world.cpp -o hello_world \
>  -g \
>  -O2 \
>  -std=c++11 \
>  -I$INCLUDE_DIR \
>  -L$LIB_DIR \
>  -Wl,-rpath,$LIB_DIR \
>  -lv8_libbase \
>  -lv8_libplatform \
>  -lv8 \
>  -lpthread
>
> I use v8 build with the following params:
>
> gn gen out.gn/x64.release --args="is_debug=false is_component_build=true 
> v8_use_external_startup_data=false"
> ninja -v d8 -C out.gn/x64.release
>
> Host is x64 Ubuntu 16.04, libv8 installed from my pinepain/libv8-6.5 PPA (
> https://launchpad.net/~pinepain/+archive/ubuntu/libv8-6.5)
>
> I'd really appreciate if anybody give it a look and provide some 
> suggestions as after spending two days with this I think I just missing 
> something very simple and obvious.
>
> Regards,
> Bogdan
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to