Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on May 23, 2015
  1. @int3 @hhvm-bot

    Remove ServerDfind

    int3 authored hhvm-bot committed
    Summary: The functionality can be split between DfindLib and
    ServerEnvBuild. This also has the advantage of making the Dfind state
    explicit. It would also help code sharing between Flow and Hack (since
    server code will no longer be shared)
    
    Reviewed By: @jwatzman
    
    Differential Revision: D2096628
  2. @int3 @hhvm-bot

    Format: `function() {...}` instead of `function () {...}`

    int3 authored hhvm-bot committed
    Reviewed By: @jwatzman
    
    Differential Revision: D2090680
  3. @jwatzman @hhvm-bot

    Fix build with ocaml 4.01

    jwatzman authored hhvm-bot committed
    Summary: This syntax is apparently new in 4.02?
    
    Reviewed By: @elgenie
    
    Differential Revision: D2097955
  4. @int3 @hhvm-bot

    Have Dfind use Daemon module

    int3 authored hhvm-bot committed
    Summary: {D2095007} introduced the Daemon module to use for logging. The
    Daemon module essentially factors out the code in Dfind and makes it
    more typesafe; let's have Dfind use it as well.
    
    Reviewed By: @elgenie
    
    Differential Revision: D2096613
  5. @int3 @hhvm-bot

    Buffer EventLogger

    int3 authored hhvm-bot committed
    Reviewed By: @elgenie
    
    Differential Revision: D2095864
  6. @int3 @hhvm-bot

    Daemonize the logging process

    int3 authored hhvm-bot committed
    Reviewed By: @gabelevi, @elgenie
    
    Differential Revision: D2095007
  7. @elgenie @hhvm-bot

    typechecker: unify function terminality code for `noreturn`

    elgenie authored hhvm-bot committed
    Summary: We currently need to know for whether a function is terminal
     both on `Nast` (during typing) and on the `Ast` (when getting the
     list of locals to determine which ones are "pending"). Ensure that
     the relevant code is shared.
    
    Reviewed By: @int3
    
    Differential Revision: D2095062
  8. @elgenie @hhvm-bot

    typechecker: switch naming datastructures to `Hashtbl`

    elgenie authored hhvm-bot committed
    Summary: This appears to be an ~3x speedup in naming, without an
     appreciable impact on the other phases. The workload of naming on a
     codebase should be dominated by lookups and updates, since presumably
     the code would be getting used.
    
     Facebook: The initial Hashtbl sizes were selected using the current
     numbers for www: `Naming results: 338595 classes 5320 typedefs 25412
     funs 11986 consts`. Unfortunately, it doesn't seem like marshalling
     is any cheaper.
    
    Reviewed By: @int3
    
    Differential Revision: D2083242
  9. @elgenie @hhvm-bot

    typechecker: add auto-import functions

    elgenie authored hhvm-bot committed
    Summary: `invariant` and `invariant_violation` need to be on the
     auto-import list, since they're no longer to be hard-coded in the
     typechecker as parse nodes. Testing this showed a long-standing bug
     in "namespace-elaboration" incorrectly applying to the declarations
     defining an auto-imported name (e.g. `Vector`) in namespace.
    
    Reviewed By: @jwatzman
    
    Differential Revision: D2095129
  10. @elgenie @hhvm-bot

    typechecker: use 'noreturn' in Nast.terminality calculations

    elgenie authored hhvm-bot committed
    Summary: The syntax requires an explicit `class::no_return_meth()` or
     `no_return_func()` call.
    
     As a result, there's no longer a need to special-case
     `invariant_violation`: it can instead be a normal function in the
     embedded `*.hhi`s
    
    Reviewed By: @int3
    
    Differential Revision: D2083236
Commits on May 22, 2015
  1. @elgenie @hhvm-bot

    format: 'elseif' => 'else if'

    elgenie authored hhvm-bot committed
    Summary: Since `hh_format` is all about 'one way to do it' :)
    
    Reviewed By: @int3
    
    Differential Revision: D2095082
  2. @elgenie @hhvm-bot

    typechecker: remove Injectable deps

    elgenie authored hhvm-bot committed
    Summary: Not being used for anything
    
    Reviewed By: @int3
    
    Differential Revision: D2083233
  3. @elgenie @hhvm-bot

    typechecker: move function/method body naming to typing phase

    elgenie authored hhvm-bot committed
    Summary: The contents of method bodies do not impact the type of the
     containing function / class at all. As such, that process of "local"
     naming can be deferred until the typechecking of the function/method.
     With follow-up diff(s), allows for `noreturn`-return types to work
     (since all their declarations are finished before use).
    
     Facebook: NOTE: breaks the abstract interp tests. This is fine for
     now because it's non-production code atm and the tests seem to depend
     on the order of body vs declaration naming.
    
    Reviewed By: @int3
    
    Differential Revision: D2054071
  4. @binliu19 @hhvm-bot

    Use a set of ids instead of a single id in AFrame

    binliu19 authored hhvm-bot committed
    Summary: AliasIdSet.
    
    Reviewed By: @jdelong
    
    Differential Revision: D2053936
  5. @JoelMarcey @hhvm-bot

    Reduce checks in Implode

    JoelMarcey authored hhvm-bot committed
    Summary: We had a few unncessary checks in `Implode` for the common cases. This diff reduces them. Don't check
    for containerish-ness, don't keep checking whether we are at the first string so we don't put a
    delimiter, and don't keep checking if the string length is greater than 0 (it will be so rare that,
    a once in a while all to memcpy with 0 bytes is ok).
    
    Small percentage wins on Drupal and Mediawiki, relatively flat on Wordpress.
    
    Reviewed By: @fredemmott
    
    Differential Revision: D2095161
  6. @paulbiss @hhvm-bot

    Use FileCache for opendir() and readdir()

    paulbiss authored hhvm-bot committed
    Summary: Drupal 7 iterates its directory tree on every request to load modules using
    opendir() and readdir(), this diff hooks those builtins into the FileCache
    to avoid making system calls when the directory is in the cache.
    
    This takes us from around 800rps to 1100rps.
    
    Reviewed By: @fredemmott
    
    Differential Revision: D1943184
  7. @wjywbs @hhvm-bot

    Link with boost_context library.

    wjywbs authored hhvm-bot committed
    Summary: Otherwise ld will report undefined references in folly.
    Closes #5346
    
    Reviewed By: @sgolemon
    
    Differential Revision: D2068287
  8. @mxw @hhvm-bot

    Save %flags for constant zero loads only if live

    mxw authored hhvm-bot committed
    Reviewed By: @markw65
    
    Differential Revision: D2081556
  9. @markw65 @hhvm-bot

    Rewrite store-elim as partial redundancy elimination

    markw65 authored hhvm-bot committed
    Summary: This can allow sinking stores into unlikely paths, and removing
    them from the mainline.
    
    Reviewed By: @jdelong
    
    Differential Revision: D2039380
  10. @int3 @hhvm-bot

    Remove ServerSign

    int3 authored hhvm-bot committed
    Summary: It seems unused (and supersede by saved state)
    
    Reviewed By: @jwatzman
    
    Differential Revision: D2090653
  11. @jwatzman @hhvm-bot

    Simple script for OSS repo mode

    jwatzman authored hhvm-bot committed
    Summary: Enabling repo mode requires some slight shenanigans, which this
    script can manage for folks. A followup diff to the packaging repo will
    install this as `/usr/bin/hhvm-repo-mode` in our deb packages. I'm not
    sure how portable this is beyond Debian/Ubuntu; most of it is general,
    but the INI path and the `service` calls may not be; I wasn't sure how
    to do that portably.
    
    Ref. #5356
    
    Reviewed By: @paulbiss
    
    Differential Revision: D2083261
  12. @binliu19 @hhvm-bot

    Always base AStack on a frame pointer

    binliu19 authored hhvm-bot committed
    Summary: Since we have a single stack pointer per unit now, AStack locations can
    have a canonical representation based on the frame pointer. This way,
    different AStack locations must not alias, and alias analysis is
    simplified.
    
    Reviewed By: @jdelong
    
    Differential Revision: D2080432
  13. @billf @hhvm-bot

    add nullbyte detection to proc_open

    billf authored hhvm-bot committed
    Summary: php compat: php/php-src@a8722f5
    
    cleaned up code in the neighborhood. i can split those cleanups out if desired.
    
    Reviewed By: @markw65
    
    Differential Revision: D2082810
  14. @billf @hhvm-bot

    add nullbyte detection to shell_exec,exec,system,passthru

    billf authored hhvm-bot committed
    Summary: php compat: php/php-src@a8722f5
    
    Reviewed By: @markw65
    
    Differential Revision: D2082131
  15. @billf @hhvm-bot

    optimize ini_get() for integer values too

    billf authored hhvm-bot committed
    Reviewed By: @jano
    
    Differential Revision: D2086585
  16. @jdelong @hhvm-bot

    Don't mimic HHBC guard relaxation in FPassL

    jdelong authored hhvm-bot committed
    Summary: We have giant retranslation chains in array_filter---it looks like it
    might be because we're doing an FPassL to get the values into the callee.  We
    can't change these FPassLs to FPassC or whatnot because they are created by a
    WIter instruction (and have unknown reffiness statically).
    
    Maybe this will help.
    
    Reviewed By: @ottoni
    
    Differential Revision: D2082419
  17. @jdelong @hhvm-bot

    Fix some may_reenters that need to be may_raise for now

    jdelong authored hhvm-bot committed
    Summary: These things can variously raise warnings.  In particular,
    "RaiseWarning" :)
    
    (We should be conservative and opt things out when we're sure, but I think
    maybe we look into disabling this under Eval.EnableArgsInBacktraces=0.
    Hopefully this doesn't cut too much into the PRE store-elim wins ...)
    
    Reviewed By: @binliu19
    
    Differential Revision: D2082023
  18. @jdelong @hhvm-bot

    Be a little clearer in memory-effects about some unions that must be …

    jdelong authored hhvm-bot committed
    …precise
    
    Summary: Let iterators get their stack range from may_reenter, and make the
    ReturnEffects case assert that a precise_union worked for what it needs to
    union.
    
    Reviewed By: @binliu19
    
    Differential Revision: D2081745
  19. @ottoni @hhvm-bot

    Add an option to enable hotcfg/wholecfg regions only for functions ma…

    ottoni authored hhvm-bot committed
    …rked as hot
    
    Summary: This is to try to reduce the overhead of JITing larger regions.  When this new option is enabled, for functions that are not marked as hot, we'll bail to the hottrace region selector when the new runtime option is true.
    
    I'm leaving the new option disabled for now, since I couldn't measure any impact in my tests.
    
    Reviewed By: @markw65
    
    Differential Revision: D2087042
  20. @yunxing @hhvm-bot

    strip current directory when printing errors to a tty

    yunxing authored hhvm-bot committed
    Summary: make hh_client strip current diretory when printing to tty
    
    Reviewed By: @int3
    
    Differential Revision: D2091896
Commits on May 21, 2015
  1. @paulbiss @hhvm-bot

    Fast Object <=> Array cast

    paulbiss authored hhvm-bot committed
    Summary: Two major changes in this diff:
     - Fix get_object_vars to return an array that retains refiness
     - Allow sharing of dynamic property arrays (in particular when objects are
       created from casts on arrays or by clone).
    
    To support sharing, dynamic property arrays are copied during set operations and
    eagerly when non-const TypedValue pointer are extracted (so that if we write to
    them the change does not effect anyone sharing the array).
    
    With these changes and some optimizations to toArray and toIterArray enabled
    by the new array sharing I'm seeing a 2% speedup for wordpress (it does a lot
    of these casts).
    
    Reviewed By: @jdelong
    
    Differential Revision: D2072576
  2. @int3 @hhvm-bot

    Add stats for the main hash table as well

    int3 authored hhvm-bot committed
    Summary: For completeness
    
    Reviewed By: @jwatzman
    
    Differential Revision: D2085724
  3. @jasone @hhvm-bot

    Remove invalid assertion.

    jasone authored hhvm-bot committed
    Summary: Remove an invalid assertion that can erroneously fail due to interactions
    between wholecfg and inlining.
    
    Reviewed By: @markw65
    
    Differential Revision: D2091681
  4. @hhvm-bot

    Add check and test case for interface attempting to implement

    Brian Rogoff authored hhvm-bot committed
    Summary: Added check in parser to prevent interface with 'implements'. Fixes T7028878
    
    Reviewed By: @int3
    
    Differential Revision: D2086918
  5. @markw65 @hhvm-bot

    Revert "Add skip reporting to hphp/test/run tests."

    markw65 authored hhvm-bot committed
    Summary: This reverts commit 35679bd97cf26013fec852ffd69bc89ba6c4ceda.
    
    We skip over 2000 tests per build, and run many builds per diff. Reporting
    all the skips is completely pointless, and just adds noise to the diff
    (plus, even with this diff, we only reported 300 or so skips, so either
    phabricator is intentionally limiting the number reported, or the diff
    to enable skip reporting is broken in some way).
    
    Reviewed By: @fredemmott
    
    Differential Revision: D2087730
Something went wrong with that request. Please try again.