Conversation with #libuv at Fri 05 Oct 2012 05:47:39 PM EDT on (irc)

(05:47:39 PM) The topic for #libuv is: liberal utopian vacation ~ ~
(05:47:39 PM) List of users: [ sgallagh ][ `3rdEden ][ EhevuTov ][ hz ][ stagas ][ TooTallNate ][ perezd ][ philips_ ][ c4milo ][ bnoordhuis ][ stephank ][ kohai ][ Benvie ][ wankdanker ][ dscape ][ txdv_ ][ txdv ][ CoverSlide ][ deoxxa ][ MI6 ][ slurp ][ saghul ][ einaros ][ isaacs ][ toothrot ][ Raynos ][ indutny ][ chobi_e_ ][ ryah ][ creationix ][ russell_h ][ mitsuhiko ][ ArmyOfBruce ][ KiNgMaR ][ ircretary ][ davisp ][ rphillips ][ tjfontaine ][ chrisdickinson ][ voodootikigod ][ kuplatupsu ][ DrPizza ][ chilts ][ tellnes ][ CAPSLOCKBOT ][ pquerna ][ joclek ]
(05:47:46 PM) ryah: (jk hehe)
(05:48:08 PM) bnoordhuis: sgallagh: is there a timeline on packaging/inclusion of node.js?
(05:48:38 PM) bnoordhuis: i ask because we've discussed distributing rpms
(05:54:38 PM) sgallagh: bnoordhuis: As soon as we can get it into shape.
(05:54:56 PM) sgallagh: bnoordhuis: Basically, it's become more and more apparent that if we aren't shipping node.js in Fedora, we're ceasing to be relevant
(05:55:18 PM) sgallagh: Fedora is predominately a developer community, and developers want node.js
(05:55:23 PM) bnoordhuis: music to my ears
(05:55:51 PM) bnoordhuis: so what can we do to help? i don't really want to float autotools patches for libev and libeio
(05:56:09 PM) sgallagh: ryah: My wireless bounced, so I have no idea what you were saying "(jk hehe)" too. Maybe best that way ;-)
(05:56:11 PM) bnoordhuis: i mean, they'd only be relevant for the 0.8 branch
(05:56:54 PM) sgallagh: bnoordhuis: Well, from Fedora's perspective, since libuv has a separate upstream repository, it's generally considered to be a separate, packageable project.
(05:57:11 PM) sgallagh: So the package reviewers are telling me it needs to be a shared library and not built statically in node.js
(05:57:37 PM) sgallagh: Although I think with the removal of libeio and libev, I may be able to get them to waive that rule if it's the only bundled piece
(05:58:12 PM) sgallagh: bnoordhuis: I've only just started looking into this today, so right now I'm mostly going from the records of my predecessors who ran out of time or motivation to take this on
(05:58:30 PM) bnoordhuis: sgallagh: okay, but that only applies to master. the v0.8 branch will keep shipping libev/eio until its EOL
(05:58:52 PM) bnoordhuis: which is getting nearer but that aside
(05:59:08 PM) sgallagh: I'm willing to start from master and worry about 0.8 later if it's necessary.
(05:59:22 PM) sgallagh: I'd rather Fedora be seen as the place with the latest and greatest, ideally :)
(05:59:26 PM) bnoordhuis: okay, good :)
(06:00:21 PM) sgallagh: bnoordhuis: Are there plans to make libuv a shared lib, or will node.js 0.9 still be statically linking it?
(06:00:50 PM) bnoordhuis: sgallagh: i can add build infrastructure to make libuv a .so
(06:01:04 PM) bnoordhuis: but upstream will always be shipping it in-tree and as a static dep
(06:01:32 PM) sgallagh: bnoordhuis: Understood, but I can absorb the work there of patching their build to consume the shared lib.
(06:02:01 PM) sgallagh: Patching in Fedora, not upstream
(06:02:07 PM) bnoordhuis: sgallagh: right
(06:02:12 PM) sgallagh: (Assuming they won't accept a patch to conditionalize it, of course)
(06:02:26 PM) bnoordhuis: sgallagh: they == upstream node.js? because that's us :)
(06:02:45 PM) sgallagh: Sorry, wasn't sure how much overlap there was in here
(06:02:54 PM) sgallagh: That was actually going to be my next question
(06:03:43 PM) txdv_: add the sared infra
(06:03:55 PM) bnoordhuis: sgallagh: i can land some patches in libuv and node to a) build libuv as a .so, and b) make node link to that
(06:04:13 PM) bnoordhuis: sgallagh: the other deps (v8, openssl, zlib, c-ares) already have support for that so why not libuv?
(06:04:29 PM) sgallagh: You're jumping ahead in my script. I was just about to ask about those four :-D
(06:05:02 PM) sgallagh: I still wanted to ask if you know the status of npm and http_parser bundling
(06:05:21 PM) bnoordhuis: sgallagh: you should ask isaacs about npm
(06:05:22 PM) sgallagh: My notes here say "npm can be removed and use an external tarball", so that's probably already solved
(06:05:45 PM) bnoordhuis: but yes, it should be easy to ship it as a separate package
(06:05:49 PM) sgallagh: http_parser already has a Fedora package, but I don't know if the bundled version has any node-specific changes.
(06:06:19 PM) txdv_: http-parser available as a shared lib?
(06:06:22 PM) bnoordhuis: sgallagh: the version that node bundles is pristine but it may be a lot newer
(06:06:22 PM) sgallagh: Yes
(06:06:32 PM) bnoordhuis: txdv_: yeah, you can build it as a .so
(06:06:33 PM) txdv_: how freaking freaking is that
(06:06:42 PM) sgallagh: bnoordhuis: Fedora traditionally carries the latest of all packages
(06:06:48 PM) txdv_: it has no deps whatsoever, ofc you can build it as an so
(06:06:49 PM) sgallagh: So no one will complain if I upgrade it
(06:07:01 PM) bnoordhuis: okay, cool
(06:07:23 PM) txdv_: but it is so small i thought everybody would link it statically in
(06:07:36 PM) bnoordhuis: txdv_: and so it was until a few months ago
(06:07:40 PM) sgallagh: txdv_: It's not a matter of size, it's supportability
(06:07:58 PM) sgallagh: If http_parser has a security vulnerability, it's a lot easier to patch just the .so than every package statically linking it
(06:08:20 PM) txdv_: i guess ill have to resurect my c# wrapper of it
(06:08:53 PM) txdv_: because no available so's are an issue
(06:09:15 PM) bnoordhuis: txdv_: the dynamic version is a lot slower on i386 though
(06:09:35 PM) txdv_: pfff
(06:09:40 PM) txdv_: does it have to be i386?
(06:09:48 PM) sgallagh: bnoordhuis: Ok, so if node can be made to conditionally link against the http_parser shared lib, I think we've covered all the hurdles I'm aware of.
(06:10:16 PM) sgallagh: bnoordhuis: i386 or i*86, just out of curiousity?
(06:10:36 PM) txdv_: someone is wrong on the internet
(06:10:39 PM) txdv_: or might be wrong
(06:10:55 PM) bnoordhuis: sgallagh: mostly i386. http_parser is quite branch heavy, which hurts on i386 but x86_64 uses rip-relative addressing
(06:11:09 PM) sgallagh: bnoordhuis: Sorry, I meant i386 vs i686
(06:11:26 PM) sgallagh: But I think you've answered my question
(06:12:27 PM) bnoordhuis: sgallagh: i benchmarked a ~10% drop in performance with the pic i386/i686 version iirc
(06:12:39 PM) sgallagh: oof, good to know
(06:12:55 PM) bnoordhuis: the x86_64 version was hardly affected though
(06:14:00 PM) sgallagh: bnoordhuis: Ok, I have to run for today. But I think if we can overcome these hurdles, we should be able to get this into Fedora 18.
(06:14:16 PM) sgallagh: Thank you very much for answering my questions
(06:14:32 PM) bnoordhuis: sgallagh: my pleasure. send in patches :)
(06:15:20 PM) sgallagh: bnoordhuis: I'll take a look at the node.js code and see if I can link the http_parser similar to c-ares
(06:15:32 PM) sgallagh: You will be hearing from me soon :)
(06:15:52 PM) The account has disconnected and you are no longer in this chat. You will automatically rejoin the chat when the account reconnects.