Skip to content

Latest commit

 

History

History
128 lines (82 loc) · 5.51 KB

CHANGELOG.md

File metadata and controls

128 lines (82 loc) · 5.51 KB

Change Log

Unreleased (0.5.0) v5

  • Implement Newspeak setter send syntax and remove old assignment syntax

This release introduces concurrency-agnostic debugging based on Kómpos. It is realized by using a debugger protocol that abstracts from concurrency concepts and instead uses a uniform representation and meta data that instructs Kómpos how to understand and visualize breakpoints, stepping operations, and data visualization

  • introduced a uniform trace format (PR #155)
  • added process view
  • refactor handling of breakpoints and stepping in interpreter and Kómpos
  • added advanced stepping operations and breakpoints for STM, fork/join, actors, CSP, threads and locks

Other Enhancements

  • Switch to unified Truffle+Graal repo PR #149

  • Updated to Truffle 0.25 PR #132

  • Use precise array type check PR #128

  • Make Kómpos tests more robust, include more info on failures, and use ephemeral ports if necessary PR #144

  • Fix various single stepping issues PR #143

  • Fix #perform:withArguments: primitive PR #130

  • Make sure that ./som without arguments does something useful PR #156

Features for the Demo

  • Added trace replay functionality (PR #109)

    • Added -r flag to enable replay
  • Visualize all types of activities in system view (PR #116)

  • Block methods are named based on outer method's name

  • Enable display of code for unsuspended activities, i.e., activities not hitting a breakpoint

General Maintenance

  • Revised design of promises and implemented erroring/breaking of promises (PR #118)

  • Updated to Truffle 0.24+patches, from pre-0.22+patches

  • Added -J flag for JVM flags, e.g. -JXmx2g

  • Removed Truffle Debug REPL support, i.e., the -td flag. Has been deprecated in Truffle for a long time, and maintaining it seems not useful.

  • Added -vmd flag to enable debug output

Concurrency Support

  • Added basic support for shared-memory multithreading and fork/join programming (PR #52)

    • object model uses now a global safepoint to synchronize layout changes
    • array strategies are not safe yet
  • Added Lee and Vacation benchmarks (PR #78)

  • Configuration flag for actor tracing, -atcfg= example: -atcfg=mt:mp:pc turns off message timestamps, message parameters and promises

  • Added Validation benchmarks and a new Harness.

  • Added basic Communicating Sequential Processes support. See PR #84.

  • Added CSP version of PingPong benchmark.

  • Added simple STM implementation. See s.i.t.Transactions and PR #81 for details.

  • Added breakpoints for channel operations in PR #99.

  • Fixed isolation issue for actors. The test that an actor is only created from a value was broken (issue #101, PR #102)

  • Optimize processing of common single messages by avoiding allocation and use of object buffer (issue #90)

Interpreter Improvements

  • Turn writes to method arguments into errors. Before it was leading to confusing setter sends and 'message not understood' errors.

  • Simplified AST inlining and use objects to represent variable info to improve details displayed in debugger (PR #80).

  • Make instrumentation more robust by defining number of arguments of an operation explicitly.

  • Add parse-time specialization of primitives. This enables very early knowledge about the program, which might be unreliable, but should be good enough for tooling. (See Issue #75 and PR #88)

  • Added option to show methods after parsing in IGV with -im/--igv-parsed-methods (issue #110)

This is the first tagged version. For previous changes, please refer to the pull requests from around that time.