On Wednesday, March 5, 2014 10:51:05 AM UTC-7, Ryan Dahl wrote: > > On Wed, Mar 5, 2014 at 9:42 AM, Kevin Ingwersen > <[email protected]<javascript:> > > wrote: > >> That I noticed. But isnt it possible to use v8 with autotools or similar >> - or does it really completely rely on gyp? >> I myself can’t really make myself a big fan of gyp, when python is a >> horrendus dependency o-o... >> > > I agree that the python dependency is annoying, but gyp is (arguably) the > most modern and established meta-build system. Aside from the fact that V8 > defines it's build in gyp, gyp is revolutionary in that it defines a module > system for building C libraries. GYP allows Node to generate files for > working with various toolchains like visual studio, and generally abstracts > a lot of difficult platform problems. >
And I rewrote most all of it in 160 or so lines of Makefile, with several additional features (casual examiners should notice I added a few variables to the Makefile to do wicked things). The output of gyp -- Makefiles supposedly built for my platform -- is several times longer than that, never mind the actual gyp files themselves. Whatever benefits gyp might have, it doesn't seem to be helping Node.js. > > It's cute to rewrite the system with a Makefile and linking to > pre-generated V8 binary, but you're ignoring large engineering goals that > Node's build system solves. > I must dissent, what I think is cute is that after we abandoned porting Node.js to Autotools, we instead settled for converting libuv. I mean, seriously? The ability to link dynamic libraries is, of course, nothing new to Node.js, and I use it because it drops by build time down to *seconds*. Likewise, I wrote that Makefile because I was solving some very real engineering goals that Node.js ignores. (js2c.sh, on the other hand, was done purely to prove a cute point.) > > Build systems are deceptively difficult. The depth of the problems are not > apparent until you try to manage the build of a large x-platform app like > Node. > > if you're interested in learning more about this, here is a couple random > readings to get you started, including some mailing list links to what I > consider to be the state of the art: the recently canceled 'gn' project. > (gn, btw, is the proper way to work towards moving away from the python > build dependency, but even then it would be very difficult) > > http://freecode.com/articles/stop-the-autoconf-insanity-why-we-need-a-new-build-system(why > autoconf needs to die, written more than a decade ago) > https://code.google.com/p/gyp/wiki/GypVsCMake > http://harmful.cat-v.org/software/dynamic-linking/<http://www.google.com/url?q=http%3A%2F%2Fharmful.cat-v.org%2Fsoftware%2Fdynamic-linking%2F&sa=D&sntz=1&usg=AFQjCNHogO7OTEhjnG-QNsuGgn5_QRvWCQ> > http://www.aosabook.org/en/posa/ninja.html > > https://groups.google.com/a/chromium.org/d/msg/chromium-dev/87jmrxg-oDM/Uyd41uqOItsJ > > > https://groups.google.com/a/chromium.org/d/msg/chromium-dev/LQKLbTU-PuU/8akR_c84JZ8J > > Ryan > I'm no fan of the current state of affairs either. Build systems still seem to be in the state that revision control systems were a decade ago. In particular, Makefiles are not by themselves a build system because they're not declarative at that the required level of abstraction. But I haven't seen anything *better*. The fact that a general purpose build system needs to be written in python is a travesty, and defining your build data with it completely violates the rule of least power. Austin. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
