Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge 4-0-114 to backup_sync #120

Open
wants to merge 205 commits into
base: backup_sync
Choose a base branch
from
Open

Merge 4-0-114 to backup_sync #120

wants to merge 205 commits into from

Commits on Jul 1, 2024

  1. [c2cpg] Safe getType / getNodeType (joernio#4706)

    They may fail throwing an unrecoverable exception in case of unresolved includes etc.
    Also, some minor clean-up.
    max-leuthaeuser authored Jul 1, 2024
    Configuration menu
    Copy the full SHA
    fe7b8b6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5d58eb4 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2024

  1. Configuration menu
    Copy the full SHA
    9e5a6b2 View commit details
    Browse the repository at this point in the history
  2. [Ruby] Parser tests (joernio#4704)

    This PR handles:
     * Move parser tests from the `deprecated` frontend to the new `ruby` frontend.
     * Fixed parser issues with HashLiterals
     * Fixed parser issues with one-liner class definitions
     * Fixed parser issues with arguments in functions
    AndreiDreyer authored Jul 2, 2024
    Configuration menu
    Copy the full SHA
    2fa5a03 View commit details
    Browse the repository at this point in the history
  3. [jssrc2cpg] Update astgen version (joernio#4714)

    Brings in latest babel and typescript to astgen.
    max-leuthaeuser authored Jul 2, 2024
    Configuration menu
    Copy the full SHA
    336c989 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5e3e9c9 View commit details
    Browse the repository at this point in the history
  5. [ruby] Arrow Lambda Tests & self Parameter Name Fix (joernio#4716)

    * [ruby] Arrow Lambda Parameter Fix
    Tests various lambdas and fixes `self` parameter name in methods.
    DavidBakerEffendi authored Jul 2, 2024
    Configuration menu
    Copy the full SHA
    5afcd8f View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    b76cdda View commit details
    Browse the repository at this point in the history
  7. use scala3-style import foo.bar.* rather than ._ (joernio#4717)

    partly to minify the flatgraph diff
    mpollmeier authored Jul 2, 2024
    Configuration menu
    Copy the full SHA
    fd2894c View commit details
    Browse the repository at this point in the history
  8. [speculative] minor work on reachingDef (joernio#4715)

    * minor work on reachingDef
    
    * fmt
    
    ---------
    
    Co-authored-by: Michael Pollmeier <[email protected]>
    bbrehm and mpollmeier authored Jul 2, 2024
    Configuration menu
    Copy the full SHA
    b40cdca View commit details
    Browse the repository at this point in the history

Commits on Jul 3, 2024

  1. [jssrc2cpg] Update astgen to v3.16.0 (joernio#4718)

    This astgen version skipps giant, unparsable files with EMSCRIPTEN code now by default.
    
    For: https://shiftleftinc.atlassian.net/browse/SEN-2797
    max-leuthaeuser authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    680be03 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    aad9fe3 View commit details
    Browse the repository at this point in the history
  3. [c2cpg] Register call typefullnames correctly (joernio#4722)

    Also handle fullnames with generics correctly when stubbing types
    For: https://shiftleftinc.atlassian.net/browse/SEN-2840
    max-leuthaeuser authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    b33a347 View commit details
    Browse the repository at this point in the history
  4. [ruby] Parser tests (joernio#4720)

    This PR adds a few more parser tests based on tests in the `querying/` folder for Ruby.
    AndreiDreyer authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    16925e6 View commit details
    Browse the repository at this point in the history
  5. [ruby] Simplify < Base Classes (joernio#4723)

    Inheritance via `<` in Ruby can be arbitrary extensions which warrant post-processing analysis, so this removes any attempt to resolve the type at AST creation to allow for a post-processing pass to handle this instead.
    DavidBakerEffendi authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    915b0ed View commit details
    Browse the repository at this point in the history
  6. Removed joern-stats from install script (joernio#4725)

    Does not exist anymore.
    max-leuthaeuser authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    ec6d03d View commit details
    Browse the repository at this point in the history
  7. [ruby] Make <body> Call Static Dispatch (joernio#4726)

    As the `<body>` call is synthetic and meant to be immediately deterministic, so there is no reason it should be re-determined.
    DavidBakerEffendi authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    18f7fae View commit details
    Browse the repository at this point in the history
  8. upgrade cpg and adapt (joernio#4728)

    * upgrade cpg and adapt
    
    * use released cpg
    mpollmeier authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    dca780f View commit details
    Browse the repository at this point in the history
  9. minify flatgraph diff: remove unnessecary (and misleading) typescheck (

    …joernio#4729)
    
    ```
    [warn] -- [E092] Pattern Match Unchecked Warning:
    /home/mp/Projects/shiftleft/joern.1/joern-cli/frontends/pysrc2cpg/src/test/scala/io/joern/pysrc2cpg/PySrc2CpgFixture.scala:74:61
    [warn] 74 |    path.resultPairs().collect { case (firstElement: String,
    secondElement: Option[Integer]) =>
    [warn]
    |                                                             ^
    [warn]    |the type test for Option[Integer] cannot be checked at
    runtime because its type arguments can't be determined from Option[Int]
    [warn]    |
    [warn]    | longer explanation available when compiling with `-explain`
    }
    ```
    mpollmeier authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    ea45904 View commit details
    Browse the repository at this point in the history

Commits on Jul 4, 2024

  1. [gosrc2cpg] Multi module support (joernio#4724)

    Earlier, if we pass the directory path which contains multiple go
    modules. Processing was done with all the `.go` files mapped to single
    `go.mod` file.
    
    With this change, we have segregated the processing by first isolating
    all the files mapped to respective `go.mod`. This will also make sure to
    cleanup the memory footprint after every module is being processed.
    However, this will increase the processing when used with download
    dependency as it will process all the `go.mod` files for identifying and
    processing used dependencies.
    pandurangpatil authored Jul 4, 2024
    Configuration menu
    Copy the full SHA
    dbdb02f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    59b5ada View commit details
    Browse the repository at this point in the history
  3. [ruby] Singleton methods on objects (joernio#4734)

    This PR changes the modelling of Singleton methods on objects. Ex:
    ```ruby
    class Animal; end
    animal = Animal.new
    
    class << animal
      def bark
        "woof"
      end
    end
    ```
    Creates a lambda method for `animal.bark`, and assigns `animal.bark = methodRef(bark)`
    
    Resolves joernio#4721
    AndreiDreyer authored Jul 4, 2024
    Configuration menu
    Copy the full SHA
    cb2bb5c View commit details
    Browse the repository at this point in the history
  4. [c2cpg] Fixed more exceptions (joernio#4736)

    - we had one stackoverflow in fullname
    - evaluation.getOverload may return null
    max-leuthaeuser authored Jul 4, 2024
    Configuration menu
    Copy the full SHA
    d3b36e9 View commit details
    Browse the repository at this point in the history
  5. [javasrc2cpg] Fix always-crashing array initializer type resolution (j…

    …oernio#4733)
    
    * Fix always-crashing array initializer type resolution
    
    * Fix exception when trying to cast ArrayType to ClassOrInterfaceType
    
    * Fix formatting
    johannescoetzee authored Jul 4, 2024
    Configuration menu
    Copy the full SHA
    ff80364 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    7abe33a View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2024

  1. minify the flatgraph diff by bringing various things in before the bi…

    …g merge (joernio#4737)
    
    * minify the flatgraph diff by bringing various things in before the big merge
    
    * fmt
    
    * revert accidental change
    mpollmeier authored Jul 5, 2024
    Configuration menu
    Copy the full SHA
    dd3fb0d View commit details
    Browse the repository at this point in the history
  2. [TypeRecovery] Handle Member without AST Parent Safely (joernio#4739)

    For new frontends with potentially malformed ASTs, type recovery must safely handle instances where members don't have AST parents.
    DavidBakerEffendi authored Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0c49cb9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    cf8d139 View commit details
    Browse the repository at this point in the history
  4. [ruby] Handle super Calls (joernio#4740)

    The parser emits calls to `super` as different from simple calls, this PR handles them.
    DavidBakerEffendi authored Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3a98c4b View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2024

  1. [c2cpg] Fixed MethodRef typeFullName (joernio#4743)

    Also: no more empty method fullnames
    max-leuthaeuser authored Jul 8, 2024
    Configuration menu
    Copy the full SHA
    f446279 View commit details
    Browse the repository at this point in the history
  2. [ruby] super Argument null & Association Key Handling (joernio#4746)

    * Safely handles the case when `super` call has a `null` argument from the parser
    * Shadows keywords when they are used as keys in association keys for named arguments in calls
    * Handles singleton methods in implicit returns
    DavidBakerEffendi authored Jul 8, 2024
    Configuration menu
    Copy the full SHA
    2bbece9 View commit details
    Browse the repository at this point in the history
  3. [ruby] Bind nested method members to method type (joernio#4747)

    This PR fixes a bug where method members were not correctly linked to surrounding methods' bound type decls. Additionally, this handles `return` statements without any proceeding expression.
    
    Resolves joernio#4732
    DavidBakerEffendi authored Jul 8, 2024
    Configuration menu
    Copy the full SHA
    0acd0a2 View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2024

  1. Configuration menu
    Copy the full SHA
    d9be183 View commit details
    Browse the repository at this point in the history
  2. [ruby] Fixed Persistence Issue of Captured Variable Info (joernio#4750)

    The initial implementation of the edge creation and captured local node was wrongly added to the `Ast` object instead of the diff graph. This PR rectifies this.
    DavidBakerEffendi authored Jul 9, 2024
    Configuration menu
    Copy the full SHA
    914aa46 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    21d39c9 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2024

  1. [ruby] Emit TypeRef instead of MethodRef for Lambdas (joernio#4753)

    Due to Ruby method references being called via a `.call()` method, the type ref that should be emitted, is one that contains the `.call` method, but is not necessarily the same type as the one bound to the actual lambda. This makes that change, however, data-flow no longer works in the open-source data-flow tracker as this is not supported.
    DavidBakerEffendi authored Jul 10, 2024
    Configuration menu
    Copy the full SHA
    18b6d88 View commit details
    Browse the repository at this point in the history
  2. [ruby] Singleton Methods on Objects Follow-Up (joernio#4754)

    * [ruby] Remodelled methods defined on singleton objects to no longer be lambdas
    
    * [ruby] Review comments
    AndreiDreyer authored Jul 10, 2024
    Configuration menu
    Copy the full SHA
    a547cd1 View commit details
    Browse the repository at this point in the history
  3. [ruby] Method/Type Full Name Simplification (joernio#4755)

    * Renamed `:program` to `<main>`
    * Replaced `:` method separator to `.`
    * Removed `<global>` from full names of types and methods
    DavidBakerEffendi authored Jul 10, 2024
    Configuration menu
    Copy the full SHA
    777c67a View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2024

  1. Configuration menu
    Copy the full SHA
    d77252a View commit details
    Browse the repository at this point in the history
  2. [ruby] Handle Re-definitions (joernio#4757)

    In the case of a type or method re-definition, the full name is ensured to be unique by a set that tracks all full-names for that compilation unit, and a counter.
    
    Resolves joernio#4742
    DavidBakerEffendi authored Jul 11, 2024
    Configuration menu
    Copy the full SHA
    19dd54e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4e43881 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    243c29d View commit details
    Browse the repository at this point in the history
  5. [ruby] Remodel yield Calls (joernio#4763)

    This PR remodels `yield` calls as explicit invocations of the implicit or explicit block parameter of the surrounding method.
    
    Resolves joernio#4760
    DavidBakerEffendi authored Jul 11, 2024
    Configuration menu
    Copy the full SHA
    9c13325 View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2024

  1. Configuration menu
    Copy the full SHA
    e6f5197 View commit details
    Browse the repository at this point in the history
  2. [ruby] Consistently Model Getters/Setters (joernio#4765)

    Getters and setters were modelled as their CPG operations in isolation, and not using the ordinary AST creator hooks. This PR lowers the getters and setters as their `RubyNode` equivalents, and hands off the AST creation to `astForMethodDeclaration`.
    DavidBakerEffendi authored Jul 12, 2024
    Configuration menu
    Copy the full SHA
    c67eeaf View commit details
    Browse the repository at this point in the history
  3. [php2cpg] Support array/list unpacking (joernio#4764)

    * [php2cpg] Support array/list unpacking in assignment
    
    * [php2cpg] Rename method and fix some tests
    
    * [php2cpg] code clean and improved test
    
    * [php2cpg] improved test
    d1tto authored Jul 12, 2024
    Configuration menu
    Copy the full SHA
    57c2dfe View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b2b2bc4 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2024

  1. IF Cfg creation for if-statements with empty then block. (joernio#4772

    )
    
    * IF Cfg creation for if-statements with empty `then` block.
    
    * Update joern-cli/frontends/c2cpg/src/test/scala/io/joern/c2cpg/passes/cfg/CfgCreationPassTests.scala
    
    Co-authored-by: maltek <[email protected]>
    
    ---------
    
    Co-authored-by: maltek <[email protected]>
    ml86 and maltek authored Jul 15, 2024
    Configuration menu
    Copy the full SHA
    8fac557 View commit details
    Browse the repository at this point in the history
  2. [x2cpg] Improve Cfg creation. (joernio#4773)

    - Changed test constructs used to test the CFG creation to return
      List instead of Set. This avoids deduplication which is required
      for correct tests because the number of edges between two nodes
      matters.
    
    - The above change unveiled a problem with the for-statement CFG:
      Duplicate edge between loop condition and body
    ml86 authored Jul 15, 2024
    Configuration menu
    Copy the full SHA
    5336780 View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2024

  1. [ruby] Calls with reserved keywords (joernio#4776)

    * [ruby] Moved precedence for keywords down, added special handling on local identifiers to check for keywords and member access
    
    * [ruby] Finished test for member call with reserved keyword
    
    * [ruby] remove debug print from RubyNodeCreator
    
    * [ruby] Fixed edge case for reserved keywords
    
    * [ruby] Added more checks for keyword handling, added test cases for :: syntax and having a base with the same name as a reserved keyword
    
    * [ruby] Added antlr debug flag to ruby config
    
    * [ruby] Added edge case for keyword handling
    AndreiDreyer authored Jul 16, 2024
    Configuration menu
    Copy the full SHA
    6426120 View commit details
    Browse the repository at this point in the history
  2. [php2cpg] Lowering the init part of foreach statement (joernio#4767)

    * [php2cpg] Support array/list unpacking in assignment
    
    * [php2cpg] Rename method and fix some tests
    
    * [php2cpg] code clean and improved test
    
    * [php2cpg] improved test
    
    * [php2cpg] lowering the init part of foreach statement
    d1tto authored Jul 16, 2024
    Configuration menu
    Copy the full SHA
    88e5b1c View commit details
    Browse the repository at this point in the history
  3. [c2cpg] Ignore ExpansionOverlapsBoundaryException while query static …

    …modifier (joernio#4768)
    
    Fixes these org.eclipse.cdt.core.dom.ast.ExpansionOverlapsBoundaryException for `.getSyntax` calls.
    max-leuthaeuser authored Jul 16, 2024
    Configuration menu
    Copy the full SHA
    21f7c47 View commit details
    Browse the repository at this point in the history
  4. flatgraph (joernio#4630)

    mpollmeier authored Jul 16, 2024
    Configuration menu
    Copy the full SHA
    d32a77c View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2024

  1. [ruby] Enable FILE node content (joernio#4781)

    * [ruby] Added file content and offset to method and type decls
    
    * [ruby] Added test case for file content
    
    * [ruby] Remove empty curlys
    AndreiDreyer authored Jul 17, 2024
    Configuration menu
    Copy the full SHA
    b2fc765 View commit details
    Browse the repository at this point in the history
  2. [php2cpg] array creation point marks and improved array unpacking (jo…

    …ernio#4780)
    
    * [php2cpg] Support array/list unpacking in assignment
    
    * [php2cpg] Rename method and fix some tests
    
    * [php2cpg] code clean and improved test
    
    * [php2cpg] improved test
    
    * [php2cpg] lowering the init part of foreach statement
    
    * Add a new operator to mark the creation point of an array.
    improved array unpacking.
    
    * Use `array()` call instead of emptyArray operator
    d1tto authored Jul 17, 2024
    Configuration menu
    Copy the full SHA
    a16b684 View commit details
    Browse the repository at this point in the history
  3. [ruby] Approximate Attribute Assignment (joernio#4777)

    With Ruby attribute assignments being calls, this can lead to costly data-flow tracking and these setters are rarely overridden with custom logic. This PR simplifies this model by representing the attribute assignment from a setter call to a direct field assignment. A similar adjustment is done to member getters.
    
    Misc: Simplified a parser bug workaround and linked it to an issue.
    DavidBakerEffendi authored Jul 17, 2024
    Configuration menu
    Copy the full SHA
    ee5f631 View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2024

  1. Configuration menu
    Copy the full SHA
    2f543c1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c1919cf View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2024

  1. Configuration menu
    Copy the full SHA
    03161bb View commit details
    Browse the repository at this point in the history

Commits on Jul 22, 2024

  1. Added joern-slice Data-Flow Script Test (joernio#4786)

    * Added a script that parses and creates a sensible string from a slice that can be tested against.
    * Fixed a slicing bug where slicing direction was in the opposite direction of neighbour retrieval and ended up ignoring certain nodes.
    * Added entry in the `test-scripts` job to run the slice script, parse the slice, and assert the expected flow with `grep`.
    
    Resolves joernio#4783
    DavidBakerEffendi authored Jul 22, 2024
    Configuration menu
    Copy the full SHA
    10ab72d View commit details
    Browse the repository at this point in the history
  2. [ruby] Fix Case Where Field Access Prepends @ on CONST (joernio#4789)

    There was a case that would mistakenly prepend `@` on a member that start with a capitalized first letter.
    DavidBakerEffendi authored Jul 22, 2024
    Configuration menu
    Copy the full SHA
    2c13c93 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    75680e7 View commit details
    Browse the repository at this point in the history
  4. workaround for scala completion bug (joernio#4791)

    on stage: remove module-info.class from dependency jars - a hacky workaround for a
    scala3 compiler bug: scala/scala3#20421
    
    Fixes joernio#4625
    mpollmeier authored Jul 22, 2024
    Configuration menu
    Copy the full SHA
    bd38a15 View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2024

  1. Configuration menu
    Copy the full SHA
    a8e6ca4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    81a996b View commit details
    Browse the repository at this point in the history

Commits on Jul 25, 2024

  1. Configuration menu
    Copy the full SHA
    e9fc48f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4de0f0b View commit details
    Browse the repository at this point in the history
  3. [c2cpg] Create locals for function pointer decls (joernio#4799)

    Methods were wrong for that.
    max-leuthaeuser authored Jul 25, 2024
    Configuration menu
    Copy the full SHA
    7ef91c9 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3387863 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d269f5f View commit details
    Browse the repository at this point in the history
  6. [c2cpg] Fix for empty array init (joernio#4802)

    `.getArrayModifiers` may contain null values for empty array init
    max-leuthaeuser authored Jul 25, 2024
    Configuration menu
    Copy the full SHA
    1379bb9 View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2024

  1. [x2cpg] Do not crash on .listRecursively (joernio#4806)

    This may throw (FileSystemLoopException, or any other reason why this dir may not be readable).
    We use Files.walkFileTree now. The only solution where a safe continue mechanism can be implemented.
    
    Fixes: https://shiftleftinc.atlassian.net/browse/SEN-2976
    max-leuthaeuser authored Jul 29, 2024
    Configuration menu
    Copy the full SHA
    dea147c View commit details
    Browse the repository at this point in the history
  2. [c2cpg] Add implicit this param + access (joernio#4803)

    - implicit this param for CPP functions
    - identifiers that are actual member accesses are now transformed, e.g., this->varname if varname is a member and we are in the corresponding context
    max-leuthaeuser authored Jul 29, 2024
    Configuration menu
    Copy the full SHA
    0e9ec2b View commit details
    Browse the repository at this point in the history
  3. Add support for THROW control structure. (joernio#4807)

    1. Added the support in the CfgCreator. A THROW control structure now
       breaks control flow.
    2. Adjust c2cpg to generate such a control structure instead of a CALL
       node.
    ml86 authored Jul 29, 2024
    Configuration menu
    Copy the full SHA
    4a7eb3b View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2024

  1. Configuration menu
    Copy the full SHA
    fed1d54 View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2024

  1. Ammendment to previous throw statement cfg change. (joernio#4814)

    In this PR joernio#4807 the CFG for
    `throw` statements was changes in the way that they have no outgoing CFG
    edges. Since this might break assumptions of some CFG consuming code, we
    now create outgoing CFG edges from `throw` statements to the method exit
    nodes.
    ml86 authored Jul 31, 2024
    Configuration menu
    Copy the full SHA
    3cd3f3c View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2024

  1. Configuration menu
    Copy the full SHA
    3a53fdb View commit details
    Browse the repository at this point in the history

Commits on Aug 2, 2024

  1. Configuration menu
    Copy the full SHA
    b60732e View commit details
    Browse the repository at this point in the history
  2. [ruby] Parser Tests (joernio#4809)

    * [ruby] Initial commit for new Ast Printer, basic methods implemented
    
    * [ruby] Initial AstPrinter finished
    
    * [ruby] String parser tests working on new AstPrinter
    
    * [ruby] ArrayParserTests, SingleAssignmentTests, BeginExpressionTests moved over to new AstPrinter for parsing tests
    
    * [ruby] BooleanParserTests moved to new parser test
    
    * [ruby] CaseConditionParserTests moved
    
    * [ruby] ControlStructureParserTests moved
    
    * [ruby] FieldAccess, HashLiteral, IndexAccess and InvocationWithoutParentheses parser tests moved
    
    * [ruby] InvocationWithParentheses moved
    
    * [ruby] MethodDef and ProcDef parser tests moved
    
    * [ruby] Range, regex, require parser tests moved
    
    * [ruby] Return and ternary parser tests moved
    
    * [ruby] UnlessStmt parser tests moved
    
    * [ruby] Ensure statement parser test moved
    
    * [ruby] DoBlock parser tests moved
    
    * [ruby] RescueClause parser tests moved
    
    * [ruby] MultipleAssignment moved
    
    * [ruby] ClassDecl moved
    
    * [ruby] Module parser tests moved
    
    * [ruby] Working on interpolations
    
    * [ruby] Cleanup
    
    * [ruby] Cleanup for PR
    
    * [ruby] removed newMatch flag
    AndreiDreyer authored Aug 2, 2024
    Configuration menu
    Copy the full SHA
    fd87a48 View commit details
    Browse the repository at this point in the history
  3. [ruby] String Array with Interpolations (joernio#4813)

    * [ruby] Added handling for String interpolated array literals
    
    * [ruby] Added type check in tests
    
    * cleanup
    
    * [ruby] Fixed parser tests with new parser test framework
    
    * [ruby] removed if check on element content
    AndreiDreyer authored Aug 2, 2024
    Configuration menu
    Copy the full SHA
    a01e3f2 View commit details
    Browse the repository at this point in the history
  4. [ruby] Add handling for command literal %x (joernio#4819)

    * [ruby] handling added for command literal. Modelled as exec call
    
    * [ruby] fixed failing parser test
    
    * [ruby] Removed print
    
    * [ruby] Added expanded command literal to new parser tests
    AndreiDreyer authored Aug 2, 2024
    Configuration menu
    Copy the full SHA
    715c565 View commit details
    Browse the repository at this point in the history
  5. Bump cpg version and cleanup. (joernio#4821)

    Using the old SerializedCpg API hat no effect anymore.
    ml86 authored Aug 2, 2024
    Configuration menu
    Copy the full SHA
    75bf17d View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2024

  1. Configuration menu
    Copy the full SHA
    e61dba5 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2024

  1. [ruby2cpg] Fix ImplicitRequirePass. (joernio#4826)

    * [ruby2cpg] Fix ImplicitRequirePass.
    
    - Fix method lookup via AST edges. The approach of looking up module
      methods via is not possible at the execution time of the pass because
      AST is not yet linked.
      I replaced this buy a fullname based regex lookup.
      We should likely just change the execution time to after AST linking.
    
    - The other changes are just for better readability and debugability.
    
    * Address review remarks.
    
    * Fix field access lookup.
    
    We are only interested on those field accesses which operator on "self"
    since those describe the exported/imported objects.
    ml86 authored Aug 6, 2024
    Configuration menu
    Copy the full SHA
    6c6857e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f10a6bc View commit details
    Browse the repository at this point in the history
  3. [ruby] Add handling for BracketAssignmentExpression (joernio#4828)

    * [ruby] Fixed bracket assignments
    
    * [ruby] Add parser test for BracketAssignment
    AndreiDreyer authored Aug 6, 2024
    Configuration menu
    Copy the full SHA
    5a16654 View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2024

  1. [ruby] Fix NPE when creating Ast on empty source files (joernio#4824)

    * [ruby] Added filter to remove file with empty contents on AstCreator side
    
    * [ruby] lowered log to info, changed expression
    
    * formatting
    AndreiDreyer authored Aug 7, 2024
    Configuration menu
    Copy the full SHA
    d6b1214 View commit details
    Browse the repository at this point in the history
  2. [rubysrc2cpg] Fix implicit import handling. (joernio#4829)

    Symbols/identifiers used as based class where not taken into account for
    the implicit import creation.
    ml86 authored Aug 7, 2024
    Configuration menu
    Copy the full SHA
    bea0f35 View commit details
    Browse the repository at this point in the history

Commits on Aug 12, 2024

  1. [ruby] Fix assignment parser test (joernio#4833)

    * [ruby] Fix assignment parser test
    
    * [ruby] Move assigment parser test to correct subset
    AndreiDreyer authored Aug 12, 2024
    Configuration menu
    Copy the full SHA
    8ea641b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3dd03f0 View commit details
    Browse the repository at this point in the history
  3. [ruby] Fix last parser tests (joernio#4834)

    * [ruby] Fixed regex parser tests
    
    * [ruby] Fixed last parser tests
    
    * [ruby] Use pattern matching and string interpolation for building initMethod span
    
    * fmt
    
    * remove comment
    AndreiDreyer authored Aug 12, 2024
    Configuration menu
    Copy the full SHA
    b766b3a View commit details
    Browse the repository at this point in the history
  4. [ruby] Fixed Pseudo-Variables as Literals (joernio#4840)

    Although the parser rule for picking up pseudo-variables seems fine, it may sometimes choose to represent it as a local variable. This fixes this and adds the related tests.
    DavidBakerEffendi authored Aug 12, 2024
    Configuration menu
    Copy the full SHA
    e83cae3 View commit details
    Browse the repository at this point in the history
  5. [ruby] self Param REF Edge (joernio#4838)

    * [ruby] `self` Param `REF` Edge
    Fixed issue where no `REF` edges between self params and their identifiers.
    
    * Fixed the rest of the cases where `self` would have no refs
    
    * Updated test expectation
    DavidBakerEffendi authored Aug 12, 2024
    Configuration menu
    Copy the full SHA
    71e5e7f View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2024

  1. [ruby] Consider << as append calls (joernio#4843)

    As Ruby may consider `<<` as either shifting left (if LHS is a number) or as an append (if LHS is an array), one cannot statically approximate the operation.
    
    We thus consider this as a call named `<<`.
    DavidBakerEffendi authored Aug 13, 2024
    Configuration menu
    Copy the full SHA
    8dcf938 View commit details
    Browse the repository at this point in the history
  2. [ruby] Fix Implicit Require Call Structure (joernio#4841)

    The implicit require calls that are generated after the AST creation had an older/out-dated format and lead to identifiers not being linked via REF edges. Changed require to `require_relative`
    DavidBakerEffendi authored Aug 13, 2024
    Configuration menu
    Copy the full SHA
    9f15167 View commit details
    Browse the repository at this point in the history
  3. [ruby] Incorrect class names (joernio#4839)

    * [ruby] Fixed incorrect class/module name, added NamespaceDeclaration node type for classes/modules defined straight in a namespace
    
    * [ruby] Added Namespace block to diffgraph, updated class test
    
    * [ruby] update module test
    
    * revert changes
    
    * [ruby] Added file as parent node of namespace block generated in class/module decl in namespace
    
    * [ruby] review changes
    
    * [ruby] Remove unused fucntions
    
    * [ruby] removed unused import
    AndreiDreyer authored Aug 13, 2024
    Configuration menu
    Copy the full SHA
    cd45eea View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    00c911f View commit details
    Browse the repository at this point in the history
  5. [ruby] Constructor Lowering Fix (joernio#4845)

    * [ruby] Constructor Lowering Fix
    * Fixed constructor lowering structure as per joernio#4822
    * Tested and fixed issue in parenthesis-less `new` member calls (could use a better long-term fix in the parser)
    
    * Testing and handling an expression base of constructor
    
    * Fixed some imports
    
    * Using `code(node)`
    DavidBakerEffendi authored Aug 13, 2024
    Configuration menu
    Copy the full SHA
    10a089e View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2024

  1. Configuration menu
    Copy the full SHA
    dfa2af1 View commit details
    Browse the repository at this point in the history
  2. [python] Include Pipfile[.lock] (joernio#4847)

    * [python] Include Pipfile[.lock]
    
    * scalafmt
    xavierpinho authored Aug 14, 2024
    Configuration menu
    Copy the full SHA
    c95bc86 View commit details
    Browse the repository at this point in the history
  3. [ruby] Revert type changes in self PR joernio#4838 (joernio#4848)

    `self` parameters within the scope of methods reverts back to initial surrounding type information, and keeps `ANY` otherwise, e.g. `<main>` methods.
    DavidBakerEffendi authored Aug 14, 2024
    Configuration menu
    Copy the full SHA
    c977d4c View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2024

  1. [ruby] Implicit Require & Import Processing Tweaks (joernio#4849)

    * Reverted implicit requires to use `require` instead of `require_relative`
    * Removed requirement for `ImplicitRequirePass` to need `programSummary` argument
    * Moved import processing to post-processing
    DavidBakerEffendi authored Aug 15, 2024
    Configuration menu
    Copy the full SHA
    ca4c172 View commit details
    Browse the repository at this point in the history
  2. [ruby] Move Post-Processing to x2cpg (joernio#4851)

    Following the other frontends, migrates the non-deprecated post-processing passes to `x2cpg`
    DavidBakerEffendi authored Aug 15, 2024
    Configuration menu
    Copy the full SHA
    e967d4c View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2024

  1. [ruby] Conflicting local nodes (joernio#4853)

    * [ruby] initial commit
    
    * [ruby] Added test for locals
    
    * [ruby] cleanup
    
    * [ruby] removed check for methodFullName on scope
    
    * [ruby] removed check for methodFullName on scope
    
    * [ruby] rename function
    AndreiDreyer authored Aug 16, 2024
    Configuration menu
    Copy the full SHA
    64a3ce3 View commit details
    Browse the repository at this point in the history
  2. [ruby] Fix methodFullName on Initialize callNodes (joernio#4854)

    * [ruby] Changed methodFullName on callNode for Initialize to DynamicUnknown instead of Any
    
    * [ruby] test fixes
    
    * [ruby] fixed failing type recovery tests
    
    * remove println
    AndreiDreyer authored Aug 16, 2024
    Configuration menu
    Copy the full SHA
    162c2ca View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6980ae2 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f08389c View commit details
    Browse the repository at this point in the history
  5. [ruby] Fix namespace inconsistencies (joernio#4857)

    Fixed an issue where classes defined in namespaces had different fullNames for the class and singleton instance defined in the namespace. Also resolved an issue where methods defined in class defined in a namespace was not being defined under the new `TypeDecl`
    AndreiDreyer authored Aug 16, 2024
    Configuration menu
    Copy the full SHA
    7e24d92 View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2024

  1. Configuration menu
    Copy the full SHA
    0144560 View commit details
    Browse the repository at this point in the history
  2. [ruby] raise Calls Represented as Operator (joernio#4858)

    * Modified `raise` calls to be control structures of type `THROW`
    * If a literal argument is given, this is then explicitly represented as a `StandardError.new`
    DavidBakerEffendi authored Aug 19, 2024
    Configuration menu
    Copy the full SHA
    de2b9c0 View commit details
    Browse the repository at this point in the history
  3. [ruby] Use try/catch/else/finally controlStructureNode for `RescueE…

    …xpression` (joernio#4860)
    
    * [ruby] Updated rescue expressions to use TRY/CATCH/ELSE/FINALLY controlStructureNodes
    
    * [ruby] fixed failing control structure test
    AndreiDreyer authored Aug 19, 2024
    Configuration menu
    Copy the full SHA
    52cbc0e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d804e8a View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2024

  1. [ruby] Visibility Access Modifiers (joernio#4862)

    * Handles various access modifiers private/public/protected
    * Also considers file-level methods are private and initialize methods cannot be anything other than private
    * Accounts for nested types where their modifiers are separate from surrounding type
    DavidBakerEffendi authored Aug 20, 2024
    Configuration menu
    Copy the full SHA
    4b5c21f View commit details
    Browse the repository at this point in the history
  2. [ruby] Lower ||= and &&= assignment operators (joernio#4863)

    * [ruby] Lowered ||= and &&= assignment operators to required if statements
    
    * [ruby] remove empty params in scaladocs
    AndreiDreyer authored Aug 20, 2024
    Configuration menu
    Copy the full SHA
    4f44035 View commit details
    Browse the repository at this point in the history
  3. [ruby] Remove select as Built-in Call (joernio#4865)

    Some calls such as `select` may be commonly shadowed by auto-loaded calls, thus, on an example basis, we will continue to comment out similar calls.
    DavidBakerEffendi authored Aug 20, 2024
    Configuration menu
    Copy the full SHA
    9fdc4ca View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2024

  1. [ruby] Add commandTernaryExpression to command (joernio#4864)

    * [ruby] Added operatorExpression to commandArgument
    
    * [ruby] removed operatorExpression, added only ternaryExpression to command
    AndreiDreyer authored Aug 21, 2024
    Configuration menu
    Copy the full SHA
    caf75bc View commit details
    Browse the repository at this point in the history
  2. [ruby] Apply Cached Side-Effect Variables (joernio#4868)

    For chained calls such as `a().b()`, where the base/receiver of `b` involves a call, to avoid invoking the call in both the base and receiver, we now assign a temporary variable to the first invocation and refer to it on the second invocation.
    DavidBakerEffendi authored Aug 21, 2024
    Configuration menu
    Copy the full SHA
    b341067 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2024

  1. [php2cpg] Improve performance. (joernio#4867)

    * [php2cpg] Improve performance.
    
    This php parser we use seems to have some warmup phase in which it
    has very poor performance which makes it very expensive to feed
    it single files like we so far did.
    This change invokes the php parser with groups of 20 files which on my
    machine give ~40% performance increase for the total frontend runtime on
    large projects.
    Bigger groups of files strangely only show marginal performance
    increases despite the fact that profiling the frontend indicates that
    there is still a lot of time wasted by the large amount of individual
    parser invocations.
    For now we keep it like this because for bigger groups we would run into
    argument length limitations which are especially a pain on systems
    like Windows. Sadly the php parser does not provide means to specify
    the to be parsed files other than as a list on the command line.
    So there would need to be some change there first before we could
    increase the groups size in a meaningful way.
    ml86 authored Aug 22, 2024
    Configuration menu
    Copy the full SHA
    5f89dfe View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2024

  1. Configuration menu
    Copy the full SHA
    fc7d004 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2024

  1. [php2cpg] Fixed the initialization of static/const members of class (j…

    …oernio#4871)
    
    * [php2cpg] Fixed the init method of static/const members of class
    
    * clean code
    d1tto authored Aug 26, 2024
    Configuration menu
    Copy the full SHA
    5e8eef6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    70d6efe View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a03d4bf View commit details
    Browse the repository at this point in the history
  4. [c#] Implements the forAst Construct (joernio#4877)

    The current `foreach` implementation is based on an older approach that doesn't capture the semantics quite as well.
    
    This PR implements the newer `forAst` construct, which encourages de-sugaring and representing what is semantically happening underneath the `foreach` statement.
    
    Resolves joernio#4674 (comment)
    DavidBakerEffendi authored Aug 26, 2024
    Configuration menu
    Copy the full SHA
    ccb820b View commit details
    Browse the repository at this point in the history
  5. ghidra 11.1.2 (joernio#4876)

    * ghidra 11.1.2
    
    * drop unused private class which doesn't compile any longer after an api change
    
    * avoid `+` which breaks some scripts
    mpollmeier authored Aug 26, 2024
    Configuration menu
    Copy the full SHA
    086ccfa View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2024

  1. [ruby] Handle SingleAssignmentStatement (joernio#4878)

    * [ruby] Fixed single-assignments without basic variables
    
    * [ruby] review comments
    
    * [ruby] fix failing test
    AndreiDreyer authored Aug 27, 2024
    Configuration menu
    Copy the full SHA
    6a14e4d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0517482 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e8df218 View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2024

  1. [ruby] Add handling for ArrayLiteral used directly as argument in call (

    joernio#4884)
    
    * [ruby] Add handling for ArrayLiteral used directly as argument in call
    
    * [ruby] Moved parser rule to indexingArgumentList, added ANTLR debugging flag to RubyParserTEst
    
    * rename ANTLR rule
    AndreiDreyer authored Aug 28, 2024
    Configuration menu
    Copy the full SHA
    df3e8a4 View commit details
    Browse the repository at this point in the history
  2. [ruby] Mixed elements in Array body (joernio#4885)

    * [ruby] Add handling for ArrayLiteral used directly as argument in call
    
    * [ruby] Moved parser rule to indexingArgumentList, added ANTLR debugging flag to RubyParserTEst
    
    * rename ANTLR rule
    
    * [ruby] Updated ANTLR rule for array elements to include decimal literals
    
    * [ruby] removed comment
    AndreiDreyer authored Aug 28, 2024
    Configuration menu
    Copy the full SHA
    cd806a3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4d8e7c3 View commit details
    Browse the repository at this point in the history
  4. [ruby] ParameterList parser fixes (joernio#4887)

    * [ruby] update parameterList rule
    
    * [ruby] Add fixed parser test
    AndreiDreyer authored Aug 28, 2024
    Configuration menu
    Copy the full SHA
    12a1080 View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2024

  1. [ruby] Implicit Imports: Additional Types & Qualified Names (joernio#…

    …4879)
    
    * Allows a user of the pass to add additional type identifiers to consider for implicit imports (preference to internal types, motivation is that internal types are generally loaded later which works with zeitwerk's newest-first logic)
    * Handles qualified type names to be detected and imported
    * Added tests and better handling for constructors
    * Deduplicates require calls
    * Add core gems to `DependencyPass`
    DavidBakerEffendi authored Aug 29, 2024
    Configuration menu
    Copy the full SHA
    389bd50 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2024

  1. [ruby] Splat operator fixes (joernio#4889)

    * [ruby] fixed naked splat on LHS
    
    * [ruby] fixed multiple RHS splat args
    
    * [ruby] Added test for middle splat arg
    AndreiDreyer authored Aug 30, 2024
    Configuration menu
    Copy the full SHA
    42ea828 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    40cce81 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a997dc3 View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2024

  1. Configuration menu
    Copy the full SHA
    72bc423 View commit details
    Browse the repository at this point in the history

Commits on Sep 3, 2024

  1. [ruby] Temp Var Call code Fix (joernio#4893)

    * [ruby] Temp Var Call `code` Fix
    Fixed bug where splitting on `.` alone does not create a reasonable code property if parameters are not accounted for.
    
    * Improved code property construction
    DavidBakerEffendi authored Sep 3, 2024
    Configuration menu
    Copy the full SHA
    911e15d View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2024

  1. [ruby] Block Parameter fixes (joernio#4895)

    * Added `GroupedParameter` type and handling for new type
    * Fixed ANTLR grammar rules for different combinations of block parameters
    * Updated relevant parser tests
    AndreiDreyer authored Sep 4, 2024
    Configuration menu
    Copy the full SHA
    b3c83c9 View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2024

  1. [ruby] General Maintenance & Cleanup Pt. 1 (joernio#4897)

    * Reduced redundant match done by `AstForTypesCreator->handleDefaultConstructor`
    * Refactored control structure handling into `AstForControlStructuresCreator`
    * Re-named `RubyNode` to `RubyExpression` as most-if-not-all Ruby constructs can be evaluated to some value, even statements (assignments, control structures, method definitions, etc. all return a value), and added `RubyStatement` to try to subtly define constructs that stand on their own more often that not -> this will be more fleshed out in Pt. 2
    * Noted areas where more clean-up and refactoring is required, but want to keep this diff small-ish
    DavidBakerEffendi authored Sep 5, 2024
    Configuration menu
    Copy the full SHA
    7587611 View commit details
    Browse the repository at this point in the history
  2. [semanticcpg] remove runPass (joernio#4880)

    * [semanticcpg] remove `runPass`
    
    * further remove "unnecessary" variable declarations
    xavierpinho authored Sep 5, 2024
    Configuration menu
    Copy the full SHA
    353b556 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    03c9e10 View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2024

  1. [ruby] Handle implicit multi-assignment returns (joernio#4898)

    * Handles implicit returns of multi-assignments by returning an array of the LHS assignment targets.
    * For implicit returns of multi-assignments created as desugaring of splatted parameters, returns `nil` as per what is evaluated in the Ruby interpreter.
    DavidBakerEffendi authored Sep 6, 2024
    Configuration menu
    Copy the full SHA
    daef3c5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d80fb41 View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2024

  1. XTypeRecoveryConfig: don't error when being passes unknown arguments (j…

    …oernio#4900)
    
    as discussed in joernio#4896, we
    currently fail hard when the user passes additional frontend
    arguments, which we forward to XTypeRecoveryConfig.parse
    
    With this case we still print a warning, but at least don't error.
    Potentially better would be to filter out everything _but_ the
    expected arguments in this case...
    
    simple test case: foo.sc:
    ```
    @main def main() = {
      importCode.python("tests/code/pythonsrc/simple.py",
    args=List("--exclude-regex", "test*"))
    }
    ```
    
    ```
    sbt stage
    ./joern --script foo.sc
    ```
    mpollmeier authored Sep 9, 2024
    Configuration menu
    Copy the full SHA
    4ef4d66 View commit details
    Browse the repository at this point in the history
  2. [ruby] Named Arguments with Hash Rocket Syntax (joernio#4905)

    Added handling for named arguments when using hash rocket syntax with "symbol" keys.
    DavidBakerEffendi authored Sep 9, 2024
    Configuration menu
    Copy the full SHA
    c0c407e View commit details
    Browse the repository at this point in the history
  3. [ruby] All require-like Calls are Static (joernio#4904)

    * All `require`-like call names are now a set under `ImportsPass`
    * These calls are now static calls with only the arguments as children
    DavidBakerEffendi authored Sep 9, 2024
    Configuration menu
    Copy the full SHA
    76e1e66 View commit details
    Browse the repository at this point in the history

Commits on Sep 10, 2024

  1. [ruby] Fix lambda expression parser rule (joernio#4906)

    * [ruby] Fixed parser rules for lambda expressions to allow parameters without parentheses
    
    * [ruby] update parser rule
    AndreiDreyer authored Sep 10, 2024
    Configuration menu
    Copy the full SHA
    da6cc25 View commit details
    Browse the repository at this point in the history
  2. [ruby] Add handling for beginless and endless range expressions (j…

    …oernio#4907)
    
    * [ruby] Added parser rules and AST lowering for beginless and endless range expressions
    
    * [ruby] changed ordering in indexing argument list
    AndreiDreyer authored Sep 10, 2024
    Configuration menu
    Copy the full SHA
    e19e4f3 View commit details
    Browse the repository at this point in the history
  3. semanticcpg: harden inheritance steps against loops (joernio#4909)

    such loops are bugs that should be fixed. But they happen occasionally,
    and right now they lead to OOM and infinite loops. I'd prefer it if we
    handled that a bit more gracefully. The cost of the set in `.dedup`
    should be pretty low.
    maltek authored Sep 10, 2024
    Configuration menu
    Copy the full SHA
    1eeff12 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2024

  1. [ruby] add methodInvocationWithoutParentheses to RETURN argumentList (

    joernio#4908)
    
    * [ruby] add methodInvocationWithoutParentheses to RETURN argumentList
    
    * [ruby] Added check for arguments of jsonArg
    AndreiDreyer authored Sep 11, 2024
    Configuration menu
    Copy the full SHA
    ff73309 View commit details
    Browse the repository at this point in the history
  2. [rubysrc2cpg] Fix ImportPass. (joernio#4901)

    Only static calls with import related names 'require', 'load" and so on
    are linked to import nodes.
    Before that we ended up with import nodes and links for calls like
    `Marshal.load(...)`.
    ml86 authored Sep 11, 2024
    Configuration menu
    Copy the full SHA
    cd654b5 View commit details
    Browse the repository at this point in the history
  3. [ruby] Member Access Base as Call Fix (joernio#4910)

    Fixed an instance where something like `foo.bar` would represent `foo` as a `self.foo` field access instead of a `foo()` call, given that no `foo` variable is present.
    DavidBakerEffendi authored Sep 11, 2024
    Configuration menu
    Copy the full SHA
    81aa12b View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2024

  1. update cpg/flatgraph (joernio#4917)

    * update cpg/flatgraph
    
    * empty commit to trigger GH actions
    maltek authored Sep 12, 2024
    Configuration menu
    Copy the full SHA
    fe64ec8 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2024

  1. Configuration menu
    Copy the full SHA
    bd79b8f View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2024

  1. Configuration menu
    Copy the full SHA
    3ab71fe View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2024

  1. [kotlin2cpg] Better fallback for annotation types. (joernio#4925)

    If an annotation type full name cannot be resolved we now use
    `<unresolvedNamespace>.ClassName` instead of `ANY`.
    ml86 authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    47c2f2f View commit details
    Browse the repository at this point in the history
  2. [kotlin2cpg] Fix field access representation. (joernio#4927)

    In case of a field access after a map/array access, the following field
    access had invalid argument indicies because it triggered the code path
    for dynamic receiver calls. This is now fixed.
    ml86 authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    941a6d8 View commit details
    Browse the repository at this point in the history

Commits on Sep 17, 2024

  1. [ruby] Access Modifier Names in Expr (joernio#4928)

    * Fixed issue where access modifiers in expression positions would be unhandled
    * Handling identifiers on LHS of associations as symbols
    DavidBakerEffendi authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    19011fb View commit details
    Browse the repository at this point in the history
  2. [dataflowengineoss] Turn Semantics into a node-directed trait (joer…

    …nio#4920)
    
    * Refactor `Semantics` -> `FullNameSemantics`
    
    * Refactor `FlowSemantic`/`FlowNode`/`FlowPath` out of the FullNameSemantics parser
    
    * Rename `Parser` -> `FullNameSemanticsParser`
    
    * Introduce `Semantics` trait with `initialize` and `forMethod`
    xavierpinho authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    3a530c0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3440c26 View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2024

  1. [kotlin2cpg] Fix "nacked" call representation. (joernio#4930)

    * [kotlin2cpg] Fix "nacked" call representation.
    
    Fix representation of "nacked" calls like `someFunc(someArg)`. These so
    far have always being represented as statically dispatched which is
    obviously not correct.
    
    * Handle static dispatch with instance argument case.
    ml86 authored Sep 18, 2024
    Configuration menu
    Copy the full SHA
    17df32d View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2024

  1. scalac: warn when type parameters are shadowed (joernio#4937)

    as brought up in joernio#4936 it can
    lead to confusing situations if type parameters are shadowed, so for
    the sake of readability and disambiguity alone we should enable this
    compiler warning IMO.
    
    That being said, I'd like to stress that it's not something
    fundamentally complicated, afaics. Simple example copied from joernio#4936:
    ```scala
    class Example[NodeType <: Object](node: NodeType) extends AnyVal{
      def foo[NodeType](x: List[NodeType]): List[NodeType] = x
    }
    ```
    
    These two type parameters in your Example class are not related at all. They happen to have the same name, which only means that within `def foo` we cannot reference the `NodeType` type from the `class Example`, but apart from that there's no connection at all between them.
    
    Semantically it's similar to something like this on the value level: the two `bar` variables are not related at all, they just happen to have the same name, and therefor we cannot reference the class-level `bar` variable from within `def baz`.
    ```scala
    class Foo {
        val bar = 42
    
        def baz: Unit = {
          val bar = "123"
          ()
      }
    }
    ```
    mpollmeier authored Sep 19, 2024
    Configuration menu
    Copy the full SHA
    351c619 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    236bd8f View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2024

  1. [ruby] Antlr Profiler (joernio#4933)

    * Added ANTLR profiling with the `--antlrProfile` frontend argument.
    * If enabled, will gather parser metrics and log them right next to the file that was parsed, as well as print any syntax ambiguities.
    DavidBakerEffendi authored Sep 20, 2024
    Configuration menu
    Copy the full SHA
    6293a6e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5fe5549 View commit details
    Browse the repository at this point in the history
  3. [ruby] Removal of Deprecated Frontend (joernio#4899)

    Removes the old frontend and related CLI arguments.
    
    Hard deadline 20 Sept 2024.
    DavidBakerEffendi authored Sep 20, 2024
    Configuration menu
    Copy the full SHA
    624a864 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    226f441 View commit details
    Browse the repository at this point in the history
  5. [ruby] Reduce Array Parser Ambiguity (joernio#4938)

    Profiled `ArrayTests` to detect ambiguity and decisions with high lookaheads and modified test fixture to print profiler logs if enabled. This led to converting certain array rules to use more specific rules and fall back to more general rules less often.
    
    Some small improvements on `railsgoat` measured with `time` command on `joern-parse`:
    ```
    // With ambiguity
    75.58s user 1.98s system 356% cpu 21.762 total
    73.56s user 2.61s system 492% cpu 15.452 total
    66.52s user 2.01s system 387% cpu 17.667 total
    
    // With reduced ambiguity
    65.42s user 1.94s system 443% cpu 15.189 total
    74.58s user 2.01s system 557% cpu 13.744 total
    74.39s user 1.75s system 560% cpu 13.595 total
     ```
    DavidBakerEffendi authored Sep 20, 2024
    Configuration menu
    Copy the full SHA
    2101f5a View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2024

  1. Configuration menu
    Copy the full SHA
    c2d2005 View commit details
    Browse the repository at this point in the history
  2. [Dependency Fetcher] Fix gradle dependency fetcher android detection …

    …and detect project and configuration names automatically (joernio#4934)
    
    Fix android project detection and automatic name detection for gradle dependency fetcher
    johannescoetzee authored Sep 23, 2024
    Configuration menu
    Copy the full SHA
    22a58fe View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2024

  1. Configuration menu
    Copy the full SHA
    95bb4d1 View commit details
    Browse the repository at this point in the history

Commits on Sep 25, 2024

  1. Configuration menu
    Copy the full SHA
    c0955d7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5a7453b View commit details
    Browse the repository at this point in the history
  3. [ruby] Strip Unused Parser Rules (joernio#4949)

    There were some unused parser rules adding unnecessary complexity to the parser
    DavidBakerEffendi authored Sep 25, 2024
    Configuration menu
    Copy the full SHA
    c27e67e View commit details
    Browse the repository at this point in the history
  4. [ruby] Add handling for multiple call args (joernio#4948)

    Added `simpleCommandArgumentList` to allow multiple call args for `methodInvocationWithoutParentheses`
    AndreiDreyer authored Sep 25, 2024
    Configuration menu
    Copy the full SHA
    10e1c33 View commit details
    Browse the repository at this point in the history
  5. [dataflowengineoss] remove overriding operator semantics (joernio#4952)

    * fix assignmentModulo
    
    * fix assignmentXor
    
    * fix assignmentOr
    
    * fix assignmentAnd
    
    * fix assignmentExponentiation
    
    * fix assignmentShiftLeft
    
    * fix assignment{Logical,Arithmetic}ShiftRight
    
    * scalafmt
    xavierpinho authored Sep 25, 2024
    Configuration menu
    Copy the full SHA
    cc7f787 View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2024

  1. Configuration menu
    Copy the full SHA
    55871dc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9f6d756 View commit details
    Browse the repository at this point in the history
  3. [dataflowengineoss] SemanticTestCpg doesn't rebuild semantics (joerni…

    …o#4955)
    
    As soon as `FullNameSemantics` started logging duplicate semantics (in joernio#4954), it was observed that `SemanticTestCpg` was passing a fresh Semantics instance to `EngineContext` instead of passing the one used by `OssDataFlow`. By coincidence, however, they were the same. Nevertheless, this patch guarantees they are the same.
    xavierpinho authored Sep 26, 2024
    Configuration menu
    Copy the full SHA
    3d38fec View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    87b4b63 View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2024

  1. [ruby] Fixed Argument Order on ArgumentListContextHelper (joernio#4972

    )
    
    * [ruby] Fixed Argument Order on `ArgumentListContextHelper`
    Use `line` and `column` information to order arguments correctly.
    
    * Removed instances where sorting was done after the fact
    
    * Fixed tests that validated incorrect behaviour
    DavidBakerEffendi authored Sep 27, 2024
    Configuration menu
    Copy the full SHA
    da64780 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8b6992d View commit details
    Browse the repository at this point in the history
  3. [c2cpg] Fixed fileName helper (joernio#4940)

    Using the CDT API (getContainingFilename) now.
    
    For: joernio#4924
    max-leuthaeuser authored Sep 27, 2024
    Configuration menu
    Copy the full SHA
    5e38766 View commit details
    Browse the repository at this point in the history
  4. [ruby] ANTLR Profiler Summary (joernio#4950)

    * [ruby] ANTLR Profiler Summary
    * Introduced global profiling to summarize rule and parse performance across the project
    * Added a shutdown hook to dump a summary of the profiler rules in a file `antlr_summary.log` at the root of the project with this information
    
    * Check parent exists before dumping. May not be there during test cases
    
    * Added note around shutdown hook
    DavidBakerEffendi authored Sep 27, 2024
    Configuration menu
    Copy the full SHA
    f141437 View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2024

  1. Configuration menu
    Copy the full SHA
    f5dda21 View commit details
    Browse the repository at this point in the history

Commits on Sep 30, 2024

  1. Configuration menu
    Copy the full SHA
    7c417d2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fa22d81 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f1e3270 View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2024

  1. Configuration menu
    Copy the full SHA
    a4de357 View commit details
    Browse the repository at this point in the history
  2. [ruby] Ignore "Throwaway" AST Structures (joernio#4982)

    Sometimes AST trees would be thrown away, specifically when long chained expressions would be compressed into temporary cache variables. This only happens with expressions, and closures typically write directly to the diff graph.
    
    This PR minimizes what is written directly to the diff graph from function creation, and extends `x2cpg.Ast` to also include `CAPTURE` edges. This also introduces `closureToRefs` map to track which `Block` nodes already have live method ASTs in the diff graph.
    DavidBakerEffendi authored Oct 1, 2024
    Configuration menu
    Copy the full SHA
    3c27bf6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    464480d View commit details
    Browse the repository at this point in the history

Commits on Oct 2, 2024

  1. Configuration menu
    Copy the full SHA
    0d75bd1 View commit details
    Browse the repository at this point in the history
  2. [ruby] Fix structure for ForEach loops in Ruby (joernio#4984)

    * [ruby] Changed handling of ForEach loops
    
    * [ruby] fixed double _astIn reference to identifier
    
    * [ruby] fix failing tests
    AndreiDreyer authored Oct 2, 2024
    Configuration menu
    Copy the full SHA
    bc002cf View commit details
    Browse the repository at this point in the history
  3. [ruby] Re-implemented "Ignore "Throwaway" AST Structures (joernio#4982)…

    …" (joernio#4985)
    
    * Revert "Revert "[ruby] Ignore "Throwaway" AST Structures (joernio#4982)" (joernio#4983)"
    
    This reverts commit 464480d.
    
    * [ruby] Re-implemented "Ignore "Throwaway" AST Structures (joernio#4982)"
    This correctly prevents re-use of nodes that are already being used elsewhere by ensuring deep copies.
    DavidBakerEffendi authored Oct 2, 2024
    Configuration menu
    Copy the full SHA
    115e65c View commit details
    Browse the repository at this point in the history
  4. [ruby] Implement hashCode for RubyExpression (joernio#4986)

     `RubyExpression` nodes don't inherently consider the `span` in the calculation of its hash, so when put into any hashed context, nodes that only rely on `span` alone will collide in these contexts.
    DavidBakerEffendi authored Oct 2, 2024
    Configuration menu
    Copy the full SHA
    3aab593 View commit details
    Browse the repository at this point in the history

Commits on Oct 3, 2024

  1. Configuration menu
    Copy the full SHA
    2935a1f View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2024

  1. external commands (astgen, php-parser etc.): fix and consolidate base…

    … dir (joernio#4956)
    
    The logic to guess the base dir of the installation is quite fiddly but
    works for our use cases for astgen. PhpParser implemented something similar, but
    not quite - and it failed for buildbot.
    
    On buildbot the installation path for php2cpg is
    `/worker/sptestV2-php2cpg/build/x2cpg-internal/php2cpg/target/universal/stage`
    which (prior to this PR) leads to an invalid derived php-parser name
    and the following error:
    ```
    2024-09-25 09:30:08.623 ERROR Invalid path for PhpParserBin: /worker/sptestV2-/php2cpg/bin/php-parser/php-parser.php
    ```
    mpollmeier authored Oct 7, 2024
    Configuration menu
    Copy the full SHA
    488fd7b View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2024

  1. Configuration menu
    Copy the full SHA
    8dbccfb View commit details
    Browse the repository at this point in the history
  2. [x2cpg|jimple2cpg] Added server mode to jimple2cpg after fixing respo…

    …nse header (joernio#4995)
    
    Turns out the HTTPServer expects an explicit "Connection: close" header which requests
    the connection to be closed after the transaction ends. Otherwise, it would wait for a 10sec timeout
    for the next thread to become available. In case we only allow for one thread (jimple2cpg) that would mean
    additional waiting which renders the whole server approach useless. This in now fixes as we immediately close
    the connection after the frontend is finished.
    max-leuthaeuser authored Oct 9, 2024
    Configuration menu
    Copy the full SHA
    c69ecf5 View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2024

  1. [c2cpg|jimple2cpg] Fixed name for nested declarators (joernio#4996)

    This happened for parameter and variable declarations in parentheses.
    max-leuthaeuser authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    cf3834d View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2024

  1. Configuration menu
    Copy the full SHA
    e0e493d View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2024

  1. Configuration menu
    Copy the full SHA
    9e1a466 View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2024

  1. Configuration menu
    Copy the full SHA
    2cce15d View commit details
    Browse the repository at this point in the history
  2. upgrade deps (joernio#5007)

    * upgrade deps
    
    * trigger ci
    mpollmeier authored Oct 17, 2024
    Configuration menu
    Copy the full SHA
    452b1e3 View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2024

  1. Merge branch 'master' of https://github.com/joernio/joern into 4-0-114

    GitHub Actions Bot committed Oct 18, 2024
    Configuration menu
    Copy the full SHA
    cac71d3 View commit details
    Browse the repository at this point in the history