Skip to content
  1. Nov 23, 2023
    • Carlos Galindo's avatar
      Bug-fixing on tabular slicing algorithms and improvements for benchmarks. · 2f3d9abf
      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.
      2f3d9abf
  2. Nov 20, 2023
    • Carlos Galindo's avatar
      Work-list based and Reps tabular slicing for recursive programs. · 58d95b2c
      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.
      58d95b2c
  3. Oct 25, 2023
    • Carlos Galindo's avatar
      Benchmarks for non-recursive tabular slicing. · 4d630beb
      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.
      4d630beb
  4. Oct 19, 2023
    • Carlos Galindo's avatar
      Tabular slicing (v1): non-recursive · 830c6df6
      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.
      830c6df6
  5. Jul 27, 2023
  6. Jul 26, 2023
  7. Jul 25, 2023
  8. Jul 24, 2023
    • Carlos Galindo's avatar
      Updated benchmark system · 878d4fad
      Carlos Galindo authored
      - Remember, to run benchmarks you require a "server" process for Erlang (see previous commits).
      - If you output slices, astCounter.erl can be used to count the number of AST nodes in a given program.
      878d4fad
    • Carlos Galindo's avatar
      Full support for records and code printing · ad8763fd
      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...)
      ad8763fd
  9. Jul 13, 2023
    • Carlos Galindo's avatar
      Benchmarks for JSS Revision 1 (erlsom) · b909e059
      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.
      b909e059
  10. Mar 03, 2023
  11. Feb 24, 2023
  12. Feb 23, 2023
  13. Feb 16, 2023
  14. Nov 03, 2022
  15. Jul 26, 2022
  16. May 31, 2022
  17. Mar 11, 2022
  18. Oct 27, 2021
Loading