Releases: bThink-BGU/BPjs
0.14.0
What's Changed
- Change visibility of methods in BProgramJsProxy.java to allow inherit… by @achiyae in #193
- Updated BPJs.java. Added a method by @ananyak19 in #207
- Update MapProxy.java by @maor226 in #209
- addSync Outside of BThread Exception by @maor226 in #210
- fix exception upon calling bp.thread outside of btread. by @maor226 in #211
- 208 logger spi by @maor226 in #212
- add error log by @maor226 in #214
- Update BProgramRunnerListenerAdapter.java by @maor226 in #217
- 200 bpjsexception create a ctor variant which accepts rhinoexception by @maor226 in #216
- Bump org.mozilla:rhino from 1.8.0 to 1.8.1 by @dependabot[bot] in #232
- pre-0.14.0 by @michbarsinai in #237
New Contributors
- @ananyak19 made their first contribution in #207
- @maor226 made their first contribution in #209
- @michbarsinai made their first contribution in #237
Full Changelog: 0.12.3...0.14.0
0.12.3 Usability Boost
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.Optionaland JavaScript'sSet(). 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
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
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
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.
This release has many usability improvements, including:
- Event set composition methods (
eventA.or(eventB)) bp.eventSetsconvenience object that supports methods such asbp.eventSets.anyOf( eventA, eventB)- Logger supporting formatted output:
bp.log.info("hello {0}", worldObj). - Improved error reporting
- Improved
toStringsupport 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
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.
Internal Updates and Error Reporting
- Improved reporting of JavaScript errors.
- Internal changes of how events are reported to listeners.
- More tests, mainly around errors and scoping.
BThread-global objects
0.10.6 Fixed JavaDoc bug for JDK>8
Rhino Update
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.