1
0
Fork 0
Commit Graph

60 Commits (17788c76f635f0f4ff43e19e672e651fc144faf4)

Author SHA1 Message Date
Fred Emmott 17788c76f6
Better error message for present but incompatible versions
hhvm-nightly (and next week's release) now report 4.x, so all the 3.x
constraints are now giving misleading error messages with this patch.

Before:

```
    - facebook/fbexpect v2.3.0 requires hhvm ^3.28 -> you are running this with PHP and not HHVM.
```

After:

```
    - facebook/fbexpect v2.3.0 requires hhvm ^3.28 -> your HHVM version (4.0.0-dev) does not satisfy that requirement.
```
2019-02-06 12:51:30 -08:00
Gabriel Caruso 71c8735e11 Use combined assignment operators 2018-09-10 14:24:41 +02:00
Markus Staab 05499099a0
Simplify Rule->getJob() 2018-07-18 20:50:46 +02:00
Gabriel Caruso 3d262bd637 Fixes from PHPStan level 0
More fixes from PHPStan level 0
2018-01-14 11:44:15 -02:00
Denis Brumann 2df1a69287 Improve IDE autocompletion
According to type 2nd constructor-argument `$reasonData` can either be a Link or a PackageInterface. IDEs like PhpStorm won't be able to provide autocompletion since both classes are from a different namespace.

In order to provide better autocompletion for `$reasonData` and by extension `$this->reasonData` the use statements should be included or the type hint should use the fully qualified class name.

For the same reason I added the docblock on the protected method `formatePackagesUnique()`.
2017-08-04 13:00:24 +02:00
rubenrua 4e1887a721 Improve memory usage resolving dependencies
It is known that composer update takes a lot of memory: #5915, #5902,

I am playing with a profiler (@blackfireio) to make a demo in my local
PHP meetup (@phpvigo) and I found out a way to use less memory. These
are my first tests:

* Private project using PHP 5.6:
  * Memory: from 1.31GB to 1.07GB
  * Wall Time: from 2min 8s to 1min 33s

* symfony-demo using PHP 7.1 in my old mac book:
  * Memory: from 667MB to 523MB
  * Wall Time: from  5min 29s to 5min 28s

Not use an array inside conflict rules is this improvement main idea:

```php
<?php
//Memory 38MB
gc_collect_cycles();
gc_disable();

class Rule
{
    public $literals;

    public function __construct(array $literals)
    {
        $this->literals = $literals;
    }
}

$rules = array();

$i = 0;
while ($i<80000){ //
    $i++;

    $array = array(-$i, $i);
    $rule = new Rule($array);
    $rules[] = $rule;
}
```

```php
<?php
//Memory 11.1MB
gc_collect_cycles();
gc_disable();

class Rule2Literals
{
    public $literal1;
    public $literal2;

    public function __construct($literal1, $literal2)
    {
        $this->literal1 = $literal1;
        $this->literal2 = $literal2;
    }
}

$rules = array();

$i = 0;
while ($i<80000){ //
    $i++;

    $rule = new ConflictRule(-$i, $i);
    $rules[] = $rule;
}
```

More info https://github.com/composer/composer/pull/6168
2017-02-20 18:52:17 +00:00
ReenExe 53fc30fe56 clear code 2016-05-17 13:34:54 +03:00
Lucas CHERIFI 7e34d9ab97 Typo fix ;-) 2016-05-10 21:45:39 +02:00
Jordi Boggiano feda2a283f Improve error reporting some more, fixes #4310 2016-04-18 23:03:00 +01:00
Jordi Boggiano c74e6df65d Fix strings being passed to an int arg, fixes 7.1 build 2016-04-01 11:52:19 +01:00
Jordi Boggiano 623c0dcda7 Improve solver error reporting, fixes #5086, fixes #2575, fixes #2661 2016-04-01 00:18:36 +01:00
Niels Keurentjes ebfceefca6 Removed long deprecated functions that were no longer referenced anywhere. 2016-02-15 22:00:54 +01:00
Rob Bast baabc612f6 adjust message, skip test
currently we have no way to put dynamic values or wildcards in EXPECT-OUTPUT
2016-02-05 13:21:30 +01:00
Rob Bast 94daeca57b add test and adjust rule error message 2016-02-05 11:59:05 +01:00
Wouter J d0e4c5f71e Use "value" instead of "setting" 2015-12-19 12:15:01 +01:00
Wouter J b156ad0345 Improve error message 2015-12-12 12:19:26 +01:00
Jordi Boggiano ce08582671 Fix CS 2015-09-28 10:53:24 +01:00
Rob Bast 51ef7b5eef instead of generic be more verbose about possible causes 2015-07-31 10:01:58 +02:00
Rob Bast 77f1d5945f make sure php version errors are less misleading
* determine conflicting version in problem using pool package
* hide version in rule to keep it generic rather than possibly misleading

fixes #4319
2015-07-31 09:58:34 +02:00
Nils Adermann cf1af58514 Use bitwise operators directly in rules instead of get/set Bitfield 2015-07-14 14:24:18 +02:00
Nils Adermann 956035e641 Remove the unnecessary return statements from setters 2015-07-09 19:40:03 +02:00
Nils Adermann f535542fca Use constants with names for bitfield offsets 2015-07-09 18:59:16 +02:00
Nils Adermann 329ab5cf41 Rename blob rule property to bitfield 2015-07-09 18:48:50 +02:00
Nils Adermann 961ea868ac Use an integer bitfield for rule properties instead of a string binary blob 2015-07-09 18:26:31 +02:00
Nils Adermann 6e81f63635 Reduce memory footprint of rules by storing data in blob
Not declaring the job property saves significant amounts of memory as
most rules leave it as null
2015-07-09 17:23:45 +02:00
Nils Adermann c7e1f49e78 Rule hashes are only used in the rule set, so no need to store them 2015-07-08 19:11:59 +02:00
Nils Adermann 15d572da4c Use 4 byte integer from raw md5 instead of 5 hex representation chars
The hash is necessary as comparisons are significantly too slow
otherwise. The old hash function used substr on the hexadecimal
representation of the md5 hash, rather than the raw binary output. This
wastes a significant amount of memory, as each byte can only be used to
store up to 4 bit of information. The new hash has 32bit instead of
20bit and uses only a 4 byte integer instead of a 5 byte string.
2015-07-08 19:11:58 +02:00
Markus Staab c9bdf3a07a added the actual phpversion into the error message when phpversion doesn satisfy the requirement 2015-04-29 18:21:18 +02:00
Jordi Boggiano 3ba581f0df Improve error messages for required hhvm/php versions, fixes #3767 2015-02-25 16:24:39 +00:00
Nils Adermann 2c43a3bcd0 Improve docblocks of public properties 2014-12-01 19:07:26 +01:00
Nils Adermann 107a736440 Recreate getLiterals method for BC 2014-12-01 19:05:01 +01:00
Nils Adermann 26598c4a9a Remove unnecessary pool reference from rules 2014-12-01 19:02:50 +01:00
Nils Adermann 5c0efdcaa2 Move public properties to top and document them 2014-12-01 18:25:22 +01:00
Nils Adermann ef41f136f8 Literals on rule are now public
This causes a reduction of ~500k function calls for packagist composer
update (~14 million total).
2014-12-01 18:08:56 +01:00
Jordi Boggiano cc37e4b0b8 Show defaulted version if phpversion() returns nothing, fixes #2313 2013-10-09 19:44:53 -03:00
Jordi Boggiano cc9dac8fe2 Fix tests and convert all package lists to Name[Versions] format 2013-04-27 00:31:22 +02:00
Jordi Boggiano 201cde05be Show reasons why an operation is executed in -vv mode, fixes #1063 2013-04-27 00:11:06 +02:00
Jordi Boggiano 0700cd9186 Adjust according to feedback 2013-04-17 17:37:22 +02:00
Jordi Boggiano db4055b778 Put a higher prio on replacers of the same vendor as the required package 2013-04-17 15:39:42 +02:00
Pascal Borreli 5eead93250 Fixed typos 2012-10-24 23:14:04 +00:00
Jordi Boggiano a8171f5be0 Display prettier messages for second-degree required exts to avoid confusion 2012-10-10 17:54:17 +02:00
Nils Adermann cc7632489d Make problem report messages more readable
Added pretty strings to constraints
2012-06-20 19:06:36 +02:00
Nils Adermann 5bea5974f7 Improve error messages for solver problems 2012-06-07 03:23:23 +02:00
Jordi Boggiano 1bd4ccbd54 php-cs-fixer magic 2012-05-22 12:07:08 +02:00
Nils Adermann c869566868 Make ruleHash a protected member of rules 2012-05-20 15:57:38 +02:00
Nils Adermann dd527a4049 Remove weak rules
Since we no longer have suggest/recommend rules and no longer use any update
or feature rules so packages are removed by default, we do not need weak rules
anymore.
2012-05-19 21:49:48 +02:00
Nils Adermann 451bab1c2c Get rid of Literal object / literal id mix, use literals only to save memory 2012-05-19 20:38:56 +02:00
Nils Adermann 46e4ae0e6a Move rule generation from solver into separate rule set generator 2012-05-15 21:36:47 +02:00
Nils Adermann 70e306f055 Process all jobs in one method and remove lock jobs which are not used 2012-05-15 20:22:48 +02:00
Nils Adermann bd66c27ff6 We mark packages as uninstallable by removing them from the repo
As it is faster to remove packages from the repos and keep them out of the
package pool to begin with, we don't need an installable() method on the
policy.
2012-05-15 19:57:55 +02:00