Jorge Aparicio
a452700628
implement RFCs 147 and 155, etc.
...
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-05-01 20:49:25 +02:00
Jorge Aparicio
a562fb3232
v0.4.3
2019-04-21 18:20:57 +02:00
bors[bot]
77def32454
Merge #170
...
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-16 22:54:18 +00:00
Jorge Aparicio
210921e06c
now fix the fix
2019-04-17 00:18:02 +02:00
Jorge Aparicio
53f0ca1504
more nightly fixes
2019-04-16 23:41:00 +02:00
Jorge Aparicio
10d2638488
[NFC] fix nightly ci
2019-04-16 23:17:28 +02:00
Jorge Aparicio
aa7eec0299
check task priority at compile time
...
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-04-16 23:04:24 +02:00
Jorge Aparicio
8eccef7d9c
refactor: make binds
harder to misuse
2019-02-26 23:25:16 +01:00
Jorge Aparicio
2fd6ae69d1
binds
can only appear once in the argument list
2019-02-26 23:22:34 +01:00
Jorge Aparicio
11f795aaf6
add binds
example and make it work
2019-02-26 23:22:34 +01:00
Jorge Aparicio
72f0cc505a
make cfail test actually fail
2019-02-26 23:22:34 +01:00
Jorge Aparicio
d0f33add0a
add binds
argument to the interrupt
and exception
attributes
2019-02-26 23:22:31 +01:00
Jorge Aparicio
73529ea650
reject duplicate arguments in #[interrupt] and #[exception]
...
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-23 22:35:29 +01:00
Jorge Aparicio
88078e7770
add "nightly" feature
2019-02-19 12:37:25 +01:00
Jorge Aparicio
e5e54ee8f1
rebase fix
2019-02-16 00:28:12 +01:00
Jorge Aparicio
7ce052be37
cargo fmt
2019-02-16 00:26:07 +01:00
Jorge Aparicio
2b8e743f35
make debug builds reproducible
2019-02-16 00:25:48 +01:00
Hugo van der Wijst
577d188f72
Make generated names stable when sorting.
2019-02-16 00:23:01 +01:00
Hugo van der Wijst
a654d13eef
Seed RNG with package name and prepend string to full random name.
2019-02-16 00:23:01 +01:00
Hugo van der Wijst
be8a5e89b8
Make identifiers deterministic.
2019-02-16 00:23:01 +01:00
Hugo van der Wijst
2f89688ca9
Make builds reproducible
...
This is done by using `BTreeMap`s and `BTreeSet`s to get deterministic
ordering.
Also updated the CI job to check reproducibility of all examples.
2019-02-16 00:22:22 +01:00
Jorge Aparicio
5f7e831d27
fix non_camel_case_types warnings
2019-02-13 15:37:24 +01:00
Jorge Aparicio
88599780e0
accept init: fn() -> init::LateResources
2019-02-12 14:53:49 +01:00
Jorge Aparicio
557a51ede1
forbid early returns in init
2019-02-12 11:07:15 +01:00
Hugo van der Wijst
45e98afbc1
Fix build on recent nightlies.
2019-01-17 10:55:21 -08:00
Jorge Aparicio
56d09a12dd
move macros crate to the 2018 edition
2018-12-16 19:14:58 +01:00
Jorge Aparicio
8e9a91d0b0
properly handle #[cfg]
(conditional compilation) on tasks
2018-12-16 19:10:36 +01:00
Jorge Aparicio
4345c10596
properly handle #[cfg] (conditional compilation) on resources
2018-12-16 18:37:36 +01:00
Jorge Aparicio
9757c33b00
use the single core variant of spsc::Queue
2018-12-16 01:11:54 +01:00
Jorge Aparicio
4f00d8bd78
codegen/statics: forward #[cfg] attributes
...
fixes #110
2018-12-15 22:04:30 +01:00
Jorge Aparicio
d14e25d72d
move some interrupt configuration to pre_init
2018-12-15 20:35:00 +01:00
Jorge Aparicio
f7ac71ab22
codegen: merge dictionaries related to task dispatchers
2018-12-15 19:17:08 +01:00
Jorge Aparicio
0b3f0b2eb5
codegen: merge dictionaries related to tasks
2018-12-15 19:07:09 +01:00
Jorge Aparicio
35bb76ef5f
codegen: stop using export_name
...
`export_name` creates external symbols that won't be removed when using `-Z
emit-stack-sizes`
2018-12-02 17:43:36 +01:00
Jorge Aparicio
22d758ddac
fix codegen
2018-11-04 19:46:49 +01:00
Jorge Aparicio
37a0692a0f
impl Mutex on all shared resources
...
document how to write generic code that operates on resources
2018-11-04 18:50:42 +01:00
Jorge Aparicio
c631049efc
v0.4.0
...
closes #32
closes #33
2018-11-03 17:16:55 +01:00
Jorge Aparicio
abca829926
more fixes
2018-08-24 16:31:04 +02:00
Ferdia McKeogh
14b1811182
Fix "Could not find Op
in proc_macro
"
2018-06-07 11:45:11 +01:00
Jorge Aparicio
7fdf16eab9
update parser
...
closes #69
this doesn't change functionality per se but improves diagnostics in some cases. Some hard errors
have becomes warnings, for example: when `resources` is empty, or when `idle.path` is set to the
default `idle` path.
2018-04-16 21:32:29 +02:00
Jorge Aparicio
def4fc8079
v0.3.0
2018-01-15 23:33:09 +01:00
Jorge Aparicio
1be43fc489
adapt to changes in the cortex-m crate
2018-01-11 20:56:45 +01:00
Jorge Aparicio
b00f4fec14
add missing comma
2017-12-17 10:00:56 +01:00
Jorge Aparicio
d30bdcb096
safe &'static mut
references via init.resources
2017-12-09 17:17:56 +01:00
Jorge Aparicio
a6dd004113
implement the Resource trait for owned resources
...
this unbreaks the "generics" example
2017-12-09 17:17:56 +01:00
Jorge Aparicio
219e172680
drop the Static wrapper
2017-12-09 17:15:15 +01:00
Jorge Aparicio
62c5c1ae43
make resource proxies not Sync
2017-12-09 16:13:22 +01:00
Jorge Aparicio
9865a7246d
make resource proxies !Send
2017-12-09 15:10:29 +01:00
Jorge Aparicio
79e2b7dc2e
rename LateResourceValues to LateResources
2017-12-09 13:20:41 +01:00
Jorge Aparicio
1830bdbe5c
remove special case around peripherals from codegen
2017-12-09 13:08:08 +01:00