Skip to content

Latest commit

 

History

History
63 lines (52 loc) · 5.17 KB

changelog-2021.md

File metadata and controls

63 lines (52 loc) · 5.17 KB

Changelog for 2021

2022-01

  • ⬆️ Improvements to the BEvent class, to make it better support client Java code.

2021-10

  • ✨ Added contribution guidelines (#139).
  • ✨ Reference to the (finally) published paper describing the updated BPjs model semantics, w.r.t liveness (#99).

2021-05

  • ✨ Client code can change the execution services BPjs uses (#165).
  • bp.log.XXX can be redirected to print streams other than System.out. (#159).
  • ⬆️ Documentation updates.
  • ⬆️ Improved performance of BTSS equality (#164).
  • ⬆️ Removed broken JS code in tests (#153).

2021-02

  • ✨ ✨ 🎉 ✨ 🎉 ✨ 🌈 ✨ ✨ ✨ BPjs now uses Rhino's native continuation equality and hash code (#116. Also, 🎉 🌈 ✨.
  • ⬆️ Scope and context creations across BPjs have been consolidated to utility methods in a new class called BPjs.
  • ⬆️ Event selection strategies that ignore the synchronization statement data field, issue a warning when b-threads put data there (#151).
  • ⬆️ Default priorities in PrioritizedBSyncEventSelectionStrategy and PrioritizedBThreadsEventSelectionStrategy can be changed (#115 and PR#147).
  • ⬆️ Updated docs.
  • ⬆️ BProgram uses an override-able protected method to access its global scope, in case you want to intercept these calls.
  • 🐛 Fixed an issue that caused toString for JavaScript objects to crash at certain cases (#145).
  • 🐛 Storage consolidation conflicts have proper equals and hashCode.

2021-01

  • BProgramSyncSnapshots are serialized using a single stream, and with the b-program's original scope as a top-level scope ((#126).
  • ✨ BThread snapshots do not retain their entry point function after their first sync point. This results in lower memory footprint, and a more efficient de/serialization. These result in improved analysis performance and efficiency.
  • ✨ Event sets (and, by inheritance, events) are now composable. So you can write, e.g., bp.Event("A").or(bp.Event("B")).negate() to create an event set that contains all events except A and B.
  • ✨ Another easy event set composition/creation added: bp.eventSets gives access to EventSets, with methods such as bp.eventSets.anyOf(...) and bp.eventSets.not(...)
  • ⬆️ Logging now allows formatting, using Java's MessageFormat.
  • ⬆️ Expressive toString on JavaScript sets (#135).
  • ⬆️ Error messages when passing non-events to a synchronization statement are more informative (#131).
  • ⬆️ Improved logging consistency (#132).
  • ⬆️ Error messages when JS event sets do not return a Boolean are more informative (#138).
  • ⬆️ BThread data documentation updated (#134).
  • ⬆️ BProgram storage can be updated by the b-program before b-threads run (#129).
  • ⬆️ Changes made to the b-program store after the last sync of a b-thread are now applied (#130).
  • ⬆️ More tests (logger, JSProxy, ScriptableUtils, OrderedSet, JsEventSet, some event selection strategies).
  • 🐛 🎉 JS-semantics are applied for equals and hashCode for b-thread and b-program data (#144).
  • 🐛 Fixed the note color issue in the documentation (#137).
  • 🐛 Fixed the bench marker.
  • 🐛 Fixes a crash when a JS event set predicate returns null instead of a boolean.
  • 🚮 Significant cleanup of the b-program I/O area.
  • 🚮 Significant cleanup of the event set area. Some methods moved from ComposableEventSet to EventSets.
  • 🚮 Some documentation updates and corrections.
  • 🚮 Removed extraneous dependencies from pom.xml (#133).

Earlier Changes

Legend:

  • 🔄 Change
  • ✨ New feature
  • 🎉 New feature, but more exciting
  • 〽️ Refactor (turns out this sign is called "part alternation mark" and not "weird 'M'", so it fits).
  • 🚮 Deprecation
  • ⬆️ Upgrade
  • 🐛 Bug fix