aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-06-13rtfm-syntax refactor + heterogeneous multi-core supportGravatar Jorge Aparicio 127-5832/+4056
2019-05-21Merge #194Gravatar bors[bot] 5-136/+57
194: bump heapless dependency to v0.5.0; remove "nightly" feature r=japaric a=japaric with the upcoming version of heapless we are able to initialize all internal queues in const context removing the need for late initialization this commit also removes the "nightly" feature because all the optimization provided by it are now enabled by default Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-05-21Merge #193Gravatar bors[bot] 3-260/+49
193: remove unused check r=japaric a=japaric that was added in #140 but it's no longer required this PR also adds some cfail tests to test the updated code Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-05-21bump heapless dependency to v0.5.0; remove "nightly" featureGravatar Jorge Aparicio 5-136/+57
with the upcoming version of heapless we are able to initialize all internal queues in const context removing the need for late initialization this commit also removes the "nightly" feature because all the optimization provided by it are now enabled by default
2019-05-21remove unused checkGravatar Jorge Aparicio 3-260/+49
that was added in #140 but it's no longer required
2019-05-21Merge #192Gravatar bors[bot] 3-51/+21
192: removes the maybe_uninit feature gate r=japaric a=japaric and stop newtyping `core::mem::MaybeUninit` this also fixes CI on nightly Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-05-21removes the maybe_uninit feature gateGravatar Jorge Aparicio 3-51/+21
and stop newtyping `core::mem::MaybeUninit`
2019-05-09Merge #189Gravatar bors[bot] 2-1/+74
189: write generated code to disk for easier inspection r=japaric a=japaric now that the generated code is actually readable let's make it easier to access this commit also documents how to inspect the generated code via `rtfm-expansion.rs` and `cargo-expand` Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-05-09Merge #191Gravatar bors[bot] 1-29/+32
191: generate resource proxies only when needed r=japaric a=japaric only `static mut` resources need proxies just a codegen optimization Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-05-09Merge #175Gravatar bors[bot] 10-5/+1798
175: document internals r=japaric a=japaric note that this assumes that RFC #155 has been implemented [Rendered text](https://japaric.github.io/rtfm5/book/en/internals.html) Do not merge this before PR #176 Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-05-09generate resource proxies only when neededGravatar Jorge Aparicio 1-29/+32
only `static mut` resources need proxies
2019-05-08document resolution and range of Instant and DurationGravatar Jorge Aparicio 1-0/+31
2019-05-08fix typoGravatar Jorge Aparicio 1-1/+1
2019-05-08write generated code to disk for easier inspectionGravatar Jorge Aparicio 2-1/+74
now that the generated code is actually readable let's make it easier to access this commit also documents how to inspect the generated code via `rtfm-expansion.rs` and `cargo-expand`
2019-05-01document internalsGravatar Jorge Aparicio 10-5/+1767
note that this assumes that RFC #155 has been implemented
2019-05-01Merge #176Gravatar bors[bot] 97-2933/+3011
176: implement RFCs 147 and 155, fix #141, etc. r=japaric a=japaric This PR: - Implements RFC 147: "all functions must be safe" - Implements RFC 155: "explicit Context parameter" - Implements the pending breaking change #141: reject assign syntax in `init` (which was used to initialize late resources) - Refactors code generation to make it more readable -- there are no more random identifiers in the output -- and align it with the book description of RTFM internals (see PR #175). - Makes the framework hard depend on `core::mem::MaybeUninit` and thus will require nightly until that API is stabilized. - Fixes a ceiling analysis bug where the priority of the system timer was not considered in the analysis (TODO backport this into the v0.4.x branch). - Shrinks the size of all the internal queues by turning `AtomicUsize` indices into `AtomicU8`s. - Removes the integration with `owned_singleton`. closes #141 closes #147 closes #155 Additionally: - This changes CI to push v0.5.x docs to https://japaric.github.io/rtfm5/book/en/ -- we need to do this because our official docs are hosted on https://japaric.github.io/cortex-m-rtfm and we need to keep them on v0.4.x until we release v0.5.0 - I propose that we use the master branch to develop the upcoming v0.5.0. - I have created a branch v0.4.x for backports; new v0.4.x releases will come from that branch. r? @korken89 @texitoi, sorry for doing all the impl work in a single commit -- I know that makes things harder to review for you. Suggestions for compile-pass and compile-fail tests are welcome Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-05-01book: indirection for faster message passingGravatar Jorge Aparicio 5-3/+128
2019-05-01rtfm::app: update error messageGravatar Jorge Aparicio 1-1/+1
2019-05-01push docs to another repo & update READMEGravatar Jorge Aparicio 2-4/+5
2019-05-01travis: disable builds on stableGravatar Jorge Aparicio 1-6/+6
2019-05-01ci: the singleton example has been removedGravatar Jorge Aparicio 1-8/+0
2019-05-01update the bookGravatar Jorge Aparicio 8-48/+20
2019-05-01test RFC 147Gravatar Jorge Aparicio 5-0/+93
2019-05-01update compile-fail testsGravatar Jorge Aparicio 35-179/+95
2019-05-01update compile-pass testsGravatar Jorge Aparicio 10-212/+107
2019-05-01update examplesGravatar Jorge Aparicio 23-235/+159
2019-05-01implement RFCs 147 and 155, etc.Gravatar Jorge Aparicio 11-2252/+2412
This commit: - Implements RFC 147: "all functions must be safe" - Implements RFC 155: "explicit Context parameter" - Implements the pending breaking change #141: reject assign syntax in `init` (which was used to initialize late resources) - Refactors code generation to make it more readable -- there are no more random identifiers in the output -- and align it with the book description of RTFM internals. - Makes the framework hard depend on `core::mem::MaybeUninit` and thus will require nightly until that API is stabilized. - Fixes a ceiling analysis bug where the priority of the system timer was not considered in the analysis. - Shrinks the size of all the internal queues by turning `AtomicUsize` indices into `AtomicU8`s. - Removes the integration with `owned_singleton`.
2019-04-21bors: do not merge PRs labeled S-blockedGravatar Jorge Aparicio 1-1/+2
2019-04-21Merge #174v0.4.3Gravatar bors[bot] 4-8/+31
174: v0.4.3 r=japaric a=japaric prepares a new release Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-04-21v0.4.3Gravatar Jorge Aparicio 4-8/+31
2019-04-21Merge pull request #169 from japaric/late-must-be-sendGravatar Jorge Aparicio 4-0/+52
book: note that late resources must be Send
2019-04-21add .run fileGravatar Jorge Aparicio 1-0/+0
2019-04-21book: resources shared with init must also be `Send`Gravatar Jorge Aparicio 3-0/+47
2019-04-21note that late resources must be SendGravatar Jorge Aparicio 1-0/+5
2019-04-16Merge #170Gravatar bors[bot] 5-6/+55
170: check task priority at compile time r=TeXitoi a=japaric before we were checking the priority at runtime. The compile time error message when the priority is too high is kind of awful though. Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-04-16Merge #171Gravatar bors[bot] 3-23/+23
171: [NFC] fix nightly ci r=japaric a=japaric Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-04-17now fix the fixGravatar Jorge Aparicio 1-2/+2
2019-04-16more nightly fixesGravatar Jorge Aparicio 2-14/+14
2019-04-16[NFC] fix nightly ciGravatar Jorge Aparicio 3-11/+11
2019-04-16check task priority at compile timeGravatar Jorge Aparicio 5-6/+55
before we were checking the priority at runtime. The compile time error message when the priority is too high is kind of awful though.
2019-02-27Merge #162v0.4.2Gravatar bors[bot] 3-4/+48
162: v0.4.2 r=TeXitoi a=japaric this PR prepares a new release r? @korken89 || @TeXitoi Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-02-27v0.4.2Gravatar Jorge Aparicio 3-4/+48
2019-02-26Merge #161Gravatar bors[bot] 1-0/+18
161: (ru) binds r=japaric a=japaric resubmitting PR #160 Co-authored-by: Andrey Zgarbul <zgarbul.andrey@gmail.com>
2019-02-27(ru) bindsGravatar Andrey Zgarbul 1-0/+18
2019-02-26Merge #158Gravatar bors[bot] 9-37/+217
158: implement RFC #128: #[interrupt(binds = ..)] r=korken89 a=japaric closes #128 r? @korken89 or @TeXitoi suggestions for tests are welcome! (2 of the 3 tests I added hit bugs in my implementation) Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-02-26refactor: make `binds` harder to misuseGravatar Jorge Aparicio 3-21/+16
2019-02-26`binds` can only appear once in the argument listGravatar Jorge Aparicio 1-0/+7
2019-02-26document the `binds` featureGravatar Jorge Aparicio 1-0/+16
cc @burrbull
2019-02-26add `binds` example and make it workGravatar Jorge Aparicio 4-2/+55
2019-02-26fix warnings in cpass testGravatar Jorge Aparicio 1-0/+2