Releases: Fraunhofer-AISEC/cpg
Releases · Fraunhofer-AISEC/cpg
9.1.2
What's Changed
🏕 Features
- Fixing issues with inferring field declarations instead of variables in Python by @KuechA in #1977
- Fix unity build by @peckto in #1986
- Basic implementation of following context-sensitive calls in
followNextDFGUntilHit
by @oxisto in #1988 - Rename
localNameOnly
todoNotPrependNamespace
by @oxisto in #1993 - Do not enter local scopes in python by @KuechA in #1982
- Do not resolve unqualified symbols in current record without
HasImplicitReceiver
by @oxisto in #1984 ResolveMemberExpressionAmbiguityPass
now correctly set an FQN in its replaced references by @oxisto in #1987- Added
calledBy
mirrored edge inFunctionDeclaration
by @oxisto in #2012 - Rework
ShortcutsTest
to fit test style guides by @KuechA in #2013 - Exporting QueryTree as SARIF result by @oxisto in #1967
- Refactor firstParentOrNull to accept type parameter and optional predicate by @KuechA in #2018
- Cleanup
SymbolResolver
and make it more extensible by @oxisto in #2001
👒 Dependencies
- Update dependency rollup to v4.32.1 by @renovate in #1990
- Update dependency @types/node to v22.12.0 by @renovate in #2002
- Update dependency org.jline:jline to v3.29.0 by @renovate in #2014
Full Changelog: v9.1.1...v9.1.2
9.1.1
What's Changed
🏕 Features
- Support tuple deconstruction and follow value flows based on index by @KuechA in #1961
- Extend concepts by @KuechA in #1969
- Do not infer field declarations in static methods by @KuechA in #1973
- Added basic concepts for memory operations by @oxisto in #1971
- Added
@DoNotPersist
toComponent::topLevel
by @oxisto in #1974 - Add test for already merged PR 1973 by @KuechA in #1976
- Query: Use index stack dfg in the DFG query by @KuechA in #1972
Full Changelog: v9.1.0...v9.1.1
9.1.0
What's Changed
🏕 Features
- Update documentation site by @KuechA in #1882
- Fix small errors for rendering docs by @KuechA in #1930
- Fix/test eog for loop by @konradweiss in #1921
- Adding C++ frontend as 'optional' integration test dependency to Neo4j by @oxisto in #1933
- Add cpg-concepts module by @maximiliankaul in #1932
- Added (mostly empty) skeleton for Codyze by @oxisto in #1936
- Remove
cpg-all
by @oxisto in #1939 - Adds back test heap size by @oxisto in #1942
- Fix import
from .
import by @oxisto in #1943 - Removing legacy resolve functions from
SymbolResolver
by @oxisto in #1861 - Small improvements in
TypeResolver
by @oxisto in #1948 - Handling
ImportDeclaration
in EOG by @oxisto in #1941 - Adding options to handle unreachable EOG branches in the
SymbolResolver
by @oxisto in #1946 - Faster type and symbol resolution by @oxisto in #1950
- Trying to publish to GH packages by @oxisto in #1954
- Extending value evaluator in the python frontend by @oxisto in #1947
- Concept and Operation nodes for disk encryption by @maximiliankaul in #1956
- Basic implementation of
compliance scan
command by @oxisto in #1940 - Additionally publish to GH package registry with commit SHA by @oxisto in #1958
- Resolving calls to static python methods correctly by @oxisto in #1962
- Add Concept and Operation for HTTP APIs and their calls by @lshala in #1945
- Support different top levels for each component by @oxisto in #1960
- Keep argument name information when converting member call expressions to call expressions by @oxisto in #1965
- Make QueryTree more beatiful by @oxisto in #1966
- Updated deps to version v0.0.5 and added windows lib file (dll) by @interruptedHandshake in #1968
👒 Dependencies
New Contributors
- @interruptedHandshake made their first contribution in #1968
Full Changelog: v9.0.2...v9.1.0
9.0.2
9.0.1
9.0.0
What's Changed
🏕 Features
- Trying to infer namespace when trying to infer records by @oxisto in #1584
- Made build K2 ready and remove Gradle warnings by @oxisto in #1564
- Trying to use a release-independent repository for CDT by @oxisto in #1522
- Trying to parallelize everything except performance tests by @oxisto in #1588
- Do not depend on
JavaImportResolver
in cpg-neo4j by @oxisto in #1593 - Add .c++ as file extension for cpp language by @peckto in #1597
- Fixed Neo4J import of
ImportDeclaration
by @oxisto in #1589 - Using Kotlin 1.9 for cpg-console by @oxisto in #1592
- Update README.md by @konradweiss in #1600
- Handling imports in Python by @oxisto in #1555
- Resolving types based on type name normalisation by @oxisto in #1581
- Fix console neo4j login params by @peckto in #1612
- Catch ProblemType inside DynamicInvokeResolver.handleCallee by @peckto in #1613
- Clean up old call to byName by @peckto in #1618
- Added
hasArguments
toArgumentHolder
by @oxisto in #1609 - JVM language frontend based on SootUp by @oxisto in #1402
- Fixed crash in
CXXExtraPass::convertOperators
by @oxisto in #1623 - Added
OperatorDeclaration
by @oxisto in #1605 - Added more basic interfaces by @oxisto in #1607
- Displaying info about which JEP path is used by @oxisto in #1633
- Populating
codeOf
ofASTModule
by @oxisto in #1634 - Better integration of legacy call resolution with the new system and more cleanup by @oxisto in #1608
- Supporting
posonlyargs
in Python by @oxisto in #1638 - Improved property edges by @oxisto in #1642
- Handling varargs in Python by @lshala in #1665
- Implementing AST properties using singleton edge lists by @oxisto in #1646
- Improve the Pass system by @maximiliankaul in #1645
- Restructure Python.kt -> ast is now encapsulated in an interface. by @maximiliankaul in #1675
- Support for python interface files by @oxisto in #1639
- Python: merge async with non-async code by @maximiliankaul in #1673
- Some improvements to pass annotations by @oxisto in #1674
- Replace
TODO()
withProblemDeclaration
nodes by @maximiliankaul in #1663 - Update CODEOWNERS by @oxisto in #1685
- Extending functionality of
ReplaceCallCastPass
toResolveCallExpressionAmbiguityPass
by @oxisto in #1680 - Added basic implementation of operator overloading by @oxisto in #1606
- Add implementation for Assert and NamedExpr nodes by @lshala in #1683
- Handle arguments in Python frontend by @lshala in #1669
- Helper functions to access additionalProblems by @maximiliankaul in #1694
- Fixed accidental renaming by @oxisto in #1696
- Hotfix: Use GitHub runners again by @oxisto in #1703
- Handle python BoolOp for multiple arguments by @KuechA in #1698
- Fixes
ConcurrentModificationException
by @oxisto in #1689 - fix doc string urls by @maximiliankaul in #1724
- Added
add(index, element)
forUnwrappedEdgeList
by @oxisto in #1726 - Bump Kotlin to 2.0.20 by @maximiliankaul in #1727
- Support python type hints by @lshala in #1701
- Name: add get a random name by @maximiliankaul in #1728
- Implemented base class for
ExceptHandler
by @oxisto in #1730 - Handle delete statement in python frontend by @lshala in #1723
- Open a block and function scope for python functions by @oxisto in #1731
- Initial version of python
try
with all things by @KuechA in #1704 - Support multiple variables in for loops by @maximiliankaul in #1729
- Code Quality Python Tests by @maximiliankaul in #1734
- Switching to codecov for code coverage by @oxisto in #1752
- Update README.md by @oxisto in #1753
- Update codecov.yml by @oxisto in #1754
- Update codecov.yml by @oxisto in #1755
- Improved annotation parsing in python by @oxisto in #1751
- Re-enabling self hosted runner by @oxisto in #1756
- Setting correct block location for
Python.AST.ExceptHandler
by @oxisto in #1750 - Added a
LookupScopeStatement
node by @oxisto in #1742 - Rename
findSymbols
intolookupSymbolByName
by @oxisto in #1772 - Added language trait
HasImplicitReceiver
by @oxisto in #1778 - Cleanup of
SymbolResolver
by @oxisto in #1777 - Fixed crash in
getCodeOfSubregion
by @oxisto in #1776 - Add new function
lookupUniqueTypeSymbolByName
by @oxisto in #1781 - Make sure to move
typeObservers
from old to new node when replacing nodes by @oxisto in #1783 implicit()
only triggers code/location update now if its not empty by @oxisto in #1784- Added
:=
as simple operator in Python by @oxisto in #1785 - Implementing python's
global
andnonlocal
by @oxisto in #1735 - Implement else-Branch for LoopStatements by @konradweiss in #1780
- Resolving imports and symbols according to import dependencies by @oxisto in #1782
- add prev/nextPDG shorthand by @maximiliankaul in #1787
- Implement Python
with
by @lshala in #1757 - Added
JVMLanguage
to the list of registered languages incpg-neo4j
by @oxisto in #1792 - Support for python packages by @oxisto in #1779
- Implement a throw or raise statement by @maximiliankaul in #1733
- Python: raise by @maximiliankaul in #1741
- Removes handling of break, continue and throw from scopes by @konradweiss in #1788
- Support async with in python by @KuechA in #1795
- Fix bugs in docs page by @KuechA in #1796
- Fix cycle in CDG pass by @KuechA in #1798
- add a "problem" warning when encountering "async" by @maximiliankaul in #1799
- Handle nested functions by @KuechA in #1797
- Add Comprehensions of Lists, Sets and Maps and generator expressions by @KuechA in #1786
- Replace UnaryOperator("throw") with ThrowStatement for java by @KuechA in #1814
- Replace UnaryOperator("throw") with ThrowStatement for LLVM by @KuechA in #1816
- Fix some typos and unnecessary casts in LLVM frontend by @KuechA in #1818
- Replace UnaryOperator("throw") with ThrowStatement for CXX by @KuechA in #1815
- Remove
UnaryOperator
used as throw from EOG pass and spec by @KuechA in https://github.com/Fraunhofer-AI...
8.3.0
What's Changed
- Only propagate type updates in a
Reference
from FULL previous DFG nodes by @oxisto in #1554 - Update dependency org.mockito:mockito-core to v5.12.0 by @renovate in #1556
- Model values of Enum entries in Java with constructor call by @KuechA in #1552
- Java frontend: Handle multi-field-declaration statements by @KuechA in #1558
- Initial implementation for symbols and imports by @oxisto in #1536
- Update kotlin monorepo to v2 (major) by @renovate in #1563
- Filter eogstarters which do not start the eog by @KuechA in #1560
- Optimising tests by @oxisto in #1565
- Update dependency @types/node to v20.13.0 by @renovate in #1569
- Update dependency gradle to v8.8 by @renovate in #1570
- Cleanup of
SubgraphWalker
by @oxisto in #1571 - Update dependency @types/node to v20.14.0 by @renovate in #1572
- Update dependency com.github.javaparser:javaparser-symbol-solver-core to v3.26.0 by @renovate in #1574
- Update dependency rollup to v4.18.0 by @renovate in #1567
- Update jitpack.yml by @oxisto in #1575
- Trying to fix switch EOG by @oxisto in #1573
- Update dependency @rollup/plugin-commonjs to v26 by @renovate in #1582
- Better implementation of
WrapState
(and rename toTypeOperations
) by @oxisto in #1577 - Parsing
CPPASTLinkageSpecification
by @oxisto in #1579 - Bugfix/annotations and Missing Enums by @konradweiss in #1585
Full Changelog: v8.2.0...v8.3.0
8.2.0
What's Changed
- Only follow full DFG flow in
followNextDFGEdgesUntilHit
and similar by @oxisto in #1473 - Fixing record inference and making
SymbolResolver
deterministic again by @oxisto in #1476 - Docs fixes by @MariusAlbrecht in #1478
- Fix index out of bounds in
hasSignature
by @KuechA in #1493 - Update CODEOWNERS by @oxisto in #1501
- Fixes incorrect field resolution in base classes by @oxisto in #1490
- Improved stability of
isDerivedFrom
decisions by @oxisto in #1488 - Extracted call/cast replacement into separate pass by @oxisto in #1499
- Fix style of docs by @KuechA in #1504
- Extracting connecting declarations and definitions in C++ to extra pass by @oxisto in #1505
- Python: Add BoolOp and + or by @maximiliankaul in #1509
- Handle
ForLoop
incyclomaticComplexity
by @KuechA in #1512 - Remove confusing warning in compound assignments by @KuechA in #1511
- Fixing javaparser resultion error by @konradweiss in #1510
- Extension to the documentation for extractScope by @konradweiss in #1516
- Introduction of concepts for next-generation call resolving by @oxisto in #1496
- Fix output of pass ordering and dependencies by @KuechA in #1518
- Fixing placement of inferred record declarations by @oxisto in #1515
- Move
de.fraunhofer.aisec.cpg.passes.order
tode.fraunhofer.aisec.cpg.passes.executionConfiguration
by @KuechA in #1517 - Replace console tests with FluentDSL by @KuechA in #1519
- Use the max complexity config for ControlFlowSensitiveDFGPass in neoj and console by @KuechA in #1514
- Improvements in compilation database parsing by @oxisto in #1494
- Ignore Type resolution error when resolving super types through
javaparser
by @konradweiss in #1520 - Some cleanup after next-generation call resolving by @oxisto in #1523
- Take operator into account when evaluating conditional expressions by @oxisto in #1528
- Adjusting
HasType
type once a language changes by @oxisto in #1526 - Rename fluent-DSL
ase
tosubscriptExpr
by @KuechA in #1529 - Adding soft from DynamicInvokeResolver to ControlFlowSensitiveDFGPass by @konradweiss in #1532
- Bullet points in docs of shortcut API by @KuechA in #1544
- Implement ast.Subscript and ast.Slice by @maximiliankaul in #1545
- C++ translation improvements by @oxisto in #1482
- Handle more python expressions by @KuechA in #1547
- Update dependency rollup to v4.17.2 by @renovate in #1549
- Adding some nodes to the AST subtree that prob should be there by @konradweiss in #1550
- Resolve cast ambiguity in C++ frontend by @oxisto in #1551
Dependency Updates
- Update dependency gradle to v8.7 by @renovate in #1471
- Update sonarqube to v5 (major) by @renovate in #1477
- Update dependency @types/node to v20.12.2 by @renovate in #1485
- Update dependency rollup to v4.14.0 by @renovate in #1500
- Update dependency io.github.gradle-nexus:publish-plugin to v2 by @renovate in #1506
- Update dependency com.ibm.icu:icu4j to v75 by @renovate in #1537
- Update dependency rollup to v4.16.0 by @renovate in #1538
- Update dependency org.jline:jline to v3.26.0 by @renovate in #1543
New Contributors
- @MariusAlbrecht made their first contribution in #1478
Full Changelog: v8.1.2...v8.2.0
8.1.2
Full Changelog: v8.1.2...v8.1.2
What's Changed
- Update dependency org.mockito:mockito-core to v5.11.0 by @renovate in #1443
- Fixes to type propagation of arithmetic expressions by @robinmaisch in #1449
- Update softprops/action-gh-release action to v2 by @renovate in #1452
- Update dependency org.eclipse.platform:org.eclipse.core.runtime to v3.31.0 by @renovate in #1454
- Update dependency rollup to v4.13.0 by @renovate in #1456
- Several small fixes to the Schema to JSON printing by @konradweiss in #1457
- Add members, methods and imports to EnumDeclarations by @robinmaisch in #1450
- Update dependency com.fasterxml.jackson.module:jackson-module-kotlin to v2.17.0 by @renovate in #1460
- Introduce
simpleAssignmentOperators
inLanguage
by @oxisto in #1464 - Disabling TypeScript builds on JitPack by @oxisto in #1465
- Enable using function summaries to get more precise and custom DFG edges for inferred functions. by @KuechA in #1430
- Using
libgoast
instead of manually compiling the Go library by @oxisto in #1466 - Neo4J OGM fixes by @oxisto in #1467
- Added SECURITY.md by @oxisto in #1470
- Use currentClass for implicit this by @konradweiss in #1468
- Adds pass dependencies for
EdgeCachePass
by @fwendland in #1469
New Contributors
- @robinmaisch made their first contribution in #1449
Full Changelog: v8.1.1...v8.1.2