robotskirt
robotskirt copied to clipboard
install failure on 0.11.x
Just FYI, robotskirt currently refuses to build on Node 0.11.8.
Looks like hitting against some changes to v8 api.
e.g.
error: no type named 'Arguments' in namespace 'v8'
...
error: 'New' is a private member of 'v8::Persistent<v8::Context, v8::NonCopyablePersistentTraits<v8::Context> >'
...
In file included from ../src/robotskirt.cc:1:
../src/v8u.hpp:87:109: error: too few arguments to function call, expected 2, have 1
throw v8::Persistent<v8::Value>::New(v8::Exception::RangeError(v8::String::New("Not enough arguments.")));
Full error output from build here: https://gist.github.com/timoxley/7478954
:+1: Thanks, I'll look at it today.
Okay, so, starting with joyent/node@a53c763c16eeabb0901a05dbcf38a72fa96d2f26 (v0.11.8):
-
v8::Arguments
class is gone. Instead usev8::FunctionCallbackInfo
. -
v8::AccessorInfo
class is gone. Instead usev8::PropertyCallbackInfo
. -
v8::InvocationCallback
type is gone. Instead usev8::FunctionCallback
.
Callbacks no longer return aHandle<Value>
, they set it onv8::FunctionCallbackInfo
instead. -
v8::NamedProperty*
types are gone. Instead use the*Callback
suffixed versions.
Accessors no longer return aHandle<Value>
, they set it onv8::PropertyCallbackInfo
instead.
There are many other changes in subsequent upgrades as well. I'll add support for all of them.
Can you please verify that Robotskirt builds in 0.11.7 and older?
Doesn't build in 0.11.7 either:
https://gist.github.com/timoxley/7478954#file-0-11-7
Ugh, more changes. This is gonna take some time...
After all, I've decided I'm gonna rewrite Robotskirt.
I need to do that for v3 anyway, since it'll use Hoedown instead of the abandoned Sundown.
:tada:
yeah, v2 of hoedown just released. :blush:
@timoxley okay, I've adressed lots of incompatibilities in V8U (the V8 micro-utility set used by Robotskirt), especially in commits jmendeth/v8u@3fa6c22bff78f84a077eac66fa65f1161103a91b and jmendeth/v8u@fda52fd8d4160dfe7f7cac815d676602b0420e6b, but I'm a bit lost with the last ones.
It's not clear how to create a handle scope in node,
the original v8::HandleScope scope;
doesn't work and
Node source code uses v8::HandleScope scope (node_internal)
but node_internal
isn't available to me (it's in internals.h
).
When V8U fully supports 0.11.x and gets tested and released, I can start the rewrite of Robotskirt using the new V8U and Hoedown.
@jmendeth perhaps you could consider something like https://github.com/rvagg/nan
Whoa, that's awesome! And it has the support in place! Will consider deprecating V8U in favor of NAN.
:+1:
Now that node 0.12 is out, robotskirt is now broken on the latest stable node.
Basically I wanted to wait before Node.JS 0.12 was released, because the API changed very frequently between unstable versions, leading to confusion and me throwing the monitor out of the window.
Robotskirt is now deprecated, so I don't plan on updating it. node-hoedown is the successor and I'll probably switch to NAN on it soon.
Okie good to know. I'll update docpad-plugin-robotskirt to reflect that.