aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen-verbose.rs
diff options
context:
space:
mode:
authorGravatar Henrik Tjäder <henrik@tjaders.com> 2020-09-01 17:04:55 +0000
committerGravatar Henrik Tjäder <henrik@tjaders.com> 2020-09-01 17:48:53 +0000
commitd06cf91acc1126e66002f8884b1e7b7a65a9b24a (patch)
tree6654eb05d7ad4d1a8a2e1ad15bb8e8b14bae3d31 /macros/src/codegen-verbose.rs
parentd8c9476372e25799224d0225bb12c9a9fe043743 (diff)
downloadrtic-d06cf91acc1126e66002f8884b1e7b7a65a9b24a.tar.gz
rtic-d06cf91acc1126e66002f8884b1e7b7a65a9b24a.tar.zst
rtic-d06cf91acc1126e66002f8884b1e7b7a65a9b24a.zip
Remove stale code, fix comment styling
Diffstat (limited to 'macros/src/codegen-verbose.rs')
-rw-r--r--macros/src/codegen-verbose.rs226
1 files changed, 0 insertions, 226 deletions
diff --git a/macros/src/codegen-verbose.rs b/macros/src/codegen-verbose.rs
deleted file mode 100644
index 2b71cf5c..00000000
--- a/macros/src/codegen-verbose.rs
+++ /dev/null
@@ -1,226 +0,0 @@
-use proc_macro2::TokenStream as TokenStream2;
-use quote::quote;
-use rtic_syntax::ast::App;
-
-use crate::{analyze::Analysis, check::Extra};
-
-mod assertions;
-mod dispatchers;
-mod hardware_tasks;
-mod idle;
-mod init;
-mod locals;
-mod module;
-mod post_init;
-mod pre_init;
-mod resources;
-mod resources_struct;
-mod schedule;
-mod schedule_body;
-mod software_tasks;
-mod spawn;
-mod spawn_body;
-mod timer_queue;
-mod util;
-
-// TODO document the syntax here or in `rtic-syntax`
-pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
- let mut const_app = vec![];
- let mut mains = vec![];
- let mut root = vec![];
- let mut user = vec![];
- let mut imports = vec![];
-
- // generate a `main` function for each core
- for core in 0..app.args.cores {
- let assertion_stmts = assertions::codegen(core, analysis, extra);
-
- let (const_app_pre_init, pre_init_stmts) = pre_init::codegen(core, &app, analysis, extra);
-
- let (const_app_init, _root_init, user_init, user_init_imports, call_init) =
- init::codegen(core, app, analysis, extra);
-
- let (const_app_post_init, post_init_stmts) =
- post_init::codegen(core, &app, analysis, extra);
-
- let (const_app_idle, _root_idle, user_idle, user_idle_imports, call_idle) =
- idle::codegen(core, app, analysis, extra);
-
- user.push(quote!(
- /// USER INIT
- #user_init
-
- /// USER IDLE
- #user_idle
- ));
-
- // Stow away the imports generated for each core
- imports.push(quote!(
- /// USER IMPORTS
- #(#user_init_imports)*
-
- /// USER IDLE
- #(#user_idle_imports)*
- ));
-
- root.push(quote!(
- #(#_root_init)*
-
- #(#_root_idle)*
- ));
-
- const_app.push(quote!(
- #(#const_app_pre_init)*
-
- #const_app_init
-
- #(#const_app_post_init)*
-
- #const_app_idle
- ));
-
- let cfg_core = util::cfg_core(core, app.args.cores);
- let main = util::suffixed("main", core);
- let section = util::link_section("text", core);
- mains.push(quote!(
- #[no_mangle]
- #section
- #cfg_core
- unsafe extern "C" fn #main() -> ! {
- #(#assertion_stmts)*
-
- #(#pre_init_stmts)*
-
- #call_init
-
- #(#post_init_stmts)*
-
- #call_idle
- }
- ));
- }
-
- let (const_app_resources, mod_resources, mod_resources_imports) =
- resources::codegen(app, analysis, extra);
-
- let (
- const_app_hardware_tasks,
- root_hardware_tasks,
- user_hardware_tasks,
- user_hardware_tasks_imports,
- ) = hardware_tasks::codegen(app, analysis, extra);
-
- let (
- const_app_software_tasks,
- root_software_tasks,
- user_software_tasks,
- user_software_tasks_imports,
- ) = software_tasks::codegen(app, analysis, extra);
-
- let const_app_dispatchers = dispatchers::codegen(app, analysis, extra);
-
- let const_app_spawn = spawn::codegen(app, analysis, extra);
-
- let const_app_timer_queue = timer_queue::codegen(app, analysis, extra);
-
- let const_app_schedule = schedule::codegen(app, extra);
-
- let cores = app.args.cores.to_string();
- let cfg_core = quote!(#[cfg(core = #cores)]);
- let msg = format!(
- "specified {} core{} but tried to compile for more than {0} core{1}",
- app.args.cores,
- if app.args.cores > 1 { "s" } else { "" }
- );
- let check_excess_cores = quote!(
- #cfg_core
- compile_error!(#msg);
- );
-
- /*
- for s in root.clone() {
- println!("{}", s.to_string());
- }
- */
-
- let user_imports = app.user_imports.clone();
- let user_code = app.user_code.clone();
- let name = &app.name;
- let device = extra.device;
- let endresult = quote!(
- /// USER
- #(#user)*
-
- /// USER_HW_TASKS
- #(#user_hardware_tasks)*
-
- /// USER_SW_TASKS
- #(#user_software_tasks)*
-
- /// ROOT
- //#(#root)*
-
- /// MOD_RESOURCES
- #mod_resources
-
- /// root_hardware_tasks
- #(#root_hardware_tasks)*
-
- /// root_software_tasks
- #(#root_software_tasks)*
-
- /// Implementation details
- mod #name {
- /// Always include the device crate which contains the vector table
- use #device as _;
- #(#imports)*
- /// User imports
- #(#user_imports)*
-
- /// User code from within the module
- #(#user_code)*
-
- /// User hardware tasks import
- #(#user_hardware_tasks_imports)*
-
- /// User software_tasks
- #(#user_software_tasks_imports)*
-
- /// Mod resources imports
- #(#mod_resources_imports)*
-
- #check_excess_cores
-
- /// Const app
- #(#const_app)*
-
- /// Const app resources
- #(#const_app_resources)*
-
- /// Const app hw tasks
- #(#const_app_hardware_tasks)*
-
- /// Const app sw tasks
- #(#const_app_software_tasks)*
-
- /// Const app dispatchers
- #(#const_app_dispatchers)*
-
- /// Const app spawn
- #(#const_app_spawn)*
- /// Const app spawn end
-
- #(#const_app_timer_queue)*
-
- #(#const_app_schedule)*
-
- /// Mains
- #(#mains)*
- }
- );
- for s in endresult.clone() {
- eprintln!("{}", s.to_string());
- }
-
- endresult
-}
5145ad1d8bb861137d85da7a3e32ef36?s=13&d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner 5-2/+37 2022-08-21Slightly optimize escapeHTMLescapeHTML8 & escapeHTML16Gravatar Jarred Sumner 2-80/+134 2022-08-20Update WebKitGravatar Jarred Sumner 1-0/+0 2022-08-20Export `createSyntheticModule`Gravatar Jarred Sumner 3-1/+22 2022-08-20wip support #!Gravatar Jarred Sumner 1-1/+6 2022-08-20fix(ReferenceError): expected type in getCode (#1120)Gravatar Hyro 1-1/+1 2022-08-20Fix running zig testsGravatar Jarred Sumner 1-3/+10 2022-08-20Fix crash on invalid JSXGravatar Jarred Sumner 1-1/+1 2022-08-20Add `code` to `ResolveError`Gravatar Jarred Sumner 1-0/+14 2022-08-20Add buffer.indexOf, includes and lastIndexOf (#1112)Gravatar Zilin Zhu 2-32/+237 2022-08-19fix buffer.slice(0, 0) (#1114)Gravatar Zilin Zhu 23-27/+58 2022-08-19fix buffer.copy (#1113)Gravatar Zilin Zhu 2-21/+35 2022-08-19Update build-idGravatar Jarred Sumner 1-1/+1 2022-08-19Make React SSR up to 3x fasterGravatar Jarred Sumner 1-238/+247 2022-08-192x faster `Bun.serve` with async function handlersGravatar Jarred Sumner 1-4/+13 2022-08-19Update bun init testbun-v0.1.10Gravatar Jarred Sumner 1-2/+2 2022-08-18Synchronously dispatch `close` eventGravatar Jarred Sumner 1-0/+5 2022-08-18Fix memory leak in `WebSocket`Gravatar Jarred Sumner 1-13/+4 2022-08-18Make `Request`, `Response` and `TextDecoder` not read-onlyGravatar Jarred Sumner 7-120/+180 2022-08-18Update build-idGravatar Jarred Sumner 1-1/+1 2022-08-18un-delete some codeGravatar Jarred Sumner 2-8/+15 2022-08-18Add string support to `Buffer.fill`Gravatar Jarred Sumner 7-77/+119 2022-08-18[node compat] Fix issue with `Buffer.compare` when called on the constructorGravatar Jarred Sumner 1-31/+42 2022-08-18Fix console.log printing `[native code]` for too many thingsGravatar Jarred Sumner 1-1/+6 2022-08-18Faster TextDecoderGravatar Jarred Sumner 24-369/+399 2022-08-18Fix Next.js regressionGravatar Jarred Sumner 1-12/+45 2022-08-18Fix `bun:wrap` not loadingGravatar Jarred Sumner 3-21/+41