aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-05-01Merge #176bors[bot]
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 passingJorge Aparicio
2019-05-01rtfm::app: update error messageJorge Aparicio
2019-05-01push docs to another repo & update READMEJorge Aparicio
2019-05-01travis: disable builds on stableJorge Aparicio
2019-05-01ci: the singleton example has been removedJorge Aparicio
2019-05-01update the bookJorge Aparicio
2019-05-01test RFC 147Jorge Aparicio
2019-05-01update compile-fail testsJorge Aparicio
2019-05-01update compile-pass testsJorge Aparicio
2019-05-01update examplesJorge Aparicio
2019-05-01implement RFCs 147 and 155, etc.Jorge Aparicio
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-blockedJorge Aparicio
2019-04-21Merge #174bors[bot]
174: v0.4.3 r=japaric a=japaric prepares a new release Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-04-21v0.4.3Jorge Aparicio
2019-04-21Merge pull request #169 from japaric/late-must-be-sendJorge Aparicio
book: note that late resources must be Send
2019-04-21add .run fileJorge Aparicio
2019-04-21book: resources shared with init must also be `Send`Jorge Aparicio
2019-04-21note that late resources must be SendJorge Aparicio
2019-04-16Merge #170bors[bot]
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 #171bors[bot]
171: [NFC] fix nightly ci r=japaric a=japaric Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-04-17now fix the fixJorge Aparicio
2019-04-16more nightly fixesJorge Aparicio
2019-04-16[NFC] fix nightly ciJorge Aparicio
2019-04-16check task priority at compile timeJorge Aparicio
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 #162bors[bot]
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.2Jorge Aparicio
2019-02-26Merge #161bors[bot]
161: (ru) binds r=japaric a=japaric resubmitting PR #160 Co-authored-by: Andrey Zgarbul <zgarbul.andrey@gmail.com>
2019-02-27(ru) bindsAndrey Zgarbul
2019-02-26Merge #158bors[bot]
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 misuseJorge Aparicio
2019-02-26`binds` can only appear once in the argument listJorge Aparicio
2019-02-26document the `binds` featureJorge Aparicio
cc @burrbull
2019-02-26add `binds` example and make it workJorge Aparicio
2019-02-26fix warnings in cpass testJorge Aparicio
2019-02-26make cfail test actually failJorge Aparicio
2019-02-26add some testsJorge Aparicio
2019-02-26add `binds` argument to the `interrupt` and `exception` attributesJorge Aparicio
2019-02-24Merge #159bors[bot]
159: reject duplicate arguments in #[interrupt] and #[exception] r=TeXitoi a=japaric This program was being accepted: ``` rust #[task( capacity = 1, capacity = 2, priority = 1, priority = 2, )] fn foo() {} ``` now it will trigger a compiler error r? @korken89 || @TeXitoi Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-02-23reject duplicate arguments in #[interrupt] and #[exception]Jorge Aparicio
This program was being accepted: ``` rust #[task( capacity = 1, capacity = 2, priority = 1, priority = 2, )] fn foo() {} ``` now it will trigger a compiler error
2019-02-23Merge #153bors[bot]
153: add "nightly" feature; replace hint::unreachable_unchecked with a panic r=korken89 a=japaric this implements the action plan described in #149 to give you a sense of the overhead of this change: it has increased the binary size of some of our examples by up to 10% but this is mainly from pulling in a panic handler that does formatting r? @korken89 Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-02-23fix ciJorge Aparicio
2019-02-19Merge #154bors[bot]
154: add Duration.as_cycles r=japaric a=japaric cc @oni303 Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-02-19add Duration.as_cyclesJorge Aparicio
2019-02-19turn all potential UB into panicsJorge Aparicio
2019-02-19ci: report the size of built examplesJorge Aparicio
2019-02-19document the nightly featureJorge Aparicio
2019-02-19ci: test the nightly featureJorge Aparicio
2019-02-19add "nightly" featureJorge Aparicio
2019-02-15Merge #151bors[bot]
151: make builds reproducible r=japaric a=japaric This is a rebased and augmented version of #132. With this PR both dev and release builds that do not use the owned-singleton stuff become reproducible. (I haven't really bothered to make owned-singleton reproducible since [lifo] is way more ergonomic than [alloc-singleton] and will eventually make its way into heapless). [lifo]: https://github.com/japaric/lifo [alloc-singleton]: https://crates.io/crates/alloc-singleton Thanks @hugwijst for doing the bulk of the work! closes #132 Co-authored-by: Hugo van der Wijst <hvanderwijst@tesla.com> Co-authored-by: Hugo van der Wijst <hugo@wij.st> Co-authored-by: Jorge Aparicio <jorge@japaric.io>