aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-05-03release: lkn_core 0.4.3HEADmainThomas Letan
2018-05-03chore: Fix a warning due to a trailing comma in a macroThomas Letan
2018-05-03deps: Bump several development dependenciesThomas Letan
2018-05-01feature: Use Instance as proxy for reaching SystemsThomas Letan
This patch is a good step towards reducing the risk of race condition, regarding the insertion of new puppets in a given instance. Indeed, the `register_puppet` functions of `System` is blocking (it is a `call`), therefore an Instance will not be able to deal with proxy requests targeting Systems before the new puppet has been registered to each Systems.
2018-03-08release: lkn_core 0.4.2Thomas Letan
2018-03-08refactor: Rely on the Instance to notify puppeteersThomas Letan
Previously, we were using a Registry with duplicated keys, but they are not very error-friendly. In particular, the documentation states: > For example, if a process crashes, its keys are automatically > removed from the registry but the change may not propagate > immediately. In lkn, we rely on keys rather than PID to identify and reach processes. The Instance already remembers its registered Puppeteers key. As a consequence, we can rely on the Instance to dispatch notification, we do not need the Registry.
2018-03-07refactor: Simply the key for instance' notify groupThomas Letan
The use of the :via atom was confusing, as a dispatch Registry can be any term and :via has a special meaning in Elixir. The new key format is more straightforward and therefore better.
2018-01-24chore: Setting up travais yet another timeThomas Letan
2018-01-24release: lkn_core 0.4.1lthms
2018-01-24release: lkn_core 0.4.0lthms
2018-01-24systems: Allow to inject per-system options when registering a puppetlthms
2018-01-24puppeteer: Rename the `key` argument of cast/call into `puppeteer_key`lthms
2018-01-24puppeteer, system: Introduce cast_return and call_returnlthms
2018-01-24fix: (Un)registering puppets blocks to avoid range race conditionslthms
2018-01-24release: lkn_core 0.3.0lthms
2018-01-24chore: Hide the default :module key of entities which is internallthms
2018-01-24chore: Hide the specs/0 function which is totally internallthms
2018-01-24docs: Hide the Components private Statelthms
2018-01-24pool: Killing an instance caused its pool to crashlthms
2018-01-24puppeteer: The digests now contain the entities keylthms
2018-01-24puppeteer: Puppeteers now get digests from Instance they register tolthms
2018-01-24puppeteer: Add stop/2 and stop/1 to kill a given Puppeteerlthms
2018-01-24instance: Keep track of the currently registered puppetslthms
2018-01-24chore: Document the new Entity breaking changeslthms
2018-01-24release: lkn-core-0.2.0lthms
2018-01-24entity: Add stop/1 and stop/2 to kill an entity in a clean waylthms
2018-01-24docs: Simplify the ChangeLog and make it part of the documentationlthms
2018-01-24chore: Add a ChangeLoglthms
2018-01-24puppeteer: Notify the puppeteers when puppets enter or leave instanceslthms
2018-01-24chore: Add one last missing license headerlthms
2018-01-24deps: Remove distillery as lkn-core is a librarylthms
2018-01-24license: Add some missing license headerlthms
Fixes: #10
2018-01-24chore: Fix READMEslthms
2018-01-24chore: lkn is using pijul and only pijullthms
2018-01-24chore: Document the Puppet modulelthms
2018-01-24chore: Document the Map modulelthms
2018-01-24chore: Document the Pool modulelthms
2018-01-24chore: Document the Instance modulelthms
2018-01-24puppeteer: Allow a Puppeteer impl to expose its own cast functionslthms
Before, a given Puppeteer implementation could only expose the functions of its Specifictaion. It was quite limited and prevented several scenario where a Puppeteer could be influenced by some master, e.g. a Player Puppeteer by network events, an Instance logger by the Instance itself, etc. This patch addresses this limitation.
2018-01-24instance: Remove some private functions of Instancelthms
2018-01-24deps: Update dependencies to latestlthms
2018-01-24chore: write a minimalist plain text READMElthms
2018-01-24chore: Add some documentation for the Component modulelthms
2018-01-24chore: Add some documentation to the Entity modulelthms
2018-01-24chore: Add the documentation for the System modulelthms
2018-01-24system: Add a new macro to easily define new Systemslthms
2018-01-24chore: Fix the key type of Specs cast/call callbackslthms
2018-01-24puppeteer: Add the macro defpuppeteer to specify a Puppeteer interfacelthms
2018-01-24entity: Simplify the implementation of both Puppet and Maplthms
2018-01-24chore: Generalize the specs parsinglthms