Skip to content
Permalink
Branch: master
Commits on Jul 6, 2019
  1. Unnecessary use of &.

    patrickt committed Jul 6, 2019
  2. Stray whitespace change.

    patrickt committed Jul 6, 2019
  3. Kill unused import.

    patrickt committed Jul 6, 2019
  4. Remove the unused 'analyze'.

    patrickt committed Jul 6, 2019
  5. Fix Interpose

    patrickt committed Jul 6, 2019
  6. Fix effects in semantic-core.

    patrickt committed Jul 6, 2019
  7. unsuccessful take on Analyze

    patrickt committed Jul 6, 2019
  8. more monad massages

    patrickt committed Jul 6, 2019
  9. WIP

    patrickt committed Jul 6, 2019
Commits on Jul 3, 2019
  1. Merge pull request #193 from KevOrr/php-strict-equal-assignment

    patrickt committed Jul 3, 2019
    [#188] Fix PHP strict inequality assignment
  2. Merge branch 'master' into php-strict-equal-assignment

    patrickt committed Jul 3, 2019
  3. Merge pull request #192 from KevOrr/php-concat

    patrickt committed Jul 3, 2019
    [#186] Fix PHP string concatenation and augmented assignment
  4. Merge branch 'master' into php-concat

    patrickt committed Jul 3, 2019
  5. Merge branch 'master' into php-strict-equal-assignment

    patrickt committed Jul 3, 2019
Commits on Jul 2, 2019
  1. Include vertex IDs in JSON graph output and fix their format.

    patrickt committed Jul 2, 2019
    As reported in #189, the `edges` field of JSON graph output refers to
    information not reflected in the rest of the output, specifically the
    vertex IDs. This patch adds that information to the `ToJSON` instance
    for `ControlFlowVertex`. It also includes a `toEncoding` instance for
    a free speed boost.
    
    During this patch, I realized that, because `hash` tends to return a
    large number (since `Int` is 64-bit), we may run into errors when
    decoding JSON. One example hash is `3500157981503982114`; passing that
    to a JS engine's `Number.isSafeInteger` function returns false. The
    correct thing to do here is return ids as strings, which I have done.
    This is backwards-incompatible, but since this information was never
    properly exposed, the impact is negligable.
Commits on Jun 25, 2019
  1. Fix DiffTreeVertexDiffTerm definition to be a valid protobuf object.

    patrickt committed Jun 25, 2019
    We define the DiffTreeVertex protobuf message like so:
    
    ```protobuf
    message DiffTreeVertex {
      int32 diff_vertex_id = 1;
      oneof diff_term {
        DeletedTerm deleted = 2;
        InsertedTerm inserted = 3;
        ReplacedTerm replaced = 4;
        MergedTerm merged = 5;
      }
    }
    ```
    
    This is turned into two Haskell types, a toplevel `DiffTreeVertex` type
    and a `DiffTreeVertexDiffTerm` type that represents the anonymous
    `oneof` type. Said types looked like so:
    
    ```haskell
    data DiffTreeVertexDiffTerm
      = Deleted (Maybe DeletedTerm)
      | Inserted (Maybe InsertedTerm)
      | Replaced (Maybe ReplacedTerm)
      | Merged (Maybe MergedTerm)
      deriving stock (Eq, Ord, Show, Generic)
      deriving anyclass (Proto3.Message, Proto3.Named, NFData)
    ```
    
    This is the wrong representation, as it neglects to account for the
    fact that options could be added to the `diff_term` stanza. A sum type
    does not provide enough constructors to handle the case of when none
    of `deleted`, `inserted`, `replaced` etc. is `Just` anything. A more
    correct definition follows:
    
    ```haskell
    data DiffTreeVertexDiffTerm = DiffTreeVertexDiffTerm
      { deleted :: Maybe DeletedTerm
      , inserted :: Maybe InsertedTerm
      , replaced :: Maybe ReplacedTerm
      , merged :: Maybe MergedTerm
      }
    ```
    
    This patch applies the above change, using `-XPatternSynonyms` to
    provide backwards-compatible API shims. Though this changes JSON
    output format (through the `ToJSON` instance), it should have no
    bearing on backwards compatibility in protobuf objects, since there is
    no way to consume diff trees as protobufs as of this writing.
    
    Fixes #168.
Commits on Jun 23, 2019
  1. Remove servant dependency.

    patrickt committed Jun 23, 2019
    This has no place here; downstream consumers can link in servant, but
    we don't have any need to.
Commits on Jun 20, 2019
  1. Drop the transformers dependency.

    patrickt committed Jun 20, 2019
  2. Merge pull request #169 from github/test-proto-symbols-cli-output

    patrickt committed Jun 20, 2019
    Add golden tests for `parse --proto-symbols` output.
  3. Eliminate mtl dependency.

    patrickt committed Jun 20, 2019
  4. Remove unused liftCons5 function.

    patrickt committed Jun 20, 2019
  5. Further simplifications.

    patrickt committed Jun 20, 2019
  6. Quiesce the last few warnings from the tests.

    patrickt committed Jun 20, 2019
  7. The fixtures are binary files, don't diff them.

    patrickt committed Jun 20, 2019
  8. Add golden tests for `parse --proto-symbols` output.

    patrickt committed Jun 20, 2019
    This should help us ensure that we don't break CLI output, since our
    CLI is an API.
    
    This was made super-easy thanks to `tasty-golden`. I literally added
    those two lines of code and it automatically created the reference
    `.protobuf.bin` files. Slick as hell.
  9. Merge pull request #167 from github/quiet-test-spew

    patrickt committed Jun 20, 2019
    Quiet debug spew in specs.
Commits on Jun 19, 2019
  1. Better nomenclature.

    patrickt committed Jun 19, 2019
Older
You can’t perform that action at this time.