Skip to content

NAN 1.5 WIP - #216

Merged
kkoopa merged 1 commit into
masterfrom
onepointfive
Jan 14, 2015
Merged

kkoopa merged 1 commit into
masterfrom
onepointfive

Conversation

@kkoopa

@kkoopa kkoopa commented Nov 6, 2014

Copy link
Copy Markdown
Collaborator

This branch will become NAN 1.5.
Added Asyncworker #207 and new NanNew #210. Needs more testing with actual addons.
Now split into many files. Seems to work so far. Good news for nauv.h

@kkoopa
kkoopa force-pushed the onepointfive branch 2 times, most recently from 5fafced to 3390d07 Compare November 7, 2014 20:36
Comment thread nan_new.h Outdated

This comment was marked as off-topic.

This comment was marked as off-topic.

This comment was marked as off-topic.

This comment was marked as off-topic.

This comment was marked as off-topic.

This comment was marked as off-topic.

This comment was marked as off-topic.

This comment was marked as off-topic.

This comment was marked as off-topic.

This comment was marked as off-topic.

@kkoopa
kkoopa force-pushed the onepointfive branch 2 times, most recently from 7bb1993 to a9c3ca9 Compare November 8, 2014 18:35
@kkoopa

kkoopa commented Nov 20, 2014

Copy link
Copy Markdown
Collaborator Author

Fixed the issue with taking the address of rvals.

@kkoopa

kkoopa commented Dec 7, 2014

Copy link
Copy Markdown
Collaborator Author

ETA: Before the end of the year.

@rvagg

rvagg commented Dec 7, 2014

Copy link
Copy Markdown
Member

Someone pinged me on IRC this morning commenting that we're not compatible with io.js, it'd be good to get there soon if this is the case (I haven't had time to confirm yet)

@rvagg

rvagg commented Dec 7, 2014

Copy link
Copy Markdown
Member

Also, it would seem that adding @agnat as a collaborator is in order too, unless anyone has any objections.

@kkoopa

kkoopa commented Dec 7, 2014

Copy link
Copy Markdown
Collaborator Author

trying to exec 'node' to find the location, yes. It's the same as when debian renamed the binary. It will be an immense pain in the ass to adjust and have something working with all of them, if at all possible. I think Windows causes problems fot this. io.js should at least have an alias called node, otjerwise I tjink we have to have three different NANs.

On December 7, 2014 11:50:21 PM EET, Rod Vagg notifications@github.com wrote:

Someone pinged me on IRC this morning commenting that we're not
compatible with io.js, it'd be good to
get there soon if this is the case (I haven't had time to confirm yet)


Reply to this email directly or view it on GitHub:
#216 (comment)

@rvagg

rvagg commented Dec 7, 2014

Copy link
Copy Markdown
Member

If that's the only problem then fine, the aim is for iojs to be aliased to "node" anyway. I was concerned it might be about the V8 version discrepancy.

@kkoopa

kkoopa commented Dec 7, 2014

Copy link
Copy Markdown
Collaborator Author

Oh yes, do that. I think you as owner is the only who can do it. I can update the readme and such. I still have to do some practical testing of this, but have a very packed schedule now before christmas, that's why I estimate three more weeks.

On December 7, 2014 11:52:47 PM EET, Rod Vagg notifications@github.com wrote:

Also, it would seem that adding @agnat as a collaborator is in order
too, unless anyone has any objections.


Reply to this email directly or view it on GitHub:
#216 (comment)

@kkoopa

kkoopa commented Dec 7, 2014

Copy link
Copy Markdown
Collaborator Author

Don't know which version is where, but I don't think it's any more than that we have to execute 'node' to find the location of NAN, the magic binding.gyp include line.

On December 8, 2014 12:01:01 AM EET, Rod Vagg notifications@github.com wrote:

If that's the only problem then fine, the aim is for iojs to be aliased
to "node" anyway. I was concerned it might be about the V8 version
discrepancy.


Reply to this email directly or view it on GitHub:
#216 (comment)

@rvagg

rvagg commented Dec 7, 2014

Copy link
Copy Markdown
Member

Protip: always "two weeks"--engineer speak for some vague point in the future you can't really be sure of. A secret code that engineers understand but management get to take seriously.
e.g. 0.12 has been "two weeks" for nearly a year.

@agnat

agnat commented Dec 8, 2014

Copy link
Copy Markdown
Collaborator

Two points:

  1. Fortunately we are not under any pressure on this. @kkoopa, if your schedule is packed already... take a few days, enjoy christmas and we put her out early next year. No rush...
  2. Regarding the include directory...

Lets add the following file to nan:

nan.gypi
{ 'include_dirs': ['.'] }

... and tell people to use it like this:

{ 'targets': [
  { 'target_name': 'foo'
  , 'sources': ['foo.cpp']
  , 'includes': ['node_modules/nan/nan.gypi']
  }
]}

Unless I'm missing something that works on all platforms under all circumstances. It also gives us more flexibility. We now really can tamper with the build system... ;)

@rvagg

rvagg commented Dec 8, 2014

Copy link
Copy Markdown
Member
  , 'includes': ['node_modules/nan/nan.gypi']

Unfortunately this won't be good enough, we don't have guarantees that it'll be located in that directory. If there are multiple projects using NAN and the dependency ranges allow it, it'll be installed in a common path, possibly something like ../nan. This is why we have the "<!(node -e \"require('nan')\")", to figure out where it's located.

@agnat

agnat commented Dec 8, 2014

Copy link
Copy Markdown
Collaborator

Really? I've never seen that. Who is responsible for this magic sharing? npm? Could you point out the documentation?

I'm kind of confused right now. node/npm did break the "un-share everything"-paradigm?

@rvagg

rvagg commented Dec 8, 2014

Copy link
Copy Markdown
Member

deps are shared if the dependency ranges specified in package.json allow for it

try this in a new directory:

$ npm install nan@1.3 modest
...
├─┬ modest@2.1.1
...
│ ├─┬ contextify@0.1.9
│ │ └── bindings@1.2.1
...
└── nan@1.3.0

Note how contextify wants nan@~1.3.0 but since we also have it at the top level and it matches the range then it doesn't bother installing an new version of it to save duplication—but also the node_modules/nan path isn't assured for contextify, hence the path-lookup hack.

@agnat

agnat commented Dec 8, 2014

Copy link
Copy Markdown
Collaborator

Hmk. Thanks for the explanation. I'd say it isn't a hack then. Under these circumstances it's the only way....

It still might be an idea to switch to including a gypi file at some point. However, this is 1. OT and 2. even less pressing than 1.5. ;)

@rvagg

rvagg commented Jan 13, 2015

Copy link
Copy Markdown
Member

@kesla let's get this out, io.js@1.0.0 is about to be released so let's sync with that. If you need any help with release process let me know!

@kesla

kesla commented Jan 13, 2015

Copy link
Copy Markdown
Contributor

I guess you meant pinging @kkoopa?

@rvagg

rvagg commented Jan 13, 2015

Copy link
Copy Markdown
Member

derp, yes, sorry @kesla, you were the first name to pop up, @kkoopa was who I meant

@kkoopa

kkoopa commented Jan 13, 2015

Copy link
Copy Markdown
Collaborator Author

What about the functions moved from v8::V8 to v8::Isolate? We'll have to do a 1.6 very soon otherwise to cover the v8 discrepancies.

On January 13, 2015 11:03:48 PM EET, Rod Vagg notifications@github.com wrote:

@kesla let's get this out, io.js@1.0.0 is about to be released so let's
sync with that. If you need any help with release process let me know!


Reply to this email directly or view it on GitHub:
#216 (comment)

@rvagg

rvagg commented Jan 13, 2015

Copy link
Copy Markdown
Member

what version of V8 is that in? io.js will be on 3.31 for a while I think, we were burnt already with changes to ES6 classes and their announced removal for 3.31 before it goes final so it's likely there will be a bit of conservatism for the next month or two at least.

@kkoopa

kkoopa commented Jan 13, 2015

Copy link
Copy Markdown
Collaborator Author

3.29 perhaps... Not quite sure. It's later than what's in 0.11.14, but in joyent/0.12 branch as of now and whatever is used in atom-shell nowadays. I specifically know of the previously mentioned ContextDisposedNotification and I planned on getting it fixed in this release. It's a small addition, but should look through all other functions too to see what else has moved.

Regarding cutting a release, it went quite well last time, apart from npmjs not receiving README.md properly for reasons unknown to me. Maybe due to having an old npm client. I have since updated npm. Any ideas what happened there?

I can push a release out in the morning, say in 10-12 hours. Would like 12 more to tie up these loose ends and avoid releasing 1.5 only to follow with 1.6 a couple days later. How does that sound?

On January 13, 2015 11:29:54 PM EET, Rod Vagg notifications@github.com wrote:

what version of V8 is that in? io.js will be on 3.31 for a while I
think, we were burnt already with changes to ES6 classes and their
announced removal for 3.31 before it goes final so it's likely there
will be a bit of conservatism for the next month or two at least.


Reply to this email directly or view it on GitHub:
#216 (comment)

@rvagg

rvagg commented Jan 13, 2015

Copy link
Copy Markdown
Member

re npm, I have no idea, npm looks at .npmignore if it exists, .gitignore otherwise, then it looks at the files on disk and packages those. If you have the problem again, just do a patch release, no big deal to do patch releases to paper over publish problems.

timing is fine by me, whatever works for you, just expect people to start filing bugs against projects, and NAN, for io.js support today.

@rvagg rvagg mentioned this pull request Jan 14, 2015
@kkoopa

kkoopa commented Jan 14, 2015

Copy link
Copy Markdown
Collaborator Author

What's with the failed build due to bad node-gyp checksum?
Can you add docker tests for io.js here? I meant travis.

@rvagg

rvagg commented Jan 14, 2015

Copy link
Copy Markdown
Member

odd error from travis, I have some work to do to make dnt io.js compatible yet but I can have a go

@rvagg

rvagg commented Jan 14, 2015

Copy link
Copy Markdown
Member

initial results:

$ dnt
node@v0.10.34: PASS wrote output to /tmp/nan-dnt-v0.10.34.out
node@v0.11.14: PASS wrote output to /tmp/nan-dnt-v0.11.14.out
iojs@v1.0.1-release: PASS wrote output to /tmp/nan-dnt-v1.0.1-release.out
Took 24s to run 3 versions of Node

io.js supporting branch of dnt is rvagg/archived-dnt#14

I don't have images built for the other Node versions we should be testing but I'll start that build process not, I just doubt it'll all be done before I have to go to bed. I'm confident with the above results, no warnings or anything in that output file, very clean. I'm 👍 on a release.

@kkoopa

kkoopa commented Jan 14, 2015

Copy link
Copy Markdown
Collaborator Author

Good, good. I'll push it out like this when I get home then. Just have to
update the changelog. Those other changes I listed get to wait until 1.6, in a
week or two. They are quite minor.

On Wednesday 14 January 2015 04:44:33 Rod Vagg wrote:

initial results:

$ dnt
node@v0.10.34: PASS wrote output to /tmp/nan-dnt-v0.10.34.out
node@v0.11.14: PASS wrote output to /tmp/nan-dnt-v0.11.14.out
iojs@v1.0.1-release: PASS wrote output to /tmp/nan-dnt-v1.0.1-release.out
Took 24s to run 3 versions of Node

io.js supporting branch of dnt is rvagg/archived-dnt#14

I don't have images built for the other Node versions we should be testing
but I'll start that build process not, I just doubt it'll all be done
before I have to go to bed. I'm confident with the above results, no
warnings or anything in that output file, very clean. I'm 👍 on a
release.


Reply to this email directly or view it on GitHub:
#216 (comment)

@kkoopa
kkoopa merged commit 39f85f4 into master Jan 14, 2015
@rvagg

rvagg commented Jan 14, 2015

Copy link
Copy Markdown
Member
node@v0.11.14: PASS wrote output to /tmp/nan-dnt-v0.11.14.out
node@v0.10.34: PASS wrote output to /tmp/nan-dnt-v0.10.34.out
node@v0.11.13: PASS wrote output to /tmp/nan-dnt-v0.11.13.out
node@v0.10.33: PASS wrote output to /tmp/nan-dnt-v0.10.33.out
node@v0.10.32: PASS wrote output to /tmp/nan-dnt-v0.10.32.out
node@v0.10.30: PASS wrote output to /tmp/nan-dnt-v0.10.30.out
node@v0.10.31: PASS wrote output to /tmp/nan-dnt-v0.10.31.out
node@v0.10.29: PASS wrote output to /tmp/nan-dnt-v0.10.29.out
node@v0.10.28: PASS wrote output to /tmp/nan-dnt-v0.10.28.out
node@v0.10.26: PASS wrote output to /tmp/nan-dnt-v0.10.26.out
node@v0.10.25: PASS wrote output to /tmp/nan-dnt-v0.10.25.out
node@v0.10.24: PASS wrote output to /tmp/nan-dnt-v0.10.24.out
node@v0.10.22: PASS wrote output to /tmp/nan-dnt-v0.10.22.out
node@v0.10.23: PASS wrote output to /tmp/nan-dnt-v0.10.23.out
node@v0.10.21: PASS wrote output to /tmp/nan-dnt-v0.10.21.out
node@v0.10.20: PASS wrote output to /tmp/nan-dnt-v0.10.20.out
node@v0.10.19: PASS wrote output to /tmp/nan-dnt-v0.10.19.out
node@v0.8.28 : PASS wrote output to /tmp/nan-dnt-v0.8.28.out
node@v0.8.27 : PASS wrote output to /tmp/nan-dnt-v0.8.27.out
node@v0.8.26 : PASS wrote output to /tmp/nan-dnt-v0.8.26.out
node@v0.8.24 : PASS wrote output to /tmp/nan-dnt-v0.8.24.out
iojs@v1.0.1-release: PASS wrote output to /tmp/nan-dnt-v1.0.1-release.out
Took 113s to run 22 versions of Node

@kkoopa

kkoopa commented Jan 14, 2015

Copy link
Copy Markdown
Collaborator Author

Nice, very nice indeed.

@rvagg
rvagg deleted the onepointfive branch January 14, 2015 20:55
@rvagg

rvagg commented Jan 14, 2015

Copy link
Copy Markdown
Member

agreed, well done @kkoopa!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants