├── .github ├── CODEOWNERS ├── bors.toml └── workflows │ ├── build.yml │ └── properties │ └── build.properties.json ├── 0000-template.md ├── CODE_OF_CONDUCT.md ├── README.md ├── minutes ├── 2019.md ├── 2020.md ├── 2021.md └── README.md ├── ops ├── README.md ├── hibernating.md ├── matrix.md ├── msrv.md ├── nominate.md ├── post-transfer.md ├── publish.md └── review.md └── text ├── 0000-use-mod-over-const.md └── 0033-rename-rtfm.md /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @rtic-rs/devs @korken89 @japaric 2 | -------------------------------------------------------------------------------- /.github/bors.toml: -------------------------------------------------------------------------------- 1 | block_labels = ["S-blocked", "S-waiting-on-team", "needs-decision", "do-not-merge"] 2 | delete_merged_branches = true 3 | required_approvals = 1 4 | status = ["ci"] 5 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build 2 | on: 3 | pull_request: 4 | push: 5 | branches: 6 | - master 7 | - staging 8 | - trying 9 | 10 | env: 11 | CARGO_TERM_COLOR: always 12 | 13 | jobs: 14 | # Rubber stamp approve the PR 15 | pass: 16 | name: pass 17 | runs-on: ubuntu-20.04 18 | steps: 19 | - name: Checkout 20 | uses: actions/checkout@v2 21 | 22 | - name: Rubber stamp approve 23 | run: exit 0 24 | 25 | # Refs: https://github.com/rust-lang/crater/blob/9ab6f9697c901c4a44025cf0a39b73ad5b37d198/.github/workflows/bors.yml#L125-L149 26 | # 27 | # ALL THE PREVIOUS JOBS NEEDS TO BE ADDED TO THE `needs` SECTION OF THIS JOB! 28 | 29 | ci-success: 30 | name: ci 31 | if: github.event_name == 'push' && success() 32 | needs: 33 | - pass 34 | runs-on: ubuntu-20.04 35 | steps: 36 | - name: Mark the job as a success 37 | run: exit 0 38 | -------------------------------------------------------------------------------- /.github/workflows/properties/build.properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Build", 3 | "description": "RTIC RFC Suite", 4 | "iconName": "rust", 5 | "categories": ["Rust"] 6 | } 7 | -------------------------------------------------------------------------------- /0000-template.md: -------------------------------------------------------------------------------- 1 | - Feature Name: (fill me in with a unique ident, my_awesome_feature) 2 | - Start Date: (fill me in with today's date, YYYY-MM-DD) 3 | - RFC PR: [rtic-rs/rfcs#0000](https://github.com/rtic-rs/rfcs/pull/0000) 4 | - RTIC Issue: [rtic-rs/cortex-m-rtic#0000](https://github.com/rtic-rs/cortex-m-rtic/issues/0000) 5 | 6 | # Summary 7 | [summary]: #summary 8 | 9 | One para explanation of the feature. 10 | 11 | # Motivation 12 | [motivation]: #motivation 13 | 14 | Why are we doing this? What use cases does it support? What is the expected outcome? 15 | 16 | # Detailed design 17 | [design]: #detailed-design 18 | 19 | This is the bulk of the RFC. Explain the design in enough detail for somebody familiar 20 | with the language to understand, and for somebody familiar with the compiler to implement. 21 | This should get into specifics and corner-cases, and include examples of how the feature is used. 22 | 23 | # How We Teach This 24 | [how-we-teach-this]: #how-we-teach-this 25 | 26 | What names and terminology work best for these concepts and why? 27 | How is this idea best presented—as a continuation of existing Rust patterns, or as a wholly new one? 28 | 29 | Would the acceptance of this proposal change how Rust is taught to new users at any level? 30 | How should this feature be introduced and taught to existing Rust users? 31 | 32 | What additions or changes to the Rust Reference, _The Rust Programming Language_, and/or _Rust by Example_ does it entail? 33 | 34 | # Drawbacks 35 | [drawbacks]: #drawbacks 36 | 37 | Why should we *not* do this? 38 | 39 | # Alternatives 40 | [alternatives]: #alternatives 41 | 42 | What other designs have been considered? What is the impact of not doing this? 43 | 44 | # Unresolved questions 45 | [unresolved]: #unresolved-questions 46 | 47 | What parts of the design are still TBD? 48 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # The Rust Code of Conduct 2 | 3 | ## Conduct 4 | 5 | * We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic. 6 | * On Matrix and IRC, please avoid using overtly sexual nicknames or other nicknames that might detract from a friendly, safe and welcoming environment for all. 7 | * Please be kind and courteous. There's no need to be mean or rude. 8 | * Respect that people have differences of opinion and that every design or implementation choice carries a trade-off and numerous costs. There is seldom a right answer. 9 | * Please keep unstructured critique to a minimum. If you have solid ideas you want to experiment with, make a fork and see how it works. 10 | * We will exclude you from interaction if you insult, demean or harass anyone. That is not welcome behavior. We interpret the term "harassment" as including the definition in the [Citizen Code of Conduct](http://citizencodeofconduct.org/); if you have any lack of clarity about what might be included in that concept, please read their definition. In particular, we don't tolerate behavior that excludes people in socially marginalized groups. 11 | * Private harassment is also unacceptable. No matter who you are, if you feel you have been or are being harassed or made uncomfortable by a community member, please contact one of the channel ops immediately. Whether you're a regular contributor or a newcomer, we care about making this community a safe place for you and we've got your back. 12 | * Likewise any spamming, trolling, flaming, baiting or other attention-stealing behavior is not welcome. 13 | 14 | ## Moderation 15 | 16 | These are the policies for upholding our community's standards of conduct. 17 | 18 | 1. Remarks that violate the Rust standards of conduct, including hateful, hurtful, oppressive, or exclusionary remarks, are not allowed. (Cursing is allowed, but never targeting another user, and never in a hateful manner.) 19 | 2. Remarks that moderators find inappropriate, whether listed in the code of conduct or not, are also not allowed. 20 | 3. Moderators will first respond to such remarks with a warning. 21 | 4. If the warning is unheeded, the user will be "kicked," i.e., kicked out of the communication channel to cool off. 22 | 5. If the user comes back and continues to make trouble, they will be banned, i.e., indefinitely excluded. 23 | 6. Moderators may choose at their discretion to un-ban the user if it was a first offense and they offer the offended party a genuine apology. 24 | 7. If a moderator bans someone and you think it was unjustified, please take it up with that moderator, or with a different moderator, **in private**. Complaints about bans in-channel are not allowed. 25 | 8. Moderators are held to a higher standard than other community members. If a moderator creates an inappropriate situation, they should expect less leeway than others. 26 | 27 | In the Rust community we strive to go the extra step to look out for each other. Don't just aim to be technically unimpeachable, try to be your best self. In particular, avoid flirting with offensive or sensitive issues, particularly if they're off-topic; this all too often leads to unnecessary fights, hurt feelings, and damaged trust; worse, it can drive people away from the community entirely. 28 | 29 | And if someone takes issue with something you said or did, resist the urge to be defensive. Just stop doing what it was they complained about and apologize. Even if you feel you were misinterpreted or unfairly accused, chances are good there was something you could've communicated better — remember that it's your responsibility to make your fellow Rustaceans comfortable. Everyone wants to get along and we are all here first and foremost because we want to talk about cool technology. You will find that people will be eager to assume good intent and forgive as long as you earn their trust. 30 | 31 | The enforcement policies listed above apply to all official venues; including the official Matrix room (#rtic-rs:matrix.org); GitHub repositories under rtic-rs; and all forums under rtic-rs. 32 | 33 | *Adapted from the [Node.js Policy on Trolling](http://blog.izs.me/post/30036893703/policy-on-trolling) as well as the [Contributor Covenant v1.3.0](https://www.contributor-covenant.org/version/1/3/0/).* 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Real-Time Interrupt-driven Concurrency 2 | 3 | > Coordination repository of the development of the 4 | Real-Time Interrupt-driven Concurrency framework 5 | 6 | This repository [issue tracker] is used by the developers to coordinate efforts 7 | towards making RTIC a great choice for embedded real-time development. 8 | 9 | [issue tracker]: https://github.com/rtic-rs/rfcs/issues 10 | 11 | **Want to get started with real-time embedded development with Rust?** 12 | 13 | Check out the [Rust-embedded book][book] and the [RTIC book][rtic] 14 | 15 | [book]: https://docs.rust-embedded.org/book 16 | [rtic]: https://rtic.rs 17 | 18 | ## The developers 19 | 20 | - [@japaric](https://github.com/japaric) 21 | - [@korken89](https://github.com/korken89) 22 | - [@perlindgren](https://github.com/perlindgren) 23 | - [@nils-grepit](https://github.com/nils-grepit) 24 | - [@texitoi](https://github.com/texitoi) 25 | - [@AfoHT](https://github.com/AfoHT) 26 | 27 | ### Hibernating 28 | 29 | The following members have put themselves into hibernation the hibernation state, 30 | due to being absent or busy for an extended amount of time. 31 | See [ops/hibernating.md](https://github.com/rtic-rs/rfcs/blob/master/ops/hibernating.md). 32 | 33 | ### Contact 34 | 35 | - To come into contact with us please open an issue here 36 | - Or come and talk to us in the [RTIC Matrix Room] 37 | 38 | [RTIC Matrix Room]: https://matrix.to/#/!yafYEipFNsXDdwiHMT:matrix.org 39 | 40 | ## RFCs 41 | 42 | When the team deems it necessary the RFC process may be used to make decisions 43 | or to design processes, user interfaces, APIs, etc. 44 | 45 | Learn more about the Rust's RFC process (which is the same as our own) [here][rust-rfc]. 46 | 47 | [rust-rfc]: https://rust-lang.github.io/rfcs/ 48 | 49 | To create an RFC, simply: 50 | 51 | - clone this repo to your own personal one 52 | - copy `0000-template.md` to `text/0000-my-feature.md` (where "my-feature" is 53 | descriptive. Don't assign an RFC number yet) 54 | - fill in the details of your RFC in that file 55 | - Open an pull request with this repository 56 | -------------------------------------------------------------------------------- /minutes/2019.md: -------------------------------------------------------------------------------- 1 | # 2019-12-17 2 | 3 | * New time (CET 21.00 on Tuesdays) 4 | * Next meeting 3 weeks from now 5 | 6 | # 2019-12-11 7 | 8 | - cancel / reschedule 9 | - we'll start with the simpler single-instance task API; korken will update the RFC (see action item) 10 | 11 | - roadmap issue / withlist 12 | - japaric to add a request template and publicize the list on twitter 13 | - we'll publicize the list on the next newsletter (2019-12-26) and then check the list again on the meeting of the 2020-01-08 14 | 15 | ## Action items 16 | 17 | - [x] korken will update the cancel / reschedule RFCs to clarify behavior around freeing up slots, whether `cancel = [..]` is needed and until when it's possible to cancel a task (e.g. after the message has been moved from the timer queue into the ready queue) 18 | - [x] korken to write logging RFC 19 | - [ ] (roadmap) japaric to add a request template and publicize the list on twitter 20 | 21 | # 2019-12-04 22 | 23 | ## Agenda 24 | 25 | - cancel / reschedule -- https://github.com/rtfm-rs/rfcs/issues/7 26 | 27 | ## Action items 28 | 29 | - [ ] to revisit cancel / schedule API next week when korken's around 30 | - [x] @all to add things to https://github.com/rtfm-rs/rfcs/issues/16 ; we'll check the list next week 31 | 32 | # 2019-11-27 33 | - release done, bugs reported and fixed in 0.5.1 34 | - rtfm workshop at Grepit was successful, > 40 attendees for the tech talk. 35 | - funnel logger, alpha pre-release, https://crates.io/crates/cortex-m-funnel 36 | - should we have funnel support directly in RTFM? 37 | `#[app(logger = 256)]` 38 | 39 | ## Action items 40 | - [ ] @korken89, will make a proposal for the `funnel` RTFM API. 41 | - [ ] @all, comment to https://github.com/rtfm-rs/rfcs/issues/7 42 | 43 | # 2019-11-13 44 | - 0.5.0.beta1 any blocking issues 45 | - monotonic trait follow up 46 | - 0.4.x CI issue (to get 0.4.4 out) 47 | 48 | ## Action items 49 | - [x] @per: examples repos in rtfm-rs (with some assistance/coaching by korken89) 50 | - [ ] @per: add debugging in vscode example 51 | 52 | # 2019-11-06 53 | 54 | ## Agenda 55 | 56 | - 0.5 beta. experiences 57 | - 0.4.4 release 58 | - reports on dead links in `rtfm.rs`, Jorge submitted some PRs to fix it but sporadic compiler failures on nightly has been blocking. 59 | - `Monotonic` on enforcement of peripherals. (misuse resistance) 60 | - next meeting, 2019-11-13, 20.00 CET 61 | 62 | ## Action items 63 | - [x] @japaric: pinning nightly for `compiletest.rs` (to make sure that CI is not failing due to nightly compiler build). 64 | - [ ] @korken89, make an issue for `Monotonic` binding 65 | - [x] @korken89, document generated types and de-constructor pattern 66 | - [x] @japaric, look into `trybuild` as an alternative to compiletest 67 | - [x] @japaric, reply https://github.com/rtfm-rs/cortex-m-rtfm/issues/258 (re: variable `Monotonic::ratio`) 68 | - [x] @per, make an rfc issue for mode changes/ratio. Done #23. 69 | 70 | # 2019-10-23 71 | 72 | ## Agenda 73 | 74 | - 0.5 beta.1 experiences 75 | - Minor typo in book detected, PR submitted. 76 | - Error messages for soundness issue in 0.4.x 77 | - Agreed to go for option a) Minimum Requiered Compiler Version bumb. (@korken89, will be "support scape-goat") 78 | - Agreed to yank version 0.4.0 .. 0.4.3 in favour of 0.4.4. 79 | - next meeting the 2019-11-6, 20.00 CET 80 | 81 | 82 | ## Action items 83 | - [ ] @per: debugging of RTFM 0.5.x (possibly a chapter in the RTFM book) 84 | - [x] @per: create new issue for collecting statistical info (e.g., max used buffers) 85 | - [ ] @korken89: release of 0.4.4 86 | - [ ] @japaric: work on generators #18 87 | 88 | # 2019-10-17 89 | 90 | - v0.5.0-beta.1 has been released 91 | 92 | # 2019-10-16 93 | 94 | ## Agenda 95 | 96 | - v0.5 beta release today? 97 | - see above action items 98 | - v0.4.x release 99 | 100 | - next meeting the 2019-10-23, 20.00 CET? 101 | 102 | ## Action items 103 | - [ ] @per: POC implementation of &resources (complementary to #19) 104 | 105 | # 2019-10-09 106 | 107 | ## Agenda 108 | 109 | - v0.5 release 110 | - see action items 111 | - RFC: lock optimization - https://github.com/rtfm-rs/rfcs/issues/19 112 | - to be evaluated as an opt-in Cargo feature 113 | - RFC: goodbye Exclusive - https://github.com/rtfm-rs/rfcs/issues/17 114 | - to be evaluated as 2 competing 0.6 RFCs: 'lock required everywhere' vs 'auto-wrap in Exclusive' 115 | - v0.4.x release 116 | - next meeting the 2019-10-16, 20.00 CET? 117 | 118 | ## Action items 119 | 120 | - [x] @japaric: will update copyright notices and Cargo metadata of all crates under the rtfm-rs org 121 | - [x] @japaric: postpone the rename RFC 122 | - [x] @japaric: pre-release v0.5.0-beta after the two previous items are completed 123 | - [ ] @per: make a PR for opt-in lock optimization 124 | - [x] postpone issue 17 for 0.6, prepare proper RFC(s) 125 | - [x] @korken89: Look into better warning/error messages for the soundness issue in 0.4.x or probe the compiler version and emit code based on version 126 | -------------------------------------------------------------------------------- /minutes/2020.md: -------------------------------------------------------------------------------- 1 | # Agenda 2020-12-15 2 | 3 | * Triage, bugs in the wild? 4 | * Merged changes 5 | * Expose setting for [priority optimisations?][exposesettings] allowing manual priority assignment 6 | * New `Monotonic` impl update [tracking issue][ts] 7 | * Hardware priorities [https://github.com/rtic-rs/cortex-m-rtic/issues/434] (maybe duplicate of "Expose settings") 8 | 9 | [exposesettings]: https://github.com/rtic-rs/cortex-m-rtic/issues/434 10 | [ts]: https://github.com/rtic-rs/cortex-m-rtic/issues/431 11 | * Discussion: Aliasing of interrupt handlers. (No issue/rfc as of yet) 12 | 13 | ## Action points 14 | 15 | * Implement a proposal for #434 (disable compression and a reserved list) 16 | 17 | # Agenda 2020-12-08 18 | 19 | * Triage, bugs in the wild? 20 | * Follow up on last meeting action points 21 | * Merged changes 22 | * `task_local` in progress. https://github.com/rtic-rs/rfcs/issues/46. Syntax will work, but needs backing impl. 23 | * To discuss: Queue probing (max fill) https://github.com/rtic-rs/cortex-m-rtic/issues/428. 24 | 25 | # Agenda 2020-12-01 26 | 27 | * Triage, bugs in the wild? 28 | * Follow up on last meeting action points 29 | * Merged changes 30 | * New monotonic impl under way, [Tracking issue](https://github.com/rtic-rs/cortex-m-rtic/issues/431) 31 | * `task_local` in `init` as `&'static mut` - needs impl 32 | * Exceeding max len of message queues, error or dynamically sized queues? [Old related issue](https://github.com/rtic-rs/cortex-m-rtic/issues/348) 33 | 34 | ## Action points 35 | 36 | * look into `#[... resources = [x: u64 = 0] ...]` syntax for `static mut` transform removal. 37 | 38 | # Agenda 2020-11-24 39 | 40 | * Triage, bugs in the wild? 41 | * 2 bugs in 0.6.0-alpha.0 for the monotonic 42 | * Follow up on last meeting action points 43 | * Merged changes 44 | * Continue the [new monotonic proposal](https://hackmd.io/vWa9GvssR8qBfUYgMZm0CQ?both) 45 | * Proposal https://github.com/rtic-rs/cortex-m-rtic/issues/428 46 | * RFC timer emulation https://github.com/rtic-rs/rfcs/issues/45 47 | * RFC synchronous tasks https://github.com/rtic-rs/rfcs/issues/44 48 | * Thesis presentation 49 | * [Should #[task_local] resources use 'static lifetimes, not the priority lifetime?](https://github.com/rtic-rs/cortex-m-rtic/issues/417) 50 | 51 | # Agenda 2020-11-17 52 | 53 | * Triage, bugs in the wild? 54 | * Follow up on last meeting action points 55 | * RTIC version [`v0.6.0-alpha.0`][v6] released! :tada: [migration guide/docs][v6m] 56 | * Merged changes (since `alpha.0`) 57 | * [Multilock support][multilock] 58 | * Fixed [name conflict with `main`][mainnameclash] 59 | * Things to do before stable `v0.6`, see [tracking issue][trackingissue] 60 | * Reschedule/cancel API 61 | * New monotonic 62 | * Document and implement new MSRV 63 | * Internal documentation 64 | * Maybe more? 65 | * Milestone reached: >20,000 downloads on crates.io 66 | * Proposal for [new Monotonic][nm] 67 | 68 | [v6]: https://crates.io/crates/cortex-m-rtic/0.6.0-alpha.0 69 | [v6m]: https://rtic.rs/dev/book/en/migration/migration_v5.html 70 | [multilock]: https://github.com/rtic-rs/cortex-m-rtic/pull/415 71 | [mainnameclash]: https://github.com/rtic-rs/cortex-m-rtic/pull/416 72 | [trackingissue]: https://github.com/rtic-rs/rfcs/issues/35 73 | [nm]: https://hackmd.io/vWa9GvssR8qBfUYgMZm0CQ?both 74 | * Init arguments (`init(resources = [ ])`) 75 | 76 | # TODO: 77 | 78 | * [Per]: Zero-cost multi-lock 79 | 80 | # Agenda 2020-11-10 81 | 82 | No meeting 83 | 84 | # Agenda 2020-11-03 85 | 86 | * Triage, bugs in the wild? 87 | * Follow up on last meeting action points 88 | * Merged changes 89 | * What's left for 0.6-alpha 90 | * Symmetric locks - **Done** 91 | * Namespace/name mangling fixing - **Done** 92 | * The new proposed context layout 93 | * Move dispatchers from `extern` to `#[app(dispatchers = [...])]` - **Done** 94 | * More tests on changed/new features 95 | * Update docs to be inline with all the changes 96 | * In alpha.1 add the reschedule/cancel API 97 | * xpack, qemu fork with additional targets, https://xpack.github.io/qemu-arm/ 98 | * renode, .NET emulator for cortex-m with lots of boards supported, https://renode.io/ 99 | 100 | # Agenda 2020-10-27 101 | 102 | * Triage, bugs in the wild? 103 | * Follow up on last meeting action points 104 | * Merged changes 105 | 106 | # Agenda 2020-10-20 107 | 108 | * Triage, bugs in the wild? 109 | * Follow up on last meeting action points 110 | * Merged changes? 111 | * The road to 0.6 alpha, what is missing? 112 | * Symmetric locks 113 | * Namespace/name mangling fixing - Done 114 | * The new proposed context layout 115 | * Move dispatchers from `extern` to `#[app(dispatchers = [...])]` 116 | * More tests on changed/new features 117 | * Update docs to be inline with all the changes 118 | * In alpha.1 add the reschedule/cancel API 119 | * Ideas/discussion on async/await. 120 | 121 | # Agenda 2020-10-13 122 | 123 | * Triage, bugs in the wild? 124 | * Follow up on last meeting action points 125 | * Merged changes 126 | * dcarosone - PR: [Doclints](https://github.com/rtic-rs/cortex-m-rtic/pull/385) and PR: [device path must be absolute; clarify](https://github.com/rtic-rs/cortex-m-rtic/pull/392) 127 | * Korken89 - PR: [Now core contains the same `Peripherals` type based on monotonic](https://github.com/rtic-rs/cortex-m-rtic/pull/388) 128 | * AfoHT - PR: [Fix MD-lints, add Matrix and meeting notes badges](https://github.com/rtic-rs/cortex-m-rtic/pull/384) 129 | * Clippy lints PRs: [rtic-syntax](https://github.com/rtic-rs/rtic-syntax/pull/33), [rtic](https://github.com/rtic-rs/cortex-m-rtic/pull/393) 130 | * Spawn/schedule from anyhere PRs: [rtic-syntax](https://github.com/rtic-rs/rtic-syntax/pull/34), [rtic](https://github.com/rtic-rs/cortex-m-rtic/pull/390) 131 | * Task local/lock free PRs: [rtic-syntax](https://github.com/rtic-rs/rtic-syntax/pull/31), [rtic](https://github.com/rtic-rs/cortex-m-rtic/pull/371) 132 | * extern fn task(...); // no RFC yet 133 | 134 | 135 | ## Action points 136 | 137 | * Fix PR merges during hacker night 138 | * Look at namespace pollution with the new PRs 139 | 140 | # 2020-10-06 141 | 142 | * Triage, bugs in the wild? 143 | * Follow up on last meeting action points 144 | * Maybe look into https://github.com/TedDriggs/darling for simplifying attribute parsing 145 | * Task_local and lock_free [rtic-syntax PR](https://github.com/rtic-rs/rtic-syntax/pull/31), [rtic PR](https://github.com/rtic-rs/cortex-m-rtic/pull/371) 146 | * Spawn from anywhere. https://github.com/rtic-rs/rfcs/issues/39, with POC https://github.com/rtic-rs/cortex-m-rtic/tree/spawn_experiment 147 | 148 | 149 | ## Action points 150 | 151 | * Come up with an improved API to go with task_local and lock_free 152 | * Start preparing for an alpha release, what need to be in? And when? 153 | 154 | # 2020-09-29 155 | 156 | * Triage, bugs in the wild? 157 | * Follow up on last meeting action points 158 | * Always return `LateResources` in `init` to have a fully symmetric API? [Done](https://github.com/rtic-rs/cortex-m-rtic/pull/372) 159 | * Have a crticial section token passed in `init::Context` for use with HALs that request it [Done](https://github.com/rtic-rs/cortex-m-rtic/pull/373) 160 | * [USB HID Example](https://github.com/rtic-rs/rtic-examples/issues/10) merged, thanks @brainstorm 161 | * Mod over const [RFC](https://github.com/rtic-rs/rfcs/pull/34) [rtic-syntax PR (merged)](https://github.com/rtic-rs/rtic-syntax/pull/30) [rtic PR (merged)](https://github.com/rtic-rs/cortex-m-rtic/pull/368) 162 | 163 | ## Notes / Action Points 164 | 165 | - Always return `LateResource`, positive @korken89 will have a look on hacker night: PR https://github.com/rtic-rs/rtic-syntax/pull/32 and https://github.com/rtic-rs/cortex-m-rtic/pull/372 166 | - Have a crticial section token passed in `init::Context`, @korken89 will have a look on hacker night: PR https://github.com/rtic-rs/cortex-m-rtic/compare/cs_token?expand=1 167 | - Look into the "new" Monotonic trait(s), talk on hacker night 168 | - Look into warnings in `proc-macro-error` 169 | - Review mod-over-const PRs 170 | 171 | # 2020-09-22 172 | 173 | * Triage, bugs in the wild? 174 | 175 | * Look into updating monotonic to allow any free-running timer with compare interrupt for scheduling? // Emil 176 | * Update docs, readability and structure improvements // Emil 177 | * Monotonic is difficult to understand for users, need doc/examples improvement // Emil 178 | * Follow up on `embedded::time` // Emil 179 | 180 | ## Notes 181 | 182 | Try to get the core features for 0.6 out and have point releases for each part after that. 183 | 184 | Async for RTIC would be nice, but seems like a lot of work. 185 | 186 | # 2020-09-15 187 | 188 | * Triage, bugs in the wild? 189 | * Follow up on last meeting action points 190 | 191 | * GHA toolchain chache issue merged (https://github.com/rtic-rs/cortex-m-rtic/pull/356) 192 | * Audio DSP example? 193 | 194 | ## Action points 195 | 196 | - [ ] Impl. evening on Thursday. 197 | - [ ] Audio/DSP examples. 198 | 199 | 200 | 201 | # 2020-09-08 202 | 203 | * Triage: 204 | 205 | Bug: GHA toolchain cache issue [pr: Rust toolchain cache breaking on version change](https://github.com/rtic-rs/cortex-m-rtic/pull/356) - Merged 206 | 207 | * Follow up last meeting action points 208 | * To Discuss: Closing old stale issues [#244](https://github.com/rtic-rs/cortex-m-rtic/issues/244) [#227](https://github.com/rtic-rs/cortex-m-rtic/issues/227) [#233](https://github.com/rtic-rs/cortex-m-rtic/issues/233) - CLOSED 209 | * To Discuss: rtic-syntax multi-core removal [pr](https://github.com/rtic-rs/rtic-syntax/pull/27) - MERGED 210 | * To Discuss: cortex-m-rtic multi-core removal [pr](https://github.com/rtic-rs/cortex-m-rtic/pull/355) - MERGED 211 | * To Discuss: Steps towards 0.6? See https://github.com/rtic-rs/rfcs/issues/35 212 | * To Discuss: task_local_experiment [original branch](https://github.com/rtic-rs/cortex-m-rtic/tree/task_local_experiment), [rebased on master branch](https://github.com/AfoHT/cortex-m-rtic/tree/task_local_experiment) 213 | * To Discuss: [[RFC] "out-pointer" optimisation in #[init] #38](https://github.com/rtic-rs/rfcs/pull/38) 214 | 215 | ## Action points 216 | 217 | - [ ] RFC for new spawn with global lock and without the spawn attribute 218 | - [ ] RFC for the shared reference resource (runtime panic version) 219 | - [ ] Add `task_local` to 0.6 goals 220 | - [ ] Discuss [[RFC] "out-pointer" optimisation in #[init] #38](https://github.com/rtic-rs/rfcs/pull/38) on hacker-night 221 | - [ ] Move timer queue to an index based linked list impl instead? Discuss more. 222 | 223 | # 2020-09-01 224 | 225 | School-start-madness break 226 | 227 | # 2020-08-25 228 | 229 | * Triage: 230 | * PSA: Release new RTIC with `take` fix 231 | * To Discuss: GHA for rtic-syntax [pr](https://github.com/rtic-rs/rtic-syntax/pull/26) 232 | * To Discuss: GHA with ubuntu-version QEMU [pr](https://github.com/rtic-rs/cortex-m-rtic/pull/341) 233 | * To Dsicuss: A working min-const generics is on the way. https://github.com/perlindgren/heapless.git (min_const_generics branch) 234 | * Follow up last meeting action points 235 | * To Discuss: Yanking statues 236 | 237 | ## Action points 238 | 239 | - [x] @korken89 release the new version after the meeting 240 | 241 | # 2020-08-18 242 | 243 | * Triage: 244 | * Noticed Bug https://github.com/rtic-rs/cortex-m-rtic/issues/348 (dispatch queue exceeding 127 causes code generation failure). 245 | 246 | * To Discuss: New meeting time 19.00 Tuesdays 247 | * To Discuss: Advisory board 248 | * Master Thesis: glaequen 249 | * Backlog: embedded time 250 | 251 | ## Action points 252 | 253 | - [ ] @Per to implement fix for #348 254 | - Meeting time move to 19:00 255 | 256 | # 2020-08-11 257 | 258 | Summer break 259 | 260 | # 2020-08-04 261 | 262 | * Triage: 263 | * To Discuss: Compiler issue? (https://github.com/rust-lang/rust/issues/75074) 264 | * To Discuss: Mutex Trait (discussion on embedded WG) 265 | * To Discuss: LLVM-preview based CI test https://github.com/rtic-rs/cortex-m-rtic/pull/341 266 | 267 | ## Action points 268 | - [ ] @AfoHT, Init::Spawn miscompilation 269 | 270 | # Lazy Summer 271 | ... 272 | 273 | # 2020-07-21 274 | 275 | * Triage: None reported 276 | * To Discuss: Take aways from Oxidize 2020. 277 | * To Discuss: Follow up on Embedded Time. 278 | * To Discuss: Can we allow more flexible callbacks, by allowing spawning of RTIC tasks from "anywhere". (How would we avoid race conditions on free/ready queues.) 279 | * To Discuss: Caching for CI 280 | 281 | - [x] @AfoHT, investigate llvm-preview instead of arm-gcc for CI 282 | - [ ] @Per, have a look at potential callback structure (allowing callbacks to be installed in external code) 283 | 284 | 285 | # 2020-07-14 286 | 287 | Presentation of Embedded Time by Peter Taylor on Zoom. 288 | 289 | # 2020-07-07 290 | 291 | * Triage: None to report 292 | * To Discuss: 293 | 294 | ## Action points 295 | 296 | - [x] Iron Fist: Hack session Thursday evening 17-21 *one week late* 297 | - [x] Per: Prepare Zoom meeting for Emebbed Time presentation by Peter Taylor. 298 | 299 | # 2020-06-30 300 | 301 | * Triage: 302 | * To Discuss: 303 | * Follow up last meeting action points 304 | * Remove Multi-core related code. Future plans for multi-core? 305 | * Embedded time PR 306 | * 307 | * Implementing MSRV=stable - N? For 0.6 308 | 309 | ## Action points 310 | 311 | - [x] Per: pre_init code gen use `impl From for Peripherals` instead of transmute? (#[inline(always)]?) 312 | 313 | # 2020-06-16 314 | 315 | * Triage: No bugs 316 | * Move to RTIC, anything broken: Nothing reported broken 317 | * To Discuss: Mutex: immutable resuorce proxies https://github.com/rtic-rs/rfcs/issues/36 (https://github.com/rtic-rs/cortex-m-rtic/tree/immutable_resource_proxies): Revisit later 318 | * To Discuss: SeqCst: compiler fence https://github.com/rtic-rs/rfcs/issues/37 (https://github.com/rtic-rs/cortex-m-rtic/tree/ordering). An extra layer of security around critical sections, in case ordering of inline asm/FFI gets broken: Accepted, prepare a PR 319 | * embedded-time PR (https://github.com/rtic-rs/cortex-m-rtic/pull/312) 320 | * 321 | 322 | - [ ] Per: Proper RFC/PR for the SeqCst. 323 | - [ ] Per: Newtype API for degrading Resources to immutable Mutex proxies. 324 | - [ ] Korken, Per: Review the embedded time PR. 325 | 326 | # 2020-06-09 327 | 328 | * Triage: No bugs 329 | * Showcase shared bus exambles to have idiomatic examples 330 | * MSRV: Aim for a floating with `stable - N` where `N = [0..]`. Have a look at common floating MSRV strategies. 331 | * Add "allow fail" on nightly tests 332 | * Finalize the move to GHA, move bors to GHA 333 | 334 | # 2020-06-02 335 | 336 | * Triage: 337 | * Follow up last meeting action points 338 | * Discuss MSRV, remove? object 0.19 dependency broke our MSRV 339 | Current CI setup compiling mdBook requiring object 0.19 breaks, RTIC is not affected. See [PR #317](https://github.com/rtfm-rs/cortex-m-rtfm/pull/317) 340 | * https://github.com/rtfm-rs/cortex-m-rtfm/pull/312 341 | * Coverage testing, candidate [rust-grcov?](https://github.com/marketplace/actions/rust-grcov) 342 | 343 | 344 | ## Action points 345 | 346 | - [ ] Triage: Analyze if clobbers are needed 347 | - [ ] Improve testing: coverage 348 | - [ ] Check so proc-macro crates are not compiled in release 349 | * PR [do not optimize build deps #314](https://github.com/rtfm-rs/cortex-m-rtfm/pull/316) 350 | - [ ] Try out GHA, any speed-ups? 351 | * PR [Testing GHA v0.1 #316](https://github.com/rtfm-rs/cortex-m-rtfm/pull/316) 352 | - [ ] Fix [allow handlers to be named 'main' #315](https://github.com/rtfm-rs/cortex-m-rtfm/issues/311) 353 | * PR https://github.com/rtfm-rs/cortex-m-rtfm/pull/315 354 | - [ ] Write RFC on the removal of multi-core to have as a future plugin 355 | - [ ] Perform the rename 356 | 1. we release RTFM 0.5.2 with the bug-fix 357 | 2. we prepare a RTFM 0.5.3 release which only adds a deprecation warning and where to find all the new name stuff 358 | 3. we make a RTIC 0.5.3 release (new crate) 359 | 4. we release the RTFM 0.5.3 with the deprecation 360 | - [ ] Relink rtfm.rs to rtic.rs 361 | - [ ] Release Embedded WG newsletter anouncing the rename 362 | 363 | # 2020-05-26 364 | 365 | * Triage: 366 | * Add fences to locks 367 | * Follow up last meeting action points 368 | * Should we have more tests/test programs? 369 | * Should we move to GitHub Actions? 370 | * Mod over const RFC prototype: In progress, look into RTIC attributes so the mod works like a normal mod 371 | * rtic.rs reserved 372 | 373 | ## Action points 374 | 375 | - [ ] Triage: Analyze if clobbers are needed 376 | - [ ] Improve testing: coverage 377 | - [ ] Check so proc-macro crates are not compiled in release 378 | - [ ] Try out GHA, any speed-ups? 379 | - [ ] Fix https://github.com/rtfm-rs/cortex-m-rtfm/issues/311 380 | - [ ] Write RFC on the removal of multi-core to have as a future plugin 381 | - [ ] Perform the rename 382 | 1. we release RTFM 0.5.2 with the bug-fix 383 | 2. we prepare a RTFM 0.5.3 release which only adds a deprecation warning and where to find all the new name stuff 384 | 3. we make a RTIC 0.5.3 release (new crate) 385 | 4. we release the RTFM 0.5.3 with the deprecation 386 | - [ ] Relink rtfm.rs to rtic.rs 387 | - [ ] Release Embedded WG newsletter anouncing the rename 388 | 389 | # 2020-05-19 390 | 391 | * Triage: None to report 392 | * Follow up last meeting action points 393 | * Discuss renaming 394 | * Should the mutli-core part of the proc macro be removed? 395 | 396 | For next meeting: 397 | 398 | * Should we have more tests/test programs? 399 | * Should we move to GitHub Actions? 400 | 401 | ## Action points 402 | 403 | - [x] Write RFC on the removal of multi-core to have as a future plugin 404 | - [x] Update renaming RFC with the acceptance of the new name 405 | - [x] Perform the rename 406 | 1. we release RTFM 0.5.2 with the bug-fix 407 | 2. we prepare a RTFM 0.5.3 release which only adds a deprecation warning and where to find all the new name stuff 408 | 3. we make a RTIC 0.5.3 release (new crate) 409 | 4. we release the RTFM 0.5.3 with the deprecation 410 | - [x] Relink rtfm.rs to rtic.rs 411 | - [x] Release Embedded WG newsletter anouncing the rename 412 | 413 | 414 | # 2020-05-12 415 | 416 | * Triage: No bugs 417 | * Look into monotonic implementations, should we split out into new crate + stubs? 418 | * Follow up last meeting action points 419 | * Have release names? More discussion needed. 420 | 421 | ## Action points 422 | 423 | - [x] @korken89 to update rename RFC 424 | - [ ] @korken89 to update reschedule/cancel RFC 425 | 426 | ##### Renaming 427 | 428 | - **RTIC** ~~vs. Fearless~~ 429 | 430 | RTIC has been chosen as the main candidate. 431 | 432 | # 2020-05-05 433 | 434 | * Triage: No bugs reported. 435 | 436 | ## Action points 437 | 438 | - [x] @korken89 to create tracking issue for 0.6 push 439 | - [ ] @korken89 to update reschedule/cancel RFC 440 | - [x] @korken89 to ping the renaming RFC for the meeting 441 | 442 | ## Discussed for the 0.6 push 443 | 444 | * Add API to re-schedule & cancel tasks 445 | * move/unique resources 446 | * Rename RTFM 447 | * Mod instead of const 448 | * Move back to symmetric lock API 449 | 450 | #### 1. "Move back to symmetric lock API" together with "move/unique resources" 451 | 452 | - Accepted/rejected for 0.6? **Accepted** 453 | 454 | #### 2. "Mod instead of const" 455 | 456 | - Accepted/rejected for 0.6? **Accepted** 457 | 458 | 459 | #### 3. "Add API to re-schedule & cancel tasks" 460 | 461 | - Accepted/rejected for 0.6? **Rejected** 462 | - Revamp RFC to make it work for a 0.6.x 463 | - If it will incur overhead, include in 0.6.0 464 | 465 | #### 4. "Rename RTFM" 466 | 467 | - Accepted/rejected for 0.6? **Accepted** 468 | - Allocate meeting 2020-05-12 for finalizing this and coming to a decision 469 | - Bikeshed name *yay* 470 | 471 | 472 | # 2020-04-28 473 | 474 | * triage, bugs in the wild? 475 | * follow up on actions (Rfc #30, [306](https://github.com/rtfm-rs/cortex-m-rtfm/pull/306)) 476 | * Rfc #34 (mod/const) 477 | * 0.6 cont release discussion 478 | 479 | - [306] Merged. Possible 0.5.x release with remark that full functionality is only obtianed with rustc 1.43. 480 | - RFC #30, updated, challenges with `cfg` resource declaretaions and conditional resource usage remains to be solved. 481 | 482 | # 2020-04-21 483 | 484 | * triage, bugs in the wild? 485 | * follow up on action points 486 | * 0.6 release discussion 487 | 488 | 489 | # 2020-04-14 490 | 491 | * triage, bugs in the wild? 492 | * follow up on "actions" 493 | * #cfg on RTFM resources pull request [306](https://github.com/rtfm-rs/cortex-m-rtfm/pull/306) 494 | * proc_macro_diagnostic needs follow-up. Would allow us to generate warnings during compilation. [RFC 1566](https://github.com/rust-lang/rust/issues/54140) 495 | 496 | # 2020-04-07 497 | 498 | * triage, bugs in the wild? 499 | * follow up on "actions" 500 | * #cfg on RTFM resources 501 | 502 | Action points 503 | - [/] #cfg seems fixed in latest nightly (@AfoHT), may fix https://github.com/rtfm-rs/cortex-m-rtfm/issues/301 504 | - [x] C-M mutex trait instead of cortex-m, (@Korken, PR) 505 | - [x] RTFM-core traits updated (@Korken, PR) 506 | 507 | # 2020-03-31 508 | 509 | * triage, any bugs in the wild? 510 | * follow up on "actions" 511 | * RTFM 0.6 512 | 513 | - [ ] Per, Mutex trait (move to cortex-m) 514 | 515 | 516 | # 2020-03-24 517 | 518 | * triage, anything that needs fixing? 519 | * follow up on "actions" 520 | * `rtfm-log` https://github.com/rtfm-rs/rfcs/issues/31 521 | * EDF scheduler 522 | 523 | 524 | # 2020-03-17 525 | 526 | * triage, anything that needs fixing? 527 | * async/await on-top of RTFM 528 | 529 | Action points 530 | 531 | - [ ] Per, multi lock 532 | - [ ] Per, compile_error (just not to forget...) 533 | 534 | # 2020-03-10 535 | 536 | * cfg errors on app, https://github.com/rtfm-rs/cortex-m-rtfm/issues/301 537 | * cfg -> late resources 538 | * compile_error! 539 | * experimental branch for https://github.com/rtfm-rs/rfcs/issues/30, is found in https://github.com/rtfm-rs/cortex-m-rtfm/tree/task_local_experiment 540 | 541 | Action points. 542 | 543 | - [ ] AfoHT, error reporting on APP, cfg on late resources 544 | - [?] Per, compile_error! 545 | - [-] Per, async-await/generators on top of RTFM 546 | 547 | 548 | # 2020-03-03 549 | 550 | * https://github.com/rtfm-rs/rfcs/issues/30 551 | 552 | Action points. 553 | 554 | - [x] Per. Will make an initial implementation/experimental branch. 555 | 556 | 557 | # 2020-02-25 558 | 559 | * soft reset, is currently marked safe. 560 | * https://github.com/rtfm-rs/rfcs/issues/29 561 | 562 | # 2020-02-18 563 | 564 | * soft reset 565 | * proper website 566 | 567 | - [x] Per. Will collect some information on the generic soft reset for cortex-m. 568 | - [ ] Per. Check if there is any LTU student interested in helping out with website. 569 | 570 | 571 | 572 | # 2020-02-11 573 | 574 | * task return type(s) 575 | * follow up on the embedded wg soundness issue (Mutex), but in general Sync/Send semantics 576 | 577 | 578 | # 2020-02-04 579 | 580 | * API reference broken. (Relates the frontpage issue discusse 2020-01-28) 581 | * Release of soundness patch for cortex-m-rtfm 0.4.3 to 0.4.4, and check that API Reference gets properly linked. 582 | * Release of API Reference patch to cortex-m-rtfm 0.5.2. This release is very minor, containing a few updates to docs/book, but no change of code behavior. 583 | 584 | ## Action Items 585 | 586 | - [x] Per. The README.md has the right link content. The problem is likely due to bug in the realese mechanism (not reporting failure of doc creation, hence link is broken). Alternatively due to race between update of README.md and the release mechanism (same date on README.md and crates.io release but different link content which is superweird/bug). 587 | 588 | # 2020-01-28 589 | 590 | * No alarming issues 591 | * Merging of some examples 592 | * Discussion on RTFM quickstart template, following up on https://github.com/rtfm-rs/rfcs/issues/26 593 | * Frontpage with example? 594 | 595 | - [ ] Per will make an RFC regarding frontpage 596 | 597 | # 2020-01-21 598 | 599 | * No alarming issues 600 | 601 | # 2020-01-07 602 | 603 | * Goals for 2020 604 | * Examples for Mutex trait (in external code) 605 | 606 | -------------------------------------------------------------------------------- /minutes/2021.md: -------------------------------------------------------------------------------- 1 | # Agenda 2021-12-28 2 | * Triage, bugs in the wild? 3 | * Follow up on last meeting action points 4 | * RTC Monotonic example: done 5 | * Merged changes 6 | * rtic-core 7 | * [Bump to edition 2021](https://github.com/rtic-rs/rtic-core/pull/21) 8 | * [Release rtic-core V1.0.0](https://github.com/rtic-rs/rtic-core/pull/22) 9 | * rtic-syntax 10 | * [Edition: Bump to 2021](https://github.com/rtic-rs/rtic-syntax/pull/67) 11 | * [Bump version numbers to v1.0.0](https://github.com/rtic-rs/rtic-syntax/pull/68) 12 | * cortex-m-rtic 13 | * [Docs touchup](https://github.com/rtic-rs/cortex-m-rtic/pull/563) 14 | * [Clippy lints](https://github.com/rtic-rs/cortex-m-rtic/pull/564) 15 | * [Edition: Bump to 2021](https://github.com/rtic-rs/cortex-m-rtic/pull/565) 16 | * [v1.0.0](https://github.com/rtic-rs/cortex-m-rtic/pull/566) 17 | * [Promote v1.0 in docs](https://github.com/rtic-rs/cortex-m-rtic/pull/567) 18 | * [Docfix: remove pre-release note](https://github.com/rtic-rs/cortex-m-rtic/pull/568) 19 | * [README: Remove rustc badge and Requirements](https://github.com/rtic-rs/cortex-m-rtic/pull/569) 20 | * [Added nRF52 RTC based monotonic to the book](https://github.com/rtic-rs/cortex-m-rtic/pull/571) 21 | * [cargo xtask is now ~40x faster](https://github.com/rtic-rs/cortex-m-rtic/pull/572) 22 | * [Improved docs on where the 12 MHz comes from in SysTick](https://github.com/rtic-rs/cortex-m-rtic/pull/573) 23 | * rtic-monotonic 24 | * [Bump to version 1.0.0](https://github.com/rtic-rs/rtic-monotonic/pull/6) 25 | * systick-monotonic 26 | * [Fix comments](https://github.com/rtic-rs/systick-monotonic/pull/5) 27 | * [Bump to version 1.0.0](https://github.com/rtic-rs/systick-monotonic/pull/6) 28 | * [Improved documentation of ::new()](https://github.com/rtic-rs/systick-monotonic/pull/7) 29 | * dwt-systick-monotonic 30 | * [Bump to v1.0.0](https://github.com/rtic-rs/dwt-systick-monotonic/pull/4) 31 | 32 | # Agenda 2021-12-21 33 | * Triage, bugs in the wild? 34 | * Follow up on last meeting action points 35 | * @AfoHT: Done, see merged changes below 36 | * @korken89, @Per: Inconclusive results for both unconfirmed potential bugs 37 | * Merged changes 38 | * [PR562 - SLEEPONEXIT](https://github.com/rtic-rs/cortex-m-rtic/pull/562) 39 | * Action Points 40 | * Add nrf RTC Monotonic example @korken89 41 | 42 | # Agenda 2021-12-14 43 | * Triage, bugs in the wild? 44 | * Investigation continues 45 | * (Unconfirmed) Increased current draw @korken89 46 | * (Unconfirmed) Binary size increase @Per 47 | * Follow up on last meeting action points 48 | * None 49 | * Merged changes 50 | * Action Points 51 | * Change `SLEEPONEXIT` default @AfoHT 52 | * Code change 53 | * Documentation change 54 | * Suggestion 55 | * RTIC cookbook/examples 56 | 57 | Note: 58 | > korken89: 59 | > 60 | >> dngrs (spookyvision@github) 61 | > maybe an RTIC cookbook would be cool, weren't there also some examples around the recent time(r) changes? 62 | > 63 | > That's a great idea! I'll keep it to the meeting on Tuesday, see if we have more things like this that would fit in s cookbook 64 | > 65 | # Agenda 2021-12-07 66 | * Triage, bugs in the wild? 67 | * Size increase? (If even related to RTIC) 68 | * Follow up on last meeting action points 69 | * Per combined related issues, now down to 13 unique issues 70 | 71 | * Merged changes 72 | 73 | # Agenda 2021-11-30 74 | * Triage, bugs in the wild? 75 | * Follow up on last meeting action points 76 | * Merged changes 77 | * `rtic-*` Remove #[deny(warnings)], but deny warnings for CI 78 | * [cortex-m-rtic PR558](https://github.com/rtic-rs/cortex-m-rtic/pull/558) 79 | * [rtic-monotonic PR5](https://github.com/rtic-rs/rtic-monotonic/pull/5) 80 | * [rtic-core PR20](https://github.com/rtic-rs/rtic-core/pull/20) 81 | * [rtic-syntax PR64](https://github.com/rtic-rs/rtic-syntax/pull/64) 82 | * Add RTIC logo to docs 83 | * [rtic-syntax smaller syntax cleanup PR65](https://github.com/rtic-rs/rtic-syntax/pull/65) 84 | * Action points 85 | * Per will combine related issues 86 | 87 | # Agenda 2021-11-23 88 | 89 | * Triage, bugs in the wild? 90 | * Follow up on last meeting action points 91 | * Merged changes 92 | * [rtic-core PR18](https://github.com/rtic-rs/rtic-core/pull/18) 93 | * [rtic-syntax PR65](https://github.com/rtic-rs/rtic-syntax/pull/65) 94 | 95 | # Agenda 2021-11-16 96 | 97 | * Triage, bugs in the wild? 98 | * Double wakeup when monotonic in extended mode 99 | * Follow up on last meeting action points 100 | * Merged changes 101 | * Action points 102 | * `if docs == good { release() }` 103 | 104 | # Agenda 2021-11-09 105 | 106 | * Triage, bugs in the wild? 107 | * Follow up on last meeting action points 108 | * Merged changes 109 | * `rtic-syntax` 110 | * [PR#58](https://github.com/rtic-rs/rtic-syntax/pull/58) 111 | * [PR#59](https://github.com/rtic-rs/rtic-syntax/pull/59) 112 | * [PR#60](https://github.com/rtic-rs/rtic-syntax/pull/60) 113 | * [PR#61](https://github.com/rtic-rs/rtic-syntax/pull/61) 114 | * [PR#63](https://github.com/rtic-rs/rtic-syntax/pull/63) 115 | * Released 0.5.0-rc.2 116 | * `cortex-m-rtic` 117 | * [PR#547](https://github.com/rtic-rs/cortex-m-rtic/pull/547) 118 | * [PR#548](https://github.com/rtic-rs/cortex-m-rtic/pull/548) 119 | * [PR#550](https://github.com/rtic-rs/cortex-m-rtic/pull/550) 120 | * Released 0.6.0-rc.3 121 | * Released 0.6.0-rc.4 122 | 123 | # Agenda 2021-11-02 124 | * Triage, bugs in the wild? 125 | [PR548: Aliasing issue](https://github.com/rtic-rs/cortex-m-rtic/pull/548) 126 | * Follow up on last meeting action points 127 | * [Fugit](https://crates.io/crates/fugit) 128 | * Merged changes 129 | * Discussion 130 | * Fugit / Monotonic-stuff 131 | 132 | # Agenda 2021-10-19 133 | 134 | * Triage, bugs in the wild? 135 | - No bugs reported 136 | * Follow up on last meeting action points= 137 | - Monotonic without external depenedecies. 138 | * Merged changes 139 | 140 | # Discussion 141 | 142 | - Monotonic without external dependencies. 143 | - [Lock-all API](https://github.com/rtic-rs/rfcs/issues/53), with [POC](https://github.com/rtic-rs/cortex-m-rtic/tree/lockall). 144 | 145 | # Action points 146 | 147 | - @korken, will look into the new Monotonic 148 | - @Per, will look into `timeless`, a minimal effort timing abstraction compatible to the new Monotonic 149 | 150 | # Agenda 2021-10-12 151 | * Triage, bugs in the wild? 152 | - [struct docs](https://github.com/rtic-rs/cortex-m-rtic/issues/543), with [syntax fix](https://github.com/rtic-rs/rtic-syntax/pull/58) 153 | - [instant example](https://github.com/rtic-rs/cortex-m-rtic/issues/542). Awaits embedded time update. 154 | 155 | * Follow up on last meeting action points 156 | * Merged changes 157 | 158 | # Discussion point(s) 159 | 160 | - What abstraction of time is really needed? 161 | 162 | 163 | 164 | # Agenda 2021-10-05 165 | * Triage, bugs in the wild? 166 | * Follow up on last meeting action points 167 | * Merged changes 168 | 169 | - Docs updates ongoing. 170 | 171 | # Agenda 2021-09-28 172 | * Triage, bugs in the wild? 173 | * None 174 | * Follow up on last meeting action points 175 | * Postponed 176 | * Merged changes 177 | * Minor fixes in rtic-examples, rtic-syntax 178 | * Run-pass tests now done with [PR526: xtasks](https://github.com/rtic-rs/cortex-m-rtic/pull/526) 179 | 180 | 181 | # Agenda 2021-09-21 182 | * Triage, bugs in the wild? 183 | * Follow up on last meeting action points 184 | * Merged changes 185 | 186 | # Agenda 2021-09-14 187 | * Triage, bugs in the wild? 188 | * Follow up on last meeting action points 189 | * Merged changes 190 | * [rtic-examples PR20](https://github.com/rtic-rs/rtic-examples/pull/20) 191 | * [rtic-examples PR28](https://github.com/rtic-rs/rtic-examples/pull/28) 192 | * Japaric submitted actor API RFC: https://github.com/rtic-rs/rfcs/pull/52 193 | 194 | # Agenda 2021-09-07 195 | * Triage, bugs in the wild? 196 | * Something isn't right with Bors and merging, noted a crash in Bors UI 197 | * Follow up on last meeting action points 198 | * update/japaric(2021-09-07): started working on xtask CI issue but it's not ready for review yet 199 | * Unused dispatchers fixed 200 | * Merged changes 201 | * [Validate unused dispatchers](https://github.com/rtic-rs/cortex-m-rtic/pull/522) 202 | 203 | # Discussion 204 | 205 | * Stack memory duplication on init return? (Related to initalization of resources.) 206 | 207 | 208 | # Agenda 2021-08-31 209 | * Triage, bugs in the wild? 210 | * Not really a bug, but build blocking [microamp extdocs #14](https://github.com/rtic-rs/microamp/pull/14) 211 | * [Unused dispatchers are not checked for validity #521](https://github.com/rtic-rs/cortex-m-rtic/issues/521) 212 | * Follow up on last meeting action points 213 | * None noted 214 | * Merged changes 215 | * None 216 | 217 | 218 | # Action points 219 | - XTasks CI will be looked into by @japaric. 220 | - Unused dispatchers will be looked into by @japaric (or @pln). 221 | 222 | # Agenda 2021-08-24 223 | * Triage, bugs in the wild? 224 | * None 225 | * Follow up on last meeting action points 226 | * Merged changes 227 | 228 | # Agenda 2021-08-17 229 | * Triage, bugs in the wild? 230 | * rtic-syntax improvements by @japaric [#52](https://github.com/rtic-rs/rtic-syntax/issues/52) [#53](https://github.com/rtic-rs/rtic-syntax/issues/53) [#54](https://github.com/rtic-rs/rtic-syntax/issues/54) 231 | * cortex-m-rtic improvements by @japaric [#512](https://github.com/rtic-rs/cortex-m-rtic/issues/512) 232 | * Follow up on last meeting action points 233 | * Merged changes 234 | * [Cleanup: Remove linked list impl - use heapless, linked list init now const fn PR511](https://github.com/rtic-rs/cortex-m-rtic/pull/511) 235 | * [Doc: Update russian book PR508](https://github.com/rtic-rs/cortex-m-rtic/pull/508) 236 | 237 | 238 | # Agenda 2021-08-10 239 | * Triage, bugs in the wild? 240 | None, besides filed issues and PR:s 241 | 242 | * Follow up on last meeting action points 243 | None, 244 | 245 | * Merged changes 246 | * [GHA: Fix 1.54 formatting change](https://github.com/rtic-rs/cortex-m-rtic/pull/507) 247 | 248 | * TODO/Discuss 249 | * [Use cortex-m InterruptNumber instead of bare_metal Nr](https://github.com/rtic-rs/cortex-m-rtic/pull/509) 250 | * [Improve modularity by allowing the #[init] task to be externed](https://github.com/rtic-rs/cortex-m-rtic/issues/505) 251 | * [CI: consider using xtask](https://github.com/rtic-rs/cortex-m-rtic/issues/499) 252 | * Related: [Added sorted linked list implementation](https://github.com/japaric/heapless/pull/227) 253 | 254 | # Action points 255 | * Korken89 will track the PR: [Use cortex-m InterruptNumber instead of bare_metal Nr](https://github.com/rtic-rs/cortex-m-rtic/pull/509) 256 | 257 | * Regular meetings will start from 2021-08-17 (along with long awaited Thursday haxx-nights) 258 | 259 | 260 | 261 | # Agenda 2021-08-03 262 | * Triage, bugs in the wild? 263 | * Follow up on last meeting action points 264 | * Merged changes 265 | * TODO: [PR507](https://github.com/rtic-rs/cortex-m-rtic/pull/507) 266 | 267 | 268 | # Agenda 2021-07-27 269 | * Triage, bugs in the wild? 270 | * Follow up on last meeting action points 271 | * Merged changes 272 | * [PR496: update the 0.5.x -> 0.6.0 migration guide](https://github.com/rtic-rs/cortex-m-rtic/pull/496) 273 | * [PR497: Change misleading documentation left over by PR #464](https://github.com/rtic-rs/cortex-m-rtic/pull/497) 274 | * [PR498: book: update the resources chapter](https://github.com/rtic-rs/cortex-m-rtic/pull/498) 275 | * [PR500: migration/0.5: cover #[lock_free]](https://github.com/rtic-rs/cortex-m-rtic/pull/500) 276 | * [PR501: Propogate the task attributes to the spawn handles](https://github.com/rtic-rs/cortex-m-rtic/pull/501) 277 | * [PR502: book/resources: highlight that #[lock_free] includes a compile-time check](https://github.com/rtic-rs/cortex-m-rtic/pull/502) 278 | * Action points 279 | * Japaric checks if documentation-issues can be closed 280 | 281 | # Agenda 2021-07-20 282 | * Triage, bugs in the wild? 283 | * No bugs, examples `init::Monotonics` syntax inconsistency discussed and `init::Monotonics()` won 284 | * Follow up on last meeting action points 285 | * Merged changes 286 | * [PR464: Const generics](https://github.com/rtic-rs/cortex-m-rtic/pull/464) 287 | 288 | # Agenda 2021-07-13 289 | 290 | * Triage, bugs in the wild? 291 | * No bugs reported 292 | * Follow up on last meeting action points 293 | * Merged changes 294 | 295 | # Agenda 2021-06-15 296 | 297 | * Triage, bugs in the wild? 298 | * No bugs reported. 299 | 300 | * Follow up on last meeting action points 301 | * No action points to follow up. 302 | 303 | * Merged changes 304 | * No merged changes, new resource syntax upcoming. 305 | 306 | # Agenda 2021-06-07 307 | 308 | * Triage, bugs in the wild? 309 | * No new bugs reported. 310 | * Follow up on last meeting action points 311 | * Merged changes 312 | * [#489](https://github.com/rtic-rs/cortex-m-rtic/issues/489) 313 | 314 | # Discussion 315 | 316 | * cargo klee on (some of) the RTIC code? 317 | 318 | # Agenda 2021-06-01 319 | 320 | * Triage, bugs in the wild? 321 | * [#487](https://github.com/rtic-rs/cortex-m-rtic/issues/487) 322 | * [#488](https://github.com/rtic-rs/cortex-m-rtic/issues/488) 323 | * Follow up on last meeting action points 324 | * Merged changes 325 | * `cortex-m-rtic` [#485](https://github.com/rtic-rs/cortex-m-rtic/pull/485), [#486](https://github.com/rtic-rs/cortex-m-rtic/pull/486) 326 | * `rtic-syntax` [#49](https://github.com/rtic-rs/rtic-syntax/pull/49), [#50](https://github.com/rtic-rs/rtic-syntax/pull/50) 327 | * `rtic-monotonic` [#1](https://github.com/rtic-rs/rtic-monotonic/pull/1) 328 | 329 | 330 | # Agenda 2021-05-25 331 | 332 | * Triage, bugs in the wild? 333 | * No new issues reported 334 | * Follow up on last meeting action points 335 | * No action points 336 | * Merged changes 337 | * No merged changes 338 | * RTIC Merch? :thinking_face: 339 | * GCC based targets? 340 | * Docs to include links to papers/talks/tutorials 341 | 342 | 343 | ## Action points 344 | 345 | * Prepare for new alpha release at hacker night 346 | * Looks into merch designs and ideas at hacker night 347 | * Docs to include links to papers/talks/tutorials 348 | 349 | # Agenda 2021-05-18 350 | 351 | * Triage, bugs in the wild? 352 | * Follow up on last meeting action points 353 | * Merged changes 354 | 355 | # Agenda 2021-05-11 356 | 357 | * Triage, bugs in the wild? 358 | * Follow up on last meeting action points 359 | * Merged changes 360 | 361 | # Agenda 2021-05-04 362 | 363 | * Triage, bugs in the wild? 364 | * Follow up on last meeting action points 365 | * Merged changes 366 | * Discussion: Modular RTIC (RTIC-light) 367 | 368 | # Agenda 2021-04-27 369 | 370 | * Triage, bugs in the wild? 371 | * Structs and enums are not properly propagated when inside the app module (0.6-alpha) 372 | * The `#[cfg(feature = "rt")]` detection scheme is not water tight [#482](https://github.com/rtic-rs/cortex-m-rtic/issues/482) 373 | * Follow up on last meeting action points 374 | * Merged changes 375 | * Book fixes [#478](https://github.com/rtic-rs/cortex-m-rtic/pull/478), [#479](https://github.com/rtic-rs/cortex-m-rtic/pull/479), [#480](https://github.com/rtic-rs/cortex-m-rtic/pull/480) 376 | * Namespace issue in relation to monotonics [#481](https://github.com/rtic-rs/cortex-m-rtic/pull/481) 377 | * Discussion: Tracing RFC [rfcs/#49](https://github.com/rtic-rs/rfcs/issues/49) 378 | 379 | # Agenda 2021-04-20 380 | 381 | * Triage, bugs in the wild? 382 | * Follow up on last meeting action points 383 | * Merged changes 384 | 385 | # Agenda 2021-04-13 386 | 387 | * Triage, bugs in the wild? 388 | * Follow up on last meeting action points 389 | * Goodbye static mut PR: [#469](https://github.com/rtic-rs/cortex-m-rtic/pull/469) 390 | * Merged changes 391 | * [#456](https://github.com/rtic-rs/cortex-m-rtic/pull/456) cancel/reschedule support for tasks 392 | * [#465](https://github.com/rtic-rs/cortex-m-rtic/pull/465) updated Russian translation 393 | * [#466](https://github.com/rtic-rs/cortex-m-rtic/pull/466) fix for type aliases in `mod app`, UB in `spawn_at`, and `#[cfg]` in hardware tasks 394 | * [#467](https://github.com/rtic-rs/cortex-m-rtic/pull/467) `cortex-m-rtic` `v0.6.0-alpha.2` released :tada: 395 | * Discussion: Generics in tasks. fn task(...) 396 | * Next steps towards alpha.3 397 | 398 | ### Action points 399 | 400 | * @per to fix an example for `fn task` issues 401 | * Remeber `#[rtic_external]` for `extern "Rust"` 402 | 403 | # Agenda 2021-04-06 404 | 405 | * Triage, bugs in the wild? 406 | * https://github.com/rtic-rs/cortex-m-rtic/issues/463 - `#[cfg]` related 407 | * Follow up on last meeting action points 408 | * Merged changes - none 409 | * Merge cancel/reschedule PR? 410 | * Help reviewing `heapless` const generics port: https://github.com/japaric/heapless/pull/198 411 | * Simple pool experiment (const generics based) 412 | * Some scoping problems in task specifications. 413 | 414 | 415 | ## Action points 416 | 417 | * Merge cancel/reschedule PR 418 | * Prepare a PR for `RacyCell` move - @Per https://github.com/rust-lang/rust/issues/53639 419 | 420 | # Agenda 2021-03-30 421 | 422 | * Triage, bugs in the wild? 423 | * Follow up on last meeting action points 424 | * Prepared RFC for Git repository cleanup - [link](https://github.com/rtic-rs/rfcs/pull/48) 425 | * Merged changes - None 426 | 427 | # Agenda 2021-03-23 428 | 429 | * Triage, bugs in the wild? 430 | * Follow up on last meeting action points 431 | * No merged changes 432 | * Open PR [#456](https://github.com/rtic-rs/cortex-m-rtic/pull/456) for cancel/reschedule support, any comments? 433 | * Next steps to `0.6.0-beta.0`? 434 | * Remove `static mut` and replace with `static` + `RacyCell` 435 | * New resource syntax 436 | * Fixing bugs for resources life-times and adhere to interfaces 437 | * Docs docs doocs ... and under this stone .. more docs 438 | * Move to `const generics` 439 | * More? 440 | * @korken89 is now helping maintain `embedded-time` 441 | 442 | ### Action points 443 | 444 | * Measure the bloat impact of `RacyCell` + `static` on all examples 445 | * Send the results to the Rust issue on removing `static mut` 446 | * Release another alpha with the reschedule/cancel @korken89 447 | * Start the syntax update for resouces take2 @korken89 448 | 449 | # Agenda 2021-03-16 450 | 451 | * Triage, bugs in the wild? 452 | * Follow up on last meeting action points 453 | * Merged changes 454 | 455 | ### Action points 456 | 457 | * Polish and PR for branch `goodby static mut` @Per 458 | * Further work on `Linked List` timer queue implementation and `cancel`/`re-schedule`. Thursday night hack session. 459 | 460 | # Agenda 2021-03-09 461 | 462 | * Triage, bugs in the wild? 463 | * Follow up on last meeting action points 464 | * Merged changes 465 | * New monotonic merged across the board :tada: [PR #436](https://github.com/rtic-rs/cortex-m-rtic/pull/436) / [PR #40](https://github.com/rtic-rs/rtic-syntax/pull/40) / [Test repo](https://github.com/korken89/test_rtic_0.6/blob/master/src/main.rs) 466 | * `cancel`/`respawn` design https://hackmd.io/lhUCzrKBS-66aadO4KsSzw 467 | * Should we move away from `static mut`? Related issue: https://github.com/rust-lang/rust/issues/53639 468 | 469 | ### Action points 470 | 471 | * Give the `static` + `UnsafeCell` vs `static mut` a go @Per and @korken89 472 | * Remember: add a chapter on "implementing a monotonic" to the book 473 | 474 | # Agenda 2021-03-02 475 | 476 | * Triage, bugs in the wild? 477 | * Follow up on last meeting action points 478 | * Merged changes 479 | * What is left for `new_monotonic`? 480 | 481 | ### Discussion 482 | 483 | * Display for monotonic? 484 | 485 | ### Actions points 486 | 487 | * Try and release `alpha.1` at hacker night 488 | * Look into the new resource syntax and cancel/reschedule 489 | 490 | # Agenda 2021-02-23 491 | 492 | * Triage, bugs in the wild? 493 | * Follow up on last meeting action points 494 | * `rtic-monotonic`: https://github.com/rtic-rs/rtic-monotonic 495 | * Update to the `Monotonic` trait's `set_compare`: https://github.com/rtic-rs/rtic-monotonic/blob/master/src/lib.rs#L61 496 | * A lot of different bugs and issues fixed in the `new_monotonic` implementation 497 | 498 | ### Notes / Action points 499 | 500 | * @Per to make a test harness for the new `Monotonic` 501 | 502 | # Agenda 2021-02-16 503 | 504 | * Triage, bugs in the wild? 505 | * A user bumped into https://github.com/rtic-rs/cortex-m-rtic/issues/348 again. We should either give a more clear error, or fix the bug. 506 | * Follow up on last meeting action points 507 | * Updates on `new_monotonic` take 2 508 | * New proposed trait: https://github.com/rtic-rs/rtic-core/blob/new_monotonic/src/monotonic.rs, which has the aim to be crazy simple to implement to not hinder adoption while still having some extra features for advanced users. 509 | 510 | ### Notes / Action points 511 | 512 | * @korken89 to update the trait to always have `now` return sane values and that `reset` is optional (and impacts the `now`) 513 | * @korken89 to move `Monotonic` trait into its own crate `rtic-monotonic` 514 | 515 | # Agenda 2021-02-09 516 | 517 | * Triage, bugs in the wild? 518 | * Follow up on last meeting action points 519 | * Updates on new `Monotonic` 520 | 521 | ### Notes / Action points 522 | 523 | * The new monotonic works as designed 524 | * A `&(mut) self` interface will be more ergonomic and can lean on embedded-hal and embedded-time 525 | * Redesign of new monotonic at hacker night 526 | 527 | # Agenda 2021-02-02 528 | 529 | * Triage, bugs in the wild? 530 | * (Follow up on last meeting action points) 531 | * Hacker night starts on Thursday again! 532 | 533 | ## Notes 534 | 535 | * Aim for alpha.1 after monotonic is merged 536 | 537 | # Agenda 2021-01-26 538 | 539 | * Triage, bugs in the wild? 540 | * Better docs: https://github.com/rtic-rs/cortex-m-rtic/issues/440 541 | * Multilock issue (consumes proxy problem?) 542 | * Progress on 0.6 release 543 | 544 | ### Notes 545 | * Add docs section on useful patterns (e.g., resource management, (dma) buffers, shared SPI, etc.) 546 | * Add docs section on large apps, how to organize a large project https://github.com/rtic-rs/cortex-m-rtic/issues/444 547 | * Multilock issue is considered solved 548 | * Hacker nights commences again next week! :tada: 549 | * Better Cortex-M0 support with source masking, we need to find a way to get both exceptions and interrupts to work nicely 550 | 551 | # Agenda 2021-01-19 552 | 553 | * Triage, bugs in the wild? 554 | * Follow up on last meeting action points 555 | * Merged changes 556 | 557 | * Better docs: https://github.com/rtic-rs/cortex-m-rtic/issues/440 558 | * Multilock issue (consumes proxy problem?) 559 | 560 | 561 | # Agenda 2021-01-12 562 | 563 | * Triage, bugs in the wild? 564 | * Follow up on last meeting action points 565 | * Merged changes 566 | 567 | * Bors failing, while PRs pass 568 | * Multilock issue (consumes proxy problem?) 569 | -------------------------------------------------------------------------------- /minutes/README.md: -------------------------------------------------------------------------------- 1 | # Minutes 2 | 3 | Notes taken during our periodic meetings 4 | -------------------------------------------------------------------------------- /ops/README.md: -------------------------------------------------------------------------------- 1 | # Operational notes 2 | -------------------------------------------------------------------------------- /ops/hibernating.md: -------------------------------------------------------------------------------- 1 | # Hibernating 2 | 3 | A member that will be absent or busy for an extended period of time and not able 4 | to participate in the Team during that time should put themselves in "hibernation" 5 | state. During this hibernation period: 6 | 7 | - The member will be removed from their GitHub teams'. `cc @rtic-rs/$team` 8 | will *not* cc them. 9 | 10 | - The member name will be removed from the list of teams in the rtic-rs/rfcs 11 | README, but they will be listed under the 'Hibernating' section of that 12 | README. 13 | 14 | - The member will not be counted when computing the number of votes required to 15 | reach majority on matters that concern the teams they are a member of. This 16 | includes PRs labeled `T-all` that need a decision. 17 | 18 | To enter or leave the hibernation state the member will: 19 | 20 | - Notify their teams (e.g. `cc @rtic-rs/$team`) and send a PR to 21 | rtic-rs/rfcs updating the README to reflect their hibernation state. 22 | -------------------------------------------------------------------------------- /ops/matrix.md: -------------------------------------------------------------------------------- 1 | # Matrix Operational Notes 2 | 3 | The RTIC developers use the following Matrix room for our regular 4 | meetings and community discussion: 5 | 6 | [#rtic-rs:matrix.org](https://matrix.to/#/!yafYEipFNsXDdwiHMT:matrix.org) 7 | 8 | The document details the organization of the room. 9 | 10 | ## Administration 11 | 12 | See the [Matrix Moderation Guide](https://matrix.org/docs/guides/moderation) 13 | for information on how Matrix administration and permissions work. 14 | 15 | RTIC [core team](https://github.com/orgs/rtic-rs/teams/devs) members are 16 | channel administrators (PL100), responsible for both maintaining the channel as 17 | required and enforcing the Team's Code of Conduct. 18 | 19 | * Can send messages 20 | * Can invite users 21 | * Can change room settings 22 | * Kick and ban users in violation of the Code of Conduct 23 | * Can remove messages in violation of the Code of Conduct 24 | * Can notify everyone 25 | * Can modify widgets 26 | * Can change room avatar 27 | * Can change main address for the room 28 | * Can change history visibility 29 | * Can change room name 30 | * Can change other users' permissions 31 | * Can change topic 32 | 33 | All team members may be channel moderators on request, responsible for enforcing 34 | the team's Code of Conduct. 35 | 36 | * Can send messages 37 | * Can invite users 38 | * Kick and ban users in violation of the Code of Conduct 39 | * Can remove messages in violation of the Code of Conduct 40 | * Can notify everyone 41 | * Can change topic 42 | 43 | For a team member to request to become a channel moderator (or a new core team 44 | member to become an administrator), they should contact a core team member 45 | [via GitHub](https://github.com/orgs/rtic-rs/teams/devs) with their 46 | Matrix username (e.g., `@username:matrix.org`) to be given moderator 47 | permissions. 48 | 49 | All other room members have no special powers: 50 | 51 | * Can send messages 52 | * Can invite users 53 | 54 | -------------------------------------------------------------------------------- /ops/msrv.md: -------------------------------------------------------------------------------- 1 | # Minimum Supported Rust Version (MSRV) 2 | 3 | This text documents the MSRV policy used in the crates maintained by the RTIC developers. 4 | 5 | - Changing the MSRV of a crate is a breaking change and requires a semver bump: 6 | minor version bump if the crate is pre-1.0 and a major version bump if the 7 | crate is (post-)1.0. 8 | 9 | - Cargo features are allowed to depend a on Rust version greater than the MSRV, 10 | even a nightly compiler. For example, a "const-fn" can bump the required 11 | version to 1.34.0 (effectively, nightly channel at the time of writing). 12 | 13 | - When doing a semver bump (i.e. minor version bump in pre-1.0 crates), for 14 | whatever reason, the team in charge of the crate should consider bumping the 15 | MSRV as well. 16 | 17 | - The MSRV will be documented in the crate level documentation of the crate, 18 | like so: 19 | 20 | ``` markdown 21 | # Minimum Supported Rust Version (MSRV) 22 | 23 | This crate is guaranteed to compile on stable Rust 1.31 and up. It *might* 24 | compile with older versions but that may change in any new patch release. 25 | ``` 26 | 27 | - The MSRV will be tested in the CI of the crate as a separate build job, like 28 | so: 29 | 30 | ``` yaml 31 | matrix: 32 | include: 33 | # MSRV 34 | - env: TARGET=thumbv7m-none-eabi 35 | rust: 1.31.0 36 | 37 | - env: TARGET=thumbv7m-none-eabi 38 | rust: stable 39 | 40 | - env: TARGET=thumbv7m-none-eabi 41 | rust: beta 42 | 43 | # etc. 44 | ``` 45 | -------------------------------------------------------------------------------- /ops/nominate.md: -------------------------------------------------------------------------------- 1 | # Nominating rust-lang/* issues 2 | 3 | This document describes the process of "nominating" Cargo, compiler and `std`/`core` 4 | library issues to their respective Rust teams. 5 | 6 | A nominated issue will normally be forwarded to the Rust Embedded WG. 7 | -------------------------------------------------------------------------------- /ops/post-transfer.md: -------------------------------------------------------------------------------- 1 | # Post transfer TODO list 2 | 3 | ## Travis CI 4 | 5 | Browse to https://travis-ci.org/rtic-rs/repo-name/settings and make sure that "Build pushed 6 | pull requests" is enabled. 7 | 8 | 9 | ## Source 10 | 11 | Push a commit to `master` that does the following: 12 | 13 | - Creates `.github/CODEOWNERS` with the following contents: 14 | 15 | ``` text 16 | * rtic-rs/team-name collaborator-name another-collaborator 17 | ``` 18 | 19 | - Adds a copy of `CODE_OF_CONDUCT.md`. Don't forget to adjust the team name and associated 20 | link accordingly. 21 | 22 | - Modifies `.travis.yml` to: 23 | - Allow builds on these three branches. `staging` and `trying` are required by bors. We include 24 | `master` to have builds on pushed PRs. 25 | 26 | ``` yaml 27 | branches: 28 | only: 29 | - master 30 | - staging 31 | - trying 32 | ``` 33 | 34 | - Prevent builds on changes to master. This is to prevent testing a PR *twice*: one build is 35 | required to land the PR, but when the changes are merged into master we want to avoid that 36 | second build. 37 | 38 | ``` yaml 39 | matrix: 40 | include: 41 | - env: TARGET=thumbv6m-none-eabi 42 | # add this `if` ... 43 | if: (branch = staging OR branch = trying) OR (type = pull_request AND branch = master) 44 | 45 | - env: TARGET=thumbv7m-none-eabi 46 | # ... to all the elements of the build matrix 47 | if: (branch = staging OR branch = trying) OR (type = pull_request AND branch = master) 48 | ``` 49 | 50 | - Mention the Code of Conduct and which team owns this repository in the README 51 | 52 | ``` markdown 53 | # project-name 54 | 55 | > description of the project 56 | 57 | 58 | 59 | This project is developed and maintained by the [RTIC team][team]. 60 | 61 | 62 | 63 | 64 | 65 | ## Code of Conduct 66 | 67 | Contribution to this crate is organized under the terms of the [Rust Code of 68 | Conduct][CoC], the maintainer of this crate, the [RTIC team][team], promises 69 | to intervene to uphold that code of conduct. 70 | 71 | [CoC]: CODE_OF_CONDUCT.md 72 | [team]: https://github.com/orgs/rtic-rs/teams/devs 73 | ``` 74 | 75 | - If the repository uses CI, configure bors. Add a `.github/bors.toml` file with these contents: 76 | 77 | ``` toml 78 | block_labels = ["needs-decision"] 79 | delete_merged_branches = true 80 | required_approvals = 1 81 | status = ["continuous-integration/travis-ci/push"] 82 | ``` 83 | 84 | ## Bors 85 | 86 | If the repository uses CI, update bors settings. 87 | 88 | - Browse to https://app.bors.tech/repositories, click on rtic-rs/repo-name and then switch 89 | to the "Settings" tab. 90 | 91 | - Synchronize both "Reviewers" and "Members" to people with "Push" (write) access to the 92 | repository. 93 | 94 | ## Repository 95 | 96 | Update the repository settings. 97 | 98 | - Browse to https://github.com/rtic-rs/repo-name/settings and switch to the "Collaborators & 99 | teams" tab. 100 | 101 | - Add the team that will oversee the project and give them "Admin" permissions. 102 | 103 | - The previous owner and old collaborators should have "Write" permissions. 104 | 105 | - Now switch to the "Branches" tab and add a branch protection rule for `master` with the 106 | following settings: 107 | 108 | - [x] Require pull requests reviews before merging 109 | - [x] Dismiss stale pull request approvals when new commits are pushed 110 | - [x] Require review from Code Owners 111 | 112 | - [x] Require status checks to pass before merging (NOTE omit if not using CI) 113 | - [x] bors (NOTE if bors doesn't appear here you will have to make a dummy PR, `bors r+` it 114 | and then close it. This will make bors visible in this list) 115 | 116 | - [x] Include administrators 117 | 118 | ## crates.io 119 | 120 | If applicable, add new owners to crates.io. Have the current owner add the team that's receiving 121 | the crate as a team owner. 122 | 123 | ``` 124 | $ cargo owner --add github:rtic-rs:team-name 125 | ``` 126 | -------------------------------------------------------------------------------- /ops/publish.md: -------------------------------------------------------------------------------- 1 | # Publishing workflow 2 | 3 | ## Pull request 4 | 5 | Open a PR that: 6 | 7 | - Updates `CHANGELOG.md` to include the new version. We use the [Keep a Changelog] format. Don't 8 | forget to include the version link at the bottom. Example below: 9 | 10 | [Keep a Changelog]: https://keepachangelog.com/en/1.0.0/ 11 | 12 | ``` markdown 13 | ## [Unreleased] 14 | 15 | 16 | 17 | 18 | ## [v0.5.3] - 2018-08-02 19 | 20 | ### Added 21 | 22 | - Some stuff. 23 | 24 | ### Fixed 25 | 26 | - Some stuff. 27 | 28 | ### Removed 29 | 30 | - Some stuff. 31 | 32 | 33 | ## [v0.5.2] - 2018-05-18 34 | 35 | 36 | 37 | 38 | [Unreleased]: https://github.com/rtic-rs/cortex-m-rtic/compare/v0.5.3...HEAD 39 | 40 | 41 | [v0.5.3]: https://github.com/rtic-rs/cortex-m-rtic/compare/v0.5.2...v0.5.3 42 | 43 | 44 | [v0.5.2]: https://github.com/rtic-rs/cortex-m-rtic/compare/v0.5.1...v0.5.2 45 | ``` 46 | 47 | - Bumps the crate version in `Cargo.toml`. 48 | 49 | ## `cargo publish` 50 | 51 | After the PR has been merged, run `cargo publish` locally 52 | 53 | ## Tag 54 | 55 | Afterwards, create an annotated tag and push it 56 | 57 | ``` console 58 | $ git tag -a 'v0.5.3' -m 'v0.5.3' 59 | 60 | $ git push origin v0.5.3 61 | ``` 62 | -------------------------------------------------------------------------------- /ops/review.md: -------------------------------------------------------------------------------- 1 | # Reviewer handbook 2 | 3 | These apply to both team members and collaborators. 4 | 5 | We use https://bors.tech in all our repositories. Bors commands are documented in 6 | https://bors.tech/documentation/ 7 | 8 | All PRs must be approved using [GitHub reviews] before you can send the PR to bors. 9 | 10 | [GitHub reviews]: https://help.github.com/articles/approving-a-pull-request-with-required-reviews/ 11 | 12 | Most PRs can be approved by a single team member or collaborator, but PRs labeled `needs-decision` 13 | need to be approved by the whole team (see [voting majority]) before they are sent to bors. 14 | 15 | - Apply the `needs-decision` label to all PRs that include breaking changes and / or major changes 16 | that have not been previously discussed and approved. 17 | 18 | - bors will ignore `r+` commands on PRs that have the `needs-decision` label. 19 | 20 | - Remove the `needs-decision` label after voting majority has been achieved. 21 | 22 | - At this point you can review the PR and send it to bors. 23 | 24 | [voting majority]: https://github.com/rtic-rs/rfcs/blob/master/ops/0136-teams.md#voting-majority 25 | -------------------------------------------------------------------------------- /text/0000-use-mod-over-const.md: -------------------------------------------------------------------------------- 1 | - Feature Name: use-mod-over-const 2 | - Start Date: 2020-04-22 3 | - RFC PR: (leave this empty) 4 | - Rust Issue: (leave this empty) 5 | 6 | # Summary 7 | [summary]: #summary 8 | 9 | With stable support for attributes on modules the const workaround has a contender. 10 | 11 | # Motivation 12 | [motivation]: #motivation 13 | 14 | As noted in the rtfm::app documentation: 15 | 16 | "This attribute must be applied to a const item of type (). 17 | The const item is effectively used as a *mod item*: its value must be a block that contains items commonly found in modules, like functions and static variables." 18 | 19 | Now with stable support in 1.42 for using actual mod the workaround using a const can be removed. 20 | 21 | # Detailed design 22 | [design]: #detailed-design 23 | 24 | [Stabilize attribute macros on inline modules #64273](https://github.com/rust-lang/rust/pull/64273) with milestone 1.42. 25 | 26 | Instead of `const APP: () = {` it is now possible to write just `mod APP {`. 27 | 28 | ``` 29 | //! examples/smallest.rs 30 | 31 | #![no_main] 32 | #![no_std] 33 | 34 | use panic_semihosting as _; // panic handler 35 | use rtfm::app; 36 | 37 | #[app(device = lm3s6965)] 38 | mod app {} 39 | ``` 40 | 41 | However, since the macros operating on the mod remove the `mod` during code generation, the code within the module will see outside the module, which is not idiomatic. 42 | 43 | By retaining the `mod` and requiring proper `use`-statements to be generated the above issue can be dealt with without breaking namespacing expectations. 44 | 45 | Extended example: 46 | 47 | ``` 48 | //! `examples/shared-with-init.rs` 49 | 50 | #![deny(unsafe_code)] 51 | #![deny(warnings)] 52 | #![no_main] 53 | #![no_std] 54 | 55 | use cortex_m_semihosting::debug; 56 | use lm3s6965::Interrupt; 57 | use panic_halt as _; 58 | use rtfm::app; 59 | 60 | pub struct MustBeSend; 61 | 62 | #[app(device = lm3s6965)] 63 | mod app { 64 | use super::MustBeSend; 65 | 66 | struct Resources { 67 | #[init(None)] 68 | shared: Option, 69 | } 70 | 71 | #[init(resources = [shared])] 72 | fn init(c: init::Context) { 73 | // this `message` will be sent to task `UART0` 74 | let message = MustBeSend; 75 | *c.resources.shared = Some(message); 76 | 77 | rtfm::pend(Interrupt::UART0); 78 | } 79 | 80 | #[task(binds = UART0, resources = [shared])] 81 | fn uart0(c: uart0::Context) { 82 | if let Some(message) = c.resources.shared.take() { 83 | // `message` has been received 84 | drop(message); 85 | 86 | debug::exit(debug::EXIT_SUCCESS); 87 | } 88 | } 89 | } 90 | ``` 91 | 92 | 93 | Implementation, change parsing to expect `mod` instead of `const` and adapt tests and examples. 94 | 95 | # How We Teach This 96 | [how-we-teach-this]: #how-we-teach-this 97 | 98 | Documentation and books needs to be updated. 99 | 100 | # Drawbacks 101 | [drawbacks]: #drawbacks 102 | 103 | Requires a bump of MSRV to 1.42 from current 1.36. 104 | 105 | Non-idiomatic rust? 106 | 107 | # Alternatives 108 | [alternatives]: #alternatives 109 | 110 | Possible to keep using const, it is not breaking as far as I know. 111 | 112 | # Unresolved questions 113 | [unresolved]: #unresolved-questions 114 | 115 | Namespace changes and non-idiomatic rust. 116 | -------------------------------------------------------------------------------- /text/0033-rename-rtfm.md: -------------------------------------------------------------------------------- 1 | - Feature Name: rename-rtfm 2 | - Start Date: 2020-04-20 3 | - RFC PR: [rtic-rs/rfcs#0033](https://github.com/rtic-rs/rfcs/pull/33) 4 | - RTIC Issue/PR: [rtic-rs/cortex-m-rtic#0000](https://github.com/rtic-rs/cortex-m-rtic/pull/325) 5 | 6 | # Summary 7 | [summary]: #summary 8 | 9 | This RFC proposes the renaming of the RTFM framework/ecosystem to another, less overloaded name. 10 | 11 | # Motivation 12 | [motivation]: #motivation 13 | 14 | As the RTFM framework has gained popularity, there has been [notable](https://twitter.com/deisum/status/1247636837415505922) [surprise](https://twitter.com/r1ckp/status/1242449324283506689) at the name. Although the name is an abbreviation of the "Real Time For the Masses" title, it unfortunately shares an initialism with the expression "Read The Fucking Manual", which has existed [since at least 1979](https://en.wikipedia.org/wiki/RTFM), and likely earlier. This initialism is widespread in the software development industry. Due to this, searchability of "RTFM" is also relatively challenging, unless combined with other keywords, like "RTFM Rust" or "RTFM Embedded". 15 | 16 | From the anecdotal standpoint of someone who has attempted to propose the use of RTFM to commercial entities based on technical merit, the name has caused a signficant negative response upon the first impression (laughter, surprise, "wait, really?") nearly every time I have mentioned it, at both an engineering as well as a management level. At the moment, I actively avoid referring to the project as "RTFM", and instead use the full name "Real Time for the Masses" just to avoid this as the first impression, and hope that they are less initially shocked when first introduced to the features of the framework. 17 | 18 | In order to improve marketability, as well as remove potential perceptions of hostility due to the name, this RFC proposes a change of name for the project. 19 | 20 | Tentatively this RFC proposes "CompOS: Compile Time OS" as a placeholder, however suggestions from the primary RTFM contributors are likely more appropriate. 21 | 22 | # Detailed design 23 | [design]: #detailed-design 24 | 25 | It will be necessary to rebrand all components of the project, including: 26 | 27 | * The GitHub organization 28 | * The codebase 29 | * The documentation 30 | * The Matrix Room 31 | * The main website (https://rtfm.rs) 32 | 33 | Existing resources should retained, and should redirect to the new name. 34 | 35 | # How We Teach This 36 | [how-we-teach-this]: #how-we-teach-this 37 | 38 | As this is a rebranding, it would be necessary to communicate to folks that the name is changing, and why. This can be done effectively by sharing through the general embedded working group communication mediums, such as: 39 | 40 | * The Rust-Embedded Matrix Room 41 | * The Rust-Embedded Twitter 42 | * The Rust-Embedded Newsletter 43 | 44 | # Drawbacks 45 | [drawbacks]: #drawbacks 46 | 47 | This rename will require signficant, if not complicated, work to execute. 48 | 49 | It is possible that the transition may confuse some users, if the transition is not well communicated. 50 | 51 | # Alternatives 52 | [alternatives]: #alternatives 53 | 54 | The alternative is to retain the current name, and to continuing colliding with the "Read The Fucking Manual" initialism. This is likely to continue being problematic for adoption from commercial/professional entities. 55 | 56 | # Unresolved questions 57 | [unresolved]: #unresolved-questions 58 | 59 | * Specific name bikeshedding 60 | --------------------------------------------------------------------------------