robotskirt icon indicating copy to clipboard operation
robotskirt copied to clipboard

install failure on 0.11.x

Open timoxley opened this issue 11 years ago • 15 comments

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

timoxley avatar Nov 15 '13 04:11 timoxley

:+1: Thanks, I'll look at it today.

mildsunrise avatar Nov 15 '13 06:11 mildsunrise

Okay, so, starting with joyent/node@a53c763c16eeabb0901a05dbcf38a72fa96d2f26 (v0.11.8):

  • v8::Arguments class is gone. Instead use v8::FunctionCallbackInfo.
  • v8::AccessorInfo class is gone. Instead use v8::PropertyCallbackInfo.
  • v8::InvocationCallback type is gone. Instead use v8::FunctionCallback.
    Callbacks no longer return a Handle<Value>, they set it on v8::FunctionCallbackInfo instead.
  • v8::NamedProperty* types are gone. Instead use the *Callback suffixed versions.
    Accessors no longer return a Handle<Value>, they set it on v8::PropertyCallbackInfo instead.

There are many other changes in subsequent upgrades as well. I'll add support for all of them.

mildsunrise avatar Nov 16 '13 10:11 mildsunrise

Can you please verify that Robotskirt builds in 0.11.7 and older?

mildsunrise avatar Nov 16 '13 10:11 mildsunrise

Doesn't build in 0.11.7 either:

https://gist.github.com/timoxley/7478954#file-0-11-7

timoxley avatar Nov 16 '13 11:11 timoxley

Ugh, more changes. This is gonna take some time...

mildsunrise avatar Nov 16 '13 11:11 mildsunrise

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.

mildsunrise avatar Nov 16 '13 12:11 mildsunrise

:tada:

timoxley avatar Nov 16 '13 14:11 timoxley

yeah, v2 of hoedown just released. :blush:

mildsunrise avatar Nov 16 '13 15:11 mildsunrise

@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.

mildsunrise avatar Nov 19 '13 22:11 mildsunrise

@jmendeth perhaps you could consider something like https://github.com/rvagg/nan

timoxley avatar Nov 20 '13 23:11 timoxley

Whoa, that's awesome! And it has the support in place! Will consider deprecating V8U in favor of NAN.

mildsunrise avatar Nov 20 '13 23:11 mildsunrise

:+1:

timoxley avatar Nov 20 '13 23:11 timoxley

Now that node 0.12 is out, robotskirt is now broken on the latest stable node.

balupton avatar Feb 18 '15 17:02 balupton

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.

mildsunrise avatar Feb 18 '15 18:02 mildsunrise

Okie good to know. I'll update docpad-plugin-robotskirt to reflect that.

balupton avatar Feb 18 '15 18:02 balupton