Skip to content

Releases: bThink-BGU/BPjs

0.12.3 Usability Boost

13 Jul 20:45
Compare
Choose a tag to compare

This release focuses on 3 main areas: usability, usability, and usability. Main updates include:

  • Moved to Rhino 1.7.14. This means many new features, including template strings and better Java interoperability. See full list on Mozilla's site.
  • Printing problematic b-thread's name during serialization errors.
  • Custom serialization for the common and non-serializable java.util.Optional and JavaScript's Set(). This also sets the foundation for customized serialization.
  • Improved wrapping of Java objects as they come to JavaScript: Java strings are now treated as native JS strings, so using the === operator works as expected.
  • Verification stops on ECMAScript errors, instead of hanging.
  • Improved error reporting when trying to sync outside of a b-thread.
  • Informative error message when requesting a list of events and one of the events is null.
  • Logging is turned off by default during verification. Call BPjs.setLogDuringVerification(true) to enable them again. Of course, log messages are hardly sequential during verification, so logging won't make sense in this context in most cases.

0.12.2 - Field Feedback 2022-02

17 Feb 13:37
Compare
Choose a tag to compare

This release is based on field feedback. It offers improved reliability, more informative error messages, better detection of JS errors, easier sub-classing for BEvent, and more (see README for full details).

Thanks everyone who contributed to during the first BPjs hackathon!

Better Embedding

22 May 22:32
Compare
Choose a tag to compare
Better Embedding Pre-release
Pre-release

This release improves how BPjs behaves when embedded in a bigger program. The client code can now adjust BPjs' multi-threading behavior, and redirect its logging stream.

As usual, this release also includes bug fixes and small improvements to the code and documentation.

Thanks to all who contributed to this release!

Native State Comparison FTW

10 Feb 19:39
Compare
Choose a tag to compare

The main great big news (:tada:!!) about this release is that BPjs now uses native Rhino logic to perform b-program synchronization point comparisons. The new comparison logic makes b-program analysis more robust and accurate. This feature required code contributions to Rhino itself (designed and implemented by @szegedi, PI-ed by @geraw), and changes to BPjs (by @eggsterino ).

Additionally, this release implements a friendly logging feature (suggested by @ZvikaZ), proper organization of the JavaScript spaces (which allows a lot of reuse), improvements to priority-oriented event selection strategies, more tests, and less bugs.

Many thanks to all who contributed!

The usability-focused release that adds more usability. And focus.

29 Jan 14:20
Compare
Choose a tag to compare

This release has many usability improvements, including:

  • Event set composition methods (eventA.or(eventB))
  • bp.eventSets convenience object that supports methods such as bp.eventSets.anyOf( eventA, eventB)
  • Logger supporting formatted output: bp.log.info("hello {0}", worldObj).
  • Improved error reporting
  • Improved toString support of Java and JavaScript objects.

Under the hood, lot's of cleanups took place. The pom.xml is now leaner, the serialization is more efficient and JS-correct, and numerous bugs have been squashed.

B-Program and B-Thread Data

06 Dec 00:03
Compare
Choose a tag to compare
Pre-release

Many updates and fixes. Most importantly:

  • B-Threads have data object they can use (bp.thread.data)
  • B-Program has a global map which allows b-threads to share data and keep b-program history (bp.store).
  • It is OK for multiple b-threads to have the same name.

More about the b-thread and b-program data.

Internal Updates and Error Reporting

10 Oct 22:58
Compare
Choose a tag to compare
Pre-release
  • Improved reporting of JavaScript errors.
  • Internal changes of how events are reported to listeners.
  • More tests, mainly around errors and scoping.

BThread-global objects

24 Sep 00:33
Compare
Choose a tag to compare
Pre-release
0.10.6

Fixed JavaDoc bug for JDK>8

Rhino Update

22 Apr 21:43
Compare
Choose a tag to compare
Rhino Update Pre-release
Pre-release

This release includes various cleanups and bug fixes. But most importantly, it contains an updated version of the internal JavaScript engine. We're now using Mozilla Rhino 1.7.12.

JS Error Resilience

30 Mar 23:06
Compare
Choose a tag to compare
JS Error Resilience Pre-release
Pre-release

This release adds:

  • Resiliency to JavaScript errors: if there's an error at the JavaScript level (e.g. calling methods of a null reference), the host code listener gets a proper error callback (and not a runtime exception). During verification, this becomes a violation.
  • Fixed a bug in the verifier, which cause some edges not to be inspected.
  • Other improvements as well, but rather minor.