Skip to content

Latest commit

 

History

History
83 lines (64 loc) · 4.07 KB

changelog-2016.md

File metadata and controls

83 lines (64 loc) · 4.07 KB

Changelog for 2016

2016-12-31

  • 🚮 Removed bpjs from JS scope. Programs must use bp now.
  • 🚮 Polished the interface for adding BThreads to a program: 1 method instead of 3.
  • 🐛 Fixed an issue where external events were re-ordered while checking for daemon mode termination.
  • 🐛 A BProgram now quits when there are no more BThreads, even if there are enqueued external events.
  • 🐛 Fixed typos in error messages.
  • 🔄 Reduces method accessibility to minimum (nothing is public unless it has to be).
  • ✨ More documentation.

2016-12-16

  • ✨ A class for running bpjs files.
  • 👍 Efficient use of Context, so that we don't open and exit it all the time.
  • 🚮 More removal of more unused code. We now have less unused code. Less is more, especially with unused code.

2016-12-11

  • 🔄 breakUpon is now interrupt. This leaves breakUpon to be later used as a language construct rather than a bsync parameter.

2016-12-05

  • 🚮 ✨ 🐘 Big refactoring and clean-up towards enabling search. BThreads removed from engine - main new concept is that an execution of a BThread is a series of BThreadSyncSnapshot, advanced/connected by BPEngineTasks. A BProgram is an execution environment for multiple BThreads (plus some state and management code).

2016-09-18

  • 🐛 breakUpon handlers are evaluated in the BThread's context, rather than in the BProgram one.

2016-09-13

Client code / Javascript

  • ✨ Updated the logging mechanism from global, single level to 3-level. Code change required: bplog("hello") -> bp.log.info("hello). Also supports warn and fine.
  • 🚮 bpjs is deprecated (but still works). Please use bp now.
  • 🚮 positional bsync deprecated (but still works). Please use the named-argument variant bsync({request:....}).
  • 🚮 BThread is not exposed in Javascript via bt (that was never used).
  • ✨ BThreads can now enqueue external events using bp.enqueueExternalEvent().
  • ✨ BThreads can now specify a function that will be executed if they are removed because an event in their breakUpon event set was selected. Use setBreakUponHandler( function(event){...} ).

Engine/General

  • ✨ Restructured the engine with JS proxies - javascript code has no direct interaction with the Java engine parts!
  • 👍 More unit tests and examples

Engine/General

  • Restructured the engine with JS proxies - javascript code has no direct interaction with the Java engine parts!
  • More unit tests and examples

2016-06-11

  • ✨ BEvents now have an associated data object. See example here

  • ✨ New way of creating BEvents: a static method named named:

    new BEvent("1stEvent") // old
    BEvent.named("1stEvent") // new and English-like.

    Future usaged include the ability to reuse event instances, but we're not there yet.

  • ✨ Added support for Javascript definition of event sets:

    var sampleSet = bpjs.EventSet( function(e){
      return e.getName().startsWith("1st");
    } );

2016-06-10

  • ✨ Support for breakUpon in bsyncs:

    bsync( {request:A, waitFor:B, block:C, breakUpon:D})
  • SingleResourceBProgram - a convenience class for the common case of having a BProgram that consists of a single file.

2016-06-01

  • 🔄 BProgram's setupProgramScope gets a scope as parameter. So no need to call getGlobalScope, and it's clearer what to do.
  • RWBStatement now knows which BThread instantiated it
  • ✨ When a program deadlock, StreamLoggerListener would print the RWBStatements of all BThreads.

Legend:

  • 🔄 Change
  • ✨New feature
  • 🚮 Deprecation
  • ⬆️ Upgrade
  • 🐛 Bug fix