fogzot / vroomjs

Mono-friendly bridge to V8 Javascript engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Doesn't compile on latest V8

Daniel15 opened this issue · comments

I get several compilation errors when I try to build vroomjs. I've tried both with your version and with Mike Russell's slightly newer fork.


Building: libvroomjs (Debug)
Performing main compilation...

Precompiling headers

Compiling source to object files
g++  -MMD "/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp" -g -fPIC -Wall -O0 -DDEBUG -DMONODEVELOP -I"/Users/danlo/src/vroomjs/libvroomjs/obj/Debug/prec/Debug"  -c -o "/Users/danlo/src/vroomjs/build/Debug/jsengine.o"
In file included from /Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:3:
In file included from /Users/danlo/src/vroomjs/libvroomjs/vroomjs.h:29:
In file included from /Users/danlo/src/v8/src/v8.h:62:
/Users/danlo/src/v8/src/objects-inl.h:6021:7: error: use of undeclared identifier 'ElementsAreSafeToExamine'
  if (ElementsAreSafeToExamine()) {
      ^
In file included from /Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:3:
/Users/danlo/src/vroomjs/libvroomjs/vroomjs.h:196:38: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'?
    jsvalue ArrayFromArguments(const Arguments& args);
                                     ^~~~~~~~~
                                     v8::internal::Arguments
/Users/danlo/src/v8/src/v8globals.h:112:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
In file included from /Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:3:
/Users/danlo/src/vroomjs/libvroomjs/vroomjs.h:225:32: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'?
    Handle<Value> Invoke(const Arguments& args);
                               ^~~~~~~~~
                               v8::internal::Arguments
/Users/danlo/src/v8/src/v8globals.h:112:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:12:17: error: calling a protected constructor of class 'v8::HandleScope'
    HandleScope scope;
                ^
/Users/danlo/src/v8/src/../include/v8.h:845:13: note: declared protected here
  V8_INLINE HandleScope() {}
            ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:15:54: error: member reference type 'Persistent<v8::Object>' is not a pointer; maybe you meant to use '.'?
    Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
                                                 ~~~~^~
                                                     .
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:15:56: error: no member named 'GetInternalField' in 'v8::Persistent<v8::Object, v8::NonCopyablePersistentTraits<v8::Object> >'
    Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
                                                 ~~~~  ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:17:12: error: no member named 'Dispose' in 'v8::Persistent<v8::Value, v8::NonCopyablePersistentTraits<v8::Value> >'
    object.Dispose();
    ~~~~~~ ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:20:65: error: unknown type name 'AccessorInfo'; did you mean 'v8::internal::AccessorInfo'?
static Handle<Value> managed_prop_get(Local<String> name, const AccessorInfo& info)
                                                                ^~~~~~~~~~~~
                                                                v8::internal::AccessorInfo
/Users/danlo/src/v8/src/objects.h:10115:7: note: 'v8::internal::AccessorInfo' declared here
class AccessorInfo: public Struct {
      ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:25:17: error: calling a protected constructor of class 'v8::HandleScope'
    HandleScope scope;
                ^
/Users/danlo/src/v8/src/../include/v8.h:845:13: note: declared protected here
  V8_INLINE HandleScope() {}
            ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:27:31: error: no member named 'Holder' in 'v8::internal::AccessorInfo'
    Local<Object> self = info.Holder();
                         ~~~~ ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:30:18: error: no member named 'Close' in 'v8::HandleScope'
    return scope.Close(ref->GetPropertyValue(name));
           ~~~~~ ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:33:85: error: unknown type name 'AccessorInfo'; did you mean 'v8::internal::AccessorInfo'?
static Handle<Value> managed_prop_set(Local<String> name, Local<Value> value, const AccessorInfo& info)
                                                                                    ^~~~~~~~~~~~
                                                                                    v8::internal::AccessorInfo
/Users/danlo/src/v8/src/objects.h:10115:7: note: 'v8::internal::AccessorInfo' declared here
class AccessorInfo: public Struct {
      ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:38:17: error: calling a protected constructor of class 'v8::HandleScope'
    HandleScope scope;
                ^
/Users/danlo/src/v8/src/../include/v8.h:845:13: note: declared protected here
  V8_INLINE HandleScope() {}
            ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:40:31: error: no member named 'Holder' in 'v8::internal::AccessorInfo'
    Local<Object> self = info.Holder();
                         ~~~~ ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:43:18: error: no member named 'Close' in 'v8::HandleScope'
    return scope.Close(ref->SetPropertyValue(name, value));
           ~~~~~ ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:46:41: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'?
static Handle<Value> managed_call(const Arguments& args)
                                        ^~~~~~~~~
                                        v8::internal::Arguments
/Users/danlo/src/v8/src/v8globals.h:112:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:51:17: error: calling a protected constructor of class 'v8::HandleScope'
    HandleScope scope;
                ^
/Users/danlo/src/v8/src/../include/v8.h:845:13: note: declared protected here
  V8_INLINE HandleScope() {}
            ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:53:30: error: member access into incomplete type 'const v8::internal::Arguments'
    Local<Object> self = args.Holder();
                             ^
/Users/danlo/src/v8/src/../include/v8.h:149:7: note: forward declaration of 'v8::internal::Arguments'
class Arguments;
      ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:56:18: error: no member named 'Close' in 'v8::HandleScope'
    return scope.Close(ref->Invoke(args));
           ~~~~~ ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
Build complete -- 19 errors, 10 warnings

---------------------- Done ----------------------

Build: 19 errors, 10 warnings