bastion/CHANGELOG.md

57 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Generated by auto-changelog.

v0.3.4 - 2020-01-29

Merged

  • Roll bastion 0.3.4 #164
  • Removed Pool::recover_async_thread method #163
  • Remove debug statements in lightproc code #162
  • Changelog config #161
  • Update futures-timer requirement from 2.0.2 to 3.0.0 #160
  • Use actions/checkout@master in Clippy check #159
  • Max retries support for existing restart strategies #157
  • Implemented linear/exponential back off recovery strategy #156
  • Stateful ProcStack #149
  • bastion-utils: Add missing readme reference to cargo.toml #153
  • Add macros to instantiate children and supervisors #140
  • Fix extreme amount of syscalls to give time share to OS #147
  • Split children into four modules: children, children_ref, child, child_ref #144
  • Use original GitHub actions #142
  • Configurable thread count and thread pinning #141
  • Fix warnings #132
  • Message Signature to identify message sender and sending messages back #130
  • Update crossbeam-utils requirement from 0.6 to 0.7 #136
  • Update crossbeam-epoch requirement from 0.7 to 0.8 #135
  • Update windows datatypes #129
  • EMA based statistically adaptive blocking thread pool #127
  • Bump bastion-executor dependency to 0.3.2-alpha.0 #126
  • Fix link and remove empty doc #124
  • Add Bastion::spawn method #122
  • Replaced "futures-preview" with "futures" #120
  • Ignore migration path under lock contention #115
  • Fix doc links and middleware example #114
  • Stat sampler improvements #113
  • [executor] Fetch cores at once, rely on runtime #112
  • Updated msg! to allow explicit and implicit returns #111
  • Fixed children redundancy tests #108
  • Removed all unsafe code from "bastion" #107
  • Updated the changelog. #106
  • Removed the "qutex" patch #99
  • Added env_logger to all bastion's examples. #98
  • Cleaned up bastion-executor #97
  • Updated the documentation for BastionContext #96
  • Added an "unstable" feature #95
  • Added logs #94
  • Include Examples #90
  • Added support for configuring the system #93
  • Made BastionId public and references comparable #89
  • Proptests for children #91
  • Updated the README to indicate that Bastion isn't production-ready yet. #88
  • Added callbacks support #76
  • Disallowing access to the system's supervisor #75
  • Include issue template menu #85
  • Bastion Documentation and New project logos #84
  • Bastion Executor Documentation #82
  • Lightproc Documentation #81
  • Moved ROOT_SPV out of its QrwLock #80
  • Copied the example from Bastion's documentation into its own file. #79
  • Fix clippy errors #74
  • Fixed children group's running loop and supervisors' order list #72
  • New scheduler for Bastion Executor #71
  • Remove deprecated action #70
  • Better documentation #66
  • Fixed (random) threadpool panics #67
  • Fixed GitHub CI's fmt and docs checks #69
  • Include windows deps #65
  • Address build issues #64
  • Tweak GitHub Actions #62
  • Feature gate fixes #63
  • Bastion 0.3.0 Rollup #58
  • Executor work #53
  • LightProc Implementation #47
  • Lightproc dev #50
  • Clean up actions #43
  • Debug impl with thunk pointer #42
  • Remove travis and add stable channel builds to Github #41
  • Update sponsor information #39
  • Replace Gitter with Discord #38
  • Add GitHub actions #36
  • Fixed building on nightly #34
  • Fix import version #31

Commits

  • Fix conflicts 12d7aac
  • Added support for setting callbacks for supervisors and updated the callbacks example. 66f979d
  • Updated Bastion, Children, ChildRef and ChildrenRef's logs, added logs to Supervisor and SupervisorRef, updated Supervisor::reset to use Supervisor::restart, and fixed formatting. 651a068
  • Added documentation to Callbacks' methods and removed the callbacks traits. 9d5af94
  • Shareable state code e20e888
  • Added a Config struct and an "init_with" method to Bastion to use it, updated the getting started examples to use it and fixed markdown issues. fccf81f
  • Added support for callbacks in children groups and updated supervisor to call them. 1053990
  • Implement children and supervisor macro 79c2025
  • safe Proc State bdce4c9
  • Implemented max retries for restoring actors d2b3d5a
  • Executor scheduler a41ba43
  • Added documentation for BastionId and the "id" methods and exported BastionId and the context module. 5bf0c9b
  • stateful ProcStack f4267b8
  • Removed "bastion/src/proc.rs" and updated bastion to use bastion-executor. b848423
  • Add READMEs 28ac438
  • Implemented exponential back off recovery strategy d6dcdf0
  • cargo fmt bfa1a38
  • Cleanup and format f2046e0
  • Added an example for children groups' callbacks. 6f2b933
  • Add all missing docs a762ca6
  • Add supervisor macro to generate supervisors 6c2d605
  • Fixed formatting and errors. f9ee8fb
  • Middleware example 634f75a
  • Parallel computation (mapreduce) example 5eec793
  • Lightproc docs 2b1907f
  • Renamed of Callbacks's methods and fixed the formatting. 42780c8
  • Add child and children macro e9fc034
  • Fix rustc errors and remove child macro b5b097e
  • Added documentation to Children and Supervisor's with_callbacks methods. 82a8ec9
  • Added logs to Child, Children, ChildRef and ChildrenRef. e39cc3a
  • Updated context to not give a reference to the children group's supervisor if it is the system's supervisor. 587998a
  • Bastion docs 79d1d14
  • Cleaned up bastion-executor and lightproc's dependencies imports and replaced rustc_hash with fxhash. ed7c634
  • use pointer cast instead of transmuting cabba1e
  • Added logs to System. ef4bccf
  • Updated GlobalSystem and Bastion::block_until_stopped to use a Condvar. d4420d0
  • Replaced max_retries on the RestartPolicy enum cffa1cf
  • Changed signature of the Supervisor::restart method 4c79d7a
  • Added tests for the RestartStrategy struct 638fefd
  • Added readme 54884b6
  • Created bastion-utils crate 234bfdd
  • Add run macro adce5e2
  • Changed signature of the Supervisor::kill method f0e4354
  • Added saving old counters for the failed actors 1cb4b48
  • Implemented linear back-off recovery strategy 54b016b
  • Simplify the condvar check 65afbad
  • Header 6ef5143
  • Added documentation for Callbacks::new and removed unused code and dependencies. 35f10cf
  • Updated Broadcast polling to indicate that Poll::Ready(None) won't happen. 5b66bff
  • Remove AppVeyor 5b67d60
  • Updated example with restart_strategy a006c89
  • Tweak actions d295afb
  • Added example for the supervisor with recovery strategy c7b64b7
  • Made BastionId public, implemented Display on it and made the "id" methods on Supervisor, SupervisorRef, Children, ChildrenRef and ChildRef public (or added them when not already present). 356e515
  • Moved ROOT_SPV from inside a QrwLock to a static mut (yeah..) and made System::init private. fc89463
  • Fix spinloop 03b2dbc
  • Updated the documentation for BastionContext. 091534b
  • Updated Supervisor's kill to not return anything and added documentation for Supervisor.killed, Supervisor.callbacks and Children.callbacks. 796613c
  • Updated Context to contain an optional Supervisor and removed "is_system_supervisor" from SupervisorRef. 18a81d2
  • Add blocking macro f71b65c
  • Add spawn macro 467147c
  • Implemented PartialEq and Eq for SupervisorRef, ChildrenRef and ChildRef. bdfbc60
  • Updated Child and Children logs. f552fdf
  • Switched to usage of crate bastion-utils a62a93c
  • Added logs to Bastion. 7337566
  • Fixed a bug where ROOT_SPV would contain a reference to a restarted supervisor (thus with a different sender). 4e1c35b
  • Added logs to BastionMessage, Msg, Answer and Sender and fixed errors. 305d995
  • Updated Pool and Distributor's fields visibility, updated Distributor's methods visibility and fixed a typo. bcbc192
  • Fixed formatting. 4a3e673
  • Added documentation about what the "system supervisor" is. 134b430
  • Copy alignment c972596
  • Fixed the supervisors' detection of already stopped supervised elements for when calling callbacks. c323ae6
  • Update readme 51bf740
  • Updated children group's run to poll children before getting new messages and to be pending when its broadcast stream is, and fixed supervisors to update the id of supervised elements in the order list after resetting them and when using the one-for-one supervision strategy. c6143f9
  • Added logs to BastionContext. 9bd838a
  • Fix fmt and some doc ec9e2a5
  • Updated POOL to use a "static mut" instead of using "lazy_static" and a QrwLock, fixing some (random) panics from the threadpool that would freeze the system. a760987
  • Fixed typos. 0d45934
  • Made ROOT_SPV private and added a "root_supervisor" to System. ad5e847
  • Remove thread pool e233f2e
  • Added documentation for Supervisor and SupervisorRef's "is_system_supervisor". 63babc6
  • (cargo-release) version 0.3.4 91cb9c4
  • Changed signature of the Supervisor::stop method af58a40
  • (cargo-release) version 0.3.3 896a1cb
  • More consistent example 52e1d19
  • Exclude prop inputs 5ada867
  • (cargo-release) version 0.3.3-alpha.1 f913def
  • Update README.md 03f5b5e
  • Fixed formatting. 4c4d127
  • Fix doc test and add supervisor macro to prelude 216fe6c
  • Prepared for the release of 0.3.0. cb1889e
  • Fixed examples links 1cd409b
  • Added documentation for the context module. 9a001da
  • Added an "unstable" feature to activate bastion-executor's NUMA-aware allocator. 8858493
  • Add back the doc for system supervisor 7063a9f
  • Switch to nightly's fmt 75985f4
  • (cargo-release) version 0.3.0-alpha.1 ca1280f
  • Fixed formatting. 0ef5fea
  • Fixed formatting. fad8475
  • Fix get_pid tests 869fb70
  • Fixed the formatting of the newly created "callbacks" example. e87d791
  • Update lightproc dependency to 0.3.3-alpha.0 4e03582
  • Fixed formatting warnings 87b4082
  • Add missing readme reference to cargo.toml cd61ba8
  • #151 Created Bastion Utilities crate ce290f3
  • new messaging API which allows identifying message senders and send messages back 36cfd8e
  • separate children into children, children_ref, child, child_ref 8f4253c
  • Removed all unsafe code from "bastion", added a "GlobalSystem" struct to replace "ROOT_SPV", "SYSTEM" and "SYSTEM_SENDER", updated System to return GlobalSystem and fixed formatting. c2af637
  • Added a "is" method to Msg, fixed the "msg!" macro to allow using "return" inside it and updated the "msg!" macro to allow to use it as a typed expression. be9a3e7
  • Add Bastion::spawn method to create a child with the action without using Children::with_exec 693c8d4
  • Remove old dependency d646daa
  • Fix pointer width, goddamit b593647
  • Fetch cores at once, rely on runtime 5c52042
  • Discord Integration c0f555c
  • Fixed the children redundancy proptest to initialize and start Bastion and fixed formatting. c141bab
  • fixed warnings in tests and examples 99564a6
  • Fix redundancy lower bounds 98be08b
  • Fixed typos. 80a8ba0
  • Update README.md 783cf63
  • fixed unused warnings in bastion-executor 9fea200
  • Ran cargo fix 8cdb6af
  • (cargo-release) version 0.3.2 4c67809
  • Fix contributing guide link c35d7e5
  • (cargo-release) version 0.3.1 8c69574
  • (cargo-release) version 0.3.0 785876e
  • Updated bastion's dependencies and fixed bastion's Cargo.toml readme path. 0ce3845
  • Give a better wording 41852c5
  • Bump dependency to 0.3.2-alpha.0 54aa9b5
  • Bastion exdcutor 0.3.2-alpha.0 71b9649
  • Add Children::with_redunancy call to spawn method 95a6e21
  • Replaced "futures-preview" with "futures". 6b6095c
  • Make hundred workers, why not… 05c7cc7
  • (cargo-release) start next development iteration 0.3.2-alpha.0 1e580af
  • (cargo-release) version 0.3.1 9fab907
  • Fixed typos. cc883ca
  • Fixed typos. e32cc36
  • (cargo-release) start next development iteration 0.3.1-alpha.0 e953b87
  • (cargo-release) version 0.3.0 d15e163
  • (cargo-release) version 0.3.0-alpha.1 703fa65
  • Add AWS Lambda use case e35c485
  • Remove debug ac8219a
  • Remove unnecessary compute 387e692
  • Exported BastionContext at bastion's root. 56351ce
  • Fix conflicts 2085102
  • Set up lightproc version 56200e1
  • Fix lightproc stack test d917551
  • Remove empty support doc b39fa5b
  • Fix conflicts 5c1637d
  • Stack representation 8902488
  • Added some documentation, removed the registry, added a ChildRef struct, added methods to the "refs", renamed PoisonPill into Kill and Dead into Stopped, fixed a few critical bugs and cleaned up a bit 66425e0
  • Loads of changes, please see the commit's full description 07f17f9
  • Offset access e076792
  • Fixed formatting and updated Children to forward messages to its own children be4b1bc
  • Test 7deedca
  • refactor e2ec8e9
  • After panic callback is added a3aba3b
  • Renamed BastionContext's "as_ref" method to "current", removed its "send_msg" method and added documentation to all its methods b49bd54
  • Added support for creating nested supervisors and replaced "runtime" with "tokio", also adding a Proc struct to replace JoinHandle 2d5e537
  • Realloc pointer alignment and Debug impls 252893c
  • Added a ContextState struct to store a Child's messages and updated Child to store received message in it and Context to allow to get messages from it 57a4ff6
  • Format all the code 000d42e
  • Added a "message" macro to match a boxed Message against types e09764e
  • Cargo fmt 929b1e9
  • Builder pattern 58e0c72
  • Added a "broadcast" method to Bastion 47891ce
  • Added a "send_msg" method to ChildRef and updated ChildrenRef's documentation to use the message macro 354938d
  • Implemented Debug on all structs 329e79e
  • Added a really simple example to show how sending and receiving messages works from inside a child 09c9360
  • updated parking_lot::Mutex to std::sync::Mutex 10f4386
  • Fix and format 5f358ef
  • Updated Bastion::start to block until the system has stopped 1e54112
  • Before start callback 2c548c2
  • Added the "stop" and "kill" methods to Bastion and cleaned up a bit a26238d
  • Replaced the Fut trait with a struct that can be created from any Future b17bef2
  • Remove unnecessary panic helpers e7d16b7
  • Cargo fix 8778921
  • Remove debug lines a846834
  • After complete callback done 3838dec
  • Updated the registry to use "dashmap" instead of "chashmap" and fixed its remove_* methods 0cef368
  • Callback clone for sharing callbacks from stack 97f9e9a
  • cargo fmt aa4441b
  • cargo fix 2114610
  • Removed registry-related dependencies and futures 0.1 ea44f29
  • Updated uuid and removed its const_fn feature d449799
  • Cargo fix 22367c8
  • Merge pull request #49 from mh84/master 4a16b74
  • Initial commit for v0.3 f3d82b6
  • Removed the _* directories 055c746
  • Moved all message-related types and macros to a new "message" module, renamed the message macro to "msg", updated its syntax a bit (using semicolons instead of commas to separate cases) and fixed the formatting. 0fdc0a9
  • Updated the "children" methods to work in a similar way as the "supervisor" methods, allowing to configure the now public "Children" using its "with_exec" and "with_redundancy" methods. 249e66a
  • Updated bastion to use lightproc and a thread pool instead of tokio, removed Proc, removed the Closure and Shell traits and the Fut struct, making removing the need for calling .into() on children's futures and cleaned up a bit. 0c66ec2
  • Updated messages to be inside an Arc when broadcasted instead of being cloned, updated the "broadcast" and "send_msg" methods to accept and return an unboxed message, updated "recv" and "try_recv" to return a new "Msg" struct, renamed BastionMessage's Message into Tell and updated some visibilies. 800f739
  • Updated the visibility of ProcStack's fields, renamed TaskLayout into ProcLayout, added the "cancel" and "stack" methods to RecoverableHandle and made its inner ProcHandle private, made ProcFutureExt and CatchUnwind private and fixed a few typos and formatting issues. ca5df91
  • Initial executor design 116c81f
  • Global allocator cc4fbbb
  • Removed the src/bastion.rs file 825ab3f
  • Added support for "telling" and "asking" messages, added support for matching and answering the "asked" messages, added support for receiving the answers of those messages and updated the "send_recv" message. 2127aab
  • Add benchmarks 566c408
  • Rename task naming to proc 7049d70
  • Cleaning the tests cc3547f
  • Spawn async problems 1ea3cb9
  • Added documentation for Children, Supervisor and Children's new with_exec and with_redundancy methods and hide Sender and its methods' documentation. 900a71e
  • Rework on the scheduler 7e9a938
  • Initial lightproc development 2ff7604
  • New executor scaffold 3bab921
  • Implemented fault recovery for the system and basic message passing for it and the supervisors a552a03
  • Added a skeleton for the Bastion and System structs, and cleaned up a bit 291bde6
  • Added documentation for Message, Answer and Msg. 7aad9ee
  • LoadBalancer b747429
  • Realloc at the assignment side 4561833
  • Cargo format b3d8e8f
  • Added documentation for Bastion. 2497485
  • Added a skeleton for Registry and cleaned up a bit c688d53
  • Renamed BastionID to BastionId and finished hiding Uuids inside it b9eec99
  • Run queue docs 7438669
  • Scheduler complete 089e3f2
  • Code format 960fee6
  • Added support for sending messages to another child and hide Uuids inside a BastionID struct 719b3c5
  • Updated the supervisors and children to change their ID and senders/receivers after restarting and updated BastionId to generate its own ID by itself 4278240
  • Fixed the formatting and dead links, and implemented Clone on ChildrenRef and ChildRef e2f72ed
  • Stub a48bec7
  • Allocator implementation ordeR c9bc705
  • Updated children and supervisors to register and unregister themselves 82c73cf
  • Updated Supervisor to use vectors instead of trees and cleaned up a bit ff14ea3
  • Use unstable feature gate for NUMA allocator caa6b02
  • Updated RecoverableHandle to return Poll::Ready(None) instead of unwinding panics, implemented Debug on it, updated ProcHandle's Debug implementation to show the proc's stack and elided some lifetimes. a815b31
  • Stack copy implementation e41926a
  • Moved the profiles to the main Cargo.toml file 9e9acc6
  • Cargo fix for all 0ebcbf3
  • Fix cargo fmt errors bbabba4
  • Fetch relative offsets for data 5cb0ccc
  • Updated Supervisor's documentation to use the message macro 1a32b59
  • Enable numa-aware allocator d1d7062
  • Expose organization a6e7e9f
  • Stat struct 056a455
  • Load balancer schedule timing 8301043
  • Fill missing fields for Cargo.toml 845ea8c
  • Future layout allocation 206b2af
  • cargo fix & format 1590cd3
  • Remove old scheduler c4cd383
  • Address comments c8792a9
  • Load balancer wait for it 5628389
  • Expose catch_unwind 3f4fae0
  • Remove main.workflow f52d446
  • Fix feature gate jobs 0429068
  • Remove thanks section from README e267a40
  • Run queue size 2cb4ae3
  • Example organization a758aea
  • Implemented Debug on Bastion. fc9d54e
  • Add features back 2cca130
  • Remove feature enablers 04ad717
  • Lightweight process abstraction scaffold f1554bb
  • Order imports 36d1ace
  • Import reorganization 3fb375a
  • Add readmes 324c2af
  • Remove debug points 77fa780
  • Removed unused dependencies f0cf64e
  • Add Discord server for communication. 563a64b
  • Updated the patch for qutex to point to the moved repository and a branch which also deactivated debug logs 5878a33
  • Added warnings for missing docs and debug implementations. 9ac8f67
  • Better messages for example a748b8c
  • Cargo fix 4ffe7d5
  • Remove global proc_future type b9b8e1c
  • Add categories 7321b6d
  • Replace Gitter links with Discord dd49c4e
  • Fix readme appveyor build tag 75617e3
  • Fix dep order 46081af
  • Remove unnecessary ignore config 59d0efc
  • Select SMP core fix 44f744b
  • Change description of executor 3e665b6
  • (cargo-release) start next development iteration 0.3.2 5dc3ebc
  • (cargo-release) version 0.3.2 4d478f0
  • (cargo-release) version 0.3.1 c4cb935
  • (cargo-release) version 0.3.0 53e5654
  • Lightproc data 7078d0b
  • Fix panic example 92c4ca8
  • Reduce allocator dependencies b825af1
  • Update lightproc/Cargo.toml 5be1840
  • Update lightproc/Cargo.toml 30dfd4d
  • Update lightproc/Cargo.toml 523525e
  • Update lightproc/src/raw_proc.rs dcb9bc7
  • Update lightproc/src/layout_helpers.rs b793f74
  • Update lightproc/src/layout_helpers.rs 9c19e6d
  • Update lightproc/Cargo.toml a9042b2
  • Add bastion categories too 9e29a09
  • Dont run bench on stable, feature is not used on stable channel eb70fb6
  • Run all tests 6018b96
  • Use cargo doc 234552a
  • Use default stable rustfmt 8668d5c
  • Fixed building on nightly following https://github.com/rust-lang/cargo/pull/6989 467c407
  • (cargo-release) start next development iteration 0.2.0 7bf0462
  • Fixed a missing dependency error after merging ca4eb59
  • Give name for the CI jobs f89e247

v0.2.0 - 2019-09-29

Merged

  • Regenerate changelog after moving to organization #30
  • Project documentation #28
  • Context spawn level tests #27
  • Change license to use Apache-2.0/MIT #26
  • Multi OS builds #25
  • Spawn from the context #19
  • File extension it seems #24
  • Move appveyor file, since it is not picked up. #23
  • Build on windows #21
  • Remove nightly features #20
  • did you mean 'abrupt'? #10
  • Shutdown implementation #14

Commits

v0.1.4-alpha.1 - 2019-07-27

Merged

  • Make prelude separation #12
  • Introduce receive utilities for message #11
  • did you mean 'abrupt'? #1

Fixed

  • Introduce receive utilities for message #1

Commits

  • Fix communication example 806bc22
  • Update code example in the readme 684a7bb
  • (cargo-release) version 0.1.4-alpha.1 9eaf5d2
  • (cargo-release) start next development iteration 0.1.3 3ecf231

v0.1.3 - 2019-07-21

Commits

  • (cargo-release) version 0.1.3 bbdd5bc
  • Reword logging entry format 0fb11d1
  • (cargo-release) start next development iteration 0.1.2 da63455

v0.1.2 - 2019-07-21

Commits

  • Cooperatively assembled message 136cdb6
  • Export root spawn 871261b
  • README update 09b3e68
  • (cargo-release) version 0.1.2 3c8b2ae
  • (cargo-release) version 0.1.1 5de7211
  • (cargo-release) start next development iteration 0.1.0 3cde800

v0.1.0 - 2019-07-21

Commits