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.

Reply via email to