- Dec 04, 2023
-
-
Carlos Galindo authored
- Moved from Work#getTraversedLoop
-
Carlos Galindo authored
- Now Constraints is just a stack of EdgeConstraint.
-
Carlos Galindo authored
-
Carlos Galindo authored
-
Carlos Galindo authored
-
Carlos Galindo authored
- Config.summaries must be false, to disallow generation of internal summary edges with grammars.
-
Carlos Galindo authored
- Previously, tabular slicing algorithms cached summary edges between runs (no longer necessary). - SummaryTable is no longer in use, because tabular slicing is implemented without it.
-
Carlos Galindo authored
-
- Nov 30, 2023
-
-
Carlos Galindo authored
-
Carlos Galindo authored
-
Carlos Galindo authored
Also implemented in subsumed version.
-
- Nov 29, 2023
-
-
Carlos Galindo authored
WorkNS didn't take into account lastEdgeType, causing incompleteness errors in slices.
-
- Nov 28, 2023
-
-
Carlos Galindo authored
- Extends JGraphT's DefaultEdge - Removed equals and hashCode (were equivalent to Object's)
-
Carlos Galindo authored
- ConstrainedTabularAlgorithm: - Unified State and MState, moving the last edge type to Work. - For efficiency, don't store the last edge type unless it is relevant. - Removed assertions. - ConstrainedSubsumedTabularAlgorithm: added map to speed-up lookup of subsumed work objects.
-
- Nov 23, 2023
-
-
Carlos Galindo authored
-
Carlos Galindo authored
- Tabular algorithm: only traverse intraprocedural edges by default. - Improved subsumption checks in tabular algorithm. - Corrected actual-out detection. - Added assertions to check for incorrect interprocedural edges. - Control-flow is incorrect in anonymous routines: it produces interprocedural control dependence. - Parametrized erlang server connection settings. - Added new comparisons for benchmarks. - New script to run benchmarks and analyze results with SQLite.
-
- Nov 20, 2023
-
-
Carlos Galindo authored
- Worklist approach implemented through a Config flag in SummaryTable. - Unconstrained and constrained variantes (TabularAlgorithm & ConstrainedTabularAlgorithm). The constrained version features a limit to the size of the stack. - Constrained subsumed variant for efficiency (ConstrainedSubsumedTabularAlgorithm). - Efficient EdgeList (linked-list) to store edges visited through a traversal. - Bump language level to 16. - eKnife cli: added switch to use tabular algorithms. - Moved benchmarks out of eKnife and BencherTest.
-
- Oct 25, 2023
-
-
Carlos Galindo authored
- ️️SummaryTable: actual-out node may none or multiple matching formal-out. - EDG, SummaryTable: get and clear methods for stats. - EKnife, BencherTest: adapted for benchmarks in which running the benchmark alters the graph itself.
-
- Oct 19, 2023
-
-
Carlos Galindo authored
- Move summary settings from EDGFactory to Config. - The EDG now contains a SummaryTable, a map which computes summaries on-the-fly. - ConstrainedAlgorithm: now looks up summary edges in SummaryTable. - Fixed typo in SummaryEdgeGenerator#generateOnlyExternal.
-
- Jul 27, 2023
-
-
Carlos Galindo authored
- Add flag to EDGFactory to enable the creation of interprocedural edges.
-
- Jul 24, 2023
-
-
Carlos Galindo authored
- Full support for records, with their own access constraints - e-Knife can now print Erlang code that contains newly supported data structures (record, bin, try, catch, throw...)
-
- Jul 13, 2023
-
-
Carlos Galindo authored
- Basic support for records, bin, float, try, catch - Feature to count access constraints traversed - Feature to count access constraints present in the graph - Bugs fixed: - Can handle empty string represented as list `[]`. - Can handle other unary operators apart from `-int`. - Can handle nested list comprehensions. - Now requires a running instance of erlang, use the following command: erl -pa (pwd)/e-Knife/src/main/resources -name server@localhost -setcookie erlang -noshell - BencherTest now accepts `-DiterGen=NUM` and `-DiterSlice=NUM` as Java arguments.
-
- Feb 23, 2023
-
-
Carlos Galindo authored
-
Sergio Pérez authored
-
- Feb 16, 2023
-
-
Sergio Pérez authored
* Statistical functions to build tables
-
- Jul 26, 2022
-
-
Sergio Pérez authored
* Added bencher intra- and inter-procedural suits * Added Dockerfile
-
Sergio Pérez authored
-
- Mar 11, 2022
-
-
Sergio Pérez authored
-
- Oct 27, 2021
-
-
Sergio Pérez authored
-
Sergio Pérez authored
-
Sergio Pérez authored
* Left Recursive Grammars transformed to Right Recursive avoiding infinite T generations with suffix analysis * Grammar.printGrammarInFile
-
- Oct 05, 2021
-
-
Sergio Pérez authored
* Measured the generation time of the different graph edges * Added EKnife.timedRun to evaluate the slicer against all the possible slicing criteria of a program * Added intraprocedural bencher suite
-
Sergio Pérez authored
* Measured the generation time of the different graph edges * Added EKnife.timedRun to evaluate the slicer against all the possible slicing criteria of a program * Added intraprocedural bencher suite
-
- Oct 01, 2021
-
-
Sergio Pérez authored
* Repeated recursive grammar states ignored in summary generation * Increased the number of constraints that the stack can contain to 20 * Slice of 3 benchmarks improved
-
Sergio Pérez authored
-
Sergio Pérez authored
-
Sergio Pérez authored
-
Sergio Pérez authored
* LiteralConstraint in switch structures
-
Sergio Pérez authored
* LiteralConstraint and its stack behaviour implemented
-
Sergio Pérez authored
* Fix CFG absorbent clauses
-