[Routing] fixed 4 bugs in the UrlGenerator
FileLocatorInterface used in typehint instead of FileLocator
Revert "Removed MySQL-exclusive usage of unsigned integer from table creation"

This reverts commit 57694aaa94ec0118f516e8962be2f018c36d2011.

The problem is underlying in Doctrine DBAL change tracking and should
either be fixed or ignored there.
Update src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php
[Form] Fixed error bubbling from DateTime widget - Issue #5270
added note about 404 error pages
[Form] refactor Form::bind to save 7 assignments
[Form] optimized the binding of child forms and calculation of extra data
[Form] optimized PropertyPathMapper to invoke the expensive property path less often
[Process] Add workaround for PHP's internal sigchild failing to return proper exit codes
[Form] added test with null parent
[Form] fixed Form::setParent(null)
[Form] deprecated Form::hasErrors that isn't part of the Interface
[Form] fix phpdoc of Form::hasErrors
dump test

fix things pointed out by stof

fix things pointed out by pborreli

fix things pointed out by fabpot
[Form] fixed and added phpDoc
[Form] fixed FormConfigBuilder to use PropertyPathInterface
[Form] Fixed some PHPDoc
fixed merge
merged branch Seldaek/sigchild-workaround (PR #5353)

Commits
-------

7b63428 [Process] Add workaround for PHP's internal sigchild failing to return proper exit codes

Discussion
----------

[Process] Add workaround for PHP's internal sigchild failing to return proper exit codes

PHP compiled with --enable-sigchild basically fails to return exit codes, and randomly returns -1 instead most of the time (see https://bugs.php.net/bug.php?id=29123).

This works around it by having the exit code going through another pipe. It's enabled by default for linux because the new pipe trick won't work on windows I think, but that's unlikely to be an issue because most people don't compile their own php there.

I could have it enabled only when sigchild is enabled using the code below, but obviously that adds some overhead, so I'm not sure what's worst.

```php
ob_start();
phpinfo(INFO_GENERAL);
$sigchild = false !== strpos(ob_get_clean(), '--enable-sigchild');
```

That said, this renders composer unusable (because we do check exit codes) for people having sigchild enabled, and it's not so easy to workaround outside of the Process class itself, so I hope this is an acceptable fix.

---------------------------------------------------------------------------

by schmittjoh at 2012-08-26T13:41:18Z

How about prepending commands with ``exec`` to avoid spawning child processes altogether?

see #5030

---------------------------------------------------------------------------

by Seldaek at 2012-08-26T13:51:40Z

@schmittjoh I'm not sure how that's related to this issue? The problem here is that $exitcode is -1 when it should be 0, I don't see how the additional level of exec would help but maybe I'm missing your point.

---------------------------------------------------------------------------

by schmittjoh at 2012-08-26T13:59:15Z

I haven't looked in detail at this, but exec removes the child wrapper that PHP adds normally.

---------------------------------------------------------------------------

by fabpot at 2012-08-26T16:10:24Z

What about doing the fix in 2.0?

---------------------------------------------------------------------------

by stof at 2012-08-26T16:13:04Z

Can it be applied to 2.0 without too much work ? The Process component has been refactored for 2.1

---------------------------------------------------------------------------

by Seldaek at 2012-08-26T16:16:06Z

Just tried to rebase and it's not so trivial.. I can try to rebuild the
patch from scratch for 2.0 if it's important.

---------------------------------------------------------------------------

by fabpot at 2012-08-26T16:24:38Z

ok, let's only do the fix for master for now.

---------------------------------------------------------------------------

by Seldaek at 2012-08-26T20:49:39Z

@fabpot ok so the question remains whether there should be a ctor check for the configure flag to enable this or if we just always do it and hope it doesn't cause issues.