In addition to your comments, I also find the gyp syntax somewhat unpleasant. 
In particular, in .gypi lists of files to compile, ever entry is double-quoted, 
comma-separated, line-separated, and then grouped in multiple levels of braces. 
This is noisier than any of our current formats except the XML-based ones. It 
seems like a newline-separated list, possibly indented, should be sufficient.

For .gyp files themselves, I admit I don't have a clear understanding of what 
they are actually doing, so it's hard for me to say if the syntax they use is 
good or not.

I think in general the trick of making the files essentially Python code is 
(presumably) handy for Python experts but not easy to read for anyone else.

But I am assuming syntax-level things can be fixed once we have things working 
for more ports, and doesn't necessarily need to be a showstopper to initial 
adoption. Perhaps after successfully deploying gyp for one additional port, the 
right next steps are to make sure the experience is smooth and enjoyable for 
WebKit hackers, before propagating it further.

Regards,
Maciej

On Mar 24, 2011, at 9:49 PM, Brent Fulgham wrote:

> Hi Dimitri,
> 
> <LONG screed follows...>
> 
> On Mar 24, 2011, at 9:24 AM, Dimitri Glazkov wrote:
> 
>> \With the gyp conversion at this stage, we now have a possible solution
>> to this problem. Given that there aren't any other viable alternatives
>> in the present, please consider the most productive way of
>> contributing: filing well-formulated bugs, blocking bug 55018
>> (https://bugs.webkit.org/showdependencytree.cgi?id=55018&hide_resolved=1).
>> We can then discuss these specific problems and adjust the shape of
>> the solution accordingly.
> 
> While I applaud the idea of a unified build system, my own experience trying 
> to get gyp working has been a uniformly frustrating experience.
> 
> Imagine for a moment that rather than being a Chromium developer, long 
> schooled in the use of gyp and the various build components needed to support 
> it, you are a lowly external developer who just wishes to build WebKit.  Out 
> of curiosity, I took a stab at playing with gyp again this evening:
> 
> 1. The top Google hit for "gyp build system" takes me to an exhaustive 
> specification of the gyp input file syntax format.  If I click on the 
> "Project Home" link, I find no information on downloading or installing the 
> system.  Presumably I can download the source and somehow generate the tool.
> 
> 2. If I go to the User Documentation page 
> (http://code.google.com/p/gyp/wiki/GypUserDocumentation), I am instructed on 
> how to draft my own gyp files to build things.  But why would I care when I 
> can't even try the software out on an existing project, like WebKit?
> 
> Once I download the gyp sources and 'build' them using the included 
> "setup.py", it's not clear what to do with them:
> 
> link:Source brent$ gyp .
> Traceback (most recent call last):
>  File "/usr/local/bin/gyp", line 18, in <module>
>    sys.exit(gyp.main(sys.argv[1:]))
>  File "/Library/Python/2.6/site-packages/gyp/__init__.py", line 374, in main
>    '--depth as a workaround.'
> Exception: Could not automatically locate src directory.  This is a temporary 
> Chromium feature that will be removed.  Use --depth as a workaround.
> link:Source brent$ gyp ./gyp
> Traceback (most recent call last):
>  File "/usr/local/bin/gyp", line 18, in <module>
>    sys.exit(gyp.main(sys.argv[1:]))
>  File "/Library/Python/2.6/site-packages/gyp/__init__.py", line 374, in main
>    '--depth as a workaround.'
> Exception: Could not automatically locate src directory.  This is a temporary 
> Chromium feature that will be removed.  Use --depth as a workaround.
> link:Source brent$ gyp help
> Traceback (most recent call last):
>  File "/usr/local/bin/gyp", line 18, in <module>
>    sys.exit(gyp.main(sys.argv[1:]))
>  File "/Library/Python/2.6/site-packages/gyp/__init__.py", line 374, in main
>    '--depth as a workaround.'
> Exception: Could not automatically locate src directory.  This is a temporary 
> Chromium feature that will be removed.  Use --depth as a workaround.
> link:Source brent$ 
> 
> I kind of hate gyp!
> 
> Compare that to the native Xcode projects, CMake files, or normal GNU 
> Makefiles.  These other solutions almost always JUST WORK, because if you can 
> build any software on your machine, you must have used one of these options.
> 
> I don't use gyp for anything, I don't have it installed, and its not clear 
> how to go about using it.
> 
> Please don't further raise the barrier of entry to new WebKit developers by 
> adding yet another obscure build requirement to the system.  :-(
> 
> Thanks,
> 
> -Brent
> 
> 
> 
> 

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to