Skip to content

Conversation

bishopb
Copy link
Contributor

@bishopb bishopb commented Jan 6, 2018

@see https://bugs.php.net/bug.php?id=54289

A Phar object's manifest is a hash of file leaves: the directories are not held as distinct references. So, when the user gives a request for a directory, we need to find the list of file leaves having that directory as a prefix. If you're familiar with AWS, this is like how S3 works -- there aren't "directories" in the sense of a directed node graph: rather, there are just files, which optionally have a prefix we interpret semantically as a directory.

Ideally, we'd rather want an index of files by their directories, because with rather large .phar this can be an expensive operation. Might address that in a future refactoring, but this was the most obvious implementation: the cost being that extracting directories from large phar may be slow.

weltling and others added 30 commits December 8, 2017 21:41
Support list() reference assignments of the form:

    list(&$a, list(&$b, $c)) = $d;

RFC: https://wiki.php.net/rfc/list_reference_assignment
The behavior of RANGE_RANGE() is 7.1 changed completely, from
rescaling an already generated number to generating a number
itself. Because of this str_shuffle() ended up generating two
random numbers on every iteration.

To avoid further misuse the function is dropped entirely. Extensions
for PHP >= 7.1 should directly call php_mt_rand_range().
Everything else in that file uses sizeof with parentheses.
Default values should have no leading space, everything else should
have one.
Mentioned PHP versions indicate that there is a progress to make code
fully follow the coding standards which is not exactly the real case.
This patch changes few oudated used PHP versions in intro paragraph
and mentions the PHP documentation repository in more abstract way.

[ci skip]
Some extensions included TODO files that has been present for several
years in the repository tree without changes. This included:

- ext/phar
- ext/intl
- ext/zip
- ext/soap
- ext/pdo
- ext/spl
- ext/dom
- ext/gmp
- ext/xmlwriter
- ext/xmlreader

ext/phar feature request has been created instead, and for others it
would be better to use wiki and RFC workflow instead based on current
feature requests and further PHP development requirements.

[ci skip]
PASS_TWO_UNDO_CONSTANT was using the serialized op_array->literals
pointer, resulting in incorrect offsets.
* PHP-7.2:
  Add vc++ 19.12 to the known list
* PHP-7.1:
  Sync known vc++ versions in 7.1
* PHP-7.2:
  Sync known vc++ versions in 7.1
Adds PHP bindings for mpz_bin_ui and mpz_bin_uiui, for calculating
binomial coefficients.
Exposes mpz_lcm() and mpz_lcm_ui() for calculating the least
common multiple.

We already expose the somewhat complementary gmp_gcd() function.
Exposes the mpz_perfect_power_p() function.

We already had the more specific gmp_perfect_square() function.
weltling and others added 29 commits January 3, 2018 18:36
* PHP-7.2:
  Skip on Travis-CI
This reverts commit b0db19e.

More test fixes needed to evaluate.
* PHP-7.2:
  Happy new year (Update copyright to 2018)
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
* 'master' of git.php.net:/php-src:
  Happy new year (Update copyright to 2018)
  Happy new year (Update copyright to 2018)
  Revert "Enable ODBC tests on AppVeyor"
  Enable ODBC tests on AppVeyor
  Skip on Travis-CI
  Extend skip section
  2018
  missing changelog entries + fix version and date
  missing changelog entries
  2018
  Trailing whitespaces
* 'clean-up' of https://github.com/carusogabriel/php-src:
  Trailing whitespaces on Zend
  Trailing whitespaces on win32
  Trailing whitespaces on sapi/*
  Trailing whitespaces on ext/*
…t, also remove the note about Windows NT based OS, as we only support NT anyway
* PHP-7.2:
  Fix tests
* 'master' of git.php.net:/php-src:
  Fixed typo
When you've got a request to extract a file, and that "file" doesn't
exist in the manifest (which is leaves of files), it's possible that
it's actually a request for "directory". In that case, we check if that
"directory" exists as a prefix: for all leaves with that prefix, extract
them.
@bishopb bishopb closed this Jan 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.