diff --git a/README.md b/README.md index 9d5d22a1..edb235bc 100644 --- a/README.md +++ b/README.md @@ -96,17 +96,24 @@ environments, while Zig remains the default for day-to-day builds. - [`docs/architecture/batch_planner_modes_equal.md`](docs/architecture/batch_planner_modes_equal.md) - [`docs/architecture/batch_planner_modes_sequential.md`](docs/architecture/batch_planner_modes_sequential.md) - [`docs/architecture/batch_planner_modes_simple.md`](docs/architecture/batch_planner_modes_simple.md) +- [`docs/architecture/batch_planner.md`](docs/architecture/batch_planner.md) - [`docs/architecture/gbnf_rule_parser_definition_parser.md`](docs/architecture/gbnf_rule_parser_definition_parser.md) - [`docs/architecture/gbnf_rule_parser_expression_parser.md`](docs/architecture/gbnf_rule_parser_expression_parser.md) +- [`docs/architecture/gbnf_rule_parser_lexer.md`](docs/architecture/gbnf_rule_parser_lexer.md) - [`docs/architecture/gbnf_rule_parser_nonterm_parser.md`](docs/architecture/gbnf_rule_parser_nonterm_parser.md) +- [`docs/architecture/gbnf_rule_parser.md`](docs/architecture/gbnf_rule_parser.md) - [`docs/architecture/gbnf_rule_parser_term_parser.md`](docs/architecture/gbnf_rule_parser_term_parser.md) - [`docs/architecture/gbnf_sampler_accept_parser.md`](docs/architecture/gbnf_sampler_accept_parser.md) - [`docs/architecture/gbnf_sampler_candidate_parser.md`](docs/architecture/gbnf_sampler_candidate_parser.md) - [`docs/architecture/gbnf_sampler_matcher_parser.md`](docs/architecture/gbnf_sampler_matcher_parser.md) +- [`docs/architecture/gbnf_sampler.md`](docs/architecture/gbnf_sampler.md) - [`docs/architecture/gbnf_sampler_token_parser.md`](docs/architecture/gbnf_sampler_token_parser.md) +- [`docs/architecture/generator.md`](docs/architecture/generator.md) +- [`docs/architecture/gguf_loader.md`](docs/architecture/gguf_loader.md) - [`docs/architecture/graph_allocator_liveness_pass.md`](docs/architecture/graph_allocator_liveness_pass.md) - [`docs/architecture/graph_allocator_ordering_pass.md`](docs/architecture/graph_allocator_ordering_pass.md) - [`docs/architecture/graph_allocator_placement_pass.md`](docs/architecture/graph_allocator_placement_pass.md) +- [`docs/architecture/graph_allocator.md`](docs/architecture/graph_allocator.md) - [`docs/architecture/graph_assembler_assemble_alloc_pass.md`](docs/architecture/graph_assembler_assemble_alloc_pass.md) - [`docs/architecture/graph_assembler_assemble_build_pass.md`](docs/architecture/graph_assembler_assemble_build_pass.md) - [`docs/architecture/graph_assembler_assemble_validate_pass.md`](docs/architecture/graph_assembler_assemble_validate_pass.md) @@ -114,16 +121,57 @@ environments, while Zig remains the default for day-to-day builds. - [`docs/architecture/graph_assembler_reserve_build_pass.md`](docs/architecture/graph_assembler_reserve_build_pass.md) - [`docs/architecture/graph_assembler_reserve_validate_pass.md`](docs/architecture/graph_assembler_reserve_validate_pass.md) - [`docs/architecture/graph_assembler_reuse_decision_pass.md`](docs/architecture/graph_assembler_reuse_decision_pass.md) +- [`docs/architecture/graph_assembler.md`](docs/architecture/graph_assembler.md) - [`docs/architecture/graph_processor_alloc_step.md`](docs/architecture/graph_processor_alloc_step.md) - [`docs/architecture/graph_processor_bind_step.md`](docs/architecture/graph_processor_bind_step.md) - [`docs/architecture/graph_processor_extract_step.md`](docs/architecture/graph_processor_extract_step.md) - [`docs/architecture/graph_processor_kernel_step.md`](docs/architecture/graph_processor_kernel_step.md) - [`docs/architecture/graph_processor_prepare_step.md`](docs/architecture/graph_processor_prepare_step.md) +- [`docs/architecture/graph_processor.md`](docs/architecture/graph_processor.md) - [`docs/architecture/graph_processor_validate_step.md`](docs/architecture/graph_processor_validate_step.md) +- [`docs/architecture/graph.md`](docs/architecture/graph.md) +- [`docs/architecture/kernel_aarch64.md`](docs/architecture/kernel_aarch64.md) +- [`docs/architecture/kernel_cuda.md`](docs/architecture/kernel_cuda.md) +- [`docs/architecture/kernel_metal.md`](docs/architecture/kernel_metal.md) +- [`docs/architecture/kernel_vulkan.md`](docs/architecture/kernel_vulkan.md) +- [`docs/architecture/kernel_wasm.md`](docs/architecture/kernel_wasm.md) +- [`docs/architecture/kernel_x86_64.md`](docs/architecture/kernel_x86_64.md) +- [`docs/architecture/logits_sampler.md`](docs/architecture/logits_sampler.md) +- [`docs/architecture/logits_validator.md`](docs/architecture/logits_validator.md) +- [`docs/architecture/memory_hybrid.md`](docs/architecture/memory_hybrid.md) +- [`docs/architecture/memory_kv.md`](docs/architecture/memory_kv.md) +- [`docs/architecture/memory_recurrent.md`](docs/architecture/memory_recurrent.md) +- [`docs/architecture/model_loader.md`](docs/architecture/model_loader.md) +- [`docs/architecture/model_weight_loader.md`](docs/architecture/model_weight_loader.md) +- [`docs/architecture/tensor.md`](docs/architecture/tensor.md) +- [`docs/architecture/tensor_view.md`](docs/architecture/tensor_view.md) +- [`docs/architecture/text_conditioner.md`](docs/architecture/text_conditioner.md) +- [`docs/architecture/text_detokenizer.md`](docs/architecture/text_detokenizer.md) +- [`docs/architecture/text_encoders_bpe.md`](docs/architecture/text_encoders_bpe.md) +- [`docs/architecture/text_encoders_fallback.md`](docs/architecture/text_encoders_fallback.md) +- [`docs/architecture/text_encoders_plamo2.md`](docs/architecture/text_encoders_plamo2.md) +- [`docs/architecture/text_encoders_rwkv.md`](docs/architecture/text_encoders_rwkv.md) +- [`docs/architecture/text_encoders_spm.md`](docs/architecture/text_encoders_spm.md) +- [`docs/architecture/text_encoders_ugm.md`](docs/architecture/text_encoders_ugm.md) +- [`docs/architecture/text_encoders_wpm.md`](docs/architecture/text_encoders_wpm.md) +- [`docs/architecture/text_formatter.md`](docs/architecture/text_formatter.md) +- [`docs/architecture/text_jinja_formatter.md`](docs/architecture/text_jinja_formatter.md) - [`docs/architecture/text_jinja_parser_classifier_parser.md`](docs/architecture/text_jinja_parser_classifier_parser.md) +- [`docs/architecture/text_jinja_parser_lexer.md`](docs/architecture/text_jinja_parser_lexer.md) - [`docs/architecture/text_jinja_parser_program_parser_expression_parser.md`](docs/architecture/text_jinja_parser_program_parser_expression_parser.md) - [`docs/architecture/text_jinja_parser_program_parser.md`](docs/architecture/text_jinja_parser_program_parser.md) - [`docs/architecture/text_jinja_parser_program_parser_statement_parser.md`](docs/architecture/text_jinja_parser_program_parser_statement_parser.md) +- [`docs/architecture/text_jinja_parser.md`](docs/architecture/text_jinja_parser.md) +- [`docs/architecture/text_renderer.md`](docs/architecture/text_renderer.md) +- [`docs/architecture/text_tokenizer_preprocessor_bpe.md`](docs/architecture/text_tokenizer_preprocessor_bpe.md) +- [`docs/architecture/text_tokenizer_preprocessor_fallback.md`](docs/architecture/text_tokenizer_preprocessor_fallback.md) +- [`docs/architecture/text_tokenizer_preprocessor_plamo2.md`](docs/architecture/text_tokenizer_preprocessor_plamo2.md) +- [`docs/architecture/text_tokenizer_preprocessor_rwkv.md`](docs/architecture/text_tokenizer_preprocessor_rwkv.md) +- [`docs/architecture/text_tokenizer_preprocessor_spm.md`](docs/architecture/text_tokenizer_preprocessor_spm.md) +- [`docs/architecture/text_tokenizer_preprocessor_ugm.md`](docs/architecture/text_tokenizer_preprocessor_ugm.md) +- [`docs/architecture/text_tokenizer_preprocessor_wpm.md`](docs/architecture/text_tokenizer_preprocessor_wpm.md) +- [`docs/architecture/text_tokenizer.md`](docs/architecture/text_tokenizer.md) +- [`docs/architecture/token_batcher.md`](docs/architecture/token_batcher.md) ## Regenerating docs diff --git a/docs/architecture/batch_planner.md b/docs/architecture/batch_planner.md index 8efcea30..bdcf9465 100644 --- a/docs/architecture/batch_planner.md +++ b/docs/architecture/batch_planner.md @@ -8,67 +8,63 @@ Source: [`emel/batch/planner/sm.hpp`](https://github.com/stateforward/emel.cpp/b stateDiagram-v2 direction TB [*] --> initialized - initialized --> validate_decision : request [always] / lambda_actions_11_36 - validate_decision --> normalizing_batch : completion [lambda_guards_11_5] / none - validate_decision --> invalid_request : completion [always] / lambda_actions_60_58 - normalizing_batch --> mode_decision : completion [always] / lambda_actions_22_41 - mode_decision --> model__ : completion [lambda_guards_21_5] / none - mode_decision --> model__ : completion [lambda_guards_26_5] / none - mode_decision --> model__ : completion [lambda_guards_36_37] / none - mode_decision --> invalid_request : completion [lambda_guards_43_5] / lambda_actions_79_47 - model__ --> publishing : completion [lambda_guards_55_5] / lambda_actions_29_33 - model__ --> plan_failed : completion [lambda_guards_69_5] / none - model__ --> publishing : completion [lambda_guards_55_5] / lambda_actions_29_33 - model__ --> plan_failed : completion [lambda_guards_69_5] / none - model__ --> publishing : completion [lambda_guards_55_5] / lambda_actions_29_33 - model__ --> plan_failed : completion [lambda_guards_69_5] / none - publishing --> done : completion [always] / lambda_actions_31_39 - done --> validate_decision : request [always] / lambda_actions_11_36 - invalid_request --> validate_decision : request [always] / lambda_actions_11_36 - plan_failed --> done : completion [always] / lambda_actions_65_54 - plan_failed --> validate_decision : request [always] / lambda_actions_11_36 - unexpected_event --> validate_decision : request [always] / lambda_actions_11_36 - initialized --> unexpected_event : _ [always] / none - validate_decision --> unexpected_event : _ [always] / none - normalizing_batch --> unexpected_event : _ [always] / none - mode_decision --> unexpected_event : _ [always] / none - publishing --> unexpected_event : _ [always] / none - done --> unexpected_event : _ [always] / none - invalid_request --> unexpected_event : _ [always] / none - plan_failed --> unexpected_event : _ [always] / none - unexpected_event --> unexpected_event : _ [always] / none + initialized --> validate_decision : request_runtime [always] / lambda_actions_27_36 + validate_decision --> normalizing_batch : completion_request_runtime_ [lambda_guards_24_42] / none + validate_decision --> invalid_request : completion_request_runtime_ [lambda_guards_29_44] / lambda_actions_66_46 + normalizing_batch --> mode_decision : completion_request_runtime_ [always] / lambda_actions_38_41 + mode_decision --> model__ : completion_request_runtime_ [lambda_guards_34_40] / none + mode_decision --> model__ : completion_request_runtime_ [lambda_guards_39_39] / none + mode_decision --> model__ : completion_request_runtime_ [lambda_guards_50_37] / none + mode_decision --> invalid_request : completion_request_runtime_ [lambda_guards_56_41] / lambda_actions_73_43 + model__ --> publishing : completion_request_runtime_ [lambda_guards_67_44] / lambda_actions_50_33 + model__ --> done : completion_request_runtime_ [lambda_guards_87_52] / lambda_actions_80_61 + model__ --> done : completion_request_runtime_ [lambda_guards_92_55] / lambda_actions_85_55 + model__ --> publishing : completion_request_runtime_ [lambda_guards_67_44] / lambda_actions_50_33 + model__ --> done : completion_request_runtime_ [lambda_guards_87_52] / lambda_actions_80_61 + model__ --> done : completion_request_runtime_ [lambda_guards_92_55] / lambda_actions_85_55 + model__ --> publishing : completion_request_runtime_ [lambda_guards_67_44] / lambda_actions_50_33 + model__ --> done : completion_request_runtime_ [lambda_guards_87_52] / lambda_actions_80_61 + model__ --> done : completion_request_runtime_ [lambda_guards_92_55] / lambda_actions_85_55 + publishing --> done : completion_request_runtime_ [always] / lambda_actions_52_39 + done --> validate_decision : request_runtime [always] / lambda_actions_27_36 + invalid_request --> validate_decision : request_runtime [always] / lambda_actions_27_36 + initialized --> initialized : _ [always] / lambda_actions_90_39 + validate_decision --> initialized : _ [always] / lambda_actions_90_39 + normalizing_batch --> initialized : _ [always] / lambda_actions_90_39 + mode_decision --> initialized : _ [always] / lambda_actions_90_39 + publishing --> initialized : _ [always] / lambda_actions_90_39 + done --> initialized : _ [always] / lambda_actions_90_39 + invalid_request --> initialized : _ [always] / lambda_actions_90_39 ``` ## Transitions | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_11_36`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_11_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`normalizing_batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_60_58`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`invalid_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`normalizing_batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_22_41`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_21_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_26_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_36_37`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_43_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_79_47`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`invalid_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_55_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_29_33`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`publishing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_69_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`plan_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_55_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_29_33`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`publishing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_69_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`plan_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_55_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_29_33`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`publishing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_69_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`plan_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`publishing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_31_39`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_11_36`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`invalid_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_11_36`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`plan_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_65_54`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`plan_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_11_36`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_11_36`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`normalizing_batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`publishing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`invalid_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`plan_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | -| [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`request_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_27_36`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_24_42`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`normalizing_batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_29_44`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_66_46`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`invalid_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`normalizing_batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_38_41`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_34_40`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_39_39`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_50_37`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_56_41`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_73_43`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`invalid_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_67_44`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_50_33`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`publishing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_87_52`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_80_61`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_92_55`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_85_55`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_67_44`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_50_33`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`publishing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_87_52`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_80_61`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_92_55`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_85_55`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_67_44`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_50_33`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`publishing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_87_52`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_80_61`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_guards_92_55`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_85_55`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`publishing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_52_39`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`request_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_27_36`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`invalid_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`request_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_27_36`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_90_39`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_90_39`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`normalizing_batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_90_39`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_90_39`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`publishing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_90_39`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_90_39`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | +| [`invalid_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`lambda_actions_90_39`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/sm.hpp) | diff --git a/docs/architecture/gbnf_rule_parser.md b/docs/architecture/gbnf_rule_parser.md index d4bb4c16..468b094b 100644 --- a/docs/architecture/gbnf_rule_parser.md +++ b/docs/architecture/gbnf_rule_parser.md @@ -12,61 +12,91 @@ stateDiagram-v2 ready --> ready : parse_rules [invalid_parse_with_dispatchable_grammar_] / reject_invalid_parse_with_dispatch_ ready --> ready : parse_rules [invalid_parse_with_grammar_only_] / reject_invalid_parse_with_grammar_only_ ready --> ready : parse_rules [invalid_parse_without_grammar_] / reject_invalid_parse_without_grammar_ - expect_rule_name --> expect_rule_name_decision : completion [always] / request_next_token_ - expect_rule_name_decision --> parse_decision : completion [lexer_failed_] / none - expect_rule_name_decision --> eof_symbols_decision : completion [lexer_at_eof_] / none - expect_rule_name_decision --> model__ : completion [token_identifier_] / set_nonterm_mode_definition_ - expect_rule_name_decision --> expect_rule_name : completion [token_newline_] / none - expect_rule_name_decision --> parse_decision : completion [always] / consume_token_invalid_ - model__ --> parse_decision : completion [nonterm_failed_] / none - model__ --> expect_definition : completion [nonterm_definition_done_] / apply_nonterm_definition_ - model__ --> in_rule_expression_after_term : completion [nonterm_reference_done_] / apply_nonterm_reference_ - model__ --> parse_decision : completion [always] / consume_token_invalid_ - expect_definition --> expect_definition_decision : completion [always] / request_next_token_ - expect_definition_decision --> parse_decision : completion [lexer_failed_] / none - expect_definition_decision --> parse_decision : completion [lexer_at_eof_] / fail_eof_in_expect_definition_ - expect_definition_decision --> model__ : completion [lexer_has_token_] / none - expect_definition_decision --> parse_decision : completion [always] / consume_token_invalid_ - model__ --> parse_decision : completion [definition_failed_] / none - model__ --> in_rule_expression_need_term : completion [definition_done_] / consume_token_definition_operator_ - model__ --> parse_decision : completion [always] / consume_token_invalid_ - in_rule_expression_need_term --> in_rule_expression_need_term_decision : completion [always] / request_next_token_ - in_rule_expression_need_term_decision --> parse_decision : completion [lexer_failed_] / none - in_rule_expression_need_term_decision --> model__ : completion [lexer_has_token_] / set_term_origin_need_term_ - in_rule_expression_need_term_decision --> parse_decision : completion [always] / consume_token_invalid_ - in_rule_expression_after_term --> in_rule_expression_after_term_decision : completion [always] / request_next_token_ - in_rule_expression_after_term_decision --> parse_decision : completion [lexer_failed_] / none - in_rule_expression_after_term_decision --> eof_symbols_decision : completion [eof_can_finalize_active_rule_] / finalize_active_rule_on_eof_ - in_rule_expression_after_term_decision --> parse_decision : completion [eof_cannot_finalize_active_rule_] / consume_token_invalid_ - in_rule_expression_after_term_decision --> model__ : completion [lexer_has_token_] / set_term_origin_after_term_ - in_rule_expression_after_term_decision --> parse_decision : completion [always] / consume_token_invalid_ - model__ --> parse_decision : completion [expression_failed_] / none - model__ --> model__ : completion [expression_done_identifier_] / set_nonterm_mode_reference_ - model__ --> model__ : completion [expression_done_non_identifier_] / none - model__ --> parse_decision : completion [always] / consume_token_invalid_ - model__ --> parse_decision : completion [term_failed_] / none - model__ --> in_rule_expression_after_term : completion [term_need_literal_valid_] / consume_token_literal_ - model__ --> in_rule_expression_after_term : completion [term_need_character_class_valid_] / consume_token_character_class_ - model__ --> in_rule_expression_after_term : completion [term_need_rule_reference_valid_] / consume_token_rule_reference_ - model__ --> in_rule_expression_after_term : completion [term_need_dot_valid_] / consume_token_dot_ - model__ --> in_rule_expression_need_term : completion [term_need_open_group_valid_] / consume_token_open_group_ - model__ --> in_rule_expression_need_term : completion [term_need_newline_with_group_depth_nonzero_] / none - model__ --> parse_decision : completion [term_from_need_term_] / consume_token_invalid_ - model__ --> in_rule_expression_after_term : completion [term_after_literal_valid_] / consume_token_literal_ - model__ --> in_rule_expression_after_term : completion [term_after_character_class_valid_] / consume_token_character_class_ - model__ --> in_rule_expression_after_term : completion [term_after_rule_reference_valid_] / consume_token_rule_reference_ - model__ --> in_rule_expression_after_term : completion [term_after_dot_valid_] / consume_token_dot_ - model__ --> in_rule_expression_need_term : completion [term_after_open_group_valid_] / consume_token_open_group_ - model__ --> in_rule_expression_need_term : completion [term_after_alternation_valid_] / consume_token_alternation_ - model__ --> in_rule_expression_after_term : completion [term_after_newline_with_group_depth_nonzero_] / none - model__ --> expect_rule_name : completion [term_after_newline_with_group_depth_zero_valid_] / finalize_active_rule_on_eof_ - model__ --> in_rule_expression_after_term : completion [term_after_close_group_valid_] / consume_token_close_group_ - model__ --> in_rule_expression_after_term : completion [term_after_quantifier_valid_] / consume_token_quantifier_ - model__ --> parse_decision : completion [term_from_after_term_] / consume_token_invalid_ - eof_symbols_decision --> parse_decision : completion [eof_can_finalize_symbols_] / none - eof_symbols_decision --> parse_decision : completion [eof_cannot_finalize_symbols_] / consume_token_invalid_ - parse_decision --> ready : completion [phase_ok_] / dispatch_done_ - parse_decision --> ready : completion [phase_failed_] / dispatch_error_ + expect_rule_name --> expect_rule_name_decision : completion_parse_rules_ [always] / request_next_token_ + expect_rule_name_decision --> parse_decision : completion_parse_rules_ [lexer_failed_] / none + expect_rule_name_decision --> eof_symbols_decision : completion_parse_rules_ [lexer_at_eof_] / none + expect_rule_name_decision --> model__ : completion_parse_rules_ [token_identifier_] / set_nonterm_mode_definition_ + expect_rule_name_decision --> expect_rule_name : completion_parse_rules_ [token_newline_] / none + expect_rule_name_decision --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + model__ --> parse_decision : completion_parse_rules_ [nonterm_failed_] / none + model__ --> expect_definition : completion_parse_rules_ [nonterm_definition_done_] / apply_nonterm_definition_ + model__ --> in_rule_expression_after_term : completion_parse_rules_ [nonterm_reference_done_] / apply_nonterm_reference_ + model__ --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + expect_definition --> expect_definition_decision : completion_parse_rules_ [always] / request_next_token_ + expect_definition_decision --> parse_decision : completion_parse_rules_ [lexer_failed_] / none + expect_definition_decision --> parse_decision : completion_parse_rules_ [lexer_at_eof_] / fail_eof_in_expect_definition_ + expect_definition_decision --> model__ : completion_parse_rules_ [lexer_has_token_] / none + expect_definition_decision --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + model__ --> parse_decision : completion_parse_rules_ [definition_failed_] / none + model__ --> in_rule_expression_need_term : completion_parse_rules_ [definition_done_] / consume_token_definition_operator_ + model__ --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + in_rule_expression_need_term --> in_rule_expression_need_term_decision : completion_parse_rules_ [always] / request_next_token_ + in_rule_expression_need_term_decision --> parse_decision : completion_parse_rules_ [lexer_failed_] / none + in_rule_expression_need_term_decision --> model__ : completion_parse_rules_ [lexer_has_token_] / set_term_origin_need_term_ + in_rule_expression_need_term_decision --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + in_rule_expression_after_term --> in_rule_expression_after_term_decision : completion_parse_rules_ [always] / request_next_token_ + in_rule_expression_after_term_decision --> parse_decision : completion_parse_rules_ [lexer_failed_] / none + in_rule_expression_after_term_decision --> eof_symbols_decision : completion_parse_rules_ [eof_can_finalize_active_rule_] / finalize_active_rule_on_eof_ + in_rule_expression_after_term_decision --> parse_decision : completion_parse_rules_ [eof_cannot_finalize_active_rule_] / consume_token_invalid_ + in_rule_expression_after_term_decision --> model__ : completion_parse_rules_ [lexer_has_token_] / set_term_origin_after_term_ + in_rule_expression_after_term_decision --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + model__ --> parse_decision : completion_parse_rules_ [expression_failed_] / none + model__ --> model__ : completion_parse_rules_ [expression_done_identifier_] / set_nonterm_mode_reference_ + model__ --> model__ : completion_parse_rules_ [expression_done_non_identifier_] / none + model__ --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + model__ --> parse_decision : completion_parse_rules_ [term_failed_] / none + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_need_literal_valid_] / consume_token_literal_ + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_need_character_class_valid_] / consume_token_character_class_ + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_after_literal_valid_] / consume_token_literal_ + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_after_character_class_valid_] / consume_token_character_class_ + model__ --> rule_reference_decision : completion_parse_rules_ [term_need_rule_reference_candidate_] / none + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_need_dot_valid_] / consume_token_dot_ + model__ --> in_rule_expression_need_term : completion_parse_rules_ [term_need_open_group_valid_] / consume_token_open_group_ + model__ --> in_rule_expression_need_term : completion_parse_rules_ [term_need_newline_with_group_depth_nonzero_] / none + model__ --> parse_decision : completion_parse_rules_ [term_from_need_term_] / consume_token_invalid_ + model__ --> rule_reference_decision : completion_parse_rules_ [term_after_rule_reference_candidate_] / none + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_after_dot_valid_] / consume_token_dot_ + model__ --> in_rule_expression_need_term : completion_parse_rules_ [term_after_open_group_valid_] / consume_token_open_group_ + model__ --> in_rule_expression_need_term : completion_parse_rules_ [term_after_alternation_valid_] / consume_token_alternation_ + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_after_newline_with_group_depth_nonzero_] / none + model__ --> expect_rule_name : completion_parse_rules_ [term_after_newline_with_group_depth_zero_valid_] / finalize_active_rule_on_eof_ + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_after_close_group_valid_] / consume_token_close_group_ + model__ --> quantifier_decision : completion_parse_rules_ [term_after_quantifier_candidate_] / none + model__ --> parse_decision : completion_parse_rules_ [term_from_after_term_] / consume_token_invalid_ + rule_reference_decision --> rule_reference_plain_exec : completion_parse_rules_ [rule_reference_plain_envelope_valid_] / consume_token_rule_reference_plain_ + rule_reference_decision --> rule_reference_negated_exec : completion_parse_rules_ [rule_reference_negated_envelope_valid_] / consume_token_rule_reference_negated_ + rule_reference_decision --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + rule_reference_plain_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + rule_reference_plain_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + rule_reference_negated_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + rule_reference_negated_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_decision --> quantifier_star_exec : completion_parse_rules_ [quantifier_token_star_] / consume_token_quantifier_star_ + quantifier_decision --> quantifier_plus_exec : completion_parse_rules_ [quantifier_token_plus_] / consume_token_quantifier_plus_ + quantifier_decision --> quantifier_question_exec : completion_parse_rules_ [quantifier_token_question_] / consume_token_quantifier_question_ + quantifier_decision --> quantifier_braced_exact_exec : completion_parse_rules_ [quantifier_braced_exact_shape_] / consume_token_quantifier_braced_exact_ + quantifier_decision --> quantifier_braced_open_exec : completion_parse_rules_ [quantifier_braced_open_shape_] / consume_token_quantifier_braced_open_ + quantifier_decision --> quantifier_braced_range_exec : completion_parse_rules_ [quantifier_braced_range_shape_] / consume_token_quantifier_braced_range_ + quantifier_decision --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_star_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + quantifier_star_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_plus_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + quantifier_plus_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_question_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + quantifier_question_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_braced_exact_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + quantifier_braced_exact_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_braced_open_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + quantifier_braced_open_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_braced_range_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + quantifier_braced_range_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + eof_symbols_decision --> parse_decision : completion_parse_rules_ [eof_can_finalize_symbols_] / none + eof_symbols_decision --> parse_decision : completion_parse_rules_ [eof_cannot_finalize_symbols_] / consume_token_invalid_ + parse_decision --> ready : completion_parse_rules_ [parse_error_none_] / dispatch_done_ + parse_decision --> ready : completion_parse_rules_ [parse_error_invalid_request_] / dispatch_error_ + parse_decision --> ready : completion_parse_rules_ [parse_error_parse_failed_] / dispatch_error_ + parse_decision --> ready : completion_parse_rules_ [parse_error_internal_error_] / dispatch_error_ + parse_decision --> ready : completion_parse_rules_ [parse_error_untracked_] / dispatch_error_ + parse_decision --> ready : completion_parse_rules_ [parse_error_unknown_] / dispatch_error_ ready --> ready : _ [always] / on_unexpected_ expect_rule_name --> parse_decision : _ [always] / on_unexpected_ expect_rule_name_decision --> parse_decision : _ [always] / on_unexpected_ @@ -76,6 +106,16 @@ stateDiagram-v2 in_rule_expression_need_term_decision --> parse_decision : _ [always] / on_unexpected_ in_rule_expression_after_term --> parse_decision : _ [always] / on_unexpected_ in_rule_expression_after_term_decision --> parse_decision : _ [always] / on_unexpected_ + rule_reference_decision --> parse_decision : _ [always] / on_unexpected_ + rule_reference_plain_exec --> parse_decision : _ [always] / on_unexpected_ + rule_reference_negated_exec --> parse_decision : _ [always] / on_unexpected_ + quantifier_decision --> parse_decision : _ [always] / on_unexpected_ + quantifier_star_exec --> parse_decision : _ [always] / on_unexpected_ + quantifier_plus_exec --> parse_decision : _ [always] / on_unexpected_ + quantifier_question_exec --> parse_decision : _ [always] / on_unexpected_ + quantifier_braced_exact_exec --> parse_decision : _ [always] / on_unexpected_ + quantifier_braced_open_exec --> parse_decision : _ [always] / on_unexpected_ + quantifier_braced_range_exec --> parse_decision : _ [always] / on_unexpected_ eof_symbols_decision --> parse_decision : _ [always] / on_unexpected_ parse_decision --> ready : _ [always] / on_unexpected_ ``` @@ -88,61 +128,91 @@ stateDiagram-v2 | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_rules`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`invalid_parse_with_dispatchable_grammar>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`reject_invalid_parse_with_dispatch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_rules`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`invalid_parse_with_grammar_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`reject_invalid_parse_with_grammar_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_rules`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`invalid_parse_without_grammar>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`reject_invalid_parse_without_grammar>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`expect_rule_name`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`request_next_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_at_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`eof_symbols_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`token_identifier>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`set_nonterm_mode_definition>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`token_newline>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expect_rule_name`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`nonterm_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`nonterm_definition_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`apply_nonterm_definition>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expect_definition`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`nonterm_reference_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`apply_nonterm_reference>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`expect_definition`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`request_next_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expect_definition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`expect_definition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`expect_definition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_at_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`fail_eof_in_expect_definition>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`expect_definition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_has_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`expect_definition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`definition_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`definition_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_definition_operator>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_need_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`in_rule_expression_need_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`request_next_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_need_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`in_rule_expression_need_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`in_rule_expression_need_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_has_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`set_term_origin_need_term>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`in_rule_expression_need_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`request_next_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`eof_can_finalize_active_rule>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`finalize_active_rule_on_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`eof_symbols_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`eof_cannot_finalize_active_rule>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_has_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`set_term_origin_after_term>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expression_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expression_done_identifier>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`set_nonterm_mode_reference>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expression_done_non_identifier>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_need_literal_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_literal>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_need_character_class_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_character_class>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_need_rule_reference_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_rule_reference>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_need_dot_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_dot>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_need_open_group_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_open_group>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_need_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_need_newline_with_group_depth_nonzero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_need_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_from_need_term>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_literal_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_literal>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_character_class_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_character_class>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_rule_reference_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_rule_reference>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_dot_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_dot>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_open_group_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_open_group>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_need_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_alternation_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_alternation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_need_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_newline_with_group_depth_nonzero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_newline_with_group_depth_zero_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`finalize_active_rule_on_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expect_rule_name`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_close_group_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_close_group>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_quantifier_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_quantifier>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_from_after_term>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`eof_symbols_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`eof_can_finalize_symbols>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`eof_symbols_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`eof_cannot_finalize_symbols>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`dispatch_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | -| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`expect_rule_name`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`request_next_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_at_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`eof_symbols_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`token_identifier>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`set_nonterm_mode_definition>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`token_newline>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expect_rule_name`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`nonterm_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`nonterm_definition_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`apply_nonterm_definition>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expect_definition`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`nonterm_reference_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`apply_nonterm_reference>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`expect_definition`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`request_next_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expect_definition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`expect_definition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`expect_definition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_at_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`fail_eof_in_expect_definition>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`expect_definition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_has_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`expect_definition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`definition_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`definition_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_definition_operator>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_need_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`in_rule_expression_need_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`request_next_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_need_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`in_rule_expression_need_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`in_rule_expression_need_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_has_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`set_term_origin_need_term>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`in_rule_expression_need_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`request_next_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`eof_can_finalize_active_rule>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`finalize_active_rule_on_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`eof_symbols_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`eof_cannot_finalize_active_rule>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`lexer_has_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`set_term_origin_after_term>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expression_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expression_done_identifier>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`set_nonterm_mode_reference>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expression_done_non_identifier>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_need_literal_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_literal>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_need_character_class_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_character_class>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_literal_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_literal>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_character_class_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_character_class>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_need_rule_reference_candidate>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`rule_reference_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_need_dot_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_dot>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_need_open_group_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_open_group>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_need_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_need_newline_with_group_depth_nonzero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_need_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_from_need_term>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_rule_reference_candidate>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`rule_reference_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_dot_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_dot>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_open_group_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_open_group>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_need_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_alternation_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_alternation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_need_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_newline_with_group_depth_nonzero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_newline_with_group_depth_zero_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`finalize_active_rule_on_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`expect_rule_name`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_close_group_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_close_group>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_after_quantifier_candidate>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`term_from_after_term>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`rule_reference_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`rule_reference_plain_envelope_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_rule_reference_plain>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`rule_reference_plain_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`rule_reference_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`rule_reference_negated_envelope_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_rule_reference_negated>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`rule_reference_negated_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`rule_reference_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`rule_reference_plain_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`rule_reference_plain_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`rule_reference_negated_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`rule_reference_negated_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_token_star>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_quantifier_star>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_star_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_token_plus>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_quantifier_plus>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_plus_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_token_question>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_quantifier_question>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_question_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_braced_exact_shape>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_quantifier_braced_exact>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_braced_exact_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_braced_open_shape>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_quantifier_braced_open>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_braced_open_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_braced_range_shape>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_quantifier_braced_range>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`quantifier_braced_range_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_star_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_star_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_plus_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_plus_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_question_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_question_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_braced_exact_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_braced_exact_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_braced_open_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_braced_open_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_braced_range_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_braced_range_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`eof_symbols_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`eof_can_finalize_symbols>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`eof_symbols_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`eof_cannot_finalize_symbols>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`consume_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`dispatch_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | | [`expect_rule_name`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | | [`expect_rule_name_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | @@ -152,5 +222,15 @@ stateDiagram-v2 | [`in_rule_expression_need_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | | [`in_rule_expression_after_term`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | | [`in_rule_expression_after_term_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`rule_reference_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`rule_reference_plain_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`rule_reference_negated_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_star_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_plus_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_question_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_braced_exact_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_braced_open_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | +| [`quantifier_braced_range_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | | [`eof_symbols_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/sm.hpp) | diff --git a/docs/architecture/gbnf_rule_parser_lexer.md b/docs/architecture/gbnf_rule_parser_lexer.md index 62a11a06..e2d93d60 100644 --- a/docs/architecture/gbnf_rule_parser_lexer.md +++ b/docs/architecture/gbnf_rule_parser_lexer.md @@ -8,29 +8,71 @@ Source: [`emel/gbnf/rule_parser/lexer/sm.hpp`](https://github.com/stateforward/e stateDiagram-v2 direction TB [*] --> initialized - initialized --> initialized : next [invalid_next_] / reject_invalid_next_ - initialized --> initialized : next [invalid_cursor_position_] / reject_invalid_cursor_ - initialized --> scanning : next [has_remaining_input_] / emit_next_token_ - initialized --> scanning : next [at_eof_] / emit_eof_ - scanning --> scanning : next [invalid_next_] / reject_invalid_next_ - scanning --> scanning : next [invalid_cursor_position_] / reject_invalid_cursor_ - scanning --> scanning : next [has_remaining_input_] / emit_next_token_ - scanning --> scanning : next [at_eof_] / emit_eof_ - initialized --> initialized : _ [always] / on_unexpected_ - scanning --> scanning : _ [always] / on_unexpected_ + initialized --> initialized : scan_next [invalid_next_] / reject_invalid_next_ + initialized --> initialized : scan_next [invalid_cursor_position_] / reject_invalid_cursor_ + scanning --> scanning : scan_next [invalid_next_] / reject_invalid_next_ + scanning --> scanning : scan_next [invalid_cursor_position_] / reject_invalid_cursor_ + initialized --> scan_ready : scan_next [valid_cursor_position_] / prepare_scan_ + scanning --> scan_ready : scan_next [valid_cursor_position_] / prepare_scan_ + scan_ready --> scanning : completion_scan_next_ [at_eof_] / emit_eof_ + scan_ready --> scanning : completion_scan_next_ [layout_exhausted_] / emit_layout_exhausted_unknown_ + scan_ready --> scanning : completion_scan_next_ [starts_newline_crlf_] / emit_newline_token_width_2__ + scan_ready --> scanning : completion_scan_next_ [starts_newline_single_] / emit_newline_token_width_1__ + scan_ready --> scanning : completion_scan_next_ [starts_definition_operator_] / emit_definition_operator_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_alternation_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_dot_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_open_group_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_close_group_ + scan_ready --> scanning : completion_scan_next_ [starts_quantifier_] / emit_quantifier_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_string_literal_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_character_class_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_braced_quantifier_ + scan_ready --> scanning : completion_scan_next_ [parsed_rule_reference_negated_valid_] / emit_rule_reference_negated_ + scan_ready --> scanning : completion_scan_next_ [parsed_rule_reference_negated_invalid_] / emit_unknown_ + scan_ready --> scanning : completion_scan_next_ [parsed_rule_reference_plain_valid_] / emit_rule_reference_plain_ + scan_ready --> scanning : completion_scan_next_ [parsed_rule_reference_plain_invalid_] / emit_unknown_ + scan_ready --> scanning : completion_scan_next_ [starts_identifier_] / emit_identifier_ + scan_ready --> scanning : completion_scan_next_ [always] / emit_unknown_ + initialized --> initialized : _ [unexpected_has_error_callback_] / dispatch_unexpected_error_ + scanning --> scanning : _ [unexpected_has_error_callback_] / dispatch_unexpected_error_ + scan_ready --> scan_ready : _ [unexpected_has_error_callback_] / dispatch_unexpected_error_ + initialized --> initialized : _ [always] / ignore_unexpected_ + scanning --> scanning : _ [always] / ignore_unexpected_ + scan_ready --> scan_ready : _ [always] / ignore_unexpected_ ``` ## Transitions | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`invalid_next>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`reject_invalid_next>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`invalid_cursor_position>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`reject_invalid_cursor>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`has_remaining_input>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_next_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`at_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | -| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`invalid_next>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`reject_invalid_next>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | -| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`invalid_cursor_position>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`reject_invalid_cursor>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | -| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`has_remaining_input>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_next_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | -| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`at_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | -| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scan_next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`invalid_next>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`reject_invalid_next>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scan_next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`invalid_cursor_position>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`reject_invalid_cursor>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scan_next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`invalid_next>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`reject_invalid_next>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scan_next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`invalid_cursor_position>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`reject_invalid_cursor>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scan_next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`valid_cursor_position>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`prepare_scan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scan_next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`valid_cursor_position>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`prepare_scan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`at_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`layout_exhausted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_layout_exhausted_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`starts_newline_crlf>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_newline_token_width<2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`starts_newline_single>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_newline_token_width<1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`starts_definition_operator>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_definition_operator>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`starts_symbol<'|'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_alternation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`starts_symbol<'.'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_dot>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`starts_symbol<'('>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_open_group>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`starts_symbol<')'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_close_group>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`starts_quantifier>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_quantifier>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`starts_symbol<'"'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_string_literal>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`starts_symbol<'['>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_character_class>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`starts_symbol<'{'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_braced_quantifier>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`parsed_rule_reference_negated_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_rule_reference_negated>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`parsed_rule_reference_negated_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`parsed_rule_reference_plain_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_rule_reference_plain>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`parsed_rule_reference_plain_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`starts_identifier>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_identifier>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`emit_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`unexpected_has_error_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`dispatch_unexpected_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`unexpected_has_error_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`dispatch_unexpected_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`unexpected_has_error_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`dispatch_unexpected_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`ignore_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`ignore_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | +| [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`ignore_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | [`scan_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/rule_parser/lexer/sm.hpp) | diff --git a/docs/architecture/gbnf_sampler.md b/docs/architecture/gbnf_sampler.md index 5e8ddbec..dcd3a24a 100644 --- a/docs/architecture/gbnf_sampler.md +++ b/docs/architecture/gbnf_sampler.md @@ -8,61 +8,37 @@ Source: [`emel/gbnf/sampler/sm.hpp`](https://github.com/stateforward/emel.cpp/bl stateDiagram-v2 direction TB [*] --> ready - ready --> apply_begin : apply_runtime [valid_apply_] / begin_apply_ - ready --> ready : apply_runtime [invalid_apply_] / reject_invalid_apply_ - apply_begin --> apply_loop_decision : completion [always] / prepare_candidate_parse_ - apply_loop_decision --> apply_result_decision : completion [phase_failed_apply_] / none - apply_loop_decision --> model__ : completion [phase_ok_apply_] / none - model__ --> apply_result_decision : completion [candidate_failed_] / none - model__ --> model__ : completion [candidate_done_] / prepare_token_parse_ - model__ --> apply_result_decision : completion [token_failed_] / none - model__ --> model__ : completion [token_done_] / prepare_match_parse_ - model__ --> apply_result_decision : completion [matcher_done_] / none - model__ --> apply_result_decision : completion [matcher_failed_] / none - apply_result_decision --> ready : completion [phase_ok_apply_] / dispatch_apply_done_ - apply_result_decision --> ready : completion [phase_failed_apply_] / dispatch_apply_error_ - ready --> accept_begin : accept_runtime [valid_accept_] / begin_accept_ - ready --> ready : accept_runtime [invalid_accept_] / reject_invalid_accept_ - accept_begin --> accept_result_decision : completion [always] / prepare_accept_parse_ - accept_result_decision --> ready : completion [phase_failed_accept_] / dispatch_accept_error_ - accept_result_decision --> model__ : completion [phase_ok_accept_] / none - model__ --> ready : completion [accept_done_] / dispatch_accept_done_ - model__ --> ready : completion [accept_failed_] / dispatch_accept_error_ + ready --> request_decision : sample_runtime [always] / begin_sample_ + request_decision --> filter_candidates : completion_sample_runtime_ [valid_sample_request_] / none + request_decision --> errored : completion_sample_runtime_ [invalid_sample_request_] / mark_invalid_request_ + filter_candidates --> finalize_decision : completion_sample_runtime_ [always] / filter_candidates_ + finalize_decision --> done : completion_sample_runtime_ [filtered_candidates_available_] / none + finalize_decision --> errored : completion_sample_runtime_ [no_filtered_candidates_] / mark_parse_failed_ + done --> ready : completion_sample_runtime_ [always] / publish_done_ + errored --> ready : completion_sample_runtime_ [always] / publish_error_ ready --> ready : _ [always] / on_unexpected_ - apply_begin --> apply_result_decision : _ [always] / on_unexpected_ - apply_loop_decision --> apply_result_decision : _ [always] / on_unexpected_ - apply_result_decision --> apply_result_decision : _ [always] / on_unexpected_ - accept_begin --> accept_result_decision : _ [always] / on_unexpected_ - accept_result_decision --> accept_result_decision : _ [always] / on_unexpected_ + request_decision --> ready : _ [always] / on_unexpected_ + filter_candidates --> ready : _ [always] / on_unexpected_ + finalize_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ ``` ## Transitions | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`apply_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`valid_apply>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`begin_apply>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`apply_begin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`apply_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`invalid_apply>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`reject_invalid_apply>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`apply_begin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`prepare_candidate_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`apply_loop_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`apply_loop_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`phase_failed_apply>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`apply_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`apply_loop_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`phase_ok_apply>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`candidate_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`apply_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`candidate_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`prepare_token_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`token_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`apply_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`token_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`prepare_match_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`matcher_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`apply_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`matcher_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`apply_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`apply_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`phase_ok_apply>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`dispatch_apply_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`apply_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`phase_failed_apply>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`dispatch_apply_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`accept_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`valid_accept>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`begin_accept>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`accept_begin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`accept_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`invalid_accept>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`reject_invalid_accept>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`accept_begin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`prepare_accept_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`accept_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`accept_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`phase_failed_accept>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`dispatch_accept_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`accept_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`phase_ok_accept>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`accept_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`dispatch_accept_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`accept_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`dispatch_accept_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`sample_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`begin_sample>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`valid_sample_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`filter_candidates`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`invalid_sample_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`filter_candidates`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`filter_candidates>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`finalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`finalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`filtered_candidates_available>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`finalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`no_filtered_candidates>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`mark_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`apply_begin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`apply_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`apply_loop_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`apply_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`apply_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`apply_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`accept_begin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`accept_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | -| [`accept_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`accept_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`filter_candidates`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`finalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gbnf/sampler/sm.hpp) | diff --git a/docs/architecture/generator.md b/docs/architecture/generator.md index b95dfe65..5c24ee0f 100644 --- a/docs/architecture/generator.md +++ b/docs/architecture/generator.md @@ -10,31 +10,46 @@ stateDiagram-v2 [*] --> ready ready --> conditioning : generate_run [valid_generate_] / begin_generate_ ready --> generate_decision : generate_run [invalid_generate_] / reject_invalid_generate_ - conditioning --> conditioning_decision : completion [always] / request_conditioning_ - conditioning_decision --> generate_decision : completion [phase_failed_] / none - conditioning_decision --> planning : completion [phase_ok_] / none - planning --> planning_decision : completion [always] / request_planning_ - planning_decision --> generate_decision : completion [phase_failed_] / none - planning_decision --> prefill : completion [phase_ok_] / none - prefill --> prefill_decision : completion [always] / request_prefill_ - prefill_decision --> generate_decision : completion [phase_failed_] / none - prefill_decision --> decode_compute : completion [phase_ok_] / none - decode_compute --> decode_compute_decision : completion [always] / request_decode_compute_ - decode_compute_decision --> generate_decision : completion [phase_failed_] / none - decode_compute_decision --> decode_sample : completion [phase_ok_] / none - decode_sample --> decode_sample_decision : completion [always] / request_decode_sample_ - decode_sample_decision --> generate_decision : completion [phase_failed_] / none - decode_sample_decision --> decode_render : completion [phase_ok_] / none - decode_render --> decode_render_decision : completion [always] / request_decode_render_ - decode_render_decision --> generate_decision : completion [phase_failed_] / none - decode_render_decision --> decode_compute : completion [decode_should_continue_] / none - decode_render_decision --> generate_decision : completion [decode_complete_] / none - generate_decision --> ready : completion [phase_ok_with_error_out_] / dispatch_done_with_error_out_ - generate_decision --> ready : completion [phase_ok_without_error_out_] / dispatch_done_without_error_out_ - generate_decision --> ready : completion [phase_failed_with_dispatch_and_error_out_] / dispatch_error_with_dispatch_and_error_out_ - generate_decision --> ready : completion [phase_failed_with_dispatch_only_] / dispatch_error_with_dispatch_only_ - generate_decision --> ready : completion [phase_failed_with_error_out_only_] / dispatch_error_with_error_out_only_ - generate_decision --> ready : completion [phase_failed_without_error_channels_] / dispatch_error_without_error_channels_ + conditioning --> conditioning_decision : completion_generate_run_ [always] / request_conditioning_ + conditioning_decision --> planning : completion_generate_run_ [phase_none_] / none + conditioning_decision --> generate_decision : completion_generate_run_ [phase_invalid_request_error_] / none + conditioning_decision --> generate_decision : completion_generate_run_ [phase_backend_error_] / none + conditioning_decision --> generate_decision : completion_generate_run_ [phase_unknown_error_] / none + planning --> planning_decision : completion_generate_run_ [always] / request_planning_ + planning_decision --> prefill : completion_generate_run_ [phase_none_] / none + planning_decision --> generate_decision : completion_generate_run_ [phase_invalid_request_error_] / none + planning_decision --> generate_decision : completion_generate_run_ [phase_backend_error_] / none + planning_decision --> generate_decision : completion_generate_run_ [phase_unknown_error_] / none + prefill --> prefill_decision : completion_generate_run_ [always] / request_prefill_ + prefill_decision --> decode_compute : completion_generate_run_ [phase_none_] / none + prefill_decision --> generate_decision : completion_generate_run_ [phase_invalid_request_error_] / none + prefill_decision --> generate_decision : completion_generate_run_ [phase_backend_error_] / none + prefill_decision --> generate_decision : completion_generate_run_ [phase_unknown_error_] / none + decode_compute --> decode_compute_decision : completion_generate_run_ [always] / request_decode_compute_ + decode_compute_decision --> decode_sample : completion_generate_run_ [phase_none_] / none + decode_compute_decision --> generate_decision : completion_generate_run_ [phase_invalid_request_error_] / none + decode_compute_decision --> generate_decision : completion_generate_run_ [phase_backend_error_] / none + decode_compute_decision --> generate_decision : completion_generate_run_ [phase_unknown_error_] / none + decode_sample --> decode_sample_decision : completion_generate_run_ [always] / request_decode_sample_ + decode_sample_decision --> decode_render : completion_generate_run_ [phase_none_] / none + decode_sample_decision --> generate_decision : completion_generate_run_ [phase_invalid_request_error_] / none + decode_sample_decision --> generate_decision : completion_generate_run_ [phase_backend_error_] / none + decode_sample_decision --> generate_decision : completion_generate_run_ [phase_unknown_error_] / none + decode_render --> decode_render_decision : completion_generate_run_ [always] / request_decode_render_ + decode_render_decision --> decode_compute : completion_generate_run_ [decode_should_continue_] / none + decode_render_decision --> generate_decision : completion_generate_run_ [decode_complete_] / none + decode_render_decision --> generate_decision : completion_generate_run_ [phase_invalid_request_error_] / none + decode_render_decision --> generate_decision : completion_generate_run_ [phase_backend_error_] / none + decode_render_decision --> generate_decision : completion_generate_run_ [phase_unknown_error_] / none + generate_decision --> ready : completion_generate_run_ [phase_none_with_error_out_] / dispatch_done_with_error_out_ + generate_decision --> ready : completion_generate_run_ [phase_none_without_error_out_] / dispatch_done_without_error_out_ + generate_decision --> generate_error_channel_decision : completion_generate_run_ [phase_invalid_request_error_] / none + generate_decision --> generate_error_channel_decision : completion_generate_run_ [phase_backend_error_] / none + generate_decision --> generate_error_channel_decision : completion_generate_run_ [phase_unknown_error_] / none + generate_error_channel_decision --> ready : completion_generate_run_ [has_error_callback_and_error_out_] / dispatch_error_with_dispatch_and_error_out_ + generate_error_channel_decision --> ready : completion_generate_run_ [has_error_callback_without_error_out_] / dispatch_error_with_dispatch_only_ + generate_error_channel_decision --> ready : completion_generate_run_ [no_error_callback_with_error_out_] / dispatch_error_with_error_out_only_ + generate_error_channel_decision --> ready : completion_generate_run_ [no_error_callback_without_error_out_] / dispatch_error_without_error_channels_ ready --> ready : _ [always] / on_unexpected_ conditioning --> generate_decision : _ [always] / on_unexpected_ conditioning_decision --> generate_decision : _ [always] / on_unexpected_ @@ -49,6 +64,7 @@ stateDiagram-v2 decode_render --> generate_decision : _ [always] / on_unexpected_ decode_render_decision --> generate_decision : _ [always] / on_unexpected_ generate_decision --> ready : _ [always] / on_unexpected_ + generate_error_channel_decision --> ready : _ [always] / on_unexpected_ unexpected_event --> ready : _ [always] / on_unexpected_ ``` @@ -58,31 +74,46 @@ stateDiagram-v2 | --- | --- | --- | --- | --- | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_run`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`valid_generate>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`begin_generate>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`conditioning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_run`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`invalid_generate>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`reject_invalid_generate>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`conditioning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`request_conditioning>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`conditioning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`conditioning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`conditioning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`planning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`planning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`request_planning>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`prefill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`prefill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`request_prefill>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`prefill_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`prefill_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`prefill_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_compute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`decode_compute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`request_decode_compute>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`decode_compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`decode_compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_sample`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`decode_sample`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`request_decode_sample>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`decode_sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`decode_sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`decode_render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`request_decode_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`decode_render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`decode_render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_should_continue>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_compute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`decode_render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_complete>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_ok_with_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`dispatch_done_with_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_ok_without_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`dispatch_done_without_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_failed_with_dispatch_and_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`dispatch_error_with_dispatch_and_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_failed_with_dispatch_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`dispatch_error_with_dispatch_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_failed_with_error_out_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`dispatch_error_with_error_out_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | -| [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_failed_without_error_channels>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`dispatch_error_without_error_channels>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`conditioning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`request_conditioning>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`conditioning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`conditioning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`planning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`conditioning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`conditioning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`conditioning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`planning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`request_planning>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`prefill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`prefill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`request_prefill>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`prefill_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`prefill_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_compute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`prefill_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`prefill_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`prefill_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_compute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`request_decode_compute>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_sample`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_sample`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`request_decode_sample>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`request_decode_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_should_continue>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_compute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`decode_complete>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`decode_render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_none_with_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`dispatch_done_with_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_none_without_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`dispatch_done_without_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_error_channel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_error_channel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`phase_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_error_channel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`generate_error_channel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`has_error_callback_and_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`dispatch_error_with_dispatch_and_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`generate_error_channel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`has_error_callback_without_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`dispatch_error_with_dispatch_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`generate_error_channel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`no_error_callback_with_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`dispatch_error_with_error_out_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`generate_error_channel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`no_error_callback_without_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`dispatch_error_without_error_channels>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | | [`conditioning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | | [`conditioning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | @@ -97,4 +128,5 @@ stateDiagram-v2 | [`decode_render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | | [`decode_render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | | [`generate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | +| [`generate_error_channel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/generator/sm.hpp) | diff --git a/docs/architecture/gguf_loader.md b/docs/architecture/gguf_loader.md new file mode 100644 index 00000000..94052e0c --- /dev/null +++ b/docs/architecture/gguf_loader.md @@ -0,0 +1,168 @@ +# gguf_loader + +Source: [`emel/gguf/loader/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) + +## Mermaid + +```mermaid +stateDiagram-v2 + direction TB + [*] --> uninitialized + uninitialized --> probe_request_decision : probe_runtime [always] / begin_probe_ + probed --> probe_request_decision : probe_runtime [always] / begin_probe_ + bound --> probe_request_decision : probe_runtime [always] / begin_probe_ + parsed --> probe_request_decision : probe_runtime [always] / begin_probe_ + errored --> probe_request_decision : probe_runtime [always] / begin_probe_ + probe_request_decision --> probe_outcome_dispatch : completion_probe_runtime_ [probe_valid_request_] / exec_probe_ + probe_request_decision --> probe_outcome_dispatch : completion_probe_runtime_ [probe_invalid_request_] / mark_probe_invalid_request_ + probe_outcome_dispatch --> probe_requirements_dispatch : completion_probe_runtime_ [probe_error_none_] / commit_probe_requirements_ + probe_requirements_dispatch --> probed : completion_probe_runtime_ [always] / publish_probe_done_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_invalid_request_] / publish_probe_error_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_model_invalid_] / publish_probe_error_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_capacity_] / publish_probe_error_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_parse_failed_] / publish_probe_error_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_internal_error_] / publish_probe_error_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_untracked_] / publish_probe_error_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_unknown_] / publish_probe_error_ + probed --> bind_request_decision : bind_runtime [always] / begin_bind_ + bound --> bind_request_decision : bind_runtime [always] / begin_bind_ + parsed --> bind_request_decision : bind_runtime [always] / begin_bind_ + uninitialized --> bind_outcome_dispatch : bind_runtime [always] / mark_bind_invalid_request_ + errored --> bind_outcome_dispatch : bind_runtime [always] / mark_bind_invalid_request_ + bind_request_decision --> bind_request_shape_decision : completion_bind_runtime_ [always] / none + bind_request_shape_decision --> bind_capacity_decision : completion_bind_runtime_ [bind_valid_request_] / none + bind_request_shape_decision --> bind_outcome_dispatch : completion_bind_runtime_ [bind_invalid_request_] / mark_bind_invalid_request_ + bind_request_shape_decision --> bind_outcome_dispatch : completion_bind_runtime_ [always] / mark_bind_invalid_request_ + bind_capacity_decision --> bind_outcome_dispatch : completion_bind_runtime_ [bind_capacity_sufficient_] / exec_bind_ + bind_capacity_decision --> bind_outcome_dispatch : completion_bind_runtime_ [bind_capacity_insufficient_] / mark_bind_capacity_ + bind_capacity_decision --> bind_outcome_dispatch : completion_bind_runtime_ [always] / mark_bind_capacity_ + bind_outcome_dispatch --> bound : completion_bind_runtime_ [bind_error_none_] / publish_bind_done_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_invalid_request_] / publish_bind_error_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_model_invalid_] / publish_bind_error_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_capacity_] / publish_bind_error_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_parse_failed_] / publish_bind_error_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_internal_error_] / publish_bind_error_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_untracked_] / publish_bind_error_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_unknown_] / publish_bind_error_ + bound --> parse_request_decision : parse_runtime [always] / begin_parse_ + parsed --> parse_request_decision : parse_runtime [always] / begin_parse_ + uninitialized --> parse_outcome_dispatch : parse_runtime [always] / mark_parse_invalid_request_ + probed --> parse_outcome_dispatch : parse_runtime [always] / mark_parse_invalid_request_ + errored --> parse_outcome_dispatch : parse_runtime [always] / mark_parse_invalid_request_ + parse_request_decision --> parse_file_image_decision : completion_parse_runtime_ [always] / none + parse_file_image_decision --> parse_bound_storage_decision : completion_parse_runtime_ [parse_has_file_image_] / none + parse_file_image_decision --> parse_outcome_dispatch : completion_parse_runtime_ [parse_missing_file_image_] / mark_parse_invalid_request_ + parse_file_image_decision --> parse_outcome_dispatch : completion_parse_runtime_ [always] / mark_parse_invalid_request_ + parse_bound_storage_decision --> parse_capacity_decision : completion_parse_runtime_ [parse_has_bound_storage_] / none + parse_bound_storage_decision --> parse_outcome_dispatch : completion_parse_runtime_ [parse_missing_bound_storage_] / mark_parse_invalid_request_ + parse_bound_storage_decision --> parse_outcome_dispatch : completion_parse_runtime_ [always] / mark_parse_invalid_request_ + parse_capacity_decision --> parse_outcome_dispatch : completion_parse_runtime_ [parse_bound_capacity_sufficient_] / exec_parse_ + parse_capacity_decision --> parse_outcome_dispatch : completion_parse_runtime_ [parse_bound_capacity_insufficient_] / mark_parse_invalid_request_ + parse_capacity_decision --> parse_outcome_dispatch : completion_parse_runtime_ [always] / mark_parse_invalid_request_ + parse_outcome_dispatch --> parsed : completion_parse_runtime_ [parse_error_none_] / publish_parse_done_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_invalid_request_] / publish_parse_error_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_model_invalid_] / publish_parse_error_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_capacity_] / publish_parse_error_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_parse_failed_] / publish_parse_error_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_internal_error_] / publish_parse_error_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_untracked_] / publish_parse_error_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_unknown_] / publish_parse_error_ + uninitialized --> errored : _ [always] / on_unexpected_ + probed --> errored : _ [always] / on_unexpected_ + bound --> errored : _ [always] / on_unexpected_ + parsed --> errored : _ [always] / on_unexpected_ + errored --> errored : _ [always] / on_unexpected_ + probe_request_decision --> errored : _ [always] / on_unexpected_ + probe_outcome_dispatch --> errored : _ [always] / on_unexpected_ + probe_requirements_dispatch --> errored : _ [always] / on_unexpected_ + bind_request_decision --> errored : _ [always] / on_unexpected_ + bind_request_shape_decision --> errored : _ [always] / on_unexpected_ + bind_capacity_decision --> errored : _ [always] / on_unexpected_ + bind_outcome_dispatch --> errored : _ [always] / on_unexpected_ + parse_request_decision --> errored : _ [always] / on_unexpected_ + parse_file_image_decision --> errored : _ [always] / on_unexpected_ + parse_bound_storage_decision --> errored : _ [always] / on_unexpected_ + parse_capacity_decision --> errored : _ [always] / on_unexpected_ + parse_outcome_dispatch --> errored : _ [always] / on_unexpected_ +``` + +## Transitions + +| Source | Event | Guard | Action | Target | +| --- | --- | --- | --- | --- | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`begin_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`begin_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`begin_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parsed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`begin_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`begin_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`exec_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_probe_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`commit_probe_requirements>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_requirements_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_requirements_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_probe_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_probe_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_probe_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_error_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_probe_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_probe_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_probe_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_probe_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`probe_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_probe_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parsed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_bind_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_bind_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_bind_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_bind_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_capacity_sufficient>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`exec_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_capacity_insufficient>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_bind_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_bind_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_bind_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_bind_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_bind_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_error_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_bind_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_bind_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_bind_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_bind_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`bind_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_bind_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`begin_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parsed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`begin_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_parse_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_parse_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_parse_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_file_image_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_file_image_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_has_file_image>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_bound_storage_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_file_image_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_missing_file_image>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_parse_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_file_image_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_parse_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_bound_storage_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_has_bound_storage>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_bound_storage_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_missing_bound_storage>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_parse_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_bound_storage_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_parse_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_bound_capacity_sufficient>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`exec_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_bound_capacity_insufficient>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_parse_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`mark_parse_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_parse_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parsed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_parse_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_parse_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_error_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_parse_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_parse_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_parse_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_parse_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`parse_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`publish_parse_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parsed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`probe_requirements_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`bind_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_file_image_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_bound_storage_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | +| [`parse_outcome_dispatch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/gguf/loader/sm.hpp) | diff --git a/docs/architecture/graph.md b/docs/architecture/graph.md index 44b0f703..b5f47734 100644 --- a/docs/architecture/graph.md +++ b/docs/architecture/graph.md @@ -16,9 +16,9 @@ stateDiagram-v2 reserved --> reserved : reserve_graph [invalid_reserve_with_dispatchable_output_] / reject_invalid_reserve_with_dispatch_ reserved --> reserved : reserve_graph [invalid_reserve_with_output_only_] / reject_invalid_reserve_with_output_only_ reserved --> reserved : reserve_graph [invalid_reserve_without_output_] / reject_invalid_reserve_without_output_ - reserving --> reserve_decision : completion [always] / request_reserve_ - reserve_decision --> reserved : completion [reserve_done_] / dispatch_reserve_done_ - reserve_decision --> uninitialized : completion [reserve_failed_] / dispatch_reserve_error_ + reserving --> reserve_decision : completion_reserve_graph_ [always] / request_reserve_ + reserve_decision --> reserved : completion_reserve_graph_ [reserve_done_] / dispatch_reserve_done_ + reserve_decision --> uninitialized : completion_reserve_graph_ [reserve_failed_] / dispatch_reserve_error_ reserved --> assembling : compute_graph [valid_compute_] / begin_compute_ reserved --> reserved : compute_graph [invalid_compute_with_dispatchable_output_] / reject_invalid_compute_with_dispatch_ reserved --> reserved : compute_graph [invalid_compute_with_output_only_] / reject_invalid_compute_with_output_only_ @@ -27,14 +27,20 @@ stateDiagram-v2 uninitialized --> uninitialized : compute_graph [invalid_compute_with_dispatchable_output_] / reject_invalid_compute_with_dispatch_ uninitialized --> uninitialized : compute_graph [invalid_compute_with_output_only_] / reject_invalid_compute_with_output_only_ uninitialized --> uninitialized : compute_graph [invalid_compute_without_output_] / reject_invalid_compute_without_output_ - assembling --> assemble_decision : completion [always] / request_assemble_ - assemble_decision --> executing : completion [assemble_done_] / none - assemble_decision --> compute_decision : completion [assemble_failed_] / none - executing --> execute_decision : completion [always] / request_execute_ - execute_decision --> compute_decision : completion [execute_done_] / none - execute_decision --> compute_decision : completion [execute_failed_] / none - compute_decision --> reserved : completion [compute_phase_ok_] / dispatch_compute_done_ - compute_decision --> reserved : completion [compute_phase_failed_] / dispatch_compute_error_ + assembling --> assemble_decision : completion_compute_graph_ [always] / request_assemble_ + assemble_decision --> executing : completion_compute_graph_ [assemble_done_] / none + assemble_decision --> compute_decision : completion_compute_graph_ [assemble_failed_] / none + executing --> execute_decision : completion_compute_graph_ [always] / request_execute_ + execute_decision --> compute_decision : completion_compute_graph_ [execute_done_] / none + execute_decision --> compute_decision : completion_compute_graph_ [execute_failed_] / none + compute_decision --> reserved : completion_compute_graph_ [compute_error_none_] / dispatch_compute_done_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_invalid_request_] / dispatch_compute_error_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_assembler_failed_] / dispatch_compute_error_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_processor_failed_] / dispatch_compute_error_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_busy_] / dispatch_compute_error_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_internal_error_] / dispatch_compute_error_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_untracked_] / dispatch_compute_error_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_unknown_] / dispatch_compute_error_ uninitialized --> uninitialized : _ [always] / on_unexpected_ reserved --> reserved : _ [always] / on_unexpected_ reserving --> uninitialized : _ [always] / on_unexpected_ @@ -58,9 +64,9 @@ stateDiagram-v2 | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserve_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`invalid_reserve_with_dispatchable_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reject_invalid_reserve_with_dispatch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserve_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`invalid_reserve_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reject_invalid_reserve_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserve_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`invalid_reserve_without_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reject_invalid_reserve_without_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | -| [`reserving`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`request_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserve_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | -| [`reserve_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserve_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_reserve_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | -| [`reserve_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserve_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_reserve_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`reserving`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`request_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserve_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`reserve_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserve_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_reserve_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`reserve_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserve_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_reserve_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`valid_compute>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`begin_compute>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`assembling`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`invalid_compute_with_dispatchable_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reject_invalid_compute_with_dispatch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`invalid_compute_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reject_invalid_compute_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | @@ -69,14 +75,20 @@ stateDiagram-v2 | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`invalid_compute_with_dispatchable_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reject_invalid_compute_with_dispatch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`invalid_compute_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reject_invalid_compute_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`invalid_compute_without_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reject_invalid_compute_without_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | -| [`assembling`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`request_assemble>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`assemble_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | -| [`assemble_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`assemble_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`executing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | -| [`assemble_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`assemble_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | -| [`executing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`request_execute>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`execute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | -| [`execute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`execute_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | -| [`execute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`execute_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | -| [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_compute_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | -| [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_compute_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`assembling`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`request_assemble>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`assemble_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`assemble_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`assemble_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`executing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`assemble_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`assemble_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`executing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`request_execute>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`execute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`execute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`execute_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`execute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`execute_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_compute_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_compute_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_error_assembler_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_compute_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_error_processor_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_compute_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_error_busy>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_compute_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_compute_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_compute_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | +| [`compute_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`compute_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`dispatch_compute_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | | [`reserving`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/sm.hpp) | diff --git a/docs/architecture/graph_allocator.md b/docs/architecture/graph_allocator.md index 01b239aa..d063ba5f 100644 --- a/docs/architecture/graph_allocator.md +++ b/docs/architecture/graph_allocator.md @@ -12,17 +12,21 @@ stateDiagram-v2 ready --> ready : allocate_graph_plan [invalid_allocate_with_dispatchable_output_] / reject_invalid_allocate_with_dispatch_ ready --> ready : allocate_graph_plan [invalid_allocate_with_output_only_] / reject_invalid_allocate_with_output_only_ ready --> ready : allocate_graph_plan [invalid_allocate_without_output_] / reject_invalid_allocate_without_output_ - model__ --> liveness_decision : completion [always] / none - liveness_decision --> model__ : completion [liveness_done_] / none - liveness_decision --> allocation_decision : completion [liveness_failed_] / none - model__ --> ordering_decision : completion [always] / none - ordering_decision --> model__ : completion [ordering_done_] / none - ordering_decision --> allocation_decision : completion [ordering_failed_] / none - model__ --> placement_decision : completion [always] / none - placement_decision --> allocation_decision : completion [placement_done_] / commit_plan_ - placement_decision --> allocation_decision : completion [placement_failed_] / none - allocation_decision --> ready : completion [phase_ok_] / dispatch_done_ - allocation_decision --> ready : completion [phase_failed_] / dispatch_error_ + model__ --> liveness_decision : completion_allocate_graph_plan_ [always] / none + liveness_decision --> model__ : completion_allocate_graph_plan_ [liveness_done_] / none + liveness_decision --> allocation_decision : completion_allocate_graph_plan_ [liveness_failed_] / none + model__ --> ordering_decision : completion_allocate_graph_plan_ [always] / none + ordering_decision --> model__ : completion_allocate_graph_plan_ [ordering_done_] / none + ordering_decision --> allocation_decision : completion_allocate_graph_plan_ [ordering_failed_] / none + model__ --> placement_decision : completion_allocate_graph_plan_ [always] / none + placement_decision --> allocation_decision : completion_allocate_graph_plan_ [placement_done_] / commit_plan_ + placement_decision --> allocation_decision : completion_allocate_graph_plan_ [placement_failed_] / none + allocation_decision --> ready : completion_allocate_graph_plan_ [allocation_error_none_] / dispatch_done_ + allocation_decision --> ready : completion_allocate_graph_plan_ [allocation_error_invalid_request_] / dispatch_error_ + allocation_decision --> ready : completion_allocate_graph_plan_ [allocation_error_capacity_] / dispatch_error_ + allocation_decision --> ready : completion_allocate_graph_plan_ [allocation_error_internal_error_] / dispatch_error_ + allocation_decision --> ready : completion_allocate_graph_plan_ [allocation_error_untracked_] / dispatch_error_ + allocation_decision --> ready : completion_allocate_graph_plan_ [allocation_error_unknown_] / dispatch_error_ ready --> ready : _ [always] / on_unexpected_ liveness_decision --> allocation_decision : _ [always] / on_unexpected_ ordering_decision --> allocation_decision : _ [always] / on_unexpected_ @@ -38,17 +42,21 @@ stateDiagram-v2 | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocate_graph_plan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`invalid_allocate_with_dispatchable_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`reject_invalid_allocate_with_dispatch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocate_graph_plan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`invalid_allocate_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`reject_invalid_allocate_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocate_graph_plan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`invalid_allocate_without_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`reject_invalid_allocate_without_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`liveness_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | -| [`liveness_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`liveness_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | -| [`liveness_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`liveness_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ordering_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | -| [`ordering_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ordering_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | -| [`ordering_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ordering_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`placement_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | -| [`placement_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`placement_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`commit_plan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | -| [`placement_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`placement_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | -| [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`dispatch_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | -| [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`liveness_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`liveness_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`liveness_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`liveness_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`liveness_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ordering_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`ordering_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ordering_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`ordering_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ordering_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`placement_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`placement_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`placement_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`commit_plan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`placement_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`placement_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`dispatch_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_error_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | +| [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | | [`liveness_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | | [`ordering_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | [`allocation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/allocator/sm.hpp) | diff --git a/docs/architecture/graph_assembler.md b/docs/architecture/graph_assembler.md index 16c15b12..06b75081 100644 --- a/docs/architecture/graph_assembler.md +++ b/docs/architecture/graph_assembler.md @@ -16,17 +16,21 @@ stateDiagram-v2 reserved --> reserved : reserve_graph [invalid_reserve_with_dispatchable_output_] / reject_invalid_reserve_with_dispatch_ reserved --> reserved : reserve_graph [invalid_reserve_with_output_only_] / reject_invalid_reserve_with_output_only_ reserved --> reserved : reserve_graph [invalid_reserve_without_output_] / reject_invalid_reserve_without_output_ - model__ --> reserve_validate_decision : completion [always] / none - reserve_validate_decision --> model__ : completion [reserve_validate_done_] / none - reserve_validate_decision --> reserve_dispatch_decision : completion [reserve_validate_failed_] / none - model__ --> reserve_build_decision : completion [always] / none - reserve_build_decision --> model__ : completion [reserve_build_done_] / none - reserve_build_decision --> reserve_dispatch_decision : completion [reserve_build_failed_] / none - model__ --> reserve_alloc_decision : completion [always] / none - reserve_alloc_decision --> reserve_dispatch_decision : completion [reserve_alloc_done_] / commit_reserve_result_ - reserve_alloc_decision --> reserve_dispatch_decision : completion [reserve_alloc_failed_] / none - reserve_dispatch_decision --> reserved : completion [reserve_phase_ok_] / dispatch_reserve_done_ - reserve_dispatch_decision --> uninitialized : completion [reserve_phase_failed_] / dispatch_reserve_error_ + model__ --> reserve_validate_decision : completion_reserve_graph_ [always] / none + reserve_validate_decision --> model__ : completion_reserve_graph_ [reserve_validate_done_] / none + reserve_validate_decision --> reserve_dispatch_decision : completion_reserve_graph_ [reserve_validate_failed_] / none + model__ --> reserve_build_decision : completion_reserve_graph_ [always] / none + reserve_build_decision --> model__ : completion_reserve_graph_ [reserve_build_done_] / none + reserve_build_decision --> reserve_dispatch_decision : completion_reserve_graph_ [reserve_build_failed_] / none + model__ --> reserve_alloc_decision : completion_reserve_graph_ [always] / none + reserve_alloc_decision --> reserve_dispatch_decision : completion_reserve_graph_ [reserve_alloc_done_] / commit_reserve_result_ + reserve_alloc_decision --> reserve_dispatch_decision : completion_reserve_graph_ [reserve_alloc_failed_] / none + reserve_dispatch_decision --> reserved : completion_reserve_graph_ [reserve_error_none_] / dispatch_reserve_done_ + reserve_dispatch_decision --> uninitialized : completion_reserve_graph_ [reserve_error_invalid_request_] / dispatch_reserve_error_ + reserve_dispatch_decision --> uninitialized : completion_reserve_graph_ [reserve_error_capacity_] / dispatch_reserve_error_ + reserve_dispatch_decision --> uninitialized : completion_reserve_graph_ [reserve_error_internal_error_] / dispatch_reserve_error_ + reserve_dispatch_decision --> uninitialized : completion_reserve_graph_ [reserve_error_untracked_] / dispatch_reserve_error_ + reserve_dispatch_decision --> uninitialized : completion_reserve_graph_ [reserve_error_unknown_] / dispatch_reserve_error_ reserved --> model__ : assemble_graph [valid_assemble_] / begin_assemble_ reserved --> reserved : assemble_graph [invalid_assemble_with_dispatchable_output_] / reject_invalid_assemble_with_dispatch_ reserved --> reserved : assemble_graph [invalid_assemble_with_output_only_] / reject_invalid_assemble_with_output_only_ @@ -35,21 +39,25 @@ stateDiagram-v2 uninitialized --> uninitialized : assemble_graph [invalid_assemble_with_dispatchable_output_] / reject_invalid_assemble_with_dispatch_ uninitialized --> uninitialized : assemble_graph [invalid_assemble_with_output_only_] / reject_invalid_assemble_with_output_only_ uninitialized --> uninitialized : assemble_graph [invalid_assemble_without_output_] / reject_invalid_assemble_without_output_ - model__ --> assemble_validate_decision : completion [always] / none - assemble_validate_decision --> model__ : completion [assemble_validate_done_] / none - assemble_validate_decision --> assemble_dispatch_decision : completion [assemble_validate_failed_] / none - model__ --> reuse_decision : completion [always] / none - reuse_decision --> assemble_dispatch_decision : completion [reuse_decision_reused_] / commit_assemble_reuse_result_ - reuse_decision --> model__ : completion [reuse_decision_rebuild_] / none - reuse_decision --> assemble_dispatch_decision : completion [reuse_decision_failed_] / none - model__ --> assemble_build_decision : completion [always] / none - assemble_build_decision --> model__ : completion [assemble_build_done_] / none - assemble_build_decision --> assemble_dispatch_decision : completion [assemble_build_failed_] / none - model__ --> assemble_alloc_decision : completion [always] / none - assemble_alloc_decision --> assemble_dispatch_decision : completion [assemble_alloc_done_] / commit_assemble_rebuild_result_ - assemble_alloc_decision --> assemble_dispatch_decision : completion [assemble_alloc_failed_] / none - assemble_dispatch_decision --> reserved : completion [assemble_phase_ok_] / dispatch_assemble_done_ - assemble_dispatch_decision --> reserved : completion [assemble_phase_failed_] / dispatch_assemble_error_ + model__ --> assemble_validate_decision : completion_assemble_graph_ [always] / none + assemble_validate_decision --> model__ : completion_assemble_graph_ [assemble_validate_done_] / none + assemble_validate_decision --> assemble_dispatch_decision : completion_assemble_graph_ [assemble_validate_failed_] / none + model__ --> reuse_decision : completion_assemble_graph_ [always] / none + reuse_decision --> assemble_dispatch_decision : completion_assemble_graph_ [reuse_decision_reused_] / commit_assemble_reuse_result_ + reuse_decision --> model__ : completion_assemble_graph_ [reuse_decision_rebuild_] / none + reuse_decision --> assemble_dispatch_decision : completion_assemble_graph_ [reuse_decision_failed_] / none + model__ --> assemble_build_decision : completion_assemble_graph_ [always] / none + assemble_build_decision --> model__ : completion_assemble_graph_ [assemble_build_done_] / none + assemble_build_decision --> assemble_dispatch_decision : completion_assemble_graph_ [assemble_build_failed_] / none + model__ --> assemble_alloc_decision : completion_assemble_graph_ [always] / none + assemble_alloc_decision --> assemble_dispatch_decision : completion_assemble_graph_ [assemble_alloc_done_] / commit_assemble_rebuild_result_ + assemble_alloc_decision --> assemble_dispatch_decision : completion_assemble_graph_ [assemble_alloc_failed_] / none + assemble_dispatch_decision --> reserved : completion_assemble_graph_ [assemble_error_none_] / dispatch_assemble_done_ + assemble_dispatch_decision --> reserved : completion_assemble_graph_ [assemble_error_invalid_request_] / dispatch_assemble_error_ + assemble_dispatch_decision --> reserved : completion_assemble_graph_ [assemble_error_capacity_] / dispatch_assemble_error_ + assemble_dispatch_decision --> reserved : completion_assemble_graph_ [assemble_error_internal_error_] / dispatch_assemble_error_ + assemble_dispatch_decision --> reserved : completion_assemble_graph_ [assemble_error_untracked_] / dispatch_assemble_error_ + assemble_dispatch_decision --> reserved : completion_assemble_graph_ [assemble_error_unknown_] / dispatch_assemble_error_ uninitialized --> uninitialized : _ [always] / on_unexpected_ reserved --> reserved : _ [always] / on_unexpected_ reserve_validate_decision --> reserve_dispatch_decision : _ [always] / on_unexpected_ @@ -75,17 +83,21 @@ stateDiagram-v2 | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`invalid_reserve_with_dispatchable_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reject_invalid_reserve_with_dispatch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`invalid_reserve_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reject_invalid_reserve_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`invalid_reserve_without_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reject_invalid_reserve_without_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`reserve_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_validate_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`reserve_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_validate_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`reserve_build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_build_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`reserve_build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_build_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`reserve_alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_alloc_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`commit_reserve_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`reserve_alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_alloc_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_reserve_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_reserve_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reserve_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_validate_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reserve_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_validate_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reserve_build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_build_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reserve_build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_build_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reserve_alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_alloc_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`commit_reserve_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reserve_alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_alloc_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_reserve_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_reserve_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_error_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_reserve_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_reserve_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_reserve_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_reserve_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`valid_assemble>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`begin_assemble>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`invalid_assemble_with_dispatchable_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reject_invalid_assemble_with_dispatch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`invalid_assemble_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reject_invalid_assemble_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | @@ -94,21 +106,25 @@ stateDiagram-v2 | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`invalid_assemble_with_dispatchable_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reject_invalid_assemble_with_dispatch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`invalid_assemble_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reject_invalid_assemble_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_graph`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`invalid_assemble_without_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reject_invalid_assemble_without_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`assemble_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_validate_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`assemble_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_validate_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reuse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`reuse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reuse_decision_reused>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`commit_assemble_reuse_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`reuse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reuse_decision_rebuild>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`reuse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reuse_decision_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`assemble_build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_build_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`assemble_build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_build_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`assemble_alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_alloc_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`commit_assemble_rebuild_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`assemble_alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_alloc_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_assemble_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | -| [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_assemble_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`assemble_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_validate_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`assemble_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_validate_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reuse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reuse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reuse_decision_reused>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`commit_assemble_reuse_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reuse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reuse_decision_rebuild>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`reuse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reuse_decision_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`assemble_build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_build_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`assemble_build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_build_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`assemble_alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_alloc_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`commit_assemble_rebuild_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`assemble_alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_alloc_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_assemble_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_assemble_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_error_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_assemble_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_assemble_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_assemble_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | +| [`assemble_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`assemble_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`dispatch_assemble_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserved`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | | [`reserve_validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | [`reserve_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/assembler/sm.hpp) | diff --git a/docs/architecture/graph_processor.md b/docs/architecture/graph_processor.md index c39dabe6..dbb5c032 100644 --- a/docs/architecture/graph_processor.md +++ b/docs/architecture/graph_processor.md @@ -12,27 +12,31 @@ stateDiagram-v2 ready --> ready : execute_step [invalid_execute_with_dispatchable_output_] / reject_invalid_execute_with_dispatch_ ready --> ready : execute_step [invalid_execute_with_output_only_] / reject_invalid_execute_with_output_only_ ready --> ready : execute_step [invalid_execute_without_output_] / reject_invalid_execute_without_output_ - model__ --> validate_decision : completion [always] / none - validate_decision --> model__ : completion [validate_done_] / none - validate_decision --> execution_decision : completion [validate_failed_] / none - model__ --> prepare_decision : completion [always] / none - prepare_decision --> model__ : completion [prepare_done_reused_] / none - prepare_decision --> model__ : completion [prepare_done_needs_allocation_] / none - prepare_decision --> execution_decision : completion [prepare_failed_] / none - model__ --> alloc_decision : completion [always] / none - alloc_decision --> model__ : completion [alloc_done_] / none - alloc_decision --> execution_decision : completion [alloc_failed_] / none - model__ --> bind_decision : completion [always] / none - bind_decision --> model__ : completion [bind_done_] / none - bind_decision --> execution_decision : completion [bind_failed_] / none - model__ --> kernel_decision : completion [always] / none - kernel_decision --> model__ : completion [kernel_done_] / none - kernel_decision --> execution_decision : completion [kernel_failed_] / none - model__ --> extract_decision : completion [always] / none - extract_decision --> execution_decision : completion [extract_done_] / commit_output_ - extract_decision --> execution_decision : completion [extract_failed_] / none - execution_decision --> ready : completion [phase_ok_] / dispatch_done_ - execution_decision --> ready : completion [phase_failed_] / dispatch_error_ + model__ --> validate_decision : completion_execute_step_ [always] / none + validate_decision --> model__ : completion_execute_step_ [validate_done_] / none + validate_decision --> execution_decision : completion_execute_step_ [validate_failed_] / none + model__ --> prepare_decision : completion_execute_step_ [always] / none + prepare_decision --> model__ : completion_execute_step_ [prepare_done_reused_] / none + prepare_decision --> model__ : completion_execute_step_ [prepare_done_needs_allocation_] / none + prepare_decision --> execution_decision : completion_execute_step_ [prepare_failed_] / none + model__ --> alloc_decision : completion_execute_step_ [always] / none + alloc_decision --> model__ : completion_execute_step_ [alloc_done_] / none + alloc_decision --> execution_decision : completion_execute_step_ [alloc_failed_] / none + model__ --> bind_decision : completion_execute_step_ [always] / none + bind_decision --> model__ : completion_execute_step_ [bind_done_] / none + bind_decision --> execution_decision : completion_execute_step_ [bind_failed_] / none + model__ --> kernel_decision : completion_execute_step_ [always] / none + kernel_decision --> model__ : completion_execute_step_ [kernel_done_] / none + kernel_decision --> execution_decision : completion_execute_step_ [kernel_failed_] / none + model__ --> extract_decision : completion_execute_step_ [always] / none + extract_decision --> execution_decision : completion_execute_step_ [extract_done_] / commit_output_ + extract_decision --> execution_decision : completion_execute_step_ [extract_failed_] / none + execution_decision --> ready : completion_execute_step_ [execution_error_none_] / dispatch_done_ + execution_decision --> ready : completion_execute_step_ [execution_error_invalid_request_] / dispatch_error_ + execution_decision --> ready : completion_execute_step_ [execution_error_kernel_failed_] / dispatch_error_ + execution_decision --> ready : completion_execute_step_ [execution_error_internal_error_] / dispatch_error_ + execution_decision --> ready : completion_execute_step_ [execution_error_untracked_] / dispatch_error_ + execution_decision --> ready : completion_execute_step_ [execution_error_unknown_] / dispatch_error_ ready --> ready : _ [always] / on_unexpected_ validate_decision --> execution_decision : _ [always] / on_unexpected_ prepare_decision --> execution_decision : _ [always] / on_unexpected_ @@ -51,27 +55,31 @@ stateDiagram-v2 | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execute_step`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`invalid_execute_with_dispatchable_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`reject_invalid_execute_with_dispatch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execute_step`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`invalid_execute_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`reject_invalid_execute_with_output_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execute_step`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`invalid_execute_without_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`reject_invalid_execute_without_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`validate_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`validate_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`prepare_done_reused>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`prepare_done_needs_allocation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`prepare_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`alloc_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`alloc_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`bind_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`bind_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`kernel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`kernel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`kernel_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`kernel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`kernel_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`extract_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`extract_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`extract_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`commit_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`extract_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`extract_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`dispatch_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | -| [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`validate_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`validate_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`prepare_done_reused>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`prepare_done_needs_allocation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`prepare_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`alloc_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`alloc_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`alloc_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`bind_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`bind_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`kernel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`kernel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`kernel_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`kernel_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`kernel_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`extract_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`extract_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`extract_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`commit_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`extract_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`extract_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`dispatch_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_error_kernel_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | +| [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | | [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | | [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | [`execution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/graph/processor/sm.hpp) | diff --git a/docs/architecture/kernel_aarch64.md b/docs/architecture/kernel_aarch64.md new file mode 100644 index 00000000..beab959c --- /dev/null +++ b/docs/architecture/kernel_aarch64.md @@ -0,0 +1,418 @@ +# kernel_aarch64 + +Source: [`emel/kernel/aarch64/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) + +## Mermaid + +```mermaid +stateDiagram-v2 + direction TB + [*] --> ready + ready --> ready : dispatch_request [always] / exec_dispatch_ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_unary [abs__] / abs__ + ready --> ready : dispatch_op_unary [neg__] / neg__ + ready --> ready : dispatch_op_unary [relu__] / relu__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : _ [always] / on_unexpected_ +``` + +## Transitions + +| Source | Event | Guard | Action | Target | +| --- | --- | --- | --- | --- | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`exec_dispatch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_acc`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_acc`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_log`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_log`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sum_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sum_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cumsum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cumsum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mean`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mean`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_argmax`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_argmax`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_count_equal`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_count_equal`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_repeat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_repeat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_repeat_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_repeat_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_concat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_concat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_silu_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_silu_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rms_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rms_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rms_norm_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rms_norm_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_group_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_group_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_l2_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_l2_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_out_prod`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_out_prod`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_scale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_scale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_set`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_set`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cpy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cpy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cont`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cont`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_reshape`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_reshape`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_permute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_permute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_transpose`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_transpose`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rows_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rows_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_set_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_set_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag_mask_inf`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag_mask_inf`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag_mask_zero`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag_mask_zero`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_soft_max`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_soft_max`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_soft_max_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_soft_max_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rope`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rope`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rope_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rope_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_clamp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_clamp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_transpose_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_transpose_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_2d_dw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_2d_dw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_transpose_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_transpose_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_2d_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_2d_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_upscale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_upscale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pad`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pad`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pad_reflect_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pad_reflect_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_roll`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_roll`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_arange`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_arange`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_timestep_embedding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_timestep_embedding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_argsort`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_argsort`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_top_k`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_top_k`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_leaky_relu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_leaky_relu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_fill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_fill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_flash_attn_ext`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_flash_attn_ext`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_flash_attn_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_flash_attn_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_ssm_conv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_ssm_conv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_ssm_scan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_ssm_scan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_win_part`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_win_part`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_win_unpart`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_win_unpart`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rwkv_wkv6`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rwkv_wkv6`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_gated_linear_attn`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_gated_linear_attn`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rwkv_wkv7`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rwkv_wkv7`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_solve_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_solve_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`abs>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`abs>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`neg>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`neg>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom2`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom2`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom3`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom3`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_custom`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_custom`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cross_entropy_loss`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cross_entropy_loss`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cross_entropy_loss_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cross_entropy_loss_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_opt_step_adamw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_opt_step_adamw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_opt_step_sgd`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_opt_step_sgd`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_glu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_glu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/aarch64/sm.hpp) | diff --git a/docs/architecture/kernel_cuda.md b/docs/architecture/kernel_cuda.md new file mode 100644 index 00000000..35d5ede1 --- /dev/null +++ b/docs/architecture/kernel_cuda.md @@ -0,0 +1,396 @@ +# kernel_cuda + +Source: [`emel/kernel/cuda/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) + +## Mermaid + +```mermaid +stateDiagram-v2 + direction TB + [*] --> ready + ready --> ready : dispatch_request [always] / dispatch_request__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : _ [always] / on_unexpected_ +``` + +## Transitions + +| Source | Event | Guard | Action | Target | +| --- | --- | --- | --- | --- | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_request>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_acc`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_acc`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_log`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_log`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sum_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sum_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cumsum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cumsum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mean`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mean`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_argmax`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_argmax`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_count_equal`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_count_equal`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_repeat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_repeat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_repeat_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_repeat_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_concat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_concat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_silu_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_silu_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rms_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rms_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rms_norm_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rms_norm_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_group_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_group_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_l2_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_l2_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul_mat_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul_mat_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_out_prod`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_out_prod`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_scale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_scale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_set`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_set`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cpy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cpy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cont`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cont`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_reshape`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_reshape`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_permute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_permute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_transpose`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_transpose`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rows_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rows_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_set_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_set_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag_mask_inf`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag_mask_inf`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag_mask_zero`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag_mask_zero`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_soft_max`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_soft_max`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_soft_max_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_soft_max_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rope`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rope`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rope_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rope_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_clamp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_clamp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_transpose_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_transpose_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_2d_dw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_2d_dw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_transpose_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_transpose_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_2d_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_2d_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_upscale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_upscale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pad`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pad`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pad_reflect_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pad_reflect_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_roll`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_roll`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_arange`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_arange`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_timestep_embedding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_timestep_embedding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_argsort`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_argsort`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_top_k`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_top_k`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_leaky_relu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_leaky_relu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_fill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_fill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_flash_attn_ext`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_flash_attn_ext`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_flash_attn_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_flash_attn_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_ssm_conv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_ssm_conv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_ssm_scan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_ssm_scan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_win_part`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_win_part`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_win_unpart`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_win_unpart`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rwkv_wkv6`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rwkv_wkv6`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_gated_linear_attn`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_gated_linear_attn`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rwkv_wkv7`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rwkv_wkv7`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_solve_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_solve_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom2`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom2`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom3`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom3`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_custom`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_custom`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cross_entropy_loss`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cross_entropy_loss`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cross_entropy_loss_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cross_entropy_loss_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_opt_step_adamw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_opt_step_adamw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_opt_step_sgd`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_opt_step_sgd`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_glu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_glu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/cuda/sm.hpp) | diff --git a/docs/architecture/kernel_metal.md b/docs/architecture/kernel_metal.md new file mode 100644 index 00000000..371e19ef --- /dev/null +++ b/docs/architecture/kernel_metal.md @@ -0,0 +1,396 @@ +# kernel_metal + +Source: [`emel/kernel/metal/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) + +## Mermaid + +```mermaid +stateDiagram-v2 + direction TB + [*] --> ready + ready --> ready : dispatch_request [always] / dispatch_request__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : _ [always] / on_unexpected_ +``` + +## Transitions + +| Source | Event | Guard | Action | Target | +| --- | --- | --- | --- | --- | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_request>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_acc`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_acc`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_log`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_log`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sum_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sum_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cumsum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cumsum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mean`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mean`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_argmax`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_argmax`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_count_equal`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_count_equal`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_repeat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_repeat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_repeat_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_repeat_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_concat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_concat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_silu_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_silu_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rms_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rms_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rms_norm_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rms_norm_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_group_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_group_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_l2_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_l2_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul_mat_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul_mat_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_out_prod`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_out_prod`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_scale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_scale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_set`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_set`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cpy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cpy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cont`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cont`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_reshape`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_reshape`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_permute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_permute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_transpose`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_transpose`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rows_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rows_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_set_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_set_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag_mask_inf`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag_mask_inf`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag_mask_zero`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag_mask_zero`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_soft_max`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_soft_max`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_soft_max_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_soft_max_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rope`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rope`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rope_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rope_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_clamp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_clamp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_transpose_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_transpose_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_2d_dw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_2d_dw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_transpose_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_transpose_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_2d_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_2d_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_upscale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_upscale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pad`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pad`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pad_reflect_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pad_reflect_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_roll`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_roll`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_arange`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_arange`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_timestep_embedding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_timestep_embedding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_argsort`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_argsort`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_top_k`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_top_k`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_leaky_relu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_leaky_relu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_fill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_fill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_flash_attn_ext`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_flash_attn_ext`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_flash_attn_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_flash_attn_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_ssm_conv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_ssm_conv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_ssm_scan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_ssm_scan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_win_part`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_win_part`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_win_unpart`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_win_unpart`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rwkv_wkv6`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rwkv_wkv6`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_gated_linear_attn`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_gated_linear_attn`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rwkv_wkv7`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rwkv_wkv7`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_solve_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_solve_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom2`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom2`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom3`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom3`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_custom`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_custom`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cross_entropy_loss`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cross_entropy_loss`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cross_entropy_loss_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cross_entropy_loss_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_opt_step_adamw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_opt_step_adamw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_opt_step_sgd`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_opt_step_sgd`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_glu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_glu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/metal/sm.hpp) | diff --git a/docs/architecture/kernel_vulkan.md b/docs/architecture/kernel_vulkan.md new file mode 100644 index 00000000..9e1f6046 --- /dev/null +++ b/docs/architecture/kernel_vulkan.md @@ -0,0 +1,396 @@ +# kernel_vulkan + +Source: [`emel/kernel/vulkan/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) + +## Mermaid + +```mermaid +stateDiagram-v2 + direction TB + [*] --> ready + ready --> ready : dispatch_request [always] / dispatch_request__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : _ [always] / on_unexpected_ +``` + +## Transitions + +| Source | Event | Guard | Action | Target | +| --- | --- | --- | --- | --- | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_request>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_acc`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_acc`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_log`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_log`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sum_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sum_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cumsum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cumsum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mean`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mean`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_argmax`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_argmax`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_count_equal`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_count_equal`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_repeat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_repeat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_repeat_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_repeat_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_concat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_concat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_silu_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_silu_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rms_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rms_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rms_norm_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rms_norm_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_group_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_group_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_l2_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_l2_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul_mat_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul_mat_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_out_prod`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_out_prod`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_scale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_scale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_set`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_set`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cpy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cpy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cont`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cont`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_reshape`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_reshape`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_permute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_permute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_transpose`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_transpose`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rows_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rows_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_set_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_set_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag_mask_inf`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag_mask_inf`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag_mask_zero`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag_mask_zero`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_soft_max`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_soft_max`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_soft_max_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_soft_max_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rope`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rope`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rope_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rope_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_clamp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_clamp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_transpose_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_transpose_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_2d_dw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_2d_dw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_transpose_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_transpose_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_2d_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_2d_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_upscale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_upscale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pad`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pad`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pad_reflect_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pad_reflect_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_roll`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_roll`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_arange`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_arange`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_timestep_embedding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_timestep_embedding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_argsort`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_argsort`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_top_k`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_top_k`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_leaky_relu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_leaky_relu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_fill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_fill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_flash_attn_ext`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_flash_attn_ext`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_flash_attn_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_flash_attn_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_ssm_conv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_ssm_conv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_ssm_scan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_ssm_scan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_win_part`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_win_part`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_win_unpart`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_win_unpart`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rwkv_wkv6`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rwkv_wkv6`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_gated_linear_attn`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_gated_linear_attn`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rwkv_wkv7`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rwkv_wkv7`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_solve_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_solve_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom2`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom2`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom3`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom3`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_custom`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_custom`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cross_entropy_loss`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cross_entropy_loss`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cross_entropy_loss_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cross_entropy_loss_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_opt_step_adamw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_opt_step_adamw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_opt_step_sgd`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_opt_step_sgd`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_glu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_glu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/vulkan/sm.hpp) | diff --git a/docs/architecture/kernel_wasm.md b/docs/architecture/kernel_wasm.md new file mode 100644 index 00000000..15422ecb --- /dev/null +++ b/docs/architecture/kernel_wasm.md @@ -0,0 +1,396 @@ +# kernel_wasm + +Source: [`emel/kernel/wasm/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) + +## Mermaid + +```mermaid +stateDiagram-v2 + direction TB + [*] --> ready + ready --> ready : dispatch_request [always] / dispatch_request__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : _ [always] / on_unexpected_ +``` + +## Transitions + +| Source | Event | Guard | Action | Target | +| --- | --- | --- | --- | --- | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_request>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_acc`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_acc`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_log`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_log`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sum_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sum_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cumsum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cumsum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mean`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mean`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_argmax`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_argmax`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_count_equal`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_count_equal`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_repeat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_repeat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_repeat_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_repeat_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_concat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_concat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_silu_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_silu_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rms_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rms_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rms_norm_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rms_norm_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_group_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_group_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_l2_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_l2_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul_mat_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul_mat_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_out_prod`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_out_prod`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_scale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_scale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_set`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_set`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cpy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cpy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cont`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cont`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_reshape`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_reshape`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_permute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_permute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_transpose`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_transpose`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rows_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rows_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_set_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_set_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag_mask_inf`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag_mask_inf`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag_mask_zero`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag_mask_zero`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_soft_max`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_soft_max`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_soft_max_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_soft_max_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rope`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rope`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rope_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rope_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_clamp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_clamp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_transpose_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_transpose_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_2d_dw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_2d_dw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_transpose_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_transpose_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_2d_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_2d_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_upscale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_upscale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pad`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pad`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pad_reflect_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pad_reflect_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_roll`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_roll`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_arange`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_arange`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_timestep_embedding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_timestep_embedding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_argsort`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_argsort`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_top_k`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_top_k`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_leaky_relu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_leaky_relu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_fill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_fill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_flash_attn_ext`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_flash_attn_ext`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_flash_attn_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_flash_attn_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_ssm_conv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_ssm_conv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_ssm_scan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_ssm_scan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_win_part`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_win_part`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_win_unpart`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_win_unpart`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rwkv_wkv6`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rwkv_wkv6`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_gated_linear_attn`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_gated_linear_attn`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rwkv_wkv7`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rwkv_wkv7`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_solve_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_solve_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom2`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom2`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom3`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom3`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_custom`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_custom`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cross_entropy_loss`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cross_entropy_loss`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cross_entropy_loss_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cross_entropy_loss_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_opt_step_adamw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_opt_step_adamw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_opt_step_sgd`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_opt_step_sgd`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_glu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_glu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/wasm/sm.hpp) | diff --git a/docs/architecture/kernel_x86_64.md b/docs/architecture/kernel_x86_64.md new file mode 100644 index 00000000..2856a21a --- /dev/null +++ b/docs/architecture/kernel_x86_64.md @@ -0,0 +1,418 @@ +# kernel_x86_64 + +Source: [`emel/kernel/x86_64/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) + +## Mermaid + +```mermaid +stateDiagram-v2 + direction TB + [*] --> ready + ready --> ready : dispatch_request [always] / exec_dispatch_ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_unary [abs__] / abs__ + ready --> ready : dispatch_op_unary [neg__] / neg__ + ready --> ready : dispatch_op_unary [relu__] / relu__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : _ [always] / on_unexpected_ +``` + +## Transitions + +| Source | Event | Guard | Action | Target | +| --- | --- | --- | --- | --- | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_request`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`exec_dispatch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_dup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_dup>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_acc`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_acc`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_acc>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sub`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sub>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_div`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_div>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqr>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqrt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sqrt>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_log`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_log`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_log>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sin>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sum_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sum_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_sum_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cumsum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cumsum`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cumsum>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mean`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mean`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mean>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_argmax`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_argmax`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_argmax>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_count_equal`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_count_equal`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_count_equal>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_repeat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_repeat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_repeat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_repeat_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_repeat_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_repeat_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_concat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_concat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_concat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_silu_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_silu_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_silu_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rms_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rms_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rms_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rms_norm_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rms_norm_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rms_norm_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_group_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_group_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_group_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_l2_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_l2_norm`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_l2_norm>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat_id`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_mul_mat_id>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_out_prod`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_out_prod`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_out_prod>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_scale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_scale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_scale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_set`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_set`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_set>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cpy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cpy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cpy>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cont`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cont`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cont>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_reshape`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_reshape`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_reshape>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_view>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_permute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_permute`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_permute>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_transpose`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_transpose`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_transpose>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rows_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rows_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rows_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_set_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_set_rows`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_set_rows>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag_mask_inf`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag_mask_inf`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag_mask_inf>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag_mask_zero`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag_mask_zero`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_diag_mask_zero>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_soft_max`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_soft_max`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_soft_max>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_soft_max_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_soft_max_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_soft_max_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rope`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rope`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rope>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rope_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rope_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rope_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_clamp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_clamp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_clamp>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_transpose_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_transpose_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_transpose_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_im2col_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_3d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_3d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_2d_dw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_2d_dw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_2d_dw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_transpose_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_transpose_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_conv_transpose_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_2d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_2d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_2d_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_2d_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pool_2d_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_upscale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_upscale`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_upscale>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pad`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pad`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pad>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pad_reflect_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pad_reflect_1d`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_pad_reflect_1d>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_roll`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_roll`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_roll>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_arange`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_arange`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_arange>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_timestep_embedding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_timestep_embedding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_timestep_embedding>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_argsort`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_argsort`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_argsort>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_top_k`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_top_k`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_top_k>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_leaky_relu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_leaky_relu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_leaky_relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_fill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_fill`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_fill>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_flash_attn_ext`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_flash_attn_ext`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_flash_attn_ext>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_flash_attn_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_flash_attn_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_flash_attn_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_ssm_conv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_ssm_conv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_ssm_conv>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_ssm_scan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_ssm_scan`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_ssm_scan>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_win_part`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_win_part`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_win_part>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_win_unpart`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_win_unpart`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_win_unpart>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_get_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add_rel_pos`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_add_rel_pos>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rwkv_wkv6`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rwkv_wkv6`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rwkv_wkv6>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_gated_linear_attn`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_gated_linear_attn`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_gated_linear_attn>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rwkv_wkv7`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rwkv_wkv7`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_rwkv_wkv7>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_solve_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_solve_tri`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_solve_tri>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`abs>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`abs>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`neg>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`neg>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`relu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_unary`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_unary>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom1`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom1>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom2`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom2`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom2>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom3`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom3`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_map_custom3>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_custom`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_custom`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_custom>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cross_entropy_loss`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cross_entropy_loss`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cross_entropy_loss>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cross_entropy_loss_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cross_entropy_loss_back`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_cross_entropy_loss_back>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_opt_step_adamw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_opt_step_adamw`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_opt_step_adamw>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_opt_step_sgd`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_opt_step_sgd`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_opt_step_sgd>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_glu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_glu`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`dispatch_op_glu>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/kernel/x86_64/sm.hpp) | diff --git a/docs/architecture/logits_sampler.md b/docs/architecture/logits_sampler.md index 7d54fb6a..5a8cbebf 100644 --- a/docs/architecture/logits_sampler.md +++ b/docs/architecture/logits_sampler.md @@ -7,56 +7,74 @@ Source: [`emel/logits/sampler/sm.hpp`](https://github.com/stateforward/emel.cpp/ ```mermaid stateDiagram-v2 direction TB - [*] --> initialized - initialized --> preparing_candidates : sample [always] / begin_sample_ - preparing_candidates --> prepare_decision : completion [always] / exec_prepare_candidates_ - prepare_decision --> errored : completion [phase_failed_] / none - prepare_decision --> apply_samplers : completion [phase_ok_and_has_more_samplers_] / none - prepare_decision --> selecting_token : completion [phase_ok_and_no_more_samplers_] / none - apply_samplers --> sample_decision : completion [always] / exec_apply_samplers_ - sample_decision --> errored : completion [phase_failed_] / none - sample_decision --> apply_samplers : completion [phase_ok_and_has_more_samplers_] / none - sample_decision --> selecting_token : completion [phase_ok_and_no_more_samplers_] / none - selecting_token --> select_decision : completion [always] / exec_select_token_ - select_decision --> errored : completion [phase_failed_] / none - select_decision --> done : completion [phase_ok_] / none - done --> initialized : completion [always] / publish_done_ - errored --> initialized : completion [always] / publish_error_ - initialized --> errored : _ [always] / on_unexpected_ - preparing_candidates --> errored : _ [always] / on_unexpected_ - prepare_decision --> errored : _ [always] / on_unexpected_ - apply_samplers --> errored : _ [always] / on_unexpected_ - sample_decision --> errored : _ [always] / on_unexpected_ - selecting_token --> errored : _ [always] / on_unexpected_ - select_decision --> errored : _ [always] / on_unexpected_ - done --> errored : _ [always] / on_unexpected_ - errored --> errored : _ [always] / on_unexpected_ + [*] --> ready + ready --> request_logits_decision : sample_logits_runtime [always] / none + ready --> request_preselected_decision : sample_preselected_runtime [always] / none + request_preselected_decision --> done : completion_sample_preselected_runtime_ [preselected_token_valid_] / none + request_preselected_decision --> errored : completion_sample_preselected_runtime_ [preselected_token_invalid_] / mark_invalid_request_ + request_logits_decision --> preparing_candidates : completion_sample_logits_runtime_ [valid_request_] / begin_sample_ + request_logits_decision --> errored : completion_sample_logits_runtime_ [invalid_request_] / mark_invalid_request_ + preparing_candidates --> apply_samplers : completion_sample_logits_runtime_ [always] / prepare_candidates_ + apply_samplers --> sample_decision : completion_sample_logits_runtime_ [has_more_samplers_] / none + apply_samplers --> sample_complete_decision : completion_sample_logits_runtime_ [no_more_samplers_] / none + sample_decision --> sample_call : completion_sample_logits_runtime_ [sampler_fn_available_] / apply_sampler_ + sample_decision --> errored : completion_sample_logits_runtime_ [sampler_fn_missing_] / mark_invalid_request_ + sample_call --> sample_call_decision : completion_sample_logits_runtime_ [always] / none + sample_call_decision --> apply_samplers : completion_sample_logits_runtime_ [sampler_call_succeeded_with_valid_candidate_count_] / advance_sampler_index_ + sample_call_decision --> errored : completion_sample_logits_runtime_ [sampler_call_succeeded_with_invalid_candidate_count_] / mark_invalid_request_ + sample_call_decision --> errored : completion_sample_logits_runtime_ [sampler_call_failed_] / mark_sampler_error_ + sample_complete_decision --> done : completion_sample_logits_runtime_ [selected_token_valid_] / none + sample_complete_decision --> errored : completion_sample_logits_runtime_ [selected_token_missing_or_invalid_] / mark_invalid_request_ + done --> ready : completion_sample_logits_runtime_ [always] / publish_done_ + errored --> ready : completion_sample_logits_runtime_ [always] / publish_error_ + done --> ready : completion_sample_preselected_runtime_ [always] / publish_done_ + errored --> ready : completion_sample_preselected_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + request_logits_decision --> ready : _ [always] / on_unexpected_ + request_preselected_decision --> ready : _ [always] / on_unexpected_ + preparing_candidates --> ready : _ [always] / on_unexpected_ + apply_samplers --> ready : _ [always] / on_unexpected_ + sample_decision --> ready : _ [always] / on_unexpected_ + sample_call --> ready : _ [always] / on_unexpected_ + sample_call_decision --> ready : _ [always] / on_unexpected_ + sample_complete_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ ``` ## Transitions | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sample`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`begin_sample>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`preparing_candidates`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`preparing_candidates`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`exec_prepare_candidates>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`phase_ok_and_has_more_samplers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`apply_samplers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`phase_ok_and_no_more_samplers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`selecting_token`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`apply_samplers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`exec_apply_samplers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`phase_ok_and_has_more_samplers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`apply_samplers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`phase_ok_and_no_more_samplers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`selecting_token`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`selecting_token`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`exec_select_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`select_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`select_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`select_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`preparing_candidates`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`prepare_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`apply_samplers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`selecting_token`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`select_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sample_logits_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`request_logits_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sample_preselected_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`request_preselected_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`request_preselected_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`preselected_token_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`request_preselected_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`preselected_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`request_logits_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`begin_sample>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`preparing_candidates`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`request_logits_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`preparing_candidates`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`prepare_candidates>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`apply_samplers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`apply_samplers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`has_more_samplers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`apply_samplers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`no_more_samplers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sample_complete_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sampler_fn_available>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`apply_sampler>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sample_call`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sampler_fn_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`sample_call`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sample_call_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`sample_call_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sampler_call_succeeded_with_valid_candidate_count>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`advance_sampler_index>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`apply_samplers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`sample_call_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sampler_call_succeeded_with_invalid_candidate_count>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`sample_call_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`sampler_call_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`mark_sampler_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`sample_complete_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`selected_token_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`sample_complete_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`selected_token_missing_or_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`request_logits_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`request_preselected_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`preparing_candidates`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`apply_samplers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`sample_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`sample_call`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`sample_call_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`sample_complete_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/sampler/sm.hpp) | diff --git a/docs/architecture/logits_validator.md b/docs/architecture/logits_validator.md index 67daee83..3d249bce 100644 --- a/docs/architecture/logits_validator.md +++ b/docs/architecture/logits_validator.md @@ -7,52 +7,28 @@ Source: [`emel/logits/validator/sm.hpp`](https://github.com/stateforward/emel.cp ```mermaid stateDiagram-v2 direction TB - [*] --> initialized - initialized --> validating : build [always] / begin_build_ - validating --> validate_decision : [always] / run_validate_ - validate_decision --> errored : [phase_failed_] / none - validate_decision --> building_candidates : [phase_ok_] / none - building_candidates --> build_decision : [always] / run_build_candidates_ - build_decision --> errored : [phase_failed_] / none - build_decision --> normalizing_scores : [phase_ok_] / none - normalizing_scores --> normalize_decision : [always] / run_normalize_scores_ - normalize_decision --> errored : [phase_failed_] / none - normalize_decision --> done : [phase_ok_] / none - done --> initialized : [always] / publish_done_ - errored --> initialized : [always] / publish_error_ - initialized --> errored : _ [always] / on_unexpected_ - validating --> errored : _ [always] / on_unexpected_ - validate_decision --> errored : _ [always] / on_unexpected_ - building_candidates --> errored : _ [always] / on_unexpected_ - build_decision --> errored : _ [always] / on_unexpected_ - normalizing_scores --> errored : _ [always] / on_unexpected_ - normalize_decision --> errored : _ [always] / on_unexpected_ - done --> errored : _ [always] / on_unexpected_ - errored --> errored : _ [always] / on_unexpected_ + [*] --> ready + ready --> request_decision : build_runtime [always] / begin_build_ + request_decision --> done : completion_build_runtime_ [valid_request_] / execute_build_ + request_decision --> errored : completion_build_runtime_ [invalid_request_] / mark_invalid_request_ + done --> ready : completion_build_runtime_ [always] / publish_done_ + errored --> ready : completion_build_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + request_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ ``` ## Transitions | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`build`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`begin_build>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`validating`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`validating`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`run_validate>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`building_candidates`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`building_candidates`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`run_build_candidates>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`normalizing_scores`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`normalizing_scores`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`run_normalize_scores>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`normalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`normalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`normalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`validating`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`validate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`building_candidates`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`build_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`normalizing_scores`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`normalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`build_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`begin_build>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`execute_build>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/logits/validator/sm.hpp) | diff --git a/docs/architecture/memory_hybrid.md b/docs/architecture/memory_hybrid.md index bbbb32da..fac788c6 100644 --- a/docs/architecture/memory_hybrid.md +++ b/docs/architecture/memory_hybrid.md @@ -7,106 +7,322 @@ Source: [`emel/memory/hybrid/sm.hpp`](https://github.com/stateforward/emel.cpp/b ```mermaid stateDiagram-v2 direction TB - [*] --> uninitialized - uninitialized --> initializing : reserve [always] / begin_reserve_ - ready --> initializing : reserve [always] / begin_reserve_ - unexpected --> initializing : reserve [always] / begin_reserve_ - initializing --> ready : [lambda_guards_7_34] / none - initializing --> out_of_memory : [lambda_guards_15_45] / none - initializing --> errored : [lambda_guards_11_38] / none - ready --> allocating_sequence : allocate_sequence [always] / begin_allocate_sequence_ - allocating_sequence --> ready : [lambda_guards_7_34] / none - allocating_sequence --> out_of_memory : [lambda_guards_15_45] / none - allocating_sequence --> errored : [lambda_guards_11_38] / none - ready --> allocating_slots : allocate_slots [always] / begin_allocate_slots_ - allocating_slots --> ready : [lambda_guards_7_34] / none - allocating_slots --> out_of_memory : [lambda_guards_15_45] / none - allocating_slots --> errored : [lambda_guards_11_38] / none - ready --> branching_sequence : branch_sequence [always] / begin_branch_sequence_ - branching_sequence --> ready : [lambda_guards_7_34] / none - branching_sequence --> out_of_memory : [lambda_guards_15_45] / none - branching_sequence --> errored : [lambda_guards_11_38] / none - ready --> freeing_sequence : free_sequence [always] / begin_free_sequence_ - freeing_sequence --> ready : [lambda_guards_7_34] / none - freeing_sequence --> errored : [lambda_guards_11_38] / none - ready --> rolling_back_slots : rollback_slots [always] / begin_rollback_slots_ - rolling_back_slots --> ready : [lambda_guards_7_34] / none - rolling_back_slots --> errored : [lambda_guards_11_38] / none - out_of_memory --> ready : [always] / clear_out_of_memory_ - errored --> ready : [always] / ensure_last_error_ - uninitialized --> uninitialized : capture_view [always] / capture_view_ - initializing --> initializing : capture_view [always] / capture_view_ - ready --> ready : capture_view [always] / capture_view_ - allocating_sequence --> allocating_sequence : capture_view [always] / capture_view_ - allocating_slots --> allocating_slots : capture_view [always] / capture_view_ - branching_sequence --> branching_sequence : capture_view [always] / capture_view_ - freeing_sequence --> freeing_sequence : capture_view [always] / capture_view_ - rolling_back_slots --> rolling_back_slots : capture_view [always] / capture_view_ - out_of_memory --> out_of_memory : capture_view [always] / capture_view_ - errored --> errored : capture_view [always] / capture_view_ - unexpected --> unexpected : capture_view [always] / capture_view_ - uninitialized --> unexpected : _ [always] / on_unexpected_ - initializing --> unexpected : _ [always] / on_unexpected_ - ready --> unexpected : _ [always] / on_unexpected_ - allocating_sequence --> unexpected : _ [always] / on_unexpected_ - allocating_slots --> unexpected : _ [always] / on_unexpected_ - branching_sequence --> unexpected : _ [always] / on_unexpected_ - freeing_sequence --> unexpected : _ [always] / on_unexpected_ - rolling_back_slots --> unexpected : _ [always] / on_unexpected_ - out_of_memory --> unexpected : _ [always] / on_unexpected_ - errored --> unexpected : _ [always] / on_unexpected_ - unexpected --> unexpected : _ [always] / on_unexpected_ + [*] --> ready + ready --> reserve_kv : reserve_runtime [always] / begin_reserve_ + reserve_kv --> reserve_kv_decision : completion_reserve_runtime_ [always] / exec_reserve_kv_ + reserve_kv_decision --> reserve_recurrent : completion_reserve_runtime_ [kv_accepted_] / none + reserve_kv_decision --> errored : completion_reserve_runtime_ [kv_rejected_with_error_] / mark_error_from_kv_ + reserve_kv_decision --> errored : completion_reserve_runtime_ [kv_rejected_without_error_] / mark_backend_error_ + reserve_recurrent --> reserve_recurrent_decision : completion_reserve_runtime_ [always] / exec_reserve_recurrent_ + reserve_recurrent_decision --> done : completion_reserve_runtime_ [recurrent_accepted_] / none + reserve_recurrent_decision --> errored : completion_reserve_runtime_ [recurrent_rejected_with_error_] / mark_error_from_recurrent_ + reserve_recurrent_decision --> errored : completion_reserve_runtime_ [recurrent_rejected_without_error_] / mark_backend_error_ + ready --> allocate_sequence_kv : allocate_sequence_runtime [always] / begin_allocate_sequence_ + allocate_sequence_kv --> allocate_sequence_kv_decision : completion_allocate_sequence_runtime_ [always] / exec_allocate_sequence_kv_ + allocate_sequence_kv_decision --> allocate_sequence_recurrent : completion_allocate_sequence_runtime_ [kv_accepted_] / none + allocate_sequence_kv_decision --> errored : completion_allocate_sequence_runtime_ [kv_rejected_with_error_] / mark_error_from_kv_ + allocate_sequence_kv_decision --> errored : completion_allocate_sequence_runtime_ [kv_rejected_without_error_] / mark_backend_error_ + allocate_sequence_recurrent --> allocate_sequence_recurrent_decision : completion_allocate_sequence_runtime_ [always] / exec_allocate_sequence_recurrent_ + allocate_sequence_recurrent_decision --> done : completion_allocate_sequence_runtime_ [recurrent_accepted_] / none + allocate_sequence_recurrent_decision --> allocate_sequence_rollback_kv : completion_allocate_sequence_runtime_ [recurrent_rejected_any_] / exec_allocate_sequence_rollback_kv_ + allocate_sequence_rollback_kv --> allocate_sequence_rollback_result_decision : completion_allocate_sequence_runtime_ [always] / none + allocate_sequence_rollback_result_decision --> allocate_sequence_recurrent_error_decision : completion_allocate_sequence_runtime_ [rollback_accepted_] / none + allocate_sequence_rollback_result_decision --> errored : completion_allocate_sequence_runtime_ [rollback_rejected_with_error_] / mark_error_from_rollback_ + allocate_sequence_rollback_result_decision --> errored : completion_allocate_sequence_runtime_ [rollback_rejected_without_error_] / mark_internal_error_ + allocate_sequence_rollback_result_decision --> errored : completion_allocate_sequence_runtime_ [always] / mark_internal_error_ + allocate_sequence_recurrent_error_decision --> out_of_memory : completion_allocate_sequence_runtime_ [recurrent_rejected_out_of_memory_] / mark_out_of_memory_ + allocate_sequence_recurrent_error_decision --> errored : completion_allocate_sequence_runtime_ [recurrent_rejected_backend_or_none_] / mark_backend_error_ + allocate_sequence_recurrent_error_decision --> errored : completion_allocate_sequence_runtime_ [recurrent_rejected_non_backend_error_] / mark_error_from_recurrent_ + allocate_sequence_recurrent_error_decision --> errored : completion_allocate_sequence_runtime_ [always] / mark_internal_error_ + ready --> allocate_slots_kv : allocate_slots_runtime [always] / begin_allocate_slots_ + allocate_slots_kv --> allocate_slots_kv_decision : completion_allocate_slots_runtime_ [always] / exec_allocate_slots_kv_ + allocate_slots_kv_decision --> allocate_slots_recurrent : completion_allocate_slots_runtime_ [kv_accepted_] / none + allocate_slots_kv_decision --> out_of_memory : completion_allocate_slots_runtime_ [kv_rejected_out_of_memory_] / mark_out_of_memory_ + allocate_slots_kv_decision --> errored : completion_allocate_slots_runtime_ [kv_rejected_backend_or_none_] / mark_backend_error_ + allocate_slots_kv_decision --> errored : completion_allocate_slots_runtime_ [kv_rejected_non_backend_error_] / mark_error_from_kv_ + allocate_slots_recurrent --> allocate_slots_recurrent_decision : completion_allocate_slots_runtime_ [always] / exec_allocate_slots_recurrent_ + allocate_slots_recurrent_decision --> done : completion_allocate_slots_runtime_ [recurrent_accepted_] / none + allocate_slots_recurrent_decision --> allocate_slots_rollback_kv : completion_allocate_slots_runtime_ [recurrent_rejected_any_] / exec_allocate_slots_rollback_kv_ + allocate_slots_rollback_kv --> allocate_slots_rollback_result_decision : completion_allocate_slots_runtime_ [always] / none + allocate_slots_rollback_result_decision --> allocate_slots_recurrent_error_decision : completion_allocate_slots_runtime_ [rollback_accepted_] / none + allocate_slots_rollback_result_decision --> errored : completion_allocate_slots_runtime_ [rollback_rejected_with_error_] / mark_error_from_rollback_ + allocate_slots_rollback_result_decision --> errored : completion_allocate_slots_runtime_ [rollback_rejected_without_error_] / mark_internal_error_ + allocate_slots_rollback_result_decision --> errored : completion_allocate_slots_runtime_ [always] / mark_internal_error_ + allocate_slots_recurrent_error_decision --> out_of_memory : completion_allocate_slots_runtime_ [recurrent_rejected_out_of_memory_] / mark_out_of_memory_ + allocate_slots_recurrent_error_decision --> errored : completion_allocate_slots_runtime_ [recurrent_rejected_backend_or_none_] / mark_backend_error_ + allocate_slots_recurrent_error_decision --> errored : completion_allocate_slots_runtime_ [recurrent_rejected_non_backend_error_] / mark_error_from_recurrent_ + allocate_slots_recurrent_error_decision --> errored : completion_allocate_slots_runtime_ [always] / mark_internal_error_ + ready --> branch_sequence_kv : branch_sequence_runtime [always] / begin_branch_sequence_ + branch_sequence_kv --> branch_sequence_kv_decision : completion_branch_sequence_runtime_ [always] / exec_branch_sequence_kv_ + branch_sequence_kv_decision --> branch_sequence_recurrent : completion_branch_sequence_runtime_ [kv_accepted_] / none + branch_sequence_kv_decision --> out_of_memory : completion_branch_sequence_runtime_ [kv_rejected_out_of_memory_] / mark_out_of_memory_ + branch_sequence_kv_decision --> errored : completion_branch_sequence_runtime_ [kv_rejected_backend_or_none_] / mark_backend_error_ + branch_sequence_kv_decision --> errored : completion_branch_sequence_runtime_ [kv_rejected_non_backend_error_] / mark_error_from_kv_ + branch_sequence_recurrent --> branch_sequence_recurrent_decision : completion_branch_sequence_runtime_ [always] / exec_branch_sequence_recurrent_ + branch_sequence_recurrent_decision --> done : completion_branch_sequence_runtime_ [recurrent_accepted_] / none + branch_sequence_recurrent_decision --> branch_sequence_rollback_kv : completion_branch_sequence_runtime_ [recurrent_rejected_any_] / exec_branch_sequence_rollback_kv_ + branch_sequence_rollback_kv --> branch_sequence_rollback_result_decision : completion_branch_sequence_runtime_ [always] / none + branch_sequence_rollback_result_decision --> branch_sequence_recurrent_error_decision : completion_branch_sequence_runtime_ [rollback_accepted_] / none + branch_sequence_rollback_result_decision --> errored : completion_branch_sequence_runtime_ [rollback_rejected_with_error_] / mark_error_from_rollback_ + branch_sequence_rollback_result_decision --> errored : completion_branch_sequence_runtime_ [rollback_rejected_without_error_] / mark_internal_error_ + branch_sequence_rollback_result_decision --> errored : completion_branch_sequence_runtime_ [always] / mark_internal_error_ + branch_sequence_recurrent_error_decision --> out_of_memory : completion_branch_sequence_runtime_ [recurrent_rejected_out_of_memory_] / mark_out_of_memory_ + branch_sequence_recurrent_error_decision --> errored : completion_branch_sequence_runtime_ [recurrent_rejected_backend_or_none_] / mark_backend_error_ + branch_sequence_recurrent_error_decision --> errored : completion_branch_sequence_runtime_ [recurrent_rejected_non_backend_error_] / mark_error_from_recurrent_ + branch_sequence_recurrent_error_decision --> errored : completion_branch_sequence_runtime_ [always] / mark_internal_error_ + ready --> free_sequence_kv : free_sequence_runtime [always] / begin_free_sequence_ + free_sequence_kv --> free_sequence_kv_decision : completion_free_sequence_runtime_ [always] / exec_free_sequence_kv_ + free_sequence_kv_decision --> free_sequence_recurrent : completion_free_sequence_runtime_ [kv_accepted_] / none + free_sequence_kv_decision --> errored : completion_free_sequence_runtime_ [kv_rejected_with_error_] / mark_error_from_kv_ + free_sequence_kv_decision --> errored : completion_free_sequence_runtime_ [kv_rejected_without_error_] / mark_backend_error_ + free_sequence_recurrent --> free_sequence_recurrent_decision : completion_free_sequence_runtime_ [always] / exec_free_sequence_recurrent_ + free_sequence_recurrent_decision --> done : completion_free_sequence_runtime_ [recurrent_accepted_] / none + free_sequence_recurrent_decision --> errored : completion_free_sequence_runtime_ [recurrent_rejected_with_error_] / mark_error_from_recurrent_ + free_sequence_recurrent_decision --> errored : completion_free_sequence_runtime_ [recurrent_rejected_without_error_] / mark_backend_error_ + ready --> rollback_slots_kv : rollback_slots_runtime [always] / begin_rollback_slots_ + rollback_slots_kv --> rollback_slots_kv_decision : completion_rollback_slots_runtime_ [always] / exec_rollback_slots_kv_ + rollback_slots_kv_decision --> rollback_slots_recurrent : completion_rollback_slots_runtime_ [kv_accepted_] / none + rollback_slots_kv_decision --> errored : completion_rollback_slots_runtime_ [kv_rejected_with_error_] / mark_error_from_kv_ + rollback_slots_kv_decision --> errored : completion_rollback_slots_runtime_ [kv_rejected_without_error_] / mark_backend_error_ + rollback_slots_recurrent --> rollback_slots_recurrent_decision : completion_rollback_slots_runtime_ [always] / exec_rollback_slots_recurrent_ + rollback_slots_recurrent_decision --> done : completion_rollback_slots_runtime_ [recurrent_accepted_] / none + rollback_slots_recurrent_decision --> errored : completion_rollback_slots_runtime_ [recurrent_rejected_with_error_] / mark_error_from_recurrent_ + rollback_slots_recurrent_decision --> errored : completion_rollback_slots_runtime_ [recurrent_rejected_without_error_] / mark_backend_error_ + ready --> capture_request_decision : capture_view_runtime [always] / begin_capture_view_ + capture_request_decision --> capture_kv : completion_capture_view_runtime_ [capture_request_valid_] / none + capture_request_decision --> errored : completion_capture_view_runtime_ [capture_request_invalid_] / mark_invalid_request_ + capture_kv --> capture_kv_decision : completion_capture_view_runtime_ [always] / exec_capture_kv_ + capture_kv_decision --> capture_recurrent : completion_capture_view_runtime_ [kv_accepted_] / none + capture_kv_decision --> errored : completion_capture_view_runtime_ [kv_rejected_with_error_] / mark_error_from_kv_ + capture_kv_decision --> errored : completion_capture_view_runtime_ [kv_rejected_without_error_] / mark_backend_error_ + capture_recurrent --> capture_recurrent_decision : completion_capture_view_runtime_ [always] / exec_capture_recurrent_ + capture_recurrent_decision --> capture_merge : completion_capture_view_runtime_ [recurrent_accepted_] / none + capture_recurrent_decision --> errored : completion_capture_view_runtime_ [recurrent_rejected_with_error_] / mark_error_from_recurrent_ + capture_recurrent_decision --> errored : completion_capture_view_runtime_ [recurrent_rejected_without_error_] / mark_backend_error_ + capture_merge --> done : completion_capture_view_runtime_ [always] / merge_capture_snapshots_ + done --> ready : completion_reserve_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_reserve_runtime_ [always] / publish_error_ + errored --> ready : completion_reserve_runtime_ [always] / publish_error_ + done --> ready : completion_allocate_sequence_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_allocate_sequence_runtime_ [always] / publish_error_ + errored --> ready : completion_allocate_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_allocate_slots_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_allocate_slots_runtime_ [always] / publish_error_ + errored --> ready : completion_allocate_slots_runtime_ [always] / publish_error_ + done --> ready : completion_branch_sequence_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_branch_sequence_runtime_ [always] / publish_error_ + errored --> ready : completion_branch_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_free_sequence_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_free_sequence_runtime_ [always] / publish_error_ + errored --> ready : completion_free_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_rollback_slots_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_rollback_slots_runtime_ [always] / publish_error_ + errored --> ready : completion_rollback_slots_runtime_ [always] / publish_error_ + done --> ready : completion_capture_view_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_capture_view_runtime_ [always] / publish_error_ + errored --> ready : completion_capture_view_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + reserve_kv --> ready : _ [always] / on_unexpected_ + reserve_kv_decision --> ready : _ [always] / on_unexpected_ + reserve_recurrent --> ready : _ [always] / on_unexpected_ + reserve_recurrent_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_kv --> ready : _ [always] / on_unexpected_ + allocate_sequence_kv_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_recurrent --> ready : _ [always] / on_unexpected_ + allocate_sequence_recurrent_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_rollback_kv --> ready : _ [always] / on_unexpected_ + allocate_sequence_rollback_result_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_recurrent_error_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_kv --> ready : _ [always] / on_unexpected_ + allocate_slots_kv_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_recurrent --> ready : _ [always] / on_unexpected_ + allocate_slots_recurrent_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_rollback_kv --> ready : _ [always] / on_unexpected_ + allocate_slots_rollback_result_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_recurrent_error_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_kv --> ready : _ [always] / on_unexpected_ + branch_sequence_kv_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_recurrent --> ready : _ [always] / on_unexpected_ + branch_sequence_recurrent_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_rollback_kv --> ready : _ [always] / on_unexpected_ + branch_sequence_rollback_result_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_recurrent_error_decision --> ready : _ [always] / on_unexpected_ + free_sequence_kv --> ready : _ [always] / on_unexpected_ + free_sequence_kv_decision --> ready : _ [always] / on_unexpected_ + free_sequence_recurrent --> ready : _ [always] / on_unexpected_ + free_sequence_recurrent_decision --> ready : _ [always] / on_unexpected_ + rollback_slots_kv --> ready : _ [always] / on_unexpected_ + rollback_slots_kv_decision --> ready : _ [always] / on_unexpected_ + rollback_slots_recurrent --> ready : _ [always] / on_unexpected_ + rollback_slots_recurrent_decision --> ready : _ [always] / on_unexpected_ + capture_request_decision --> ready : _ [always] / on_unexpected_ + capture_kv --> ready : _ [always] / on_unexpected_ + capture_kv_decision --> ready : _ [always] / on_unexpected_ + capture_recurrent --> ready : _ [always] / on_unexpected_ + capture_recurrent_decision --> ready : _ [always] / on_unexpected_ + capture_merge --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + out_of_memory --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ ``` ## Transitions | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`reserve`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`reserve`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`reserve`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_15_45`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_allocate_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_15_45`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_allocate_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_15_45`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`branch_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_branch_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_15_45`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`free_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_free_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_rollback_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`clear_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`reserve_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`reserve_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`reserve_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_reserve_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`reserve_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`reserve_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`reserve_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`reserve_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`reserve_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`reserve_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_reserve_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`reserve_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`reserve_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`reserve_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`reserve_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_sequence_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_allocate_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_sequence_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_allocate_sequence_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_sequence_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_allocate_sequence_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_any>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_allocate_sequence_rollback_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_sequence_rollback_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_rollback_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_sequence_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_sequence_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_rejected_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_rollback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_rejected_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_backend_or_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_non_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_slots_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_allocate_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_slots_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_allocate_slots_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_slots_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_slots_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_backend_or_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_non_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_allocate_slots_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_slots_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_any>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_allocate_slots_rollback_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_slots_rollback_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_rollback_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_slots_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`allocate_slots_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_rejected_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_rollback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_rejected_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_backend_or_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_non_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`branch_sequence_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_branch_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`branch_sequence_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_branch_sequence_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`branch_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`branch_sequence_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_backend_or_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_non_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_branch_sequence_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`branch_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_any>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_branch_sequence_rollback_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`branch_sequence_rollback_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_rollback_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`branch_sequence_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`branch_sequence_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_rejected_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_rollback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_rejected_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_backend_or_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_non_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`free_sequence_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_free_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`free_sequence_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`free_sequence_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_free_sequence_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`free_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`free_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`free_sequence_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`free_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`free_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`free_sequence_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_free_sequence_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`free_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`free_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`free_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`free_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_slots_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_rollback_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_slots_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`rollback_slots_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_rollback_slots_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_slots_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`rollback_slots_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_slots_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`rollback_slots_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`rollback_slots_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`rollback_slots_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_rollback_slots_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`rollback_slots_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`rollback_slots_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`rollback_slots_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`rollback_slots_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_view_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`begin_capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_capture_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_kv>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`kv_rejected_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`exec_capture_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_accepted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`capture_merge`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_error_from_recurrent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`recurrent_rejected_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_merge`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`merge_capture_snapshots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`reserve_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`reserve_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`reserve_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`reserve_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_rollback_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_sequence_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_rollback_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`allocate_slots_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_rollback_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_rollback_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`branch_sequence_recurrent_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`free_sequence_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`free_sequence_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`free_sequence_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`free_sequence_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`rollback_slots_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`rollback_slots_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`rollback_slots_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`rollback_slots_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_kv`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_kv_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_recurrent`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_recurrent_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`capture_merge`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/hybrid/sm.hpp) | diff --git a/docs/architecture/memory_kv.md b/docs/architecture/memory_kv.md index e41880ed..ff31b332 100644 --- a/docs/architecture/memory_kv.md +++ b/docs/architecture/memory_kv.md @@ -7,106 +7,206 @@ Source: [`emel/memory/kv/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/ ```mermaid stateDiagram-v2 direction TB - [*] --> uninitialized - uninitialized --> initializing : reserve [always] / begin_reserve_ - ready --> initializing : reserve [always] / begin_reserve_ - unexpected --> initializing : reserve [always] / begin_reserve_ - initializing --> ready : [lambda_guards_7_34] / none - initializing --> out_of_memory : [lambda_guards_15_45] / none - initializing --> errored : [lambda_guards_11_38] / none - ready --> allocating_sequence : allocate_sequence [always] / begin_allocate_sequence_ - allocating_sequence --> ready : [lambda_guards_7_34] / none - allocating_sequence --> out_of_memory : [lambda_guards_15_45] / none - allocating_sequence --> errored : [lambda_guards_11_38] / none - ready --> allocating_slots : allocate_slots [always] / begin_allocate_slots_ - allocating_slots --> ready : [lambda_guards_7_34] / none - allocating_slots --> out_of_memory : [lambda_guards_15_45] / none - allocating_slots --> errored : [lambda_guards_11_38] / none - ready --> branching_sequence : branch_sequence [always] / begin_branch_sequence_ - branching_sequence --> ready : [lambda_guards_7_34] / none - branching_sequence --> out_of_memory : [lambda_guards_15_45] / none - branching_sequence --> errored : [lambda_guards_11_38] / none - ready --> freeing_sequence : free_sequence [always] / begin_free_sequence_ - freeing_sequence --> ready : [lambda_guards_7_34] / none - freeing_sequence --> errored : [lambda_guards_11_38] / none - ready --> rolling_back_slots : rollback_slots [always] / begin_rollback_slots_ - rolling_back_slots --> ready : [lambda_guards_7_34] / none - rolling_back_slots --> errored : [lambda_guards_11_38] / none - out_of_memory --> ready : [always] / clear_out_of_memory_ - errored --> ready : [always] / ensure_last_error_ - uninitialized --> uninitialized : capture_view [always] / capture_view_ - initializing --> initializing : capture_view [always] / capture_view_ - ready --> ready : capture_view [always] / capture_view_ - allocating_sequence --> allocating_sequence : capture_view [always] / capture_view_ - allocating_slots --> allocating_slots : capture_view [always] / capture_view_ - branching_sequence --> branching_sequence : capture_view [always] / capture_view_ - freeing_sequence --> freeing_sequence : capture_view [always] / capture_view_ - rolling_back_slots --> rolling_back_slots : capture_view [always] / capture_view_ - out_of_memory --> out_of_memory : capture_view [always] / capture_view_ - errored --> errored : capture_view [always] / capture_view_ - unexpected --> unexpected : capture_view [always] / capture_view_ - uninitialized --> unexpected : _ [always] / on_unexpected_ - initializing --> unexpected : _ [always] / on_unexpected_ - ready --> unexpected : _ [always] / on_unexpected_ - allocating_sequence --> unexpected : _ [always] / on_unexpected_ - allocating_slots --> unexpected : _ [always] / on_unexpected_ - branching_sequence --> unexpected : _ [always] / on_unexpected_ - freeing_sequence --> unexpected : _ [always] / on_unexpected_ - rolling_back_slots --> unexpected : _ [always] / on_unexpected_ - out_of_memory --> unexpected : _ [always] / on_unexpected_ - errored --> unexpected : _ [always] / on_unexpected_ - unexpected --> unexpected : _ [always] / on_unexpected_ + [*] --> ready + ready --> reserve_request_decision : reserve_runtime [always] / begin_reserve_ + reserve_request_decision --> reserve_exec : completion_reserve_runtime_ [reserve_request_valid_] / none + reserve_request_decision --> errored : completion_reserve_runtime_ [reserve_request_invalid_] / mark_invalid_request_ + reserve_exec --> reserve_result_decision : completion_reserve_runtime_ [always] / exec_reserve_ + reserve_result_decision --> done : completion_reserve_runtime_ [operation_succeeded_] / none + reserve_result_decision --> errored : completion_reserve_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + reserve_result_decision --> errored : completion_reserve_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> allocate_sequence_request_decision : allocate_sequence_runtime [always] / begin_allocate_sequence_ + allocate_sequence_request_decision --> allocate_sequence_exec : completion_allocate_sequence_runtime_ [allocate_sequence_request_valid_] / none + allocate_sequence_request_decision --> errored : completion_allocate_sequence_runtime_ [allocate_sequence_request_invalid_] / mark_invalid_request_ + allocate_sequence_exec --> allocate_sequence_result_decision : completion_allocate_sequence_runtime_ [always] / exec_allocate_sequence_ + allocate_sequence_result_decision --> done : completion_allocate_sequence_runtime_ [operation_succeeded_] / none + allocate_sequence_result_decision --> errored : completion_allocate_sequence_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + allocate_sequence_result_decision --> errored : completion_allocate_sequence_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> allocate_slots_request_decision : allocate_slots_runtime [always] / begin_allocate_slots_ + allocate_slots_request_decision --> allocate_slots_request_shape_decision : completion_allocate_slots_runtime_ [always] / none + allocate_slots_request_shape_decision --> allocate_slots_request_length_decision : completion_allocate_slots_runtime_ [allocate_slots_request_shape_valid_] / none + allocate_slots_request_shape_decision --> errored : completion_allocate_slots_runtime_ [allocate_slots_request_shape_invalid_] / mark_invalid_request_ + allocate_slots_request_length_decision --> allocate_slots_request_block_layout_decision : completion_allocate_slots_runtime_ [allocate_slots_request_length_valid_] / none + allocate_slots_request_length_decision --> errored : completion_allocate_slots_runtime_ [allocate_slots_request_length_invalid_] / mark_invalid_request_ + allocate_slots_request_block_layout_decision --> allocate_slots_request_capacity_decision : completion_allocate_slots_runtime_ [allocate_slots_request_block_layout_valid_] / none + allocate_slots_request_block_layout_decision --> errored : completion_allocate_slots_runtime_ [allocate_slots_request_block_layout_invalid_] / mark_backend_error_ + allocate_slots_request_capacity_decision --> allocate_slots_exec : completion_allocate_slots_runtime_ [allocate_slots_request_capacity_valid_] / none + allocate_slots_request_capacity_decision --> errored : completion_allocate_slots_runtime_ [allocate_slots_request_capacity_invalid_] / mark_out_of_memory_ + allocate_slots_exec --> allocate_slots_result_decision : completion_allocate_slots_runtime_ [always] / exec_allocate_slots_ + allocate_slots_result_decision --> done : completion_allocate_slots_runtime_ [operation_succeeded_] / none + allocate_slots_result_decision --> errored : completion_allocate_slots_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + allocate_slots_result_decision --> errored : completion_allocate_slots_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> branch_sequence_request_decision : branch_sequence_runtime [always] / begin_branch_sequence_ + branch_sequence_request_decision --> branch_sequence_exec : completion_branch_sequence_runtime_ [branch_sequence_request_valid_] / none + branch_sequence_request_decision --> errored : completion_branch_sequence_runtime_ [branch_sequence_request_invalid_] / mark_invalid_request_ + branch_sequence_exec --> branch_sequence_result_decision : completion_branch_sequence_runtime_ [always] / exec_branch_sequence_ + branch_sequence_result_decision --> done : completion_branch_sequence_runtime_ [operation_succeeded_] / none + branch_sequence_result_decision --> errored : completion_branch_sequence_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + branch_sequence_result_decision --> errored : completion_branch_sequence_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> free_sequence_request_decision : free_sequence_runtime [always] / begin_free_sequence_ + free_sequence_request_decision --> free_sequence_exec : completion_free_sequence_runtime_ [free_sequence_request_valid_] / none + free_sequence_request_decision --> errored : completion_free_sequence_runtime_ [free_sequence_request_invalid_] / mark_invalid_request_ + free_sequence_exec --> free_sequence_result_decision : completion_free_sequence_runtime_ [always] / exec_free_sequence_ + free_sequence_result_decision --> done : completion_free_sequence_runtime_ [operation_succeeded_] / none + free_sequence_result_decision --> errored : completion_free_sequence_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + free_sequence_result_decision --> errored : completion_free_sequence_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> rollback_slots_request_decision : rollback_slots_runtime [always] / begin_rollback_slots_ + rollback_slots_request_decision --> rollback_slots_exec : completion_rollback_slots_runtime_ [rollback_slots_request_valid_] / none + rollback_slots_request_decision --> errored : completion_rollback_slots_runtime_ [rollback_slots_request_invalid_] / mark_invalid_request_ + rollback_slots_exec --> rollback_slots_result_decision : completion_rollback_slots_runtime_ [always] / exec_rollback_slots_ + rollback_slots_result_decision --> done : completion_rollback_slots_runtime_ [operation_succeeded_] / none + rollback_slots_result_decision --> errored : completion_rollback_slots_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + rollback_slots_result_decision --> errored : completion_rollback_slots_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> capture_request_decision : capture_view_runtime [always] / begin_capture_view_ + capture_request_decision --> capture_exec : completion_capture_view_runtime_ [capture_request_valid_] / none + capture_request_decision --> errored : completion_capture_view_runtime_ [capture_request_invalid_] / mark_invalid_request_ + capture_exec --> capture_result_decision : completion_capture_view_runtime_ [always] / exec_capture_view_ + capture_result_decision --> done : completion_capture_view_runtime_ [operation_succeeded_] / none + capture_result_decision --> errored : completion_capture_view_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + capture_result_decision --> errored : completion_capture_view_runtime_ [operation_failed_without_error_] / mark_backend_error_ + done --> ready : completion_reserve_runtime_ [always] / publish_done_ + errored --> ready : completion_reserve_runtime_ [always] / publish_error_ + done --> ready : completion_allocate_sequence_runtime_ [always] / publish_done_ + errored --> ready : completion_allocate_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_allocate_slots_runtime_ [always] / publish_done_ + errored --> ready : completion_allocate_slots_runtime_ [always] / publish_error_ + done --> ready : completion_branch_sequence_runtime_ [always] / publish_done_ + errored --> ready : completion_branch_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_free_sequence_runtime_ [always] / publish_done_ + errored --> ready : completion_free_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_rollback_slots_runtime_ [always] / publish_done_ + errored --> ready : completion_rollback_slots_runtime_ [always] / publish_error_ + done --> ready : completion_capture_view_runtime_ [always] / publish_done_ + errored --> ready : completion_capture_view_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + reserve_request_decision --> ready : _ [always] / on_unexpected_ + reserve_exec --> ready : _ [always] / on_unexpected_ + reserve_result_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_request_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_exec --> ready : _ [always] / on_unexpected_ + allocate_sequence_result_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_shape_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_length_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_block_layout_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_capacity_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_exec --> ready : _ [always] / on_unexpected_ + allocate_slots_result_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_request_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_exec --> ready : _ [always] / on_unexpected_ + branch_sequence_result_decision --> ready : _ [always] / on_unexpected_ + free_sequence_request_decision --> ready : _ [always] / on_unexpected_ + free_sequence_exec --> ready : _ [always] / on_unexpected_ + free_sequence_result_decision --> ready : _ [always] / on_unexpected_ + rollback_slots_request_decision --> ready : _ [always] / on_unexpected_ + rollback_slots_exec --> ready : _ [always] / on_unexpected_ + rollback_slots_result_decision --> ready : _ [always] / on_unexpected_ + capture_request_decision --> ready : _ [always] / on_unexpected_ + capture_exec --> ready : _ [always] / on_unexpected_ + capture_result_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ ``` ## Transitions | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`reserve`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`reserve`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`reserve`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_15_45`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_allocate_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_15_45`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_allocate_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_15_45`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`branch_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_branch_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_15_45`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`free_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_free_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`rollback_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_rollback_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`clear_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`reserve_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`reserve_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`reserve_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`reserve_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`reserve_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`reserve_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`reserve_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`reserve_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`exec_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`reserve_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`reserve_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`reserve_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`reserve_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_sequence_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_allocate_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_sequence_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_sequence_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`exec_allocate_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_allocate_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_shape_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_length_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_shape_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_length_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_length_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_block_layout_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_length_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_length_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_block_layout_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_block_layout_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_block_layout_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_block_layout_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_capacity_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_request_capacity_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`exec_allocate_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`allocate_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`branch_sequence_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_branch_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`branch_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`branch_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`branch_sequence_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`branch_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`branch_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`branch_sequence_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`branch_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`exec_branch_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`branch_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`branch_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`branch_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`branch_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`free_sequence_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_free_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`free_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`free_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`free_sequence_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`free_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`free_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`free_sequence_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`free_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`exec_free_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`free_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`free_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`free_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`free_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`rollback_slots_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_rollback_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`rollback_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`rollback_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`rollback_slots_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`rollback_slots_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`rollback_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`rollback_slots_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`rollback_slots_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`exec_rollback_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`rollback_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`rollback_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`rollback_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`rollback_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_view_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`begin_capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`capture_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`capture_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`capture_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`exec_capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`capture_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`capture_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`capture_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`capture_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`reserve_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`reserve_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`reserve_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_length_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_block_layout_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_request_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`allocate_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`branch_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`branch_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`branch_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`free_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`free_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`free_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`rollback_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`rollback_slots_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`rollback_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`capture_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`capture_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`capture_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/kv/sm.hpp) | diff --git a/docs/architecture/memory_recurrent.md b/docs/architecture/memory_recurrent.md index 2d917be5..f044be7b 100644 --- a/docs/architecture/memory_recurrent.md +++ b/docs/architecture/memory_recurrent.md @@ -7,104 +7,224 @@ Source: [`emel/memory/recurrent/sm.hpp`](https://github.com/stateforward/emel.cp ```mermaid stateDiagram-v2 direction TB - [*] --> uninitialized - uninitialized --> initializing : reserve [always] / begin_reserve_ - ready --> initializing : reserve [always] / begin_reserve_ - unexpected --> initializing : reserve [always] / begin_reserve_ - initializing --> ready : [lambda_guards_7_34] / none - initializing --> out_of_memory : [lambda_guards_15_45] / none - initializing --> errored : [lambda_guards_11_38] / none - ready --> allocating_sequence : allocate_sequence [always] / begin_allocate_sequence_ - allocating_sequence --> ready : [lambda_guards_7_34] / none - allocating_sequence --> out_of_memory : [lambda_guards_15_45] / none - allocating_sequence --> errored : [lambda_guards_11_38] / none - ready --> allocating_slots : allocate_slots [always] / begin_allocate_slots_ - allocating_slots --> ready : [lambda_guards_7_34] / none - allocating_slots --> errored : [lambda_guards_11_38] / none - ready --> branching_sequence : branch_sequence [always] / begin_branch_sequence_ - branching_sequence --> ready : [lambda_guards_7_34] / none - branching_sequence --> out_of_memory : [lambda_guards_15_45] / none - branching_sequence --> errored : [lambda_guards_11_38] / none - ready --> freeing_sequence : free_sequence [always] / begin_free_sequence_ - freeing_sequence --> ready : [lambda_guards_7_34] / none - freeing_sequence --> errored : [lambda_guards_11_38] / none - ready --> rolling_back_slots : rollback_slots [always] / begin_rollback_slots_ - rolling_back_slots --> ready : [lambda_guards_7_34] / none - rolling_back_slots --> errored : [lambda_guards_11_38] / none - out_of_memory --> ready : [always] / clear_out_of_memory_ - errored --> ready : [always] / ensure_last_error_ - uninitialized --> uninitialized : capture_view [always] / capture_view_ - initializing --> initializing : capture_view [always] / capture_view_ - ready --> ready : capture_view [always] / capture_view_ - allocating_sequence --> allocating_sequence : capture_view [always] / capture_view_ - allocating_slots --> allocating_slots : capture_view [always] / capture_view_ - branching_sequence --> branching_sequence : capture_view [always] / capture_view_ - freeing_sequence --> freeing_sequence : capture_view [always] / capture_view_ - rolling_back_slots --> rolling_back_slots : capture_view [always] / capture_view_ - out_of_memory --> out_of_memory : capture_view [always] / capture_view_ - errored --> errored : capture_view [always] / capture_view_ - unexpected --> unexpected : capture_view [always] / capture_view_ - uninitialized --> unexpected : _ [always] / on_unexpected_ - initializing --> unexpected : _ [always] / on_unexpected_ - ready --> unexpected : _ [always] / on_unexpected_ - allocating_sequence --> unexpected : _ [always] / on_unexpected_ - allocating_slots --> unexpected : _ [always] / on_unexpected_ - branching_sequence --> unexpected : _ [always] / on_unexpected_ - freeing_sequence --> unexpected : _ [always] / on_unexpected_ - rolling_back_slots --> unexpected : _ [always] / on_unexpected_ - out_of_memory --> unexpected : _ [always] / on_unexpected_ - errored --> unexpected : _ [always] / on_unexpected_ - unexpected --> unexpected : _ [always] / on_unexpected_ + [*] --> ready + ready --> reserve_request_decision : reserve_runtime [always] / begin_reserve_ + reserve_request_decision --> reserve_exec : completion_reserve_runtime_ [reserve_request_valid_] / none + reserve_request_decision --> errored : completion_reserve_runtime_ [reserve_request_invalid_] / mark_invalid_request_ + reserve_exec --> reserve_result_decision : completion_reserve_runtime_ [always] / exec_reserve_ + reserve_result_decision --> done : completion_reserve_runtime_ [operation_succeeded_] / none + reserve_result_decision --> errored : completion_reserve_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + reserve_result_decision --> errored : completion_reserve_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> allocate_sequence_request_decision : allocate_sequence_runtime [always] / begin_allocate_sequence_ + allocate_sequence_request_decision --> allocate_sequence_exec : completion_allocate_sequence_runtime_ [allocate_sequence_request_inactive_with_slot_] / none + allocate_sequence_request_decision --> done : completion_allocate_sequence_runtime_ [allocate_sequence_request_active_] / mark_operation_success_ + allocate_sequence_request_decision --> errored : completion_allocate_sequence_runtime_ [allocate_sequence_request_inactive_without_slot_] / mark_backend_error_ + allocate_sequence_request_decision --> errored : completion_allocate_sequence_runtime_ [allocate_sequence_request_invalid_] / mark_invalid_request_ + allocate_sequence_exec --> allocate_sequence_result_decision : completion_allocate_sequence_runtime_ [always] / exec_allocate_sequence_inactive_ + allocate_sequence_result_decision --> done : completion_allocate_sequence_runtime_ [operation_succeeded_] / none + allocate_sequence_result_decision --> errored : completion_allocate_sequence_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + allocate_sequence_result_decision --> errored : completion_allocate_sequence_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> allocate_slots_request_decision : allocate_slots_runtime [always] / begin_allocate_slots_ + allocate_slots_request_decision --> allocate_slots_request_shape_decision : completion_allocate_slots_runtime_ [always] / none + allocate_slots_request_shape_decision --> allocate_slots_request_length_decision : completion_allocate_slots_runtime_ [allocate_slots_request_shape_valid_] / none + allocate_slots_request_shape_decision --> errored : completion_allocate_slots_runtime_ [allocate_slots_request_shape_invalid_] / mark_invalid_request_ + allocate_slots_request_length_decision --> allocate_slots_exec : completion_allocate_slots_runtime_ [allocate_slots_request_length_valid_] / none + allocate_slots_request_length_decision --> errored : completion_allocate_slots_runtime_ [allocate_slots_request_length_invalid_] / mark_invalid_request_ + allocate_slots_exec --> allocate_slots_result_decision : completion_allocate_slots_runtime_ [always] / exec_allocate_slots_ + allocate_slots_result_decision --> done : completion_allocate_slots_runtime_ [operation_succeeded_] / none + allocate_slots_result_decision --> errored : completion_allocate_slots_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + allocate_slots_result_decision --> errored : completion_allocate_slots_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> branch_sequence_request_decision : branch_sequence_runtime [always] / begin_branch_sequence_ + branch_sequence_request_decision --> branch_sequence_request_shape_decision : completion_branch_sequence_runtime_ [always] / none + branch_sequence_request_shape_decision --> branch_sequence_request_capacity_decision : completion_branch_sequence_runtime_ [branch_sequence_request_shape_valid_] / none + branch_sequence_request_shape_decision --> errored : completion_branch_sequence_runtime_ [branch_sequence_request_shape_invalid_] / mark_invalid_request_ + branch_sequence_request_capacity_decision --> branch_sequence_exec : completion_branch_sequence_runtime_ [branch_sequence_request_capacity_available_] / none + branch_sequence_request_capacity_decision --> errored : completion_branch_sequence_runtime_ [branch_sequence_request_capacity_exhausted_] / mark_backend_error_ + branch_sequence_exec --> branch_sequence_result_decision : completion_branch_sequence_runtime_ [always] / exec_branch_sequence_prepare_child_slot_ + branch_sequence_result_decision --> branch_sequence_copy_exec : completion_branch_sequence_runtime_ [branch_slot_activation_succeeded_] / none + branch_sequence_result_decision --> errored : completion_branch_sequence_runtime_ [branch_slot_activation_failed_] / mark_backend_error_ + branch_sequence_copy_exec --> branch_sequence_copy_result_decision : completion_branch_sequence_runtime_ [always] / exec_branch_sequence_copy_callback_ + branch_sequence_copy_result_decision --> done : completion_branch_sequence_runtime_ [branch_copy_succeeded_] / finalize_branch_sequence_success_ + branch_sequence_copy_result_decision --> branch_sequence_rollback_exec : completion_branch_sequence_runtime_ [branch_copy_failed_with_error_] / mark_error_from_operation_ + branch_sequence_copy_result_decision --> branch_sequence_rollback_exec : completion_branch_sequence_runtime_ [branch_copy_failed_without_error_] / mark_backend_error_ + branch_sequence_rollback_exec --> errored : completion_branch_sequence_runtime_ [always] / exec_branch_sequence_rollback_child_slot_ + ready --> free_sequence_request_decision : free_sequence_runtime [always] / begin_free_sequence_ + free_sequence_request_decision --> free_sequence_exec : completion_free_sequence_runtime_ [free_sequence_request_active_] / none + free_sequence_request_decision --> done : completion_free_sequence_runtime_ [free_sequence_request_inactive_] / mark_operation_success_ + free_sequence_request_decision --> errored : completion_free_sequence_runtime_ [free_sequence_request_invalid_] / mark_invalid_request_ + free_sequence_exec --> free_sequence_result_decision : completion_free_sequence_runtime_ [always] / exec_free_sequence_active_ + free_sequence_result_decision --> done : completion_free_sequence_runtime_ [operation_succeeded_] / none + free_sequence_result_decision --> errored : completion_free_sequence_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + free_sequence_result_decision --> errored : completion_free_sequence_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> rollback_slots_request_decision : rollback_slots_runtime [always] / begin_rollback_slots_ + rollback_slots_request_decision --> rollback_slots_exec : completion_rollback_slots_runtime_ [rollback_slots_request_valid_] / none + rollback_slots_request_decision --> errored : completion_rollback_slots_runtime_ [rollback_slots_request_invalid_] / mark_invalid_request_ + rollback_slots_exec --> rollback_slots_result_decision : completion_rollback_slots_runtime_ [always] / exec_rollback_slots_ + rollback_slots_result_decision --> done : completion_rollback_slots_runtime_ [operation_succeeded_] / none + rollback_slots_result_decision --> errored : completion_rollback_slots_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + rollback_slots_result_decision --> errored : completion_rollback_slots_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> capture_request_decision : capture_view_runtime [always] / begin_capture_view_ + capture_request_decision --> capture_exec : completion_capture_view_runtime_ [capture_request_valid_] / none + capture_request_decision --> errored : completion_capture_view_runtime_ [capture_request_invalid_] / mark_invalid_request_ + capture_exec --> capture_result_decision : completion_capture_view_runtime_ [always] / exec_capture_view_ + capture_result_decision --> done : completion_capture_view_runtime_ [operation_succeeded_] / none + capture_result_decision --> errored : completion_capture_view_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + capture_result_decision --> errored : completion_capture_view_runtime_ [operation_failed_without_error_] / mark_backend_error_ + done --> ready : completion_reserve_runtime_ [always] / publish_done_ + errored --> ready : completion_reserve_runtime_ [always] / publish_error_ + done --> ready : completion_allocate_sequence_runtime_ [always] / publish_done_ + errored --> ready : completion_allocate_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_allocate_slots_runtime_ [always] / publish_done_ + errored --> ready : completion_allocate_slots_runtime_ [always] / publish_error_ + done --> ready : completion_branch_sequence_runtime_ [always] / publish_done_ + errored --> ready : completion_branch_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_free_sequence_runtime_ [always] / publish_done_ + errored --> ready : completion_free_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_rollback_slots_runtime_ [always] / publish_done_ + errored --> ready : completion_rollback_slots_runtime_ [always] / publish_error_ + done --> ready : completion_capture_view_runtime_ [always] / publish_done_ + errored --> ready : completion_capture_view_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + reserve_request_decision --> ready : _ [always] / on_unexpected_ + reserve_exec --> ready : _ [always] / on_unexpected_ + reserve_result_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_request_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_exec --> ready : _ [always] / on_unexpected_ + allocate_sequence_result_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_shape_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_length_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_exec --> ready : _ [always] / on_unexpected_ + allocate_slots_result_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_request_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_request_shape_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_request_capacity_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_exec --> ready : _ [always] / on_unexpected_ + branch_sequence_result_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_copy_exec --> ready : _ [always] / on_unexpected_ + branch_sequence_copy_result_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_rollback_exec --> ready : _ [always] / on_unexpected_ + free_sequence_request_decision --> ready : _ [always] / on_unexpected_ + free_sequence_exec --> ready : _ [always] / on_unexpected_ + free_sequence_result_decision --> ready : _ [always] / on_unexpected_ + rollback_slots_request_decision --> ready : _ [always] / on_unexpected_ + rollback_slots_exec --> ready : _ [always] / on_unexpected_ + rollback_slots_result_decision --> ready : _ [always] / on_unexpected_ + capture_request_decision --> ready : _ [always] / on_unexpected_ + capture_exec --> ready : _ [always] / on_unexpected_ + capture_result_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ ``` ## Transitions | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`reserve`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`reserve`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`reserve`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_15_45`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_allocate_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_15_45`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_allocate_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_branch_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_15_45`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`free_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_free_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`rollback_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_rollback_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_7_34`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`lambda_guards_11_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`clear_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`allocating_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`allocating_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`branching_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`freeing_sequence`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`rolling_back_slots`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`out_of_memory`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`reserve_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`reserve_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`reserve_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`reserve_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`reserve_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`reserve_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`reserve_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`reserve_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`exec_reserve>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`reserve_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`reserve_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`reserve_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`reserve_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_sequence_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_allocate_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_sequence_request_inactive_with_slot>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_sequence_request_active>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_operation_success>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_sequence_request_inactive_without_slot>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_sequence_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`exec_allocate_sequence_inactive>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_slots_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_allocate_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_slots_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_slots_request_shape_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_slots_request_length_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_slots_request_shape_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_request_length_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_slots_request_length_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_slots_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_request_length_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_slots_request_length_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`exec_allocate_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`allocate_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_branch_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_request_shape_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_request_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_request_shape_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_request_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_request_capacity_available>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_request_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_request_capacity_exhausted>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`exec_branch_sequence_prepare_child_slot>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_slot_activation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_copy_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_slot_activation_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_copy_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`exec_branch_sequence_copy_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_copy_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_copy_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_copy_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`finalize_branch_sequence_success>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_copy_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_copy_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_rollback_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_copy_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_copy_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`branch_sequence_rollback_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_rollback_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`exec_branch_sequence_rollback_child_slot>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`free_sequence_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_free_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`free_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`free_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`free_sequence_request_active>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`free_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`free_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`free_sequence_request_inactive>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_operation_success>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`free_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`free_sequence_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`free_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`exec_free_sequence_active>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`free_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`free_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`free_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`free_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`rollback_slots_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_rollback_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`rollback_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`rollback_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`rollback_slots_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`rollback_slots_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`rollback_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`rollback_slots_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`rollback_slots_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`exec_rollback_slots>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`rollback_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`rollback_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`rollback_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`rollback_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_view_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`begin_capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`capture_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`capture_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`capture_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`exec_capture_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`capture_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`capture_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`capture_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`capture_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`reserve_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`reserve_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`reserve_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_request_length_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`allocate_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_request_shape_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_request_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_copy_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_copy_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`branch_sequence_rollback_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`free_sequence_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`free_sequence_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`free_sequence_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`rollback_slots_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`rollback_slots_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`rollback_slots_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`capture_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`capture_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`capture_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/memory/recurrent/sm.hpp) | diff --git a/docs/architecture/mermaid/batch_planner.mmd b/docs/architecture/mermaid/batch_planner.mmd index 00ada3e3..6e794801 100644 --- a/docs/architecture/mermaid/batch_planner.mmd +++ b/docs/architecture/mermaid/batch_planner.mmd @@ -1,32 +1,30 @@ stateDiagram-v2 direction TB [*] --> initialized - initialized --> validate_decision : request [always] / lambda_actions_11_36 - validate_decision --> normalizing_batch : completion [lambda_guards_11_5] / none - validate_decision --> invalid_request : completion [always] / lambda_actions_60_58 - normalizing_batch --> mode_decision : completion [always] / lambda_actions_22_41 - mode_decision --> model__ : completion [lambda_guards_21_5] / none - mode_decision --> model__ : completion [lambda_guards_26_5] / none - mode_decision --> model__ : completion [lambda_guards_36_37] / none - mode_decision --> invalid_request : completion [lambda_guards_43_5] / lambda_actions_79_47 - model__ --> publishing : completion [lambda_guards_55_5] / lambda_actions_29_33 - model__ --> plan_failed : completion [lambda_guards_69_5] / none - model__ --> publishing : completion [lambda_guards_55_5] / lambda_actions_29_33 - model__ --> plan_failed : completion [lambda_guards_69_5] / none - model__ --> publishing : completion [lambda_guards_55_5] / lambda_actions_29_33 - model__ --> plan_failed : completion [lambda_guards_69_5] / none - publishing --> done : completion [always] / lambda_actions_31_39 - done --> validate_decision : request [always] / lambda_actions_11_36 - invalid_request --> validate_decision : request [always] / lambda_actions_11_36 - plan_failed --> done : completion [always] / lambda_actions_65_54 - plan_failed --> validate_decision : request [always] / lambda_actions_11_36 - unexpected_event --> validate_decision : request [always] / lambda_actions_11_36 - initialized --> unexpected_event : _ [always] / none - validate_decision --> unexpected_event : _ [always] / none - normalizing_batch --> unexpected_event : _ [always] / none - mode_decision --> unexpected_event : _ [always] / none - publishing --> unexpected_event : _ [always] / none - done --> unexpected_event : _ [always] / none - invalid_request --> unexpected_event : _ [always] / none - plan_failed --> unexpected_event : _ [always] / none - unexpected_event --> unexpected_event : _ [always] / none + initialized --> validate_decision : request_runtime [always] / lambda_actions_27_36 + validate_decision --> normalizing_batch : completion_request_runtime_ [lambda_guards_24_42] / none + validate_decision --> invalid_request : completion_request_runtime_ [lambda_guards_29_44] / lambda_actions_66_46 + normalizing_batch --> mode_decision : completion_request_runtime_ [always] / lambda_actions_38_41 + mode_decision --> model__ : completion_request_runtime_ [lambda_guards_34_40] / none + mode_decision --> model__ : completion_request_runtime_ [lambda_guards_39_39] / none + mode_decision --> model__ : completion_request_runtime_ [lambda_guards_50_37] / none + mode_decision --> invalid_request : completion_request_runtime_ [lambda_guards_56_41] / lambda_actions_73_43 + model__ --> publishing : completion_request_runtime_ [lambda_guards_67_44] / lambda_actions_50_33 + model__ --> done : completion_request_runtime_ [lambda_guards_87_52] / lambda_actions_80_61 + model__ --> done : completion_request_runtime_ [lambda_guards_92_55] / lambda_actions_85_55 + model__ --> publishing : completion_request_runtime_ [lambda_guards_67_44] / lambda_actions_50_33 + model__ --> done : completion_request_runtime_ [lambda_guards_87_52] / lambda_actions_80_61 + model__ --> done : completion_request_runtime_ [lambda_guards_92_55] / lambda_actions_85_55 + model__ --> publishing : completion_request_runtime_ [lambda_guards_67_44] / lambda_actions_50_33 + model__ --> done : completion_request_runtime_ [lambda_guards_87_52] / lambda_actions_80_61 + model__ --> done : completion_request_runtime_ [lambda_guards_92_55] / lambda_actions_85_55 + publishing --> done : completion_request_runtime_ [always] / lambda_actions_52_39 + done --> validate_decision : request_runtime [always] / lambda_actions_27_36 + invalid_request --> validate_decision : request_runtime [always] / lambda_actions_27_36 + initialized --> initialized : _ [always] / lambda_actions_90_39 + validate_decision --> initialized : _ [always] / lambda_actions_90_39 + normalizing_batch --> initialized : _ [always] / lambda_actions_90_39 + mode_decision --> initialized : _ [always] / lambda_actions_90_39 + publishing --> initialized : _ [always] / lambda_actions_90_39 + done --> initialized : _ [always] / lambda_actions_90_39 + invalid_request --> initialized : _ [always] / lambda_actions_90_39 diff --git a/docs/architecture/mermaid/gbnf_rule_parser.mmd b/docs/architecture/mermaid/gbnf_rule_parser.mmd index 5a6add6b..f035e045 100644 --- a/docs/architecture/mermaid/gbnf_rule_parser.mmd +++ b/docs/architecture/mermaid/gbnf_rule_parser.mmd @@ -5,61 +5,91 @@ stateDiagram-v2 ready --> ready : parse_rules [invalid_parse_with_dispatchable_grammar_] / reject_invalid_parse_with_dispatch_ ready --> ready : parse_rules [invalid_parse_with_grammar_only_] / reject_invalid_parse_with_grammar_only_ ready --> ready : parse_rules [invalid_parse_without_grammar_] / reject_invalid_parse_without_grammar_ - expect_rule_name --> expect_rule_name_decision : completion [always] / request_next_token_ - expect_rule_name_decision --> parse_decision : completion [lexer_failed_] / none - expect_rule_name_decision --> eof_symbols_decision : completion [lexer_at_eof_] / none - expect_rule_name_decision --> model__ : completion [token_identifier_] / set_nonterm_mode_definition_ - expect_rule_name_decision --> expect_rule_name : completion [token_newline_] / none - expect_rule_name_decision --> parse_decision : completion [always] / consume_token_invalid_ - model__ --> parse_decision : completion [nonterm_failed_] / none - model__ --> expect_definition : completion [nonterm_definition_done_] / apply_nonterm_definition_ - model__ --> in_rule_expression_after_term : completion [nonterm_reference_done_] / apply_nonterm_reference_ - model__ --> parse_decision : completion [always] / consume_token_invalid_ - expect_definition --> expect_definition_decision : completion [always] / request_next_token_ - expect_definition_decision --> parse_decision : completion [lexer_failed_] / none - expect_definition_decision --> parse_decision : completion [lexer_at_eof_] / fail_eof_in_expect_definition_ - expect_definition_decision --> model__ : completion [lexer_has_token_] / none - expect_definition_decision --> parse_decision : completion [always] / consume_token_invalid_ - model__ --> parse_decision : completion [definition_failed_] / none - model__ --> in_rule_expression_need_term : completion [definition_done_] / consume_token_definition_operator_ - model__ --> parse_decision : completion [always] / consume_token_invalid_ - in_rule_expression_need_term --> in_rule_expression_need_term_decision : completion [always] / request_next_token_ - in_rule_expression_need_term_decision --> parse_decision : completion [lexer_failed_] / none - in_rule_expression_need_term_decision --> model__ : completion [lexer_has_token_] / set_term_origin_need_term_ - in_rule_expression_need_term_decision --> parse_decision : completion [always] / consume_token_invalid_ - in_rule_expression_after_term --> in_rule_expression_after_term_decision : completion [always] / request_next_token_ - in_rule_expression_after_term_decision --> parse_decision : completion [lexer_failed_] / none - in_rule_expression_after_term_decision --> eof_symbols_decision : completion [eof_can_finalize_active_rule_] / finalize_active_rule_on_eof_ - in_rule_expression_after_term_decision --> parse_decision : completion [eof_cannot_finalize_active_rule_] / consume_token_invalid_ - in_rule_expression_after_term_decision --> model__ : completion [lexer_has_token_] / set_term_origin_after_term_ - in_rule_expression_after_term_decision --> parse_decision : completion [always] / consume_token_invalid_ - model__ --> parse_decision : completion [expression_failed_] / none - model__ --> model__ : completion [expression_done_identifier_] / set_nonterm_mode_reference_ - model__ --> model__ : completion [expression_done_non_identifier_] / none - model__ --> parse_decision : completion [always] / consume_token_invalid_ - model__ --> parse_decision : completion [term_failed_] / none - model__ --> in_rule_expression_after_term : completion [term_need_literal_valid_] / consume_token_literal_ - model__ --> in_rule_expression_after_term : completion [term_need_character_class_valid_] / consume_token_character_class_ - model__ --> in_rule_expression_after_term : completion [term_need_rule_reference_valid_] / consume_token_rule_reference_ - model__ --> in_rule_expression_after_term : completion [term_need_dot_valid_] / consume_token_dot_ - model__ --> in_rule_expression_need_term : completion [term_need_open_group_valid_] / consume_token_open_group_ - model__ --> in_rule_expression_need_term : completion [term_need_newline_with_group_depth_nonzero_] / none - model__ --> parse_decision : completion [term_from_need_term_] / consume_token_invalid_ - model__ --> in_rule_expression_after_term : completion [term_after_literal_valid_] / consume_token_literal_ - model__ --> in_rule_expression_after_term : completion [term_after_character_class_valid_] / consume_token_character_class_ - model__ --> in_rule_expression_after_term : completion [term_after_rule_reference_valid_] / consume_token_rule_reference_ - model__ --> in_rule_expression_after_term : completion [term_after_dot_valid_] / consume_token_dot_ - model__ --> in_rule_expression_need_term : completion [term_after_open_group_valid_] / consume_token_open_group_ - model__ --> in_rule_expression_need_term : completion [term_after_alternation_valid_] / consume_token_alternation_ - model__ --> in_rule_expression_after_term : completion [term_after_newline_with_group_depth_nonzero_] / none - model__ --> expect_rule_name : completion [term_after_newline_with_group_depth_zero_valid_] / finalize_active_rule_on_eof_ - model__ --> in_rule_expression_after_term : completion [term_after_close_group_valid_] / consume_token_close_group_ - model__ --> in_rule_expression_after_term : completion [term_after_quantifier_valid_] / consume_token_quantifier_ - model__ --> parse_decision : completion [term_from_after_term_] / consume_token_invalid_ - eof_symbols_decision --> parse_decision : completion [eof_can_finalize_symbols_] / none - eof_symbols_decision --> parse_decision : completion [eof_cannot_finalize_symbols_] / consume_token_invalid_ - parse_decision --> ready : completion [phase_ok_] / dispatch_done_ - parse_decision --> ready : completion [phase_failed_] / dispatch_error_ + expect_rule_name --> expect_rule_name_decision : completion_parse_rules_ [always] / request_next_token_ + expect_rule_name_decision --> parse_decision : completion_parse_rules_ [lexer_failed_] / none + expect_rule_name_decision --> eof_symbols_decision : completion_parse_rules_ [lexer_at_eof_] / none + expect_rule_name_decision --> model__ : completion_parse_rules_ [token_identifier_] / set_nonterm_mode_definition_ + expect_rule_name_decision --> expect_rule_name : completion_parse_rules_ [token_newline_] / none + expect_rule_name_decision --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + model__ --> parse_decision : completion_parse_rules_ [nonterm_failed_] / none + model__ --> expect_definition : completion_parse_rules_ [nonterm_definition_done_] / apply_nonterm_definition_ + model__ --> in_rule_expression_after_term : completion_parse_rules_ [nonterm_reference_done_] / apply_nonterm_reference_ + model__ --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + expect_definition --> expect_definition_decision : completion_parse_rules_ [always] / request_next_token_ + expect_definition_decision --> parse_decision : completion_parse_rules_ [lexer_failed_] / none + expect_definition_decision --> parse_decision : completion_parse_rules_ [lexer_at_eof_] / fail_eof_in_expect_definition_ + expect_definition_decision --> model__ : completion_parse_rules_ [lexer_has_token_] / none + expect_definition_decision --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + model__ --> parse_decision : completion_parse_rules_ [definition_failed_] / none + model__ --> in_rule_expression_need_term : completion_parse_rules_ [definition_done_] / consume_token_definition_operator_ + model__ --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + in_rule_expression_need_term --> in_rule_expression_need_term_decision : completion_parse_rules_ [always] / request_next_token_ + in_rule_expression_need_term_decision --> parse_decision : completion_parse_rules_ [lexer_failed_] / none + in_rule_expression_need_term_decision --> model__ : completion_parse_rules_ [lexer_has_token_] / set_term_origin_need_term_ + in_rule_expression_need_term_decision --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + in_rule_expression_after_term --> in_rule_expression_after_term_decision : completion_parse_rules_ [always] / request_next_token_ + in_rule_expression_after_term_decision --> parse_decision : completion_parse_rules_ [lexer_failed_] / none + in_rule_expression_after_term_decision --> eof_symbols_decision : completion_parse_rules_ [eof_can_finalize_active_rule_] / finalize_active_rule_on_eof_ + in_rule_expression_after_term_decision --> parse_decision : completion_parse_rules_ [eof_cannot_finalize_active_rule_] / consume_token_invalid_ + in_rule_expression_after_term_decision --> model__ : completion_parse_rules_ [lexer_has_token_] / set_term_origin_after_term_ + in_rule_expression_after_term_decision --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + model__ --> parse_decision : completion_parse_rules_ [expression_failed_] / none + model__ --> model__ : completion_parse_rules_ [expression_done_identifier_] / set_nonterm_mode_reference_ + model__ --> model__ : completion_parse_rules_ [expression_done_non_identifier_] / none + model__ --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + model__ --> parse_decision : completion_parse_rules_ [term_failed_] / none + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_need_literal_valid_] / consume_token_literal_ + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_need_character_class_valid_] / consume_token_character_class_ + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_after_literal_valid_] / consume_token_literal_ + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_after_character_class_valid_] / consume_token_character_class_ + model__ --> rule_reference_decision : completion_parse_rules_ [term_need_rule_reference_candidate_] / none + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_need_dot_valid_] / consume_token_dot_ + model__ --> in_rule_expression_need_term : completion_parse_rules_ [term_need_open_group_valid_] / consume_token_open_group_ + model__ --> in_rule_expression_need_term : completion_parse_rules_ [term_need_newline_with_group_depth_nonzero_] / none + model__ --> parse_decision : completion_parse_rules_ [term_from_need_term_] / consume_token_invalid_ + model__ --> rule_reference_decision : completion_parse_rules_ [term_after_rule_reference_candidate_] / none + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_after_dot_valid_] / consume_token_dot_ + model__ --> in_rule_expression_need_term : completion_parse_rules_ [term_after_open_group_valid_] / consume_token_open_group_ + model__ --> in_rule_expression_need_term : completion_parse_rules_ [term_after_alternation_valid_] / consume_token_alternation_ + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_after_newline_with_group_depth_nonzero_] / none + model__ --> expect_rule_name : completion_parse_rules_ [term_after_newline_with_group_depth_zero_valid_] / finalize_active_rule_on_eof_ + model__ --> in_rule_expression_after_term : completion_parse_rules_ [term_after_close_group_valid_] / consume_token_close_group_ + model__ --> quantifier_decision : completion_parse_rules_ [term_after_quantifier_candidate_] / none + model__ --> parse_decision : completion_parse_rules_ [term_from_after_term_] / consume_token_invalid_ + rule_reference_decision --> rule_reference_plain_exec : completion_parse_rules_ [rule_reference_plain_envelope_valid_] / consume_token_rule_reference_plain_ + rule_reference_decision --> rule_reference_negated_exec : completion_parse_rules_ [rule_reference_negated_envelope_valid_] / consume_token_rule_reference_negated_ + rule_reference_decision --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + rule_reference_plain_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + rule_reference_plain_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + rule_reference_negated_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + rule_reference_negated_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_decision --> quantifier_star_exec : completion_parse_rules_ [quantifier_token_star_] / consume_token_quantifier_star_ + quantifier_decision --> quantifier_plus_exec : completion_parse_rules_ [quantifier_token_plus_] / consume_token_quantifier_plus_ + quantifier_decision --> quantifier_question_exec : completion_parse_rules_ [quantifier_token_question_] / consume_token_quantifier_question_ + quantifier_decision --> quantifier_braced_exact_exec : completion_parse_rules_ [quantifier_braced_exact_shape_] / consume_token_quantifier_braced_exact_ + quantifier_decision --> quantifier_braced_open_exec : completion_parse_rules_ [quantifier_braced_open_shape_] / consume_token_quantifier_braced_open_ + quantifier_decision --> quantifier_braced_range_exec : completion_parse_rules_ [quantifier_braced_range_shape_] / consume_token_quantifier_braced_range_ + quantifier_decision --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_star_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + quantifier_star_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_plus_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + quantifier_plus_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_question_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + quantifier_question_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_braced_exact_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + quantifier_braced_exact_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_braced_open_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + quantifier_braced_open_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + quantifier_braced_range_exec --> in_rule_expression_after_term : completion_parse_rules_ [parse_error_none_] / none + quantifier_braced_range_exec --> parse_decision : completion_parse_rules_ [always] / consume_token_invalid_ + eof_symbols_decision --> parse_decision : completion_parse_rules_ [eof_can_finalize_symbols_] / none + eof_symbols_decision --> parse_decision : completion_parse_rules_ [eof_cannot_finalize_symbols_] / consume_token_invalid_ + parse_decision --> ready : completion_parse_rules_ [parse_error_none_] / dispatch_done_ + parse_decision --> ready : completion_parse_rules_ [parse_error_invalid_request_] / dispatch_error_ + parse_decision --> ready : completion_parse_rules_ [parse_error_parse_failed_] / dispatch_error_ + parse_decision --> ready : completion_parse_rules_ [parse_error_internal_error_] / dispatch_error_ + parse_decision --> ready : completion_parse_rules_ [parse_error_untracked_] / dispatch_error_ + parse_decision --> ready : completion_parse_rules_ [parse_error_unknown_] / dispatch_error_ ready --> ready : _ [always] / on_unexpected_ expect_rule_name --> parse_decision : _ [always] / on_unexpected_ expect_rule_name_decision --> parse_decision : _ [always] / on_unexpected_ @@ -69,5 +99,15 @@ stateDiagram-v2 in_rule_expression_need_term_decision --> parse_decision : _ [always] / on_unexpected_ in_rule_expression_after_term --> parse_decision : _ [always] / on_unexpected_ in_rule_expression_after_term_decision --> parse_decision : _ [always] / on_unexpected_ + rule_reference_decision --> parse_decision : _ [always] / on_unexpected_ + rule_reference_plain_exec --> parse_decision : _ [always] / on_unexpected_ + rule_reference_negated_exec --> parse_decision : _ [always] / on_unexpected_ + quantifier_decision --> parse_decision : _ [always] / on_unexpected_ + quantifier_star_exec --> parse_decision : _ [always] / on_unexpected_ + quantifier_plus_exec --> parse_decision : _ [always] / on_unexpected_ + quantifier_question_exec --> parse_decision : _ [always] / on_unexpected_ + quantifier_braced_exact_exec --> parse_decision : _ [always] / on_unexpected_ + quantifier_braced_open_exec --> parse_decision : _ [always] / on_unexpected_ + quantifier_braced_range_exec --> parse_decision : _ [always] / on_unexpected_ eof_symbols_decision --> parse_decision : _ [always] / on_unexpected_ parse_decision --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/gbnf_rule_parser_lexer.mmd b/docs/architecture/mermaid/gbnf_rule_parser_lexer.mmd index d444f02c..c4f9548c 100644 --- a/docs/architecture/mermaid/gbnf_rule_parser_lexer.mmd +++ b/docs/architecture/mermaid/gbnf_rule_parser_lexer.mmd @@ -1,13 +1,34 @@ stateDiagram-v2 direction TB [*] --> initialized - initialized --> initialized : next [invalid_next_] / reject_invalid_next_ - initialized --> initialized : next [invalid_cursor_position_] / reject_invalid_cursor_ - initialized --> scanning : next [has_remaining_input_] / emit_next_token_ - initialized --> scanning : next [at_eof_] / emit_eof_ - scanning --> scanning : next [invalid_next_] / reject_invalid_next_ - scanning --> scanning : next [invalid_cursor_position_] / reject_invalid_cursor_ - scanning --> scanning : next [has_remaining_input_] / emit_next_token_ - scanning --> scanning : next [at_eof_] / emit_eof_ - initialized --> initialized : _ [always] / on_unexpected_ - scanning --> scanning : _ [always] / on_unexpected_ + initialized --> initialized : scan_next [invalid_next_] / reject_invalid_next_ + initialized --> initialized : scan_next [invalid_cursor_position_] / reject_invalid_cursor_ + scanning --> scanning : scan_next [invalid_next_] / reject_invalid_next_ + scanning --> scanning : scan_next [invalid_cursor_position_] / reject_invalid_cursor_ + initialized --> scan_ready : scan_next [valid_cursor_position_] / prepare_scan_ + scanning --> scan_ready : scan_next [valid_cursor_position_] / prepare_scan_ + scan_ready --> scanning : completion_scan_next_ [at_eof_] / emit_eof_ + scan_ready --> scanning : completion_scan_next_ [layout_exhausted_] / emit_layout_exhausted_unknown_ + scan_ready --> scanning : completion_scan_next_ [starts_newline_crlf_] / emit_newline_token_width_2__ + scan_ready --> scanning : completion_scan_next_ [starts_newline_single_] / emit_newline_token_width_1__ + scan_ready --> scanning : completion_scan_next_ [starts_definition_operator_] / emit_definition_operator_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_alternation_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_dot_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_open_group_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_close_group_ + scan_ready --> scanning : completion_scan_next_ [starts_quantifier_] / emit_quantifier_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_string_literal_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_character_class_ + scan_ready --> scanning : completion_scan_next_ [starts_symbol______] / emit_braced_quantifier_ + scan_ready --> scanning : completion_scan_next_ [parsed_rule_reference_negated_valid_] / emit_rule_reference_negated_ + scan_ready --> scanning : completion_scan_next_ [parsed_rule_reference_negated_invalid_] / emit_unknown_ + scan_ready --> scanning : completion_scan_next_ [parsed_rule_reference_plain_valid_] / emit_rule_reference_plain_ + scan_ready --> scanning : completion_scan_next_ [parsed_rule_reference_plain_invalid_] / emit_unknown_ + scan_ready --> scanning : completion_scan_next_ [starts_identifier_] / emit_identifier_ + scan_ready --> scanning : completion_scan_next_ [always] / emit_unknown_ + initialized --> initialized : _ [unexpected_has_error_callback_] / dispatch_unexpected_error_ + scanning --> scanning : _ [unexpected_has_error_callback_] / dispatch_unexpected_error_ + scan_ready --> scan_ready : _ [unexpected_has_error_callback_] / dispatch_unexpected_error_ + initialized --> initialized : _ [always] / ignore_unexpected_ + scanning --> scanning : _ [always] / ignore_unexpected_ + scan_ready --> scan_ready : _ [always] / ignore_unexpected_ diff --git a/docs/architecture/mermaid/gbnf_sampler.mmd b/docs/architecture/mermaid/gbnf_sampler.mmd index 94284453..75cbe374 100644 --- a/docs/architecture/mermaid/gbnf_sampler.mmd +++ b/docs/architecture/mermaid/gbnf_sampler.mmd @@ -1,29 +1,17 @@ stateDiagram-v2 direction TB [*] --> ready - ready --> apply_begin : apply_runtime [valid_apply_] / begin_apply_ - ready --> ready : apply_runtime [invalid_apply_] / reject_invalid_apply_ - apply_begin --> apply_loop_decision : completion [always] / prepare_candidate_parse_ - apply_loop_decision --> apply_result_decision : completion [phase_failed_apply_] / none - apply_loop_decision --> model__ : completion [phase_ok_apply_] / none - model__ --> apply_result_decision : completion [candidate_failed_] / none - model__ --> model__ : completion [candidate_done_] / prepare_token_parse_ - model__ --> apply_result_decision : completion [token_failed_] / none - model__ --> model__ : completion [token_done_] / prepare_match_parse_ - model__ --> apply_result_decision : completion [matcher_done_] / none - model__ --> apply_result_decision : completion [matcher_failed_] / none - apply_result_decision --> ready : completion [phase_ok_apply_] / dispatch_apply_done_ - apply_result_decision --> ready : completion [phase_failed_apply_] / dispatch_apply_error_ - ready --> accept_begin : accept_runtime [valid_accept_] / begin_accept_ - ready --> ready : accept_runtime [invalid_accept_] / reject_invalid_accept_ - accept_begin --> accept_result_decision : completion [always] / prepare_accept_parse_ - accept_result_decision --> ready : completion [phase_failed_accept_] / dispatch_accept_error_ - accept_result_decision --> model__ : completion [phase_ok_accept_] / none - model__ --> ready : completion [accept_done_] / dispatch_accept_done_ - model__ --> ready : completion [accept_failed_] / dispatch_accept_error_ + ready --> request_decision : sample_runtime [always] / begin_sample_ + request_decision --> filter_candidates : completion_sample_runtime_ [valid_sample_request_] / none + request_decision --> errored : completion_sample_runtime_ [invalid_sample_request_] / mark_invalid_request_ + filter_candidates --> finalize_decision : completion_sample_runtime_ [always] / filter_candidates_ + finalize_decision --> done : completion_sample_runtime_ [filtered_candidates_available_] / none + finalize_decision --> errored : completion_sample_runtime_ [no_filtered_candidates_] / mark_parse_failed_ + done --> ready : completion_sample_runtime_ [always] / publish_done_ + errored --> ready : completion_sample_runtime_ [always] / publish_error_ ready --> ready : _ [always] / on_unexpected_ - apply_begin --> apply_result_decision : _ [always] / on_unexpected_ - apply_loop_decision --> apply_result_decision : _ [always] / on_unexpected_ - apply_result_decision --> apply_result_decision : _ [always] / on_unexpected_ - accept_begin --> accept_result_decision : _ [always] / on_unexpected_ - accept_result_decision --> accept_result_decision : _ [always] / on_unexpected_ + request_decision --> ready : _ [always] / on_unexpected_ + filter_candidates --> ready : _ [always] / on_unexpected_ + finalize_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/generator.mmd b/docs/architecture/mermaid/generator.mmd index ac69af4c..bd480552 100644 --- a/docs/architecture/mermaid/generator.mmd +++ b/docs/architecture/mermaid/generator.mmd @@ -3,31 +3,46 @@ stateDiagram-v2 [*] --> ready ready --> conditioning : generate_run [valid_generate_] / begin_generate_ ready --> generate_decision : generate_run [invalid_generate_] / reject_invalid_generate_ - conditioning --> conditioning_decision : completion [always] / request_conditioning_ - conditioning_decision --> generate_decision : completion [phase_failed_] / none - conditioning_decision --> planning : completion [phase_ok_] / none - planning --> planning_decision : completion [always] / request_planning_ - planning_decision --> generate_decision : completion [phase_failed_] / none - planning_decision --> prefill : completion [phase_ok_] / none - prefill --> prefill_decision : completion [always] / request_prefill_ - prefill_decision --> generate_decision : completion [phase_failed_] / none - prefill_decision --> decode_compute : completion [phase_ok_] / none - decode_compute --> decode_compute_decision : completion [always] / request_decode_compute_ - decode_compute_decision --> generate_decision : completion [phase_failed_] / none - decode_compute_decision --> decode_sample : completion [phase_ok_] / none - decode_sample --> decode_sample_decision : completion [always] / request_decode_sample_ - decode_sample_decision --> generate_decision : completion [phase_failed_] / none - decode_sample_decision --> decode_render : completion [phase_ok_] / none - decode_render --> decode_render_decision : completion [always] / request_decode_render_ - decode_render_decision --> generate_decision : completion [phase_failed_] / none - decode_render_decision --> decode_compute : completion [decode_should_continue_] / none - decode_render_decision --> generate_decision : completion [decode_complete_] / none - generate_decision --> ready : completion [phase_ok_with_error_out_] / dispatch_done_with_error_out_ - generate_decision --> ready : completion [phase_ok_without_error_out_] / dispatch_done_without_error_out_ - generate_decision --> ready : completion [phase_failed_with_dispatch_and_error_out_] / dispatch_error_with_dispatch_and_error_out_ - generate_decision --> ready : completion [phase_failed_with_dispatch_only_] / dispatch_error_with_dispatch_only_ - generate_decision --> ready : completion [phase_failed_with_error_out_only_] / dispatch_error_with_error_out_only_ - generate_decision --> ready : completion [phase_failed_without_error_channels_] / dispatch_error_without_error_channels_ + conditioning --> conditioning_decision : completion_generate_run_ [always] / request_conditioning_ + conditioning_decision --> planning : completion_generate_run_ [phase_none_] / none + conditioning_decision --> generate_decision : completion_generate_run_ [phase_invalid_request_error_] / none + conditioning_decision --> generate_decision : completion_generate_run_ [phase_backend_error_] / none + conditioning_decision --> generate_decision : completion_generate_run_ [phase_unknown_error_] / none + planning --> planning_decision : completion_generate_run_ [always] / request_planning_ + planning_decision --> prefill : completion_generate_run_ [phase_none_] / none + planning_decision --> generate_decision : completion_generate_run_ [phase_invalid_request_error_] / none + planning_decision --> generate_decision : completion_generate_run_ [phase_backend_error_] / none + planning_decision --> generate_decision : completion_generate_run_ [phase_unknown_error_] / none + prefill --> prefill_decision : completion_generate_run_ [always] / request_prefill_ + prefill_decision --> decode_compute : completion_generate_run_ [phase_none_] / none + prefill_decision --> generate_decision : completion_generate_run_ [phase_invalid_request_error_] / none + prefill_decision --> generate_decision : completion_generate_run_ [phase_backend_error_] / none + prefill_decision --> generate_decision : completion_generate_run_ [phase_unknown_error_] / none + decode_compute --> decode_compute_decision : completion_generate_run_ [always] / request_decode_compute_ + decode_compute_decision --> decode_sample : completion_generate_run_ [phase_none_] / none + decode_compute_decision --> generate_decision : completion_generate_run_ [phase_invalid_request_error_] / none + decode_compute_decision --> generate_decision : completion_generate_run_ [phase_backend_error_] / none + decode_compute_decision --> generate_decision : completion_generate_run_ [phase_unknown_error_] / none + decode_sample --> decode_sample_decision : completion_generate_run_ [always] / request_decode_sample_ + decode_sample_decision --> decode_render : completion_generate_run_ [phase_none_] / none + decode_sample_decision --> generate_decision : completion_generate_run_ [phase_invalid_request_error_] / none + decode_sample_decision --> generate_decision : completion_generate_run_ [phase_backend_error_] / none + decode_sample_decision --> generate_decision : completion_generate_run_ [phase_unknown_error_] / none + decode_render --> decode_render_decision : completion_generate_run_ [always] / request_decode_render_ + decode_render_decision --> decode_compute : completion_generate_run_ [decode_should_continue_] / none + decode_render_decision --> generate_decision : completion_generate_run_ [decode_complete_] / none + decode_render_decision --> generate_decision : completion_generate_run_ [phase_invalid_request_error_] / none + decode_render_decision --> generate_decision : completion_generate_run_ [phase_backend_error_] / none + decode_render_decision --> generate_decision : completion_generate_run_ [phase_unknown_error_] / none + generate_decision --> ready : completion_generate_run_ [phase_none_with_error_out_] / dispatch_done_with_error_out_ + generate_decision --> ready : completion_generate_run_ [phase_none_without_error_out_] / dispatch_done_without_error_out_ + generate_decision --> generate_error_channel_decision : completion_generate_run_ [phase_invalid_request_error_] / none + generate_decision --> generate_error_channel_decision : completion_generate_run_ [phase_backend_error_] / none + generate_decision --> generate_error_channel_decision : completion_generate_run_ [phase_unknown_error_] / none + generate_error_channel_decision --> ready : completion_generate_run_ [has_error_callback_and_error_out_] / dispatch_error_with_dispatch_and_error_out_ + generate_error_channel_decision --> ready : completion_generate_run_ [has_error_callback_without_error_out_] / dispatch_error_with_dispatch_only_ + generate_error_channel_decision --> ready : completion_generate_run_ [no_error_callback_with_error_out_] / dispatch_error_with_error_out_only_ + generate_error_channel_decision --> ready : completion_generate_run_ [no_error_callback_without_error_out_] / dispatch_error_without_error_channels_ ready --> ready : _ [always] / on_unexpected_ conditioning --> generate_decision : _ [always] / on_unexpected_ conditioning_decision --> generate_decision : _ [always] / on_unexpected_ @@ -42,4 +57,5 @@ stateDiagram-v2 decode_render --> generate_decision : _ [always] / on_unexpected_ decode_render_decision --> generate_decision : _ [always] / on_unexpected_ generate_decision --> ready : _ [always] / on_unexpected_ + generate_error_channel_decision --> ready : _ [always] / on_unexpected_ unexpected_event --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/gguf_loader.mmd b/docs/architecture/mermaid/gguf_loader.mmd new file mode 100644 index 00000000..05753010 --- /dev/null +++ b/docs/architecture/mermaid/gguf_loader.mmd @@ -0,0 +1,79 @@ +stateDiagram-v2 + direction TB + [*] --> uninitialized + uninitialized --> probe_request_decision : probe_runtime [always] / begin_probe_ + probed --> probe_request_decision : probe_runtime [always] / begin_probe_ + bound --> probe_request_decision : probe_runtime [always] / begin_probe_ + parsed --> probe_request_decision : probe_runtime [always] / begin_probe_ + errored --> probe_request_decision : probe_runtime [always] / begin_probe_ + probe_request_decision --> probe_outcome_dispatch : completion_probe_runtime_ [probe_valid_request_] / exec_probe_ + probe_request_decision --> probe_outcome_dispatch : completion_probe_runtime_ [probe_invalid_request_] / mark_probe_invalid_request_ + probe_outcome_dispatch --> probe_requirements_dispatch : completion_probe_runtime_ [probe_error_none_] / commit_probe_requirements_ + probe_requirements_dispatch --> probed : completion_probe_runtime_ [always] / publish_probe_done_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_invalid_request_] / publish_probe_error_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_model_invalid_] / publish_probe_error_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_capacity_] / publish_probe_error_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_parse_failed_] / publish_probe_error_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_internal_error_] / publish_probe_error_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_untracked_] / publish_probe_error_ + probe_outcome_dispatch --> errored : completion_probe_runtime_ [probe_error_unknown_] / publish_probe_error_ + probed --> bind_request_decision : bind_runtime [always] / begin_bind_ + bound --> bind_request_decision : bind_runtime [always] / begin_bind_ + parsed --> bind_request_decision : bind_runtime [always] / begin_bind_ + uninitialized --> bind_outcome_dispatch : bind_runtime [always] / mark_bind_invalid_request_ + errored --> bind_outcome_dispatch : bind_runtime [always] / mark_bind_invalid_request_ + bind_request_decision --> bind_request_shape_decision : completion_bind_runtime_ [always] / none + bind_request_shape_decision --> bind_capacity_decision : completion_bind_runtime_ [bind_valid_request_] / none + bind_request_shape_decision --> bind_outcome_dispatch : completion_bind_runtime_ [bind_invalid_request_] / mark_bind_invalid_request_ + bind_request_shape_decision --> bind_outcome_dispatch : completion_bind_runtime_ [always] / mark_bind_invalid_request_ + bind_capacity_decision --> bind_outcome_dispatch : completion_bind_runtime_ [bind_capacity_sufficient_] / exec_bind_ + bind_capacity_decision --> bind_outcome_dispatch : completion_bind_runtime_ [bind_capacity_insufficient_] / mark_bind_capacity_ + bind_capacity_decision --> bind_outcome_dispatch : completion_bind_runtime_ [always] / mark_bind_capacity_ + bind_outcome_dispatch --> bound : completion_bind_runtime_ [bind_error_none_] / publish_bind_done_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_invalid_request_] / publish_bind_error_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_model_invalid_] / publish_bind_error_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_capacity_] / publish_bind_error_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_parse_failed_] / publish_bind_error_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_internal_error_] / publish_bind_error_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_untracked_] / publish_bind_error_ + bind_outcome_dispatch --> errored : completion_bind_runtime_ [bind_error_unknown_] / publish_bind_error_ + bound --> parse_request_decision : parse_runtime [always] / begin_parse_ + parsed --> parse_request_decision : parse_runtime [always] / begin_parse_ + uninitialized --> parse_outcome_dispatch : parse_runtime [always] / mark_parse_invalid_request_ + probed --> parse_outcome_dispatch : parse_runtime [always] / mark_parse_invalid_request_ + errored --> parse_outcome_dispatch : parse_runtime [always] / mark_parse_invalid_request_ + parse_request_decision --> parse_file_image_decision : completion_parse_runtime_ [always] / none + parse_file_image_decision --> parse_bound_storage_decision : completion_parse_runtime_ [parse_has_file_image_] / none + parse_file_image_decision --> parse_outcome_dispatch : completion_parse_runtime_ [parse_missing_file_image_] / mark_parse_invalid_request_ + parse_file_image_decision --> parse_outcome_dispatch : completion_parse_runtime_ [always] / mark_parse_invalid_request_ + parse_bound_storage_decision --> parse_capacity_decision : completion_parse_runtime_ [parse_has_bound_storage_] / none + parse_bound_storage_decision --> parse_outcome_dispatch : completion_parse_runtime_ [parse_missing_bound_storage_] / mark_parse_invalid_request_ + parse_bound_storage_decision --> parse_outcome_dispatch : completion_parse_runtime_ [always] / mark_parse_invalid_request_ + parse_capacity_decision --> parse_outcome_dispatch : completion_parse_runtime_ [parse_bound_capacity_sufficient_] / exec_parse_ + parse_capacity_decision --> parse_outcome_dispatch : completion_parse_runtime_ [parse_bound_capacity_insufficient_] / mark_parse_invalid_request_ + parse_capacity_decision --> parse_outcome_dispatch : completion_parse_runtime_ [always] / mark_parse_invalid_request_ + parse_outcome_dispatch --> parsed : completion_parse_runtime_ [parse_error_none_] / publish_parse_done_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_invalid_request_] / publish_parse_error_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_model_invalid_] / publish_parse_error_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_capacity_] / publish_parse_error_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_parse_failed_] / publish_parse_error_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_internal_error_] / publish_parse_error_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_untracked_] / publish_parse_error_ + parse_outcome_dispatch --> errored : completion_parse_runtime_ [parse_error_unknown_] / publish_parse_error_ + uninitialized --> errored : _ [always] / on_unexpected_ + probed --> errored : _ [always] / on_unexpected_ + bound --> errored : _ [always] / on_unexpected_ + parsed --> errored : _ [always] / on_unexpected_ + errored --> errored : _ [always] / on_unexpected_ + probe_request_decision --> errored : _ [always] / on_unexpected_ + probe_outcome_dispatch --> errored : _ [always] / on_unexpected_ + probe_requirements_dispatch --> errored : _ [always] / on_unexpected_ + bind_request_decision --> errored : _ [always] / on_unexpected_ + bind_request_shape_decision --> errored : _ [always] / on_unexpected_ + bind_capacity_decision --> errored : _ [always] / on_unexpected_ + bind_outcome_dispatch --> errored : _ [always] / on_unexpected_ + parse_request_decision --> errored : _ [always] / on_unexpected_ + parse_file_image_decision --> errored : _ [always] / on_unexpected_ + parse_bound_storage_decision --> errored : _ [always] / on_unexpected_ + parse_capacity_decision --> errored : _ [always] / on_unexpected_ + parse_outcome_dispatch --> errored : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/graph.mmd b/docs/architecture/mermaid/graph.mmd index 24bbbf36..1228005b 100644 --- a/docs/architecture/mermaid/graph.mmd +++ b/docs/architecture/mermaid/graph.mmd @@ -9,9 +9,9 @@ stateDiagram-v2 reserved --> reserved : reserve_graph [invalid_reserve_with_dispatchable_output_] / reject_invalid_reserve_with_dispatch_ reserved --> reserved : reserve_graph [invalid_reserve_with_output_only_] / reject_invalid_reserve_with_output_only_ reserved --> reserved : reserve_graph [invalid_reserve_without_output_] / reject_invalid_reserve_without_output_ - reserving --> reserve_decision : completion [always] / request_reserve_ - reserve_decision --> reserved : completion [reserve_done_] / dispatch_reserve_done_ - reserve_decision --> uninitialized : completion [reserve_failed_] / dispatch_reserve_error_ + reserving --> reserve_decision : completion_reserve_graph_ [always] / request_reserve_ + reserve_decision --> reserved : completion_reserve_graph_ [reserve_done_] / dispatch_reserve_done_ + reserve_decision --> uninitialized : completion_reserve_graph_ [reserve_failed_] / dispatch_reserve_error_ reserved --> assembling : compute_graph [valid_compute_] / begin_compute_ reserved --> reserved : compute_graph [invalid_compute_with_dispatchable_output_] / reject_invalid_compute_with_dispatch_ reserved --> reserved : compute_graph [invalid_compute_with_output_only_] / reject_invalid_compute_with_output_only_ @@ -20,14 +20,20 @@ stateDiagram-v2 uninitialized --> uninitialized : compute_graph [invalid_compute_with_dispatchable_output_] / reject_invalid_compute_with_dispatch_ uninitialized --> uninitialized : compute_graph [invalid_compute_with_output_only_] / reject_invalid_compute_with_output_only_ uninitialized --> uninitialized : compute_graph [invalid_compute_without_output_] / reject_invalid_compute_without_output_ - assembling --> assemble_decision : completion [always] / request_assemble_ - assemble_decision --> executing : completion [assemble_done_] / none - assemble_decision --> compute_decision : completion [assemble_failed_] / none - executing --> execute_decision : completion [always] / request_execute_ - execute_decision --> compute_decision : completion [execute_done_] / none - execute_decision --> compute_decision : completion [execute_failed_] / none - compute_decision --> reserved : completion [compute_phase_ok_] / dispatch_compute_done_ - compute_decision --> reserved : completion [compute_phase_failed_] / dispatch_compute_error_ + assembling --> assemble_decision : completion_compute_graph_ [always] / request_assemble_ + assemble_decision --> executing : completion_compute_graph_ [assemble_done_] / none + assemble_decision --> compute_decision : completion_compute_graph_ [assemble_failed_] / none + executing --> execute_decision : completion_compute_graph_ [always] / request_execute_ + execute_decision --> compute_decision : completion_compute_graph_ [execute_done_] / none + execute_decision --> compute_decision : completion_compute_graph_ [execute_failed_] / none + compute_decision --> reserved : completion_compute_graph_ [compute_error_none_] / dispatch_compute_done_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_invalid_request_] / dispatch_compute_error_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_assembler_failed_] / dispatch_compute_error_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_processor_failed_] / dispatch_compute_error_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_busy_] / dispatch_compute_error_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_internal_error_] / dispatch_compute_error_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_untracked_] / dispatch_compute_error_ + compute_decision --> reserved : completion_compute_graph_ [compute_error_unknown_] / dispatch_compute_error_ uninitialized --> uninitialized : _ [always] / on_unexpected_ reserved --> reserved : _ [always] / on_unexpected_ reserving --> uninitialized : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/graph_allocator.mmd b/docs/architecture/mermaid/graph_allocator.mmd index fdbfedf0..e0a6015a 100644 --- a/docs/architecture/mermaid/graph_allocator.mmd +++ b/docs/architecture/mermaid/graph_allocator.mmd @@ -5,17 +5,21 @@ stateDiagram-v2 ready --> ready : allocate_graph_plan [invalid_allocate_with_dispatchable_output_] / reject_invalid_allocate_with_dispatch_ ready --> ready : allocate_graph_plan [invalid_allocate_with_output_only_] / reject_invalid_allocate_with_output_only_ ready --> ready : allocate_graph_plan [invalid_allocate_without_output_] / reject_invalid_allocate_without_output_ - model__ --> liveness_decision : completion [always] / none - liveness_decision --> model__ : completion [liveness_done_] / none - liveness_decision --> allocation_decision : completion [liveness_failed_] / none - model__ --> ordering_decision : completion [always] / none - ordering_decision --> model__ : completion [ordering_done_] / none - ordering_decision --> allocation_decision : completion [ordering_failed_] / none - model__ --> placement_decision : completion [always] / none - placement_decision --> allocation_decision : completion [placement_done_] / commit_plan_ - placement_decision --> allocation_decision : completion [placement_failed_] / none - allocation_decision --> ready : completion [phase_ok_] / dispatch_done_ - allocation_decision --> ready : completion [phase_failed_] / dispatch_error_ + model__ --> liveness_decision : completion_allocate_graph_plan_ [always] / none + liveness_decision --> model__ : completion_allocate_graph_plan_ [liveness_done_] / none + liveness_decision --> allocation_decision : completion_allocate_graph_plan_ [liveness_failed_] / none + model__ --> ordering_decision : completion_allocate_graph_plan_ [always] / none + ordering_decision --> model__ : completion_allocate_graph_plan_ [ordering_done_] / none + ordering_decision --> allocation_decision : completion_allocate_graph_plan_ [ordering_failed_] / none + model__ --> placement_decision : completion_allocate_graph_plan_ [always] / none + placement_decision --> allocation_decision : completion_allocate_graph_plan_ [placement_done_] / commit_plan_ + placement_decision --> allocation_decision : completion_allocate_graph_plan_ [placement_failed_] / none + allocation_decision --> ready : completion_allocate_graph_plan_ [allocation_error_none_] / dispatch_done_ + allocation_decision --> ready : completion_allocate_graph_plan_ [allocation_error_invalid_request_] / dispatch_error_ + allocation_decision --> ready : completion_allocate_graph_plan_ [allocation_error_capacity_] / dispatch_error_ + allocation_decision --> ready : completion_allocate_graph_plan_ [allocation_error_internal_error_] / dispatch_error_ + allocation_decision --> ready : completion_allocate_graph_plan_ [allocation_error_untracked_] / dispatch_error_ + allocation_decision --> ready : completion_allocate_graph_plan_ [allocation_error_unknown_] / dispatch_error_ ready --> ready : _ [always] / on_unexpected_ liveness_decision --> allocation_decision : _ [always] / on_unexpected_ ordering_decision --> allocation_decision : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/graph_assembler.mmd b/docs/architecture/mermaid/graph_assembler.mmd index aa67b728..c35cc6b5 100644 --- a/docs/architecture/mermaid/graph_assembler.mmd +++ b/docs/architecture/mermaid/graph_assembler.mmd @@ -9,17 +9,21 @@ stateDiagram-v2 reserved --> reserved : reserve_graph [invalid_reserve_with_dispatchable_output_] / reject_invalid_reserve_with_dispatch_ reserved --> reserved : reserve_graph [invalid_reserve_with_output_only_] / reject_invalid_reserve_with_output_only_ reserved --> reserved : reserve_graph [invalid_reserve_without_output_] / reject_invalid_reserve_without_output_ - model__ --> reserve_validate_decision : completion [always] / none - reserve_validate_decision --> model__ : completion [reserve_validate_done_] / none - reserve_validate_decision --> reserve_dispatch_decision : completion [reserve_validate_failed_] / none - model__ --> reserve_build_decision : completion [always] / none - reserve_build_decision --> model__ : completion [reserve_build_done_] / none - reserve_build_decision --> reserve_dispatch_decision : completion [reserve_build_failed_] / none - model__ --> reserve_alloc_decision : completion [always] / none - reserve_alloc_decision --> reserve_dispatch_decision : completion [reserve_alloc_done_] / commit_reserve_result_ - reserve_alloc_decision --> reserve_dispatch_decision : completion [reserve_alloc_failed_] / none - reserve_dispatch_decision --> reserved : completion [reserve_phase_ok_] / dispatch_reserve_done_ - reserve_dispatch_decision --> uninitialized : completion [reserve_phase_failed_] / dispatch_reserve_error_ + model__ --> reserve_validate_decision : completion_reserve_graph_ [always] / none + reserve_validate_decision --> model__ : completion_reserve_graph_ [reserve_validate_done_] / none + reserve_validate_decision --> reserve_dispatch_decision : completion_reserve_graph_ [reserve_validate_failed_] / none + model__ --> reserve_build_decision : completion_reserve_graph_ [always] / none + reserve_build_decision --> model__ : completion_reserve_graph_ [reserve_build_done_] / none + reserve_build_decision --> reserve_dispatch_decision : completion_reserve_graph_ [reserve_build_failed_] / none + model__ --> reserve_alloc_decision : completion_reserve_graph_ [always] / none + reserve_alloc_decision --> reserve_dispatch_decision : completion_reserve_graph_ [reserve_alloc_done_] / commit_reserve_result_ + reserve_alloc_decision --> reserve_dispatch_decision : completion_reserve_graph_ [reserve_alloc_failed_] / none + reserve_dispatch_decision --> reserved : completion_reserve_graph_ [reserve_error_none_] / dispatch_reserve_done_ + reserve_dispatch_decision --> uninitialized : completion_reserve_graph_ [reserve_error_invalid_request_] / dispatch_reserve_error_ + reserve_dispatch_decision --> uninitialized : completion_reserve_graph_ [reserve_error_capacity_] / dispatch_reserve_error_ + reserve_dispatch_decision --> uninitialized : completion_reserve_graph_ [reserve_error_internal_error_] / dispatch_reserve_error_ + reserve_dispatch_decision --> uninitialized : completion_reserve_graph_ [reserve_error_untracked_] / dispatch_reserve_error_ + reserve_dispatch_decision --> uninitialized : completion_reserve_graph_ [reserve_error_unknown_] / dispatch_reserve_error_ reserved --> model__ : assemble_graph [valid_assemble_] / begin_assemble_ reserved --> reserved : assemble_graph [invalid_assemble_with_dispatchable_output_] / reject_invalid_assemble_with_dispatch_ reserved --> reserved : assemble_graph [invalid_assemble_with_output_only_] / reject_invalid_assemble_with_output_only_ @@ -28,21 +32,25 @@ stateDiagram-v2 uninitialized --> uninitialized : assemble_graph [invalid_assemble_with_dispatchable_output_] / reject_invalid_assemble_with_dispatch_ uninitialized --> uninitialized : assemble_graph [invalid_assemble_with_output_only_] / reject_invalid_assemble_with_output_only_ uninitialized --> uninitialized : assemble_graph [invalid_assemble_without_output_] / reject_invalid_assemble_without_output_ - model__ --> assemble_validate_decision : completion [always] / none - assemble_validate_decision --> model__ : completion [assemble_validate_done_] / none - assemble_validate_decision --> assemble_dispatch_decision : completion [assemble_validate_failed_] / none - model__ --> reuse_decision : completion [always] / none - reuse_decision --> assemble_dispatch_decision : completion [reuse_decision_reused_] / commit_assemble_reuse_result_ - reuse_decision --> model__ : completion [reuse_decision_rebuild_] / none - reuse_decision --> assemble_dispatch_decision : completion [reuse_decision_failed_] / none - model__ --> assemble_build_decision : completion [always] / none - assemble_build_decision --> model__ : completion [assemble_build_done_] / none - assemble_build_decision --> assemble_dispatch_decision : completion [assemble_build_failed_] / none - model__ --> assemble_alloc_decision : completion [always] / none - assemble_alloc_decision --> assemble_dispatch_decision : completion [assemble_alloc_done_] / commit_assemble_rebuild_result_ - assemble_alloc_decision --> assemble_dispatch_decision : completion [assemble_alloc_failed_] / none - assemble_dispatch_decision --> reserved : completion [assemble_phase_ok_] / dispatch_assemble_done_ - assemble_dispatch_decision --> reserved : completion [assemble_phase_failed_] / dispatch_assemble_error_ + model__ --> assemble_validate_decision : completion_assemble_graph_ [always] / none + assemble_validate_decision --> model__ : completion_assemble_graph_ [assemble_validate_done_] / none + assemble_validate_decision --> assemble_dispatch_decision : completion_assemble_graph_ [assemble_validate_failed_] / none + model__ --> reuse_decision : completion_assemble_graph_ [always] / none + reuse_decision --> assemble_dispatch_decision : completion_assemble_graph_ [reuse_decision_reused_] / commit_assemble_reuse_result_ + reuse_decision --> model__ : completion_assemble_graph_ [reuse_decision_rebuild_] / none + reuse_decision --> assemble_dispatch_decision : completion_assemble_graph_ [reuse_decision_failed_] / none + model__ --> assemble_build_decision : completion_assemble_graph_ [always] / none + assemble_build_decision --> model__ : completion_assemble_graph_ [assemble_build_done_] / none + assemble_build_decision --> assemble_dispatch_decision : completion_assemble_graph_ [assemble_build_failed_] / none + model__ --> assemble_alloc_decision : completion_assemble_graph_ [always] / none + assemble_alloc_decision --> assemble_dispatch_decision : completion_assemble_graph_ [assemble_alloc_done_] / commit_assemble_rebuild_result_ + assemble_alloc_decision --> assemble_dispatch_decision : completion_assemble_graph_ [assemble_alloc_failed_] / none + assemble_dispatch_decision --> reserved : completion_assemble_graph_ [assemble_error_none_] / dispatch_assemble_done_ + assemble_dispatch_decision --> reserved : completion_assemble_graph_ [assemble_error_invalid_request_] / dispatch_assemble_error_ + assemble_dispatch_decision --> reserved : completion_assemble_graph_ [assemble_error_capacity_] / dispatch_assemble_error_ + assemble_dispatch_decision --> reserved : completion_assemble_graph_ [assemble_error_internal_error_] / dispatch_assemble_error_ + assemble_dispatch_decision --> reserved : completion_assemble_graph_ [assemble_error_untracked_] / dispatch_assemble_error_ + assemble_dispatch_decision --> reserved : completion_assemble_graph_ [assemble_error_unknown_] / dispatch_assemble_error_ uninitialized --> uninitialized : _ [always] / on_unexpected_ reserved --> reserved : _ [always] / on_unexpected_ reserve_validate_decision --> reserve_dispatch_decision : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/graph_processor.mmd b/docs/architecture/mermaid/graph_processor.mmd index 3ec501d2..dbb5563a 100644 --- a/docs/architecture/mermaid/graph_processor.mmd +++ b/docs/architecture/mermaid/graph_processor.mmd @@ -5,27 +5,31 @@ stateDiagram-v2 ready --> ready : execute_step [invalid_execute_with_dispatchable_output_] / reject_invalid_execute_with_dispatch_ ready --> ready : execute_step [invalid_execute_with_output_only_] / reject_invalid_execute_with_output_only_ ready --> ready : execute_step [invalid_execute_without_output_] / reject_invalid_execute_without_output_ - model__ --> validate_decision : completion [always] / none - validate_decision --> model__ : completion [validate_done_] / none - validate_decision --> execution_decision : completion [validate_failed_] / none - model__ --> prepare_decision : completion [always] / none - prepare_decision --> model__ : completion [prepare_done_reused_] / none - prepare_decision --> model__ : completion [prepare_done_needs_allocation_] / none - prepare_decision --> execution_decision : completion [prepare_failed_] / none - model__ --> alloc_decision : completion [always] / none - alloc_decision --> model__ : completion [alloc_done_] / none - alloc_decision --> execution_decision : completion [alloc_failed_] / none - model__ --> bind_decision : completion [always] / none - bind_decision --> model__ : completion [bind_done_] / none - bind_decision --> execution_decision : completion [bind_failed_] / none - model__ --> kernel_decision : completion [always] / none - kernel_decision --> model__ : completion [kernel_done_] / none - kernel_decision --> execution_decision : completion [kernel_failed_] / none - model__ --> extract_decision : completion [always] / none - extract_decision --> execution_decision : completion [extract_done_] / commit_output_ - extract_decision --> execution_decision : completion [extract_failed_] / none - execution_decision --> ready : completion [phase_ok_] / dispatch_done_ - execution_decision --> ready : completion [phase_failed_] / dispatch_error_ + model__ --> validate_decision : completion_execute_step_ [always] / none + validate_decision --> model__ : completion_execute_step_ [validate_done_] / none + validate_decision --> execution_decision : completion_execute_step_ [validate_failed_] / none + model__ --> prepare_decision : completion_execute_step_ [always] / none + prepare_decision --> model__ : completion_execute_step_ [prepare_done_reused_] / none + prepare_decision --> model__ : completion_execute_step_ [prepare_done_needs_allocation_] / none + prepare_decision --> execution_decision : completion_execute_step_ [prepare_failed_] / none + model__ --> alloc_decision : completion_execute_step_ [always] / none + alloc_decision --> model__ : completion_execute_step_ [alloc_done_] / none + alloc_decision --> execution_decision : completion_execute_step_ [alloc_failed_] / none + model__ --> bind_decision : completion_execute_step_ [always] / none + bind_decision --> model__ : completion_execute_step_ [bind_done_] / none + bind_decision --> execution_decision : completion_execute_step_ [bind_failed_] / none + model__ --> kernel_decision : completion_execute_step_ [always] / none + kernel_decision --> model__ : completion_execute_step_ [kernel_done_] / none + kernel_decision --> execution_decision : completion_execute_step_ [kernel_failed_] / none + model__ --> extract_decision : completion_execute_step_ [always] / none + extract_decision --> execution_decision : completion_execute_step_ [extract_done_] / commit_output_ + extract_decision --> execution_decision : completion_execute_step_ [extract_failed_] / none + execution_decision --> ready : completion_execute_step_ [execution_error_none_] / dispatch_done_ + execution_decision --> ready : completion_execute_step_ [execution_error_invalid_request_] / dispatch_error_ + execution_decision --> ready : completion_execute_step_ [execution_error_kernel_failed_] / dispatch_error_ + execution_decision --> ready : completion_execute_step_ [execution_error_internal_error_] / dispatch_error_ + execution_decision --> ready : completion_execute_step_ [execution_error_untracked_] / dispatch_error_ + execution_decision --> ready : completion_execute_step_ [execution_error_unknown_] / dispatch_error_ ready --> ready : _ [always] / on_unexpected_ validate_decision --> execution_decision : _ [always] / on_unexpected_ prepare_decision --> execution_decision : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/kernel_aarch64.mmd b/docs/architecture/mermaid/kernel_aarch64.mmd new file mode 100644 index 00000000..92950f66 --- /dev/null +++ b/docs/architecture/mermaid/kernel_aarch64.mmd @@ -0,0 +1,204 @@ +stateDiagram-v2 + direction TB + [*] --> ready + ready --> ready : dispatch_request [always] / exec_dispatch_ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_unary [abs__] / abs__ + ready --> ready : dispatch_op_unary [neg__] / neg__ + ready --> ready : dispatch_op_unary [relu__] / relu__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/kernel_cuda.mmd b/docs/architecture/mermaid/kernel_cuda.mmd new file mode 100644 index 00000000..9cdef078 --- /dev/null +++ b/docs/architecture/mermaid/kernel_cuda.mmd @@ -0,0 +1,193 @@ +stateDiagram-v2 + direction TB + [*] --> ready + ready --> ready : dispatch_request [always] / dispatch_request__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/kernel_metal.mmd b/docs/architecture/mermaid/kernel_metal.mmd new file mode 100644 index 00000000..9cdef078 --- /dev/null +++ b/docs/architecture/mermaid/kernel_metal.mmd @@ -0,0 +1,193 @@ +stateDiagram-v2 + direction TB + [*] --> ready + ready --> ready : dispatch_request [always] / dispatch_request__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/kernel_vulkan.mmd b/docs/architecture/mermaid/kernel_vulkan.mmd new file mode 100644 index 00000000..9cdef078 --- /dev/null +++ b/docs/architecture/mermaid/kernel_vulkan.mmd @@ -0,0 +1,193 @@ +stateDiagram-v2 + direction TB + [*] --> ready + ready --> ready : dispatch_request [always] / dispatch_request__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/kernel_wasm.mmd b/docs/architecture/mermaid/kernel_wasm.mmd new file mode 100644 index 00000000..9cdef078 --- /dev/null +++ b/docs/architecture/mermaid/kernel_wasm.mmd @@ -0,0 +1,193 @@ +stateDiagram-v2 + direction TB + [*] --> ready + ready --> ready : dispatch_request [always] / dispatch_request__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/kernel_x86_64.mmd b/docs/architecture/mermaid/kernel_x86_64.mmd new file mode 100644 index 00000000..92950f66 --- /dev/null +++ b/docs/architecture/mermaid/kernel_x86_64.mmd @@ -0,0 +1,204 @@ +stateDiagram-v2 + direction TB + [*] --> ready + ready --> ready : dispatch_request [always] / exec_dispatch_ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__ + ready --> ready : dispatch_op_unary [abs__] / abs__ + ready --> ready : dispatch_op_unary [neg__] / neg__ + ready --> ready : dispatch_op_unary [relu__] / relu__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__ + ready --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/logits_sampler.mmd b/docs/architecture/mermaid/logits_sampler.mmd index 0210f531..cc66d080 100644 --- a/docs/architecture/mermaid/logits_sampler.mmd +++ b/docs/architecture/mermaid/logits_sampler.mmd @@ -1,26 +1,35 @@ stateDiagram-v2 direction TB - [*] --> initialized - initialized --> preparing_candidates : sample [always] / begin_sample_ - preparing_candidates --> prepare_decision : completion [always] / exec_prepare_candidates_ - prepare_decision --> errored : completion [phase_failed_] / none - prepare_decision --> apply_samplers : completion [phase_ok_and_has_more_samplers_] / none - prepare_decision --> selecting_token : completion [phase_ok_and_no_more_samplers_] / none - apply_samplers --> sample_decision : completion [always] / exec_apply_samplers_ - sample_decision --> errored : completion [phase_failed_] / none - sample_decision --> apply_samplers : completion [phase_ok_and_has_more_samplers_] / none - sample_decision --> selecting_token : completion [phase_ok_and_no_more_samplers_] / none - selecting_token --> select_decision : completion [always] / exec_select_token_ - select_decision --> errored : completion [phase_failed_] / none - select_decision --> done : completion [phase_ok_] / none - done --> initialized : completion [always] / publish_done_ - errored --> initialized : completion [always] / publish_error_ - initialized --> errored : _ [always] / on_unexpected_ - preparing_candidates --> errored : _ [always] / on_unexpected_ - prepare_decision --> errored : _ [always] / on_unexpected_ - apply_samplers --> errored : _ [always] / on_unexpected_ - sample_decision --> errored : _ [always] / on_unexpected_ - selecting_token --> errored : _ [always] / on_unexpected_ - select_decision --> errored : _ [always] / on_unexpected_ - done --> errored : _ [always] / on_unexpected_ - errored --> errored : _ [always] / on_unexpected_ + [*] --> ready + ready --> request_logits_decision : sample_logits_runtime [always] / none + ready --> request_preselected_decision : sample_preselected_runtime [always] / none + request_preselected_decision --> done : completion_sample_preselected_runtime_ [preselected_token_valid_] / none + request_preselected_decision --> errored : completion_sample_preselected_runtime_ [preselected_token_invalid_] / mark_invalid_request_ + request_logits_decision --> preparing_candidates : completion_sample_logits_runtime_ [valid_request_] / begin_sample_ + request_logits_decision --> errored : completion_sample_logits_runtime_ [invalid_request_] / mark_invalid_request_ + preparing_candidates --> apply_samplers : completion_sample_logits_runtime_ [always] / prepare_candidates_ + apply_samplers --> sample_decision : completion_sample_logits_runtime_ [has_more_samplers_] / none + apply_samplers --> sample_complete_decision : completion_sample_logits_runtime_ [no_more_samplers_] / none + sample_decision --> sample_call : completion_sample_logits_runtime_ [sampler_fn_available_] / apply_sampler_ + sample_decision --> errored : completion_sample_logits_runtime_ [sampler_fn_missing_] / mark_invalid_request_ + sample_call --> sample_call_decision : completion_sample_logits_runtime_ [always] / none + sample_call_decision --> apply_samplers : completion_sample_logits_runtime_ [sampler_call_succeeded_with_valid_candidate_count_] / advance_sampler_index_ + sample_call_decision --> errored : completion_sample_logits_runtime_ [sampler_call_succeeded_with_invalid_candidate_count_] / mark_invalid_request_ + sample_call_decision --> errored : completion_sample_logits_runtime_ [sampler_call_failed_] / mark_sampler_error_ + sample_complete_decision --> done : completion_sample_logits_runtime_ [selected_token_valid_] / none + sample_complete_decision --> errored : completion_sample_logits_runtime_ [selected_token_missing_or_invalid_] / mark_invalid_request_ + done --> ready : completion_sample_logits_runtime_ [always] / publish_done_ + errored --> ready : completion_sample_logits_runtime_ [always] / publish_error_ + done --> ready : completion_sample_preselected_runtime_ [always] / publish_done_ + errored --> ready : completion_sample_preselected_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + request_logits_decision --> ready : _ [always] / on_unexpected_ + request_preselected_decision --> ready : _ [always] / on_unexpected_ + preparing_candidates --> ready : _ [always] / on_unexpected_ + apply_samplers --> ready : _ [always] / on_unexpected_ + sample_decision --> ready : _ [always] / on_unexpected_ + sample_call --> ready : _ [always] / on_unexpected_ + sample_call_decision --> ready : _ [always] / on_unexpected_ + sample_complete_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/logits_validator.mmd b/docs/architecture/mermaid/logits_validator.mmd index 5571f263..6862eb79 100644 --- a/docs/architecture/mermaid/logits_validator.mmd +++ b/docs/architecture/mermaid/logits_validator.mmd @@ -1,24 +1,12 @@ stateDiagram-v2 direction TB - [*] --> initialized - initialized --> validating : build [always] / begin_build_ - validating --> validate_decision : [always] / run_validate_ - validate_decision --> errored : [phase_failed_] / none - validate_decision --> building_candidates : [phase_ok_] / none - building_candidates --> build_decision : [always] / run_build_candidates_ - build_decision --> errored : [phase_failed_] / none - build_decision --> normalizing_scores : [phase_ok_] / none - normalizing_scores --> normalize_decision : [always] / run_normalize_scores_ - normalize_decision --> errored : [phase_failed_] / none - normalize_decision --> done : [phase_ok_] / none - done --> initialized : [always] / publish_done_ - errored --> initialized : [always] / publish_error_ - initialized --> errored : _ [always] / on_unexpected_ - validating --> errored : _ [always] / on_unexpected_ - validate_decision --> errored : _ [always] / on_unexpected_ - building_candidates --> errored : _ [always] / on_unexpected_ - build_decision --> errored : _ [always] / on_unexpected_ - normalizing_scores --> errored : _ [always] / on_unexpected_ - normalize_decision --> errored : _ [always] / on_unexpected_ - done --> errored : _ [always] / on_unexpected_ - errored --> errored : _ [always] / on_unexpected_ + [*] --> ready + ready --> request_decision : build_runtime [always] / begin_build_ + request_decision --> done : completion_build_runtime_ [valid_request_] / execute_build_ + request_decision --> errored : completion_build_runtime_ [invalid_request_] / mark_invalid_request_ + done --> ready : completion_build_runtime_ [always] / publish_done_ + errored --> ready : completion_build_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + request_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/memory_hybrid.mmd b/docs/architecture/mermaid/memory_hybrid.mmd index abbd821d..e94a0aca 100644 --- a/docs/architecture/mermaid/memory_hybrid.mmd +++ b/docs/architecture/mermaid/memory_hybrid.mmd @@ -1,51 +1,159 @@ stateDiagram-v2 direction TB - [*] --> uninitialized - uninitialized --> initializing : reserve [always] / begin_reserve_ - ready --> initializing : reserve [always] / begin_reserve_ - unexpected --> initializing : reserve [always] / begin_reserve_ - initializing --> ready : [lambda_guards_7_34] / none - initializing --> out_of_memory : [lambda_guards_15_45] / none - initializing --> errored : [lambda_guards_11_38] / none - ready --> allocating_sequence : allocate_sequence [always] / begin_allocate_sequence_ - allocating_sequence --> ready : [lambda_guards_7_34] / none - allocating_sequence --> out_of_memory : [lambda_guards_15_45] / none - allocating_sequence --> errored : [lambda_guards_11_38] / none - ready --> allocating_slots : allocate_slots [always] / begin_allocate_slots_ - allocating_slots --> ready : [lambda_guards_7_34] / none - allocating_slots --> out_of_memory : [lambda_guards_15_45] / none - allocating_slots --> errored : [lambda_guards_11_38] / none - ready --> branching_sequence : branch_sequence [always] / begin_branch_sequence_ - branching_sequence --> ready : [lambda_guards_7_34] / none - branching_sequence --> out_of_memory : [lambda_guards_15_45] / none - branching_sequence --> errored : [lambda_guards_11_38] / none - ready --> freeing_sequence : free_sequence [always] / begin_free_sequence_ - freeing_sequence --> ready : [lambda_guards_7_34] / none - freeing_sequence --> errored : [lambda_guards_11_38] / none - ready --> rolling_back_slots : rollback_slots [always] / begin_rollback_slots_ - rolling_back_slots --> ready : [lambda_guards_7_34] / none - rolling_back_slots --> errored : [lambda_guards_11_38] / none - out_of_memory --> ready : [always] / clear_out_of_memory_ - errored --> ready : [always] / ensure_last_error_ - uninitialized --> uninitialized : capture_view [always] / capture_view_ - initializing --> initializing : capture_view [always] / capture_view_ - ready --> ready : capture_view [always] / capture_view_ - allocating_sequence --> allocating_sequence : capture_view [always] / capture_view_ - allocating_slots --> allocating_slots : capture_view [always] / capture_view_ - branching_sequence --> branching_sequence : capture_view [always] / capture_view_ - freeing_sequence --> freeing_sequence : capture_view [always] / capture_view_ - rolling_back_slots --> rolling_back_slots : capture_view [always] / capture_view_ - out_of_memory --> out_of_memory : capture_view [always] / capture_view_ - errored --> errored : capture_view [always] / capture_view_ - unexpected --> unexpected : capture_view [always] / capture_view_ - uninitialized --> unexpected : _ [always] / on_unexpected_ - initializing --> unexpected : _ [always] / on_unexpected_ - ready --> unexpected : _ [always] / on_unexpected_ - allocating_sequence --> unexpected : _ [always] / on_unexpected_ - allocating_slots --> unexpected : _ [always] / on_unexpected_ - branching_sequence --> unexpected : _ [always] / on_unexpected_ - freeing_sequence --> unexpected : _ [always] / on_unexpected_ - rolling_back_slots --> unexpected : _ [always] / on_unexpected_ - out_of_memory --> unexpected : _ [always] / on_unexpected_ - errored --> unexpected : _ [always] / on_unexpected_ - unexpected --> unexpected : _ [always] / on_unexpected_ + [*] --> ready + ready --> reserve_kv : reserve_runtime [always] / begin_reserve_ + reserve_kv --> reserve_kv_decision : completion_reserve_runtime_ [always] / exec_reserve_kv_ + reserve_kv_decision --> reserve_recurrent : completion_reserve_runtime_ [kv_accepted_] / none + reserve_kv_decision --> errored : completion_reserve_runtime_ [kv_rejected_with_error_] / mark_error_from_kv_ + reserve_kv_decision --> errored : completion_reserve_runtime_ [kv_rejected_without_error_] / mark_backend_error_ + reserve_recurrent --> reserve_recurrent_decision : completion_reserve_runtime_ [always] / exec_reserve_recurrent_ + reserve_recurrent_decision --> done : completion_reserve_runtime_ [recurrent_accepted_] / none + reserve_recurrent_decision --> errored : completion_reserve_runtime_ [recurrent_rejected_with_error_] / mark_error_from_recurrent_ + reserve_recurrent_decision --> errored : completion_reserve_runtime_ [recurrent_rejected_without_error_] / mark_backend_error_ + ready --> allocate_sequence_kv : allocate_sequence_runtime [always] / begin_allocate_sequence_ + allocate_sequence_kv --> allocate_sequence_kv_decision : completion_allocate_sequence_runtime_ [always] / exec_allocate_sequence_kv_ + allocate_sequence_kv_decision --> allocate_sequence_recurrent : completion_allocate_sequence_runtime_ [kv_accepted_] / none + allocate_sequence_kv_decision --> errored : completion_allocate_sequence_runtime_ [kv_rejected_with_error_] / mark_error_from_kv_ + allocate_sequence_kv_decision --> errored : completion_allocate_sequence_runtime_ [kv_rejected_without_error_] / mark_backend_error_ + allocate_sequence_recurrent --> allocate_sequence_recurrent_decision : completion_allocate_sequence_runtime_ [always] / exec_allocate_sequence_recurrent_ + allocate_sequence_recurrent_decision --> done : completion_allocate_sequence_runtime_ [recurrent_accepted_] / none + allocate_sequence_recurrent_decision --> allocate_sequence_rollback_kv : completion_allocate_sequence_runtime_ [recurrent_rejected_any_] / exec_allocate_sequence_rollback_kv_ + allocate_sequence_rollback_kv --> allocate_sequence_rollback_result_decision : completion_allocate_sequence_runtime_ [always] / none + allocate_sequence_rollback_result_decision --> allocate_sequence_recurrent_error_decision : completion_allocate_sequence_runtime_ [rollback_accepted_] / none + allocate_sequence_rollback_result_decision --> errored : completion_allocate_sequence_runtime_ [rollback_rejected_with_error_] / mark_error_from_rollback_ + allocate_sequence_rollback_result_decision --> errored : completion_allocate_sequence_runtime_ [rollback_rejected_without_error_] / mark_internal_error_ + allocate_sequence_rollback_result_decision --> errored : completion_allocate_sequence_runtime_ [always] / mark_internal_error_ + allocate_sequence_recurrent_error_decision --> out_of_memory : completion_allocate_sequence_runtime_ [recurrent_rejected_out_of_memory_] / mark_out_of_memory_ + allocate_sequence_recurrent_error_decision --> errored : completion_allocate_sequence_runtime_ [recurrent_rejected_backend_or_none_] / mark_backend_error_ + allocate_sequence_recurrent_error_decision --> errored : completion_allocate_sequence_runtime_ [recurrent_rejected_non_backend_error_] / mark_error_from_recurrent_ + allocate_sequence_recurrent_error_decision --> errored : completion_allocate_sequence_runtime_ [always] / mark_internal_error_ + ready --> allocate_slots_kv : allocate_slots_runtime [always] / begin_allocate_slots_ + allocate_slots_kv --> allocate_slots_kv_decision : completion_allocate_slots_runtime_ [always] / exec_allocate_slots_kv_ + allocate_slots_kv_decision --> allocate_slots_recurrent : completion_allocate_slots_runtime_ [kv_accepted_] / none + allocate_slots_kv_decision --> out_of_memory : completion_allocate_slots_runtime_ [kv_rejected_out_of_memory_] / mark_out_of_memory_ + allocate_slots_kv_decision --> errored : completion_allocate_slots_runtime_ [kv_rejected_backend_or_none_] / mark_backend_error_ + allocate_slots_kv_decision --> errored : completion_allocate_slots_runtime_ [kv_rejected_non_backend_error_] / mark_error_from_kv_ + allocate_slots_recurrent --> allocate_slots_recurrent_decision : completion_allocate_slots_runtime_ [always] / exec_allocate_slots_recurrent_ + allocate_slots_recurrent_decision --> done : completion_allocate_slots_runtime_ [recurrent_accepted_] / none + allocate_slots_recurrent_decision --> allocate_slots_rollback_kv : completion_allocate_slots_runtime_ [recurrent_rejected_any_] / exec_allocate_slots_rollback_kv_ + allocate_slots_rollback_kv --> allocate_slots_rollback_result_decision : completion_allocate_slots_runtime_ [always] / none + allocate_slots_rollback_result_decision --> allocate_slots_recurrent_error_decision : completion_allocate_slots_runtime_ [rollback_accepted_] / none + allocate_slots_rollback_result_decision --> errored : completion_allocate_slots_runtime_ [rollback_rejected_with_error_] / mark_error_from_rollback_ + allocate_slots_rollback_result_decision --> errored : completion_allocate_slots_runtime_ [rollback_rejected_without_error_] / mark_internal_error_ + allocate_slots_rollback_result_decision --> errored : completion_allocate_slots_runtime_ [always] / mark_internal_error_ + allocate_slots_recurrent_error_decision --> out_of_memory : completion_allocate_slots_runtime_ [recurrent_rejected_out_of_memory_] / mark_out_of_memory_ + allocate_slots_recurrent_error_decision --> errored : completion_allocate_slots_runtime_ [recurrent_rejected_backend_or_none_] / mark_backend_error_ + allocate_slots_recurrent_error_decision --> errored : completion_allocate_slots_runtime_ [recurrent_rejected_non_backend_error_] / mark_error_from_recurrent_ + allocate_slots_recurrent_error_decision --> errored : completion_allocate_slots_runtime_ [always] / mark_internal_error_ + ready --> branch_sequence_kv : branch_sequence_runtime [always] / begin_branch_sequence_ + branch_sequence_kv --> branch_sequence_kv_decision : completion_branch_sequence_runtime_ [always] / exec_branch_sequence_kv_ + branch_sequence_kv_decision --> branch_sequence_recurrent : completion_branch_sequence_runtime_ [kv_accepted_] / none + branch_sequence_kv_decision --> out_of_memory : completion_branch_sequence_runtime_ [kv_rejected_out_of_memory_] / mark_out_of_memory_ + branch_sequence_kv_decision --> errored : completion_branch_sequence_runtime_ [kv_rejected_backend_or_none_] / mark_backend_error_ + branch_sequence_kv_decision --> errored : completion_branch_sequence_runtime_ [kv_rejected_non_backend_error_] / mark_error_from_kv_ + branch_sequence_recurrent --> branch_sequence_recurrent_decision : completion_branch_sequence_runtime_ [always] / exec_branch_sequence_recurrent_ + branch_sequence_recurrent_decision --> done : completion_branch_sequence_runtime_ [recurrent_accepted_] / none + branch_sequence_recurrent_decision --> branch_sequence_rollback_kv : completion_branch_sequence_runtime_ [recurrent_rejected_any_] / exec_branch_sequence_rollback_kv_ + branch_sequence_rollback_kv --> branch_sequence_rollback_result_decision : completion_branch_sequence_runtime_ [always] / none + branch_sequence_rollback_result_decision --> branch_sequence_recurrent_error_decision : completion_branch_sequence_runtime_ [rollback_accepted_] / none + branch_sequence_rollback_result_decision --> errored : completion_branch_sequence_runtime_ [rollback_rejected_with_error_] / mark_error_from_rollback_ + branch_sequence_rollback_result_decision --> errored : completion_branch_sequence_runtime_ [rollback_rejected_without_error_] / mark_internal_error_ + branch_sequence_rollback_result_decision --> errored : completion_branch_sequence_runtime_ [always] / mark_internal_error_ + branch_sequence_recurrent_error_decision --> out_of_memory : completion_branch_sequence_runtime_ [recurrent_rejected_out_of_memory_] / mark_out_of_memory_ + branch_sequence_recurrent_error_decision --> errored : completion_branch_sequence_runtime_ [recurrent_rejected_backend_or_none_] / mark_backend_error_ + branch_sequence_recurrent_error_decision --> errored : completion_branch_sequence_runtime_ [recurrent_rejected_non_backend_error_] / mark_error_from_recurrent_ + branch_sequence_recurrent_error_decision --> errored : completion_branch_sequence_runtime_ [always] / mark_internal_error_ + ready --> free_sequence_kv : free_sequence_runtime [always] / begin_free_sequence_ + free_sequence_kv --> free_sequence_kv_decision : completion_free_sequence_runtime_ [always] / exec_free_sequence_kv_ + free_sequence_kv_decision --> free_sequence_recurrent : completion_free_sequence_runtime_ [kv_accepted_] / none + free_sequence_kv_decision --> errored : completion_free_sequence_runtime_ [kv_rejected_with_error_] / mark_error_from_kv_ + free_sequence_kv_decision --> errored : completion_free_sequence_runtime_ [kv_rejected_without_error_] / mark_backend_error_ + free_sequence_recurrent --> free_sequence_recurrent_decision : completion_free_sequence_runtime_ [always] / exec_free_sequence_recurrent_ + free_sequence_recurrent_decision --> done : completion_free_sequence_runtime_ [recurrent_accepted_] / none + free_sequence_recurrent_decision --> errored : completion_free_sequence_runtime_ [recurrent_rejected_with_error_] / mark_error_from_recurrent_ + free_sequence_recurrent_decision --> errored : completion_free_sequence_runtime_ [recurrent_rejected_without_error_] / mark_backend_error_ + ready --> rollback_slots_kv : rollback_slots_runtime [always] / begin_rollback_slots_ + rollback_slots_kv --> rollback_slots_kv_decision : completion_rollback_slots_runtime_ [always] / exec_rollback_slots_kv_ + rollback_slots_kv_decision --> rollback_slots_recurrent : completion_rollback_slots_runtime_ [kv_accepted_] / none + rollback_slots_kv_decision --> errored : completion_rollback_slots_runtime_ [kv_rejected_with_error_] / mark_error_from_kv_ + rollback_slots_kv_decision --> errored : completion_rollback_slots_runtime_ [kv_rejected_without_error_] / mark_backend_error_ + rollback_slots_recurrent --> rollback_slots_recurrent_decision : completion_rollback_slots_runtime_ [always] / exec_rollback_slots_recurrent_ + rollback_slots_recurrent_decision --> done : completion_rollback_slots_runtime_ [recurrent_accepted_] / none + rollback_slots_recurrent_decision --> errored : completion_rollback_slots_runtime_ [recurrent_rejected_with_error_] / mark_error_from_recurrent_ + rollback_slots_recurrent_decision --> errored : completion_rollback_slots_runtime_ [recurrent_rejected_without_error_] / mark_backend_error_ + ready --> capture_request_decision : capture_view_runtime [always] / begin_capture_view_ + capture_request_decision --> capture_kv : completion_capture_view_runtime_ [capture_request_valid_] / none + capture_request_decision --> errored : completion_capture_view_runtime_ [capture_request_invalid_] / mark_invalid_request_ + capture_kv --> capture_kv_decision : completion_capture_view_runtime_ [always] / exec_capture_kv_ + capture_kv_decision --> capture_recurrent : completion_capture_view_runtime_ [kv_accepted_] / none + capture_kv_decision --> errored : completion_capture_view_runtime_ [kv_rejected_with_error_] / mark_error_from_kv_ + capture_kv_decision --> errored : completion_capture_view_runtime_ [kv_rejected_without_error_] / mark_backend_error_ + capture_recurrent --> capture_recurrent_decision : completion_capture_view_runtime_ [always] / exec_capture_recurrent_ + capture_recurrent_decision --> capture_merge : completion_capture_view_runtime_ [recurrent_accepted_] / none + capture_recurrent_decision --> errored : completion_capture_view_runtime_ [recurrent_rejected_with_error_] / mark_error_from_recurrent_ + capture_recurrent_decision --> errored : completion_capture_view_runtime_ [recurrent_rejected_without_error_] / mark_backend_error_ + capture_merge --> done : completion_capture_view_runtime_ [always] / merge_capture_snapshots_ + done --> ready : completion_reserve_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_reserve_runtime_ [always] / publish_error_ + errored --> ready : completion_reserve_runtime_ [always] / publish_error_ + done --> ready : completion_allocate_sequence_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_allocate_sequence_runtime_ [always] / publish_error_ + errored --> ready : completion_allocate_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_allocate_slots_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_allocate_slots_runtime_ [always] / publish_error_ + errored --> ready : completion_allocate_slots_runtime_ [always] / publish_error_ + done --> ready : completion_branch_sequence_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_branch_sequence_runtime_ [always] / publish_error_ + errored --> ready : completion_branch_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_free_sequence_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_free_sequence_runtime_ [always] / publish_error_ + errored --> ready : completion_free_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_rollback_slots_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_rollback_slots_runtime_ [always] / publish_error_ + errored --> ready : completion_rollback_slots_runtime_ [always] / publish_error_ + done --> ready : completion_capture_view_runtime_ [always] / publish_done_ + out_of_memory --> ready : completion_capture_view_runtime_ [always] / publish_error_ + errored --> ready : completion_capture_view_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + reserve_kv --> ready : _ [always] / on_unexpected_ + reserve_kv_decision --> ready : _ [always] / on_unexpected_ + reserve_recurrent --> ready : _ [always] / on_unexpected_ + reserve_recurrent_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_kv --> ready : _ [always] / on_unexpected_ + allocate_sequence_kv_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_recurrent --> ready : _ [always] / on_unexpected_ + allocate_sequence_recurrent_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_rollback_kv --> ready : _ [always] / on_unexpected_ + allocate_sequence_rollback_result_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_recurrent_error_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_kv --> ready : _ [always] / on_unexpected_ + allocate_slots_kv_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_recurrent --> ready : _ [always] / on_unexpected_ + allocate_slots_recurrent_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_rollback_kv --> ready : _ [always] / on_unexpected_ + allocate_slots_rollback_result_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_recurrent_error_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_kv --> ready : _ [always] / on_unexpected_ + branch_sequence_kv_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_recurrent --> ready : _ [always] / on_unexpected_ + branch_sequence_recurrent_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_rollback_kv --> ready : _ [always] / on_unexpected_ + branch_sequence_rollback_result_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_recurrent_error_decision --> ready : _ [always] / on_unexpected_ + free_sequence_kv --> ready : _ [always] / on_unexpected_ + free_sequence_kv_decision --> ready : _ [always] / on_unexpected_ + free_sequence_recurrent --> ready : _ [always] / on_unexpected_ + free_sequence_recurrent_decision --> ready : _ [always] / on_unexpected_ + rollback_slots_kv --> ready : _ [always] / on_unexpected_ + rollback_slots_kv_decision --> ready : _ [always] / on_unexpected_ + rollback_slots_recurrent --> ready : _ [always] / on_unexpected_ + rollback_slots_recurrent_decision --> ready : _ [always] / on_unexpected_ + capture_request_decision --> ready : _ [always] / on_unexpected_ + capture_kv --> ready : _ [always] / on_unexpected_ + capture_kv_decision --> ready : _ [always] / on_unexpected_ + capture_recurrent --> ready : _ [always] / on_unexpected_ + capture_recurrent_decision --> ready : _ [always] / on_unexpected_ + capture_merge --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + out_of_memory --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/memory_kv.mmd b/docs/architecture/mermaid/memory_kv.mmd index abbd821d..04fcf1e0 100644 --- a/docs/architecture/mermaid/memory_kv.mmd +++ b/docs/architecture/mermaid/memory_kv.mmd @@ -1,51 +1,101 @@ stateDiagram-v2 direction TB - [*] --> uninitialized - uninitialized --> initializing : reserve [always] / begin_reserve_ - ready --> initializing : reserve [always] / begin_reserve_ - unexpected --> initializing : reserve [always] / begin_reserve_ - initializing --> ready : [lambda_guards_7_34] / none - initializing --> out_of_memory : [lambda_guards_15_45] / none - initializing --> errored : [lambda_guards_11_38] / none - ready --> allocating_sequence : allocate_sequence [always] / begin_allocate_sequence_ - allocating_sequence --> ready : [lambda_guards_7_34] / none - allocating_sequence --> out_of_memory : [lambda_guards_15_45] / none - allocating_sequence --> errored : [lambda_guards_11_38] / none - ready --> allocating_slots : allocate_slots [always] / begin_allocate_slots_ - allocating_slots --> ready : [lambda_guards_7_34] / none - allocating_slots --> out_of_memory : [lambda_guards_15_45] / none - allocating_slots --> errored : [lambda_guards_11_38] / none - ready --> branching_sequence : branch_sequence [always] / begin_branch_sequence_ - branching_sequence --> ready : [lambda_guards_7_34] / none - branching_sequence --> out_of_memory : [lambda_guards_15_45] / none - branching_sequence --> errored : [lambda_guards_11_38] / none - ready --> freeing_sequence : free_sequence [always] / begin_free_sequence_ - freeing_sequence --> ready : [lambda_guards_7_34] / none - freeing_sequence --> errored : [lambda_guards_11_38] / none - ready --> rolling_back_slots : rollback_slots [always] / begin_rollback_slots_ - rolling_back_slots --> ready : [lambda_guards_7_34] / none - rolling_back_slots --> errored : [lambda_guards_11_38] / none - out_of_memory --> ready : [always] / clear_out_of_memory_ - errored --> ready : [always] / ensure_last_error_ - uninitialized --> uninitialized : capture_view [always] / capture_view_ - initializing --> initializing : capture_view [always] / capture_view_ - ready --> ready : capture_view [always] / capture_view_ - allocating_sequence --> allocating_sequence : capture_view [always] / capture_view_ - allocating_slots --> allocating_slots : capture_view [always] / capture_view_ - branching_sequence --> branching_sequence : capture_view [always] / capture_view_ - freeing_sequence --> freeing_sequence : capture_view [always] / capture_view_ - rolling_back_slots --> rolling_back_slots : capture_view [always] / capture_view_ - out_of_memory --> out_of_memory : capture_view [always] / capture_view_ - errored --> errored : capture_view [always] / capture_view_ - unexpected --> unexpected : capture_view [always] / capture_view_ - uninitialized --> unexpected : _ [always] / on_unexpected_ - initializing --> unexpected : _ [always] / on_unexpected_ - ready --> unexpected : _ [always] / on_unexpected_ - allocating_sequence --> unexpected : _ [always] / on_unexpected_ - allocating_slots --> unexpected : _ [always] / on_unexpected_ - branching_sequence --> unexpected : _ [always] / on_unexpected_ - freeing_sequence --> unexpected : _ [always] / on_unexpected_ - rolling_back_slots --> unexpected : _ [always] / on_unexpected_ - out_of_memory --> unexpected : _ [always] / on_unexpected_ - errored --> unexpected : _ [always] / on_unexpected_ - unexpected --> unexpected : _ [always] / on_unexpected_ + [*] --> ready + ready --> reserve_request_decision : reserve_runtime [always] / begin_reserve_ + reserve_request_decision --> reserve_exec : completion_reserve_runtime_ [reserve_request_valid_] / none + reserve_request_decision --> errored : completion_reserve_runtime_ [reserve_request_invalid_] / mark_invalid_request_ + reserve_exec --> reserve_result_decision : completion_reserve_runtime_ [always] / exec_reserve_ + reserve_result_decision --> done : completion_reserve_runtime_ [operation_succeeded_] / none + reserve_result_decision --> errored : completion_reserve_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + reserve_result_decision --> errored : completion_reserve_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> allocate_sequence_request_decision : allocate_sequence_runtime [always] / begin_allocate_sequence_ + allocate_sequence_request_decision --> allocate_sequence_exec : completion_allocate_sequence_runtime_ [allocate_sequence_request_valid_] / none + allocate_sequence_request_decision --> errored : completion_allocate_sequence_runtime_ [allocate_sequence_request_invalid_] / mark_invalid_request_ + allocate_sequence_exec --> allocate_sequence_result_decision : completion_allocate_sequence_runtime_ [always] / exec_allocate_sequence_ + allocate_sequence_result_decision --> done : completion_allocate_sequence_runtime_ [operation_succeeded_] / none + allocate_sequence_result_decision --> errored : completion_allocate_sequence_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + allocate_sequence_result_decision --> errored : completion_allocate_sequence_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> allocate_slots_request_decision : allocate_slots_runtime [always] / begin_allocate_slots_ + allocate_slots_request_decision --> allocate_slots_request_shape_decision : completion_allocate_slots_runtime_ [always] / none + allocate_slots_request_shape_decision --> allocate_slots_request_length_decision : completion_allocate_slots_runtime_ [allocate_slots_request_shape_valid_] / none + allocate_slots_request_shape_decision --> errored : completion_allocate_slots_runtime_ [allocate_slots_request_shape_invalid_] / mark_invalid_request_ + allocate_slots_request_length_decision --> allocate_slots_request_block_layout_decision : completion_allocate_slots_runtime_ [allocate_slots_request_length_valid_] / none + allocate_slots_request_length_decision --> errored : completion_allocate_slots_runtime_ [allocate_slots_request_length_invalid_] / mark_invalid_request_ + allocate_slots_request_block_layout_decision --> allocate_slots_request_capacity_decision : completion_allocate_slots_runtime_ [allocate_slots_request_block_layout_valid_] / none + allocate_slots_request_block_layout_decision --> errored : completion_allocate_slots_runtime_ [allocate_slots_request_block_layout_invalid_] / mark_backend_error_ + allocate_slots_request_capacity_decision --> allocate_slots_exec : completion_allocate_slots_runtime_ [allocate_slots_request_capacity_valid_] / none + allocate_slots_request_capacity_decision --> errored : completion_allocate_slots_runtime_ [allocate_slots_request_capacity_invalid_] / mark_out_of_memory_ + allocate_slots_exec --> allocate_slots_result_decision : completion_allocate_slots_runtime_ [always] / exec_allocate_slots_ + allocate_slots_result_decision --> done : completion_allocate_slots_runtime_ [operation_succeeded_] / none + allocate_slots_result_decision --> errored : completion_allocate_slots_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + allocate_slots_result_decision --> errored : completion_allocate_slots_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> branch_sequence_request_decision : branch_sequence_runtime [always] / begin_branch_sequence_ + branch_sequence_request_decision --> branch_sequence_exec : completion_branch_sequence_runtime_ [branch_sequence_request_valid_] / none + branch_sequence_request_decision --> errored : completion_branch_sequence_runtime_ [branch_sequence_request_invalid_] / mark_invalid_request_ + branch_sequence_exec --> branch_sequence_result_decision : completion_branch_sequence_runtime_ [always] / exec_branch_sequence_ + branch_sequence_result_decision --> done : completion_branch_sequence_runtime_ [operation_succeeded_] / none + branch_sequence_result_decision --> errored : completion_branch_sequence_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + branch_sequence_result_decision --> errored : completion_branch_sequence_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> free_sequence_request_decision : free_sequence_runtime [always] / begin_free_sequence_ + free_sequence_request_decision --> free_sequence_exec : completion_free_sequence_runtime_ [free_sequence_request_valid_] / none + free_sequence_request_decision --> errored : completion_free_sequence_runtime_ [free_sequence_request_invalid_] / mark_invalid_request_ + free_sequence_exec --> free_sequence_result_decision : completion_free_sequence_runtime_ [always] / exec_free_sequence_ + free_sequence_result_decision --> done : completion_free_sequence_runtime_ [operation_succeeded_] / none + free_sequence_result_decision --> errored : completion_free_sequence_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + free_sequence_result_decision --> errored : completion_free_sequence_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> rollback_slots_request_decision : rollback_slots_runtime [always] / begin_rollback_slots_ + rollback_slots_request_decision --> rollback_slots_exec : completion_rollback_slots_runtime_ [rollback_slots_request_valid_] / none + rollback_slots_request_decision --> errored : completion_rollback_slots_runtime_ [rollback_slots_request_invalid_] / mark_invalid_request_ + rollback_slots_exec --> rollback_slots_result_decision : completion_rollback_slots_runtime_ [always] / exec_rollback_slots_ + rollback_slots_result_decision --> done : completion_rollback_slots_runtime_ [operation_succeeded_] / none + rollback_slots_result_decision --> errored : completion_rollback_slots_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + rollback_slots_result_decision --> errored : completion_rollback_slots_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> capture_request_decision : capture_view_runtime [always] / begin_capture_view_ + capture_request_decision --> capture_exec : completion_capture_view_runtime_ [capture_request_valid_] / none + capture_request_decision --> errored : completion_capture_view_runtime_ [capture_request_invalid_] / mark_invalid_request_ + capture_exec --> capture_result_decision : completion_capture_view_runtime_ [always] / exec_capture_view_ + capture_result_decision --> done : completion_capture_view_runtime_ [operation_succeeded_] / none + capture_result_decision --> errored : completion_capture_view_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + capture_result_decision --> errored : completion_capture_view_runtime_ [operation_failed_without_error_] / mark_backend_error_ + done --> ready : completion_reserve_runtime_ [always] / publish_done_ + errored --> ready : completion_reserve_runtime_ [always] / publish_error_ + done --> ready : completion_allocate_sequence_runtime_ [always] / publish_done_ + errored --> ready : completion_allocate_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_allocate_slots_runtime_ [always] / publish_done_ + errored --> ready : completion_allocate_slots_runtime_ [always] / publish_error_ + done --> ready : completion_branch_sequence_runtime_ [always] / publish_done_ + errored --> ready : completion_branch_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_free_sequence_runtime_ [always] / publish_done_ + errored --> ready : completion_free_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_rollback_slots_runtime_ [always] / publish_done_ + errored --> ready : completion_rollback_slots_runtime_ [always] / publish_error_ + done --> ready : completion_capture_view_runtime_ [always] / publish_done_ + errored --> ready : completion_capture_view_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + reserve_request_decision --> ready : _ [always] / on_unexpected_ + reserve_exec --> ready : _ [always] / on_unexpected_ + reserve_result_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_request_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_exec --> ready : _ [always] / on_unexpected_ + allocate_sequence_result_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_shape_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_length_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_block_layout_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_capacity_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_exec --> ready : _ [always] / on_unexpected_ + allocate_slots_result_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_request_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_exec --> ready : _ [always] / on_unexpected_ + branch_sequence_result_decision --> ready : _ [always] / on_unexpected_ + free_sequence_request_decision --> ready : _ [always] / on_unexpected_ + free_sequence_exec --> ready : _ [always] / on_unexpected_ + free_sequence_result_decision --> ready : _ [always] / on_unexpected_ + rollback_slots_request_decision --> ready : _ [always] / on_unexpected_ + rollback_slots_exec --> ready : _ [always] / on_unexpected_ + rollback_slots_result_decision --> ready : _ [always] / on_unexpected_ + capture_request_decision --> ready : _ [always] / on_unexpected_ + capture_exec --> ready : _ [always] / on_unexpected_ + capture_result_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/memory_recurrent.mmd b/docs/architecture/mermaid/memory_recurrent.mmd index c6684332..2128e908 100644 --- a/docs/architecture/mermaid/memory_recurrent.mmd +++ b/docs/architecture/mermaid/memory_recurrent.mmd @@ -1,50 +1,110 @@ stateDiagram-v2 direction TB - [*] --> uninitialized - uninitialized --> initializing : reserve [always] / begin_reserve_ - ready --> initializing : reserve [always] / begin_reserve_ - unexpected --> initializing : reserve [always] / begin_reserve_ - initializing --> ready : [lambda_guards_7_34] / none - initializing --> out_of_memory : [lambda_guards_15_45] / none - initializing --> errored : [lambda_guards_11_38] / none - ready --> allocating_sequence : allocate_sequence [always] / begin_allocate_sequence_ - allocating_sequence --> ready : [lambda_guards_7_34] / none - allocating_sequence --> out_of_memory : [lambda_guards_15_45] / none - allocating_sequence --> errored : [lambda_guards_11_38] / none - ready --> allocating_slots : allocate_slots [always] / begin_allocate_slots_ - allocating_slots --> ready : [lambda_guards_7_34] / none - allocating_slots --> errored : [lambda_guards_11_38] / none - ready --> branching_sequence : branch_sequence [always] / begin_branch_sequence_ - branching_sequence --> ready : [lambda_guards_7_34] / none - branching_sequence --> out_of_memory : [lambda_guards_15_45] / none - branching_sequence --> errored : [lambda_guards_11_38] / none - ready --> freeing_sequence : free_sequence [always] / begin_free_sequence_ - freeing_sequence --> ready : [lambda_guards_7_34] / none - freeing_sequence --> errored : [lambda_guards_11_38] / none - ready --> rolling_back_slots : rollback_slots [always] / begin_rollback_slots_ - rolling_back_slots --> ready : [lambda_guards_7_34] / none - rolling_back_slots --> errored : [lambda_guards_11_38] / none - out_of_memory --> ready : [always] / clear_out_of_memory_ - errored --> ready : [always] / ensure_last_error_ - uninitialized --> uninitialized : capture_view [always] / capture_view_ - initializing --> initializing : capture_view [always] / capture_view_ - ready --> ready : capture_view [always] / capture_view_ - allocating_sequence --> allocating_sequence : capture_view [always] / capture_view_ - allocating_slots --> allocating_slots : capture_view [always] / capture_view_ - branching_sequence --> branching_sequence : capture_view [always] / capture_view_ - freeing_sequence --> freeing_sequence : capture_view [always] / capture_view_ - rolling_back_slots --> rolling_back_slots : capture_view [always] / capture_view_ - out_of_memory --> out_of_memory : capture_view [always] / capture_view_ - errored --> errored : capture_view [always] / capture_view_ - unexpected --> unexpected : capture_view [always] / capture_view_ - uninitialized --> unexpected : _ [always] / on_unexpected_ - initializing --> unexpected : _ [always] / on_unexpected_ - ready --> unexpected : _ [always] / on_unexpected_ - allocating_sequence --> unexpected : _ [always] / on_unexpected_ - allocating_slots --> unexpected : _ [always] / on_unexpected_ - branching_sequence --> unexpected : _ [always] / on_unexpected_ - freeing_sequence --> unexpected : _ [always] / on_unexpected_ - rolling_back_slots --> unexpected : _ [always] / on_unexpected_ - out_of_memory --> unexpected : _ [always] / on_unexpected_ - errored --> unexpected : _ [always] / on_unexpected_ - unexpected --> unexpected : _ [always] / on_unexpected_ + [*] --> ready + ready --> reserve_request_decision : reserve_runtime [always] / begin_reserve_ + reserve_request_decision --> reserve_exec : completion_reserve_runtime_ [reserve_request_valid_] / none + reserve_request_decision --> errored : completion_reserve_runtime_ [reserve_request_invalid_] / mark_invalid_request_ + reserve_exec --> reserve_result_decision : completion_reserve_runtime_ [always] / exec_reserve_ + reserve_result_decision --> done : completion_reserve_runtime_ [operation_succeeded_] / none + reserve_result_decision --> errored : completion_reserve_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + reserve_result_decision --> errored : completion_reserve_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> allocate_sequence_request_decision : allocate_sequence_runtime [always] / begin_allocate_sequence_ + allocate_sequence_request_decision --> allocate_sequence_exec : completion_allocate_sequence_runtime_ [allocate_sequence_request_inactive_with_slot_] / none + allocate_sequence_request_decision --> done : completion_allocate_sequence_runtime_ [allocate_sequence_request_active_] / mark_operation_success_ + allocate_sequence_request_decision --> errored : completion_allocate_sequence_runtime_ [allocate_sequence_request_inactive_without_slot_] / mark_backend_error_ + allocate_sequence_request_decision --> errored : completion_allocate_sequence_runtime_ [allocate_sequence_request_invalid_] / mark_invalid_request_ + allocate_sequence_exec --> allocate_sequence_result_decision : completion_allocate_sequence_runtime_ [always] / exec_allocate_sequence_inactive_ + allocate_sequence_result_decision --> done : completion_allocate_sequence_runtime_ [operation_succeeded_] / none + allocate_sequence_result_decision --> errored : completion_allocate_sequence_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + allocate_sequence_result_decision --> errored : completion_allocate_sequence_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> allocate_slots_request_decision : allocate_slots_runtime [always] / begin_allocate_slots_ + allocate_slots_request_decision --> allocate_slots_request_shape_decision : completion_allocate_slots_runtime_ [always] / none + allocate_slots_request_shape_decision --> allocate_slots_request_length_decision : completion_allocate_slots_runtime_ [allocate_slots_request_shape_valid_] / none + allocate_slots_request_shape_decision --> errored : completion_allocate_slots_runtime_ [allocate_slots_request_shape_invalid_] / mark_invalid_request_ + allocate_slots_request_length_decision --> allocate_slots_exec : completion_allocate_slots_runtime_ [allocate_slots_request_length_valid_] / none + allocate_slots_request_length_decision --> errored : completion_allocate_slots_runtime_ [allocate_slots_request_length_invalid_] / mark_invalid_request_ + allocate_slots_exec --> allocate_slots_result_decision : completion_allocate_slots_runtime_ [always] / exec_allocate_slots_ + allocate_slots_result_decision --> done : completion_allocate_slots_runtime_ [operation_succeeded_] / none + allocate_slots_result_decision --> errored : completion_allocate_slots_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + allocate_slots_result_decision --> errored : completion_allocate_slots_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> branch_sequence_request_decision : branch_sequence_runtime [always] / begin_branch_sequence_ + branch_sequence_request_decision --> branch_sequence_request_shape_decision : completion_branch_sequence_runtime_ [always] / none + branch_sequence_request_shape_decision --> branch_sequence_request_capacity_decision : completion_branch_sequence_runtime_ [branch_sequence_request_shape_valid_] / none + branch_sequence_request_shape_decision --> errored : completion_branch_sequence_runtime_ [branch_sequence_request_shape_invalid_] / mark_invalid_request_ + branch_sequence_request_capacity_decision --> branch_sequence_exec : completion_branch_sequence_runtime_ [branch_sequence_request_capacity_available_] / none + branch_sequence_request_capacity_decision --> errored : completion_branch_sequence_runtime_ [branch_sequence_request_capacity_exhausted_] / mark_backend_error_ + branch_sequence_exec --> branch_sequence_result_decision : completion_branch_sequence_runtime_ [always] / exec_branch_sequence_prepare_child_slot_ + branch_sequence_result_decision --> branch_sequence_copy_exec : completion_branch_sequence_runtime_ [branch_slot_activation_succeeded_] / none + branch_sequence_result_decision --> errored : completion_branch_sequence_runtime_ [branch_slot_activation_failed_] / mark_backend_error_ + branch_sequence_copy_exec --> branch_sequence_copy_result_decision : completion_branch_sequence_runtime_ [always] / exec_branch_sequence_copy_callback_ + branch_sequence_copy_result_decision --> done : completion_branch_sequence_runtime_ [branch_copy_succeeded_] / finalize_branch_sequence_success_ + branch_sequence_copy_result_decision --> branch_sequence_rollback_exec : completion_branch_sequence_runtime_ [branch_copy_failed_with_error_] / mark_error_from_operation_ + branch_sequence_copy_result_decision --> branch_sequence_rollback_exec : completion_branch_sequence_runtime_ [branch_copy_failed_without_error_] / mark_backend_error_ + branch_sequence_rollback_exec --> errored : completion_branch_sequence_runtime_ [always] / exec_branch_sequence_rollback_child_slot_ + ready --> free_sequence_request_decision : free_sequence_runtime [always] / begin_free_sequence_ + free_sequence_request_decision --> free_sequence_exec : completion_free_sequence_runtime_ [free_sequence_request_active_] / none + free_sequence_request_decision --> done : completion_free_sequence_runtime_ [free_sequence_request_inactive_] / mark_operation_success_ + free_sequence_request_decision --> errored : completion_free_sequence_runtime_ [free_sequence_request_invalid_] / mark_invalid_request_ + free_sequence_exec --> free_sequence_result_decision : completion_free_sequence_runtime_ [always] / exec_free_sequence_active_ + free_sequence_result_decision --> done : completion_free_sequence_runtime_ [operation_succeeded_] / none + free_sequence_result_decision --> errored : completion_free_sequence_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + free_sequence_result_decision --> errored : completion_free_sequence_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> rollback_slots_request_decision : rollback_slots_runtime [always] / begin_rollback_slots_ + rollback_slots_request_decision --> rollback_slots_exec : completion_rollback_slots_runtime_ [rollback_slots_request_valid_] / none + rollback_slots_request_decision --> errored : completion_rollback_slots_runtime_ [rollback_slots_request_invalid_] / mark_invalid_request_ + rollback_slots_exec --> rollback_slots_result_decision : completion_rollback_slots_runtime_ [always] / exec_rollback_slots_ + rollback_slots_result_decision --> done : completion_rollback_slots_runtime_ [operation_succeeded_] / none + rollback_slots_result_decision --> errored : completion_rollback_slots_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + rollback_slots_result_decision --> errored : completion_rollback_slots_runtime_ [operation_failed_without_error_] / mark_backend_error_ + ready --> capture_request_decision : capture_view_runtime [always] / begin_capture_view_ + capture_request_decision --> capture_exec : completion_capture_view_runtime_ [capture_request_valid_] / none + capture_request_decision --> errored : completion_capture_view_runtime_ [capture_request_invalid_] / mark_invalid_request_ + capture_exec --> capture_result_decision : completion_capture_view_runtime_ [always] / exec_capture_view_ + capture_result_decision --> done : completion_capture_view_runtime_ [operation_succeeded_] / none + capture_result_decision --> errored : completion_capture_view_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + capture_result_decision --> errored : completion_capture_view_runtime_ [operation_failed_without_error_] / mark_backend_error_ + done --> ready : completion_reserve_runtime_ [always] / publish_done_ + errored --> ready : completion_reserve_runtime_ [always] / publish_error_ + done --> ready : completion_allocate_sequence_runtime_ [always] / publish_done_ + errored --> ready : completion_allocate_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_allocate_slots_runtime_ [always] / publish_done_ + errored --> ready : completion_allocate_slots_runtime_ [always] / publish_error_ + done --> ready : completion_branch_sequence_runtime_ [always] / publish_done_ + errored --> ready : completion_branch_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_free_sequence_runtime_ [always] / publish_done_ + errored --> ready : completion_free_sequence_runtime_ [always] / publish_error_ + done --> ready : completion_rollback_slots_runtime_ [always] / publish_done_ + errored --> ready : completion_rollback_slots_runtime_ [always] / publish_error_ + done --> ready : completion_capture_view_runtime_ [always] / publish_done_ + errored --> ready : completion_capture_view_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + reserve_request_decision --> ready : _ [always] / on_unexpected_ + reserve_exec --> ready : _ [always] / on_unexpected_ + reserve_result_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_request_decision --> ready : _ [always] / on_unexpected_ + allocate_sequence_exec --> ready : _ [always] / on_unexpected_ + allocate_sequence_result_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_shape_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_request_length_decision --> ready : _ [always] / on_unexpected_ + allocate_slots_exec --> ready : _ [always] / on_unexpected_ + allocate_slots_result_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_request_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_request_shape_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_request_capacity_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_exec --> ready : _ [always] / on_unexpected_ + branch_sequence_result_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_copy_exec --> ready : _ [always] / on_unexpected_ + branch_sequence_copy_result_decision --> ready : _ [always] / on_unexpected_ + branch_sequence_rollback_exec --> ready : _ [always] / on_unexpected_ + free_sequence_request_decision --> ready : _ [always] / on_unexpected_ + free_sequence_exec --> ready : _ [always] / on_unexpected_ + free_sequence_result_decision --> ready : _ [always] / on_unexpected_ + rollback_slots_request_decision --> ready : _ [always] / on_unexpected_ + rollback_slots_exec --> ready : _ [always] / on_unexpected_ + rollback_slots_result_decision --> ready : _ [always] / on_unexpected_ + capture_request_decision --> ready : _ [always] / on_unexpected_ + capture_exec --> ready : _ [always] / on_unexpected_ + capture_result_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/model_loader.mmd b/docs/architecture/mermaid/model_loader.mmd index ff628675..8a21e5ef 100644 --- a/docs/architecture/mermaid/model_loader.mmd +++ b/docs/architecture/mermaid/model_loader.mmd @@ -1,52 +1,99 @@ stateDiagram-v2 direction TB - [*] --> initialized - initialized --> mapping_parser : load [can_map_parser_] / begin_load_ - initialized --> errored : load [cannot_map_parser_] / set_invalid_argument_ - mapping_parser --> map_parser_decision : [always] / run_map_parser_ - map_parser_decision --> errored : [phase_failed_] / none - map_parser_decision --> parsing : [phase_ok_and_can_parse_] / none - map_parser_decision --> errored : [phase_ok_and_cannot_parse_] / set_invalid_argument_ - parsing --> parse_decision : [always] / run_parse_ - parse_decision --> errored : [phase_failed_] / none - parse_decision --> loading_weights : [phase_ok_and_should_load_weights_and_can_load_] / none - parse_decision --> errored : [phase_ok_and_should_load_weights_and_cannot_load_] / set_invalid_argument_ - parse_decision --> structure_skipped : [phase_ok_and_skip_weights_and_skip_structure_] / none - parse_decision --> validating_structure : [phase_ok_and_skip_weights_and_can_validate_structure_] / none - parse_decision --> errored : [phase_ok_and_skip_weights_and_cannot_validate_structure_] / set_invalid_argument_ - loading_weights --> load_decision : [always] / run_load_weights_ - load_decision --> errored : [phase_failed_] / none - load_decision --> mapping_layers : [phase_ok_and_can_map_layers_] / none - load_decision --> errored : [phase_ok_and_cannot_map_layers_] / set_invalid_argument_ - mapping_layers --> map_layers_decision : [always] / run_map_layers_ - map_layers_decision --> errored : [phase_failed_] / none - map_layers_decision --> structure_skipped : [phase_ok_and_skip_structure_] / none - map_layers_decision --> validating_structure : [phase_ok_and_can_validate_structure_] / none - map_layers_decision --> errored : [phase_ok_and_cannot_validate_structure_] / set_invalid_argument_ - validating_structure --> structure_decision : [always] / run_validate_structure_ - structure_skipped --> structure_decision : [always] / skip_validate_structure_ - structure_decision --> errored : [phase_failed_] / none - structure_decision --> validating_architecture : [phase_ok_and_has_arch_validate_and_can_validate_architecture_] / none - structure_decision --> errored : [phase_ok_and_has_arch_validate_and_cannot_validate_architecture_] / set_invalid_argument_ - structure_decision --> done : [phase_ok_and_no_arch_validate_] / none - validating_architecture --> architecture_decision : [always] / run_validate_architecture_ - architecture_decision --> errored : [phase_failed_] / none - architecture_decision --> done : [phase_ok_] / none - done --> initialized : [always] / publish_done_ - errored --> initialized : [always] / publish_error_ - initialized --> errored : _ [always] / on_unexpected_ - mapping_parser --> errored : _ [always] / on_unexpected_ - map_parser_decision --> errored : _ [always] / on_unexpected_ - parsing --> errored : _ [always] / on_unexpected_ - parse_decision --> errored : _ [always] / on_unexpected_ - loading_weights --> errored : _ [always] / on_unexpected_ - load_decision --> errored : _ [always] / on_unexpected_ - mapping_layers --> errored : _ [always] / on_unexpected_ - map_layers_decision --> errored : _ [always] / on_unexpected_ - validating_structure --> errored : _ [always] / on_unexpected_ - structure_skipped --> errored : _ [always] / on_unexpected_ - structure_decision --> errored : _ [always] / on_unexpected_ - validating_architecture --> errored : _ [always] / on_unexpected_ - architecture_decision --> errored : _ [always] / on_unexpected_ - done --> errored : _ [always] / on_unexpected_ - errored --> errored : _ [always] / on_unexpected_ + [*] --> ready + ready --> request_decision : load_runtime [always] / begin_load_ + request_decision --> parsing : completion_load_runtime_ [valid_request_] / none + request_decision --> errored : completion_load_runtime_ [invalid_request_] / mark_invalid_request_ + parsing --> parse_decision : completion_load_runtime_ [always] / run_parse_ + parse_decision --> parse_phase_decision : completion_load_runtime_ [always] / none + parse_phase_decision --> parse_load_weights_policy_decision : completion_load_runtime_ [error_none_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_invalid_request_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_parse_failed_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_backend_error_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_model_invalid_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_internal_error_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_untracked_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_unclassified_code_] / none + parse_load_weights_policy_decision --> parse_load_weights_handler_decision : completion_load_runtime_ [should_load_weights_] / none + parse_load_weights_policy_decision --> structure_decision : completion_load_runtime_ [skip_load_weights_] / none + parse_load_weights_policy_decision --> errored : completion_load_runtime_ [always] / mark_internal_error_ + parse_load_weights_handler_decision --> loading_weights : completion_load_runtime_ [can_load_weights_] / none + parse_load_weights_handler_decision --> errored : completion_load_runtime_ [cannot_load_weights_] / mark_invalid_request_ + parse_load_weights_handler_decision --> errored : completion_load_runtime_ [always] / mark_internal_error_ + loading_weights --> load_decision : completion_load_runtime_ [always] / run_load_weights_ + load_decision --> load_phase_decision : completion_load_runtime_ [always] / none + load_phase_decision --> load_map_policy_decision : completion_load_runtime_ [error_none_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_invalid_request_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_parse_failed_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_backend_error_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_model_invalid_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_internal_error_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_untracked_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_unclassified_code_] / none + load_map_policy_decision --> mapping_layers : completion_load_runtime_ [can_map_layers_] / none + load_map_policy_decision --> errored : completion_load_runtime_ [cannot_map_layers_] / mark_invalid_request_ + load_map_policy_decision --> errored : completion_load_runtime_ [always] / mark_internal_error_ + mapping_layers --> map_layers_decision : completion_load_runtime_ [always] / run_map_layers_ + map_layers_decision --> structure_decision : completion_load_runtime_ [error_none_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_invalid_request_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_parse_failed_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_backend_error_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_model_invalid_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_internal_error_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_untracked_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_unclassified_code_] / none + structure_decision --> structure_policy_decision : completion_load_runtime_ [always] / none + structure_policy_decision --> architecture_decision : completion_load_runtime_ [skip_validate_structure_] / none + structure_policy_decision --> validating_structure : completion_load_runtime_ [can_validate_structure_] / none + structure_policy_decision --> errored : completion_load_runtime_ [cannot_validate_structure_] / mark_invalid_request_ + structure_policy_decision --> errored : completion_load_runtime_ [always] / mark_internal_error_ + validating_structure --> structure_validation_decision : completion_load_runtime_ [always] / run_validate_structure_ + structure_validation_decision --> architecture_decision : completion_load_runtime_ [error_none_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_invalid_request_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_parse_failed_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_backend_error_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_model_invalid_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_internal_error_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_untracked_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_unclassified_code_] / none + architecture_decision --> architecture_policy_decision : completion_load_runtime_ [always] / none + architecture_policy_decision --> done : completion_load_runtime_ [skip_validate_architecture_] / none + architecture_policy_decision --> validating_architecture : completion_load_runtime_ [can_validate_architecture_] / none + architecture_policy_decision --> errored : completion_load_runtime_ [cannot_validate_architecture_] / mark_invalid_request_ + architecture_policy_decision --> errored : completion_load_runtime_ [always] / mark_internal_error_ + validating_architecture --> architecture_validation_decision : completion_load_runtime_ [always] / run_validate_architecture_ + architecture_validation_decision --> done : completion_load_runtime_ [error_none_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_invalid_request_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_parse_failed_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_backend_error_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_model_invalid_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_internal_error_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_untracked_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_unclassified_code_] / none + done --> ready : completion_load_runtime_ [done_callback_present_] / publish_done_ + done --> ready : completion_load_runtime_ [done_callback_absent_] / publish_done_noop_ + errored --> ready : completion_load_runtime_ [error_callback_present_] / publish_error_ + errored --> ready : completion_load_runtime_ [error_callback_absent_] / publish_error_noop_ + ready --> ready : _ [always] / on_unexpected_ + request_decision --> ready : _ [always] / on_unexpected_ + parsing --> ready : _ [always] / on_unexpected_ + parse_decision --> ready : _ [always] / on_unexpected_ + parse_phase_decision --> ready : _ [always] / on_unexpected_ + parse_load_weights_policy_decision --> ready : _ [always] / on_unexpected_ + parse_load_weights_handler_decision --> ready : _ [always] / on_unexpected_ + loading_weights --> ready : _ [always] / on_unexpected_ + load_decision --> ready : _ [always] / on_unexpected_ + load_phase_decision --> ready : _ [always] / on_unexpected_ + load_map_policy_decision --> ready : _ [always] / on_unexpected_ + mapping_layers --> ready : _ [always] / on_unexpected_ + map_layers_decision --> ready : _ [always] / on_unexpected_ + structure_decision --> ready : _ [always] / on_unexpected_ + structure_policy_decision --> ready : _ [always] / on_unexpected_ + validating_structure --> ready : _ [always] / on_unexpected_ + structure_validation_decision --> ready : _ [always] / on_unexpected_ + architecture_decision --> ready : _ [always] / on_unexpected_ + architecture_policy_decision --> ready : _ [always] / on_unexpected_ + validating_architecture --> ready : _ [always] / on_unexpected_ + architecture_validation_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/model_weight_loader.mmd b/docs/architecture/mermaid/model_weight_loader.mmd index a4e7082a..78387957 100644 --- a/docs/architecture/mermaid/model_weight_loader.mmd +++ b/docs/architecture/mermaid/model_weight_loader.mmd @@ -1,16 +1,102 @@ stateDiagram-v2 direction TB [*] --> unbound - unbound --> bound : bind_storage [valid_bind_] / run_bind_storage_ - unbound --> errored : bind_storage [invalid_bind_] / set_invalid_argument_ - bound --> awaiting_effects : plan_load [valid_plan_] / run_plan_load_ - bound --> errored : plan_load [invalid_plan_] / set_invalid_argument_ - awaiting_effects --> ready : apply_effect_results [valid_apply_] / run_apply_effects_ - awaiting_effects --> errored : apply_effect_results [invalid_apply_] / set_invalid_argument_ - ready --> bound : bind_storage [valid_bind_] / run_bind_storage_ - errored --> bound : bind_storage [valid_bind_] / run_bind_storage_ + unbound --> bind_dispatch_decision : bind_runtime [valid_bind_] / exec_bind_ + unbound --> bind_dispatch_decision : bind_runtime [invalid_bind_] / mark_invalid_request_ + bound --> bind_dispatch_decision : bind_runtime [valid_bind_] / exec_bind_ + bound --> bind_dispatch_decision : bind_runtime [invalid_bind_] / mark_invalid_request_ + awaiting_effects --> bind_dispatch_decision : bind_runtime [valid_bind_] / exec_bind_ + awaiting_effects --> bind_dispatch_decision : bind_runtime [invalid_bind_] / mark_invalid_request_ + ready --> bind_dispatch_decision : bind_runtime [valid_bind_] / exec_bind_ + ready --> bind_dispatch_decision : bind_runtime [invalid_bind_] / mark_invalid_request_ + errored --> bind_dispatch_decision : bind_runtime [valid_bind_] / exec_bind_ + errored --> bind_dispatch_decision : bind_runtime [invalid_bind_] / mark_invalid_request_ + bind_dispatch_decision --> bind_done_decision : completion_bind_runtime_ [bind_error_none_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_invalid_request_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_capacity_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_backend_error_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_model_invalid_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_out_of_memory_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_internal_error_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_untracked_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_unknown_] / none + bind_done_decision --> bind_done_callback : completion_bind_runtime_ [bind_done_callback_present_] / publish_bind_done_ + bind_done_decision --> bound : completion_bind_runtime_ [bind_done_callback_absent_] / none + bind_done_callback --> bound : completion_bind_runtime_ [always] / none + bind_error_decision --> bind_error_callback : completion_bind_runtime_ [bind_error_callback_present_] / publish_bind_error_ + bind_error_decision --> errored : completion_bind_runtime_ [bind_error_callback_absent_] / none + bind_error_callback --> errored : completion_bind_runtime_ [always] / none + bound --> plan_dispatch_decision : plan_runtime [valid_plan_] / exec_plan_ + bound --> plan_dispatch_decision : plan_runtime [invalid_plan_request_] / mark_invalid_request_ + bound --> plan_dispatch_decision : plan_runtime [invalid_plan_capacity_] / mark_capacity_ + ready --> plan_dispatch_decision : plan_runtime [valid_plan_] / exec_plan_ + ready --> plan_dispatch_decision : plan_runtime [invalid_plan_request_] / mark_invalid_request_ + ready --> plan_dispatch_decision : plan_runtime [invalid_plan_capacity_] / mark_capacity_ + unbound --> plan_dispatch_decision : plan_runtime [always] / mark_invalid_request_ + awaiting_effects --> plan_dispatch_decision : plan_runtime [always] / mark_invalid_request_ + errored --> plan_dispatch_decision : plan_runtime [always] / mark_invalid_request_ + plan_dispatch_decision --> plan_done_decision : completion_plan_runtime_ [plan_error_none_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_invalid_request_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_capacity_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_backend_error_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_model_invalid_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_out_of_memory_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_internal_error_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_untracked_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_unknown_] / none + plan_done_decision --> plan_done_callback : completion_plan_runtime_ [plan_done_callback_present_] / publish_plan_done_ + plan_done_decision --> awaiting_effects : completion_plan_runtime_ [plan_done_callback_absent_] / none + plan_done_callback --> awaiting_effects : completion_plan_runtime_ [always] / none + plan_error_decision --> plan_error_callback : completion_plan_runtime_ [plan_error_callback_present_] / publish_plan_error_ + plan_error_decision --> errored : completion_plan_runtime_ [plan_error_callback_absent_] / none + plan_error_callback --> errored : completion_plan_runtime_ [always] / none + awaiting_effects --> apply_request_decision : apply_runtime [always] / none + apply_request_decision --> apply_dispatch_decision : completion_apply_runtime_ [invalid_apply_request_] / mark_apply_invalid_request_ + apply_request_decision --> apply_error_scan_exec : completion_apply_runtime_ [valid_apply_request_] / scan_apply_effect_errors_ + apply_request_decision --> apply_dispatch_decision : completion_apply_runtime_ [always] / mark_apply_invalid_request_ + apply_error_scan_exec --> apply_scan_result_decision : completion_apply_runtime_ [always] / none + apply_scan_result_decision --> apply_dispatch_decision : completion_apply_runtime_ [apply_effect_errors_present_] / mark_apply_backend_error_ + apply_scan_result_decision --> apply_dispatch_decision : completion_apply_runtime_ [apply_effect_errors_absent_] / exec_apply_ + apply_scan_result_decision --> apply_dispatch_decision : completion_apply_runtime_ [always] / mark_apply_backend_error_ + unbound --> apply_dispatch_decision : apply_runtime [invalid_apply_request_] / mark_apply_invalid_request_ + bound --> apply_dispatch_decision : apply_runtime [always] / mark_apply_invalid_request_ + ready --> apply_dispatch_decision : apply_runtime [always] / mark_apply_invalid_request_ + errored --> apply_dispatch_decision : apply_runtime [always] / mark_apply_invalid_request_ + apply_dispatch_decision --> apply_done_decision : completion_apply_runtime_ [apply_error_none_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_invalid_request_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_capacity_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_backend_error_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_model_invalid_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_out_of_memory_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_internal_error_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_untracked_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_unknown_] / none + apply_done_decision --> apply_done_callback : completion_apply_runtime_ [apply_done_callback_present_] / publish_apply_done_ + apply_done_decision --> ready : completion_apply_runtime_ [apply_done_callback_absent_] / none + apply_done_callback --> ready : completion_apply_runtime_ [always] / none + apply_error_decision --> apply_error_callback : completion_apply_runtime_ [apply_error_callback_present_] / publish_apply_error_ + apply_error_decision --> errored : completion_apply_runtime_ [apply_error_callback_absent_] / none + apply_error_callback --> errored : completion_apply_runtime_ [always] / none unbound --> errored : _ [always] / on_unexpected_ bound --> errored : _ [always] / on_unexpected_ awaiting_effects --> errored : _ [always] / on_unexpected_ ready --> errored : _ [always] / on_unexpected_ errored --> errored : _ [always] / on_unexpected_ + bind_dispatch_decision --> errored : _ [always] / on_unexpected_ + bind_done_decision --> errored : _ [always] / on_unexpected_ + bind_done_callback --> errored : _ [always] / on_unexpected_ + bind_error_decision --> errored : _ [always] / on_unexpected_ + bind_error_callback --> errored : _ [always] / on_unexpected_ + plan_dispatch_decision --> errored : _ [always] / on_unexpected_ + plan_done_decision --> errored : _ [always] / on_unexpected_ + plan_done_callback --> errored : _ [always] / on_unexpected_ + plan_error_decision --> errored : _ [always] / on_unexpected_ + plan_error_callback --> errored : _ [always] / on_unexpected_ + apply_dispatch_decision --> errored : _ [always] / on_unexpected_ + apply_request_decision --> errored : _ [always] / on_unexpected_ + apply_error_scan_exec --> errored : _ [always] / on_unexpected_ + apply_scan_result_decision --> errored : _ [always] / on_unexpected_ + apply_done_decision --> errored : _ [always] / on_unexpected_ + apply_done_callback --> errored : _ [always] / on_unexpected_ + apply_error_decision --> errored : _ [always] / on_unexpected_ + apply_error_callback --> errored : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/parser_gguf.mmd b/docs/architecture/mermaid/parser_gguf.mmd deleted file mode 100644 index 7d5ab20b..00000000 --- a/docs/architecture/mermaid/parser_gguf.mmd +++ /dev/null @@ -1,16 +0,0 @@ -stateDiagram-v2 - direction TB - [*] --> uninitialized - uninitialized --> probed : probe [valid_probe_] / run_probe_ - uninitialized --> errored : probe [invalid_probe_] / set_invalid_argument_ - probed --> bound : bind_storage [valid_bind_] / run_bind_storage_ - probed --> errored : bind_storage [invalid_bind_] / set_invalid_argument_ - bound --> parsed : parse [valid_parse_] / run_parse_ - bound --> errored : parse [invalid_parse_] / set_invalid_argument_ - parsed --> probed : probe [valid_probe_] / run_probe_ - errored --> probed : probe [valid_probe_] / run_probe_ - uninitialized --> errored : _ [always] / on_unexpected_ - probed --> errored : _ [always] / on_unexpected_ - bound --> errored : _ [always] / on_unexpected_ - parsed --> errored : _ [always] / on_unexpected_ - errored --> errored : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/tensor.mmd b/docs/architecture/mermaid/tensor.mmd new file mode 100644 index 00000000..6de73307 --- /dev/null +++ b/docs/architecture/mermaid/tensor.mmd @@ -0,0 +1,65 @@ +stateDiagram-v2 + direction TB + [*] --> ready + ready --> reserve_tensor_request_decision : reserve_tensor_runtime [always] / begin_reserve_tensor_ + reserve_tensor_request_decision --> reserve_tensor_exec : completion_reserve_tensor_runtime_ [reserve_tensor_request_valid_] / none + reserve_tensor_request_decision --> errored : completion_reserve_tensor_runtime_ [reserve_tensor_request_invalid_] / mark_invalid_request_ + reserve_tensor_exec --> reserve_tensor_result_decision : completion_reserve_tensor_runtime_ [always] / exec_reserve_tensor_ + reserve_tensor_result_decision --> done : completion_reserve_tensor_runtime_ [operation_succeeded_] / none + reserve_tensor_result_decision --> errored : completion_reserve_tensor_runtime_ [operation_failed_internal_] / mark_internal_error_ + reserve_tensor_result_decision --> errored : completion_reserve_tensor_runtime_ [operation_not_dispatched_] / mark_internal_error_ + ready --> publish_filled_tensor_request_decision : publish_filled_tensor_runtime [always] / begin_publish_filled_tensor_ + publish_filled_tensor_request_decision --> publish_filled_tensor_exec : completion_publish_filled_tensor_runtime_ [publish_filled_tensor_request_valid_] / none + publish_filled_tensor_request_decision --> errored : completion_publish_filled_tensor_runtime_ [publish_filled_tensor_request_invalid_] / mark_invalid_request_ + publish_filled_tensor_exec --> publish_filled_tensor_result_decision : completion_publish_filled_tensor_runtime_ [always] / exec_publish_filled_tensor_ + publish_filled_tensor_result_decision --> done : completion_publish_filled_tensor_runtime_ [operation_succeeded_] / none + publish_filled_tensor_result_decision --> errored : completion_publish_filled_tensor_runtime_ [operation_failed_internal_] / mark_internal_error_ + publish_filled_tensor_result_decision --> errored : completion_publish_filled_tensor_runtime_ [operation_not_dispatched_] / mark_internal_error_ + ready --> release_tensor_ref_request_decision : release_tensor_ref_runtime [always] / begin_release_tensor_ref_ + release_tensor_ref_request_decision --> release_tensor_ref_exec : completion_release_tensor_ref_runtime_ [release_tensor_ref_request_valid_] / none + release_tensor_ref_request_decision --> errored : completion_release_tensor_ref_runtime_ [release_tensor_ref_request_invalid_] / mark_invalid_request_ + release_tensor_ref_exec --> release_tensor_ref_result_decision : completion_release_tensor_ref_runtime_ [always] / exec_release_tensor_ref_ + release_tensor_ref_result_decision --> done : completion_release_tensor_ref_runtime_ [operation_succeeded_] / none + release_tensor_ref_result_decision --> errored : completion_release_tensor_ref_runtime_ [operation_failed_internal_] / mark_internal_error_ + release_tensor_ref_result_decision --> errored : completion_release_tensor_ref_runtime_ [operation_not_dispatched_] / mark_internal_error_ + ready --> reset_tensor_epoch_request_decision : reset_tensor_epoch_runtime [always] / begin_reset_tensor_epoch_ + reset_tensor_epoch_request_decision --> reset_tensor_epoch_exec : completion_reset_tensor_epoch_runtime_ [reset_tensor_epoch_request_valid_] / none + reset_tensor_epoch_request_decision --> errored : completion_reset_tensor_epoch_runtime_ [reset_tensor_epoch_request_invalid_] / mark_invalid_request_ + reset_tensor_epoch_exec --> reset_tensor_epoch_result_decision : completion_reset_tensor_epoch_runtime_ [always] / exec_reset_tensor_epoch_ + reset_tensor_epoch_result_decision --> done : completion_reset_tensor_epoch_runtime_ [operation_succeeded_] / none + reset_tensor_epoch_result_decision --> errored : completion_reset_tensor_epoch_runtime_ [operation_failed_internal_] / mark_internal_error_ + reset_tensor_epoch_result_decision --> errored : completion_reset_tensor_epoch_runtime_ [operation_not_dispatched_] / mark_internal_error_ + ready --> capture_tensor_state_request_decision : capture_tensor_state_runtime [always] / begin_capture_tensor_state_ + capture_tensor_state_request_decision --> capture_tensor_state_exec : completion_capture_tensor_state_runtime_ [capture_tensor_state_request_valid_] / none + capture_tensor_state_request_decision --> errored : completion_capture_tensor_state_runtime_ [capture_tensor_state_request_invalid_] / mark_invalid_request_ + capture_tensor_state_exec --> capture_tensor_state_result_decision : completion_capture_tensor_state_runtime_ [always] / exec_capture_tensor_state_ + capture_tensor_state_result_decision --> done : completion_capture_tensor_state_runtime_ [capture_operation_succeeded_] / none + capture_tensor_state_result_decision --> errored : completion_capture_tensor_state_runtime_ [capture_operation_not_dispatched_] / mark_internal_error_ + done --> ready : completion_reserve_tensor_runtime_ [always] / publish_done_ + errored --> ready : completion_reserve_tensor_runtime_ [always] / publish_error_ + done --> ready : completion_publish_filled_tensor_runtime_ [always] / publish_done_ + errored --> ready : completion_publish_filled_tensor_runtime_ [always] / publish_error_ + done --> ready : completion_release_tensor_ref_runtime_ [always] / publish_done_ + errored --> ready : completion_release_tensor_ref_runtime_ [always] / publish_error_ + done --> ready : completion_reset_tensor_epoch_runtime_ [always] / publish_done_ + errored --> ready : completion_reset_tensor_epoch_runtime_ [always] / publish_error_ + done --> ready : completion_capture_tensor_state_runtime_ [always] / publish_done_ + errored --> ready : completion_capture_tensor_state_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + reserve_tensor_request_decision --> ready : _ [always] / on_unexpected_ + reserve_tensor_exec --> ready : _ [always] / on_unexpected_ + reserve_tensor_result_decision --> ready : _ [always] / on_unexpected_ + publish_filled_tensor_request_decision --> ready : _ [always] / on_unexpected_ + publish_filled_tensor_exec --> ready : _ [always] / on_unexpected_ + publish_filled_tensor_result_decision --> ready : _ [always] / on_unexpected_ + release_tensor_ref_request_decision --> ready : _ [always] / on_unexpected_ + release_tensor_ref_exec --> ready : _ [always] / on_unexpected_ + release_tensor_ref_result_decision --> ready : _ [always] / on_unexpected_ + reset_tensor_epoch_request_decision --> ready : _ [always] / on_unexpected_ + reset_tensor_epoch_exec --> ready : _ [always] / on_unexpected_ + reset_tensor_epoch_result_decision --> ready : _ [always] / on_unexpected_ + capture_tensor_state_request_decision --> ready : _ [always] / on_unexpected_ + capture_tensor_state_exec --> ready : _ [always] / on_unexpected_ + capture_tensor_state_result_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/tensor_view.mmd b/docs/architecture/mermaid/tensor_view.mmd new file mode 100644 index 00000000..03c4371f --- /dev/null +++ b/docs/architecture/mermaid/tensor_view.mmd @@ -0,0 +1,18 @@ +stateDiagram-v2 + direction TB + [*] --> ready + ready --> capture_tensor_view_request_decision : capture_tensor_view_runtime [always] / begin_capture_tensor_view_ + capture_tensor_view_request_decision --> capture_tensor_view_exec : completion_capture_tensor_view_runtime_ [capture_tensor_view_request_valid_] / none + capture_tensor_view_request_decision --> errored : completion_capture_tensor_view_runtime_ [capture_tensor_view_request_invalid_] / mark_invalid_request_ + capture_tensor_view_exec --> capture_tensor_view_result_decision : completion_capture_tensor_view_runtime_ [always] / exec_capture_tensor_view_ + capture_tensor_view_result_decision --> done : completion_capture_tensor_view_runtime_ [operation_succeeded_] / none + capture_tensor_view_result_decision --> errored : completion_capture_tensor_view_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + capture_tensor_view_result_decision --> errored : completion_capture_tensor_view_runtime_ [operation_failed_without_error_] / mark_internal_error_ + done --> ready : completion_capture_tensor_view_runtime_ [always] / publish_done_ + errored --> ready : completion_capture_tensor_view_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + capture_tensor_view_request_decision --> ready : _ [always] / on_unexpected_ + capture_tensor_view_exec --> ready : _ [always] / on_unexpected_ + capture_tensor_view_result_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_conditioner.mmd b/docs/architecture/mermaid/text_conditioner.mmd index e4236db8..3c37df95 100644 --- a/docs/architecture/mermaid/text_conditioner.mmd +++ b/docs/architecture/mermaid/text_conditioner.mmd @@ -1,42 +1,89 @@ stateDiagram-v2 direction TB [*] --> uninitialized - uninitialized --> binding : bind [valid_bind_] / begin_bind_ - uninitialized --> errored : bind [invalid_bind_] / reject_bind_ - uninitialized --> errored : prepare [always] / reject_prepare_ - idle --> binding : bind [valid_bind_] / begin_bind_ - idle --> errored : bind [invalid_bind_] / reject_bind_ - idle --> formatting : prepare [valid_prepare_] / begin_prepare_ - idle --> errored : prepare [invalid_prepare_] / reject_prepare_ - done --> binding : bind [valid_bind_] / begin_bind_ - done --> errored : bind [invalid_bind_] / reject_bind_ - done --> formatting : prepare [valid_prepare_] / begin_prepare_ - done --> errored : prepare [invalid_prepare_] / reject_prepare_ - errored --> binding : bind [valid_bind_] / begin_bind_ - errored --> errored : bind [invalid_bind_] / reject_bind_ - errored --> formatting : prepare [valid_prepare_] / begin_prepare_ - errored --> errored : prepare [invalid_prepare_] / reject_prepare_ - unexpected --> binding : bind [valid_bind_] / begin_bind_ - unexpected --> unexpected : bind [invalid_bind_] / reject_bind_ - unexpected --> formatting : prepare [valid_prepare_] / begin_prepare_ - unexpected --> unexpected : prepare [invalid_prepare_] / reject_prepare_ - binding --> binding_decision : [always] / bind_tokenizer_ - binding_decision --> idle : [phase_ok_] / none - binding_decision --> errored : [phase_failed_] / ensure_last_error_ - formatting --> format_decision : [always] / run_format_ - format_decision --> tokenizing : [phase_ok_] / none - format_decision --> errored : [phase_failed_] / ensure_last_error_ - tokenizing --> tokenize_decision : [always] / run_tokenize_ - tokenize_decision --> done : [phase_ok_] / mark_done_ - tokenize_decision --> errored : [phase_failed_] / ensure_last_error_ + uninitialized --> binding : bind_runtime [valid_bind_] / begin_bind_ + uninitialized --> bind_error : bind_runtime [invalid_bind_] / reject_bind_ + uninitialized --> prepare_error : prepare_runtime [always] / reject_prepare_ + idle --> binding : bind_runtime [valid_bind_] / begin_bind_ + idle --> bind_error : bind_runtime [invalid_bind_] / reject_bind_ + idle --> preparing : prepare_runtime [valid_prepare_with_bind_defaults_] / begin_prepare_bind_defaults_ + idle --> preparing : prepare_runtime [valid_prepare_with_request_overrides_] / begin_prepare_from_request_ + idle --> prepare_error : prepare_runtime [invalid_prepare_] / reject_prepare_ + done --> binding : bind_runtime [valid_bind_] / begin_bind_ + done --> bind_error : bind_runtime [invalid_bind_] / reject_bind_ + done --> preparing : prepare_runtime [valid_prepare_with_bind_defaults_] / begin_prepare_bind_defaults_ + done --> preparing : prepare_runtime [valid_prepare_with_request_overrides_] / begin_prepare_from_request_ + done --> prepare_error : prepare_runtime [invalid_prepare_] / reject_prepare_ + errored --> binding : bind_runtime [valid_bind_] / begin_bind_ + errored --> bind_error : bind_runtime [invalid_bind_] / reject_bind_ + errored --> preparing : prepare_runtime [valid_prepare_with_bind_defaults_] / begin_prepare_bind_defaults_ + errored --> preparing : prepare_runtime [valid_prepare_with_request_overrides_] / begin_prepare_from_request_ + errored --> prepare_error : prepare_runtime [invalid_prepare_] / reject_prepare_ + unexpected --> binding : bind_runtime [valid_bind_] / begin_bind_ + unexpected --> bind_error : bind_runtime [invalid_bind_] / reject_bind_ + unexpected --> preparing : prepare_runtime [valid_prepare_with_bind_defaults_] / begin_prepare_bind_defaults_ + unexpected --> preparing : prepare_runtime [valid_prepare_with_request_overrides_] / begin_prepare_from_request_ + unexpected --> prepare_error : prepare_runtime [invalid_prepare_] / reject_prepare_ + binding --> bind_decision : completion_bind_runtime_ [always] / dispatch_bind_tokenizer_ + bind_decision --> bind_error : completion_bind_runtime_ [bind_rejected_no_error_] / bind_error_backend_ + bind_decision --> bind_error : completion_bind_runtime_ [bind_error_invalid_argument_code_] / set_error_invalid_argument_ + bind_decision --> bind_error : completion_bind_runtime_ [bind_error_model_invalid_code_] / set_error_model_invalid_ + bind_decision --> bind_error : completion_bind_runtime_ [bind_error_capacity_code_] / set_error_capacity_ + bind_decision --> bind_error : completion_bind_runtime_ [bind_error_backend_code_] / set_error_backend_ + bind_decision --> bind_error : completion_bind_runtime_ [bind_error_untracked_code_] / set_error_untracked_ + bind_decision --> bind_success : completion_bind_runtime_ [bind_successful_] / bind_success_ + bind_success --> bind_publish_success : completion_bind_runtime_ [has_bind_error_out_] / write_bind_error_out_ + bind_success --> bind_publish_success : completion_bind_runtime_ [no_bind_error_out_] / none + bind_publish_success --> idle : completion_bind_runtime_ [has_bind_done_callback_] / emit_bind_done_ + bind_publish_success --> idle : completion_bind_runtime_ [no_bind_done_callback_] / none + bind_error --> bind_publish_error : completion_bind_runtime_ [has_bind_error_out_] / write_bind_error_out_ + bind_error --> bind_publish_error : completion_bind_runtime_ [no_bind_error_out_] / none + bind_publish_error --> errored : completion_bind_runtime_ [has_bind_error_callback_] / emit_bind_error_ + bind_publish_error --> errored : completion_bind_runtime_ [no_bind_error_callback_] / none + preparing --> format_decision : completion_prepare_runtime_ [always] / dispatch_format_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_rejected_no_error_] / format_error_backend_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_error_invalid_argument_code_] / set_error_invalid_argument_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_error_model_invalid_code_] / set_error_model_invalid_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_error_capacity_code_] / set_error_capacity_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_error_backend_code_] / set_error_backend_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_error_untracked_code_] / set_error_untracked_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_length_overflow_] / format_error_invalid_argument_ + format_decision --> tokenizing : completion_prepare_runtime_ [format_successful_] / none + tokenizing --> tokenize_decision : completion_prepare_runtime_ [always] / dispatch_tokenize_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_rejected_no_error_] / tokenize_error_backend_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_error_invalid_argument_code_] / set_error_invalid_argument_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_error_model_invalid_code_] / set_error_model_invalid_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_error_capacity_code_] / set_error_capacity_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_error_backend_code_] / set_error_backend_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_error_untracked_code_] / set_error_untracked_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_count_invalid_] / tokenize_error_backend_ + tokenize_decision --> prepare_success : completion_prepare_runtime_ [tokenize_successful_] / prepare_success_ + prepare_success --> prepare_publish_success_count : completion_prepare_runtime_ [always] / write_prepare_token_count_ + prepare_publish_success_count --> prepare_publish_success_error : completion_prepare_runtime_ [always] / write_prepare_error_out_ + prepare_publish_success_error --> done : completion_prepare_runtime_ [has_prepare_done_callback_] / emit_prepare_done_ + prepare_publish_success_error --> done : completion_prepare_runtime_ [no_prepare_done_callback_] / none + prepare_error --> prepare_publish_error_count : completion_prepare_runtime_ [always] / write_prepare_token_count_ + prepare_publish_error_count --> prepare_publish_error : completion_prepare_runtime_ [always] / write_prepare_error_out_ + prepare_publish_error --> errored : completion_prepare_runtime_ [has_prepare_error_callback_] / emit_prepare_error_ + prepare_publish_error --> errored : completion_prepare_runtime_ [no_prepare_error_callback_] / none uninitialized --> unexpected : _ [always] / on_unexpected_ binding --> unexpected : _ [always] / on_unexpected_ - binding_decision --> unexpected : _ [always] / on_unexpected_ - idle --> unexpected : _ [always] / on_unexpected_ - formatting --> unexpected : _ [always] / on_unexpected_ + bind_decision --> unexpected : _ [always] / on_unexpected_ + bind_success --> unexpected : _ [always] / on_unexpected_ + bind_error --> unexpected : _ [always] / on_unexpected_ + bind_publish_success --> unexpected : _ [always] / on_unexpected_ + bind_publish_error --> unexpected : _ [always] / on_unexpected_ + preparing --> unexpected : _ [always] / on_unexpected_ format_decision --> unexpected : _ [always] / on_unexpected_ tokenizing --> unexpected : _ [always] / on_unexpected_ tokenize_decision --> unexpected : _ [always] / on_unexpected_ + prepare_success --> unexpected : _ [always] / on_unexpected_ + prepare_error --> unexpected : _ [always] / on_unexpected_ + prepare_publish_success_count --> unexpected : _ [always] / on_unexpected_ + prepare_publish_success_error --> unexpected : _ [always] / on_unexpected_ + prepare_publish_error_count --> unexpected : _ [always] / on_unexpected_ + prepare_publish_error --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ + idle --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_detokenizer.mmd b/docs/architecture/mermaid/text_detokenizer.mmd index 23bd1d58..58decc61 100644 --- a/docs/architecture/mermaid/text_detokenizer.mmd +++ b/docs/architecture/mermaid/text_detokenizer.mmd @@ -2,36 +2,145 @@ stateDiagram-v2 direction TB [*] --> uninitialized uninitialized --> binding : bind [valid_bind_] / begin_bind_ - uninitialized --> errored : bind [invalid_bind_] / reject_bind_ - uninitialized --> errored : detokenize [always] / reject_detokenize_ + uninitialized --> binding_error_decision : bind [invalid_bind_] / reject_bind_ + uninitialized --> detokenize_error_decision : detokenize [always] / reject_detokenize_ idle --> binding : bind [valid_bind_] / begin_bind_ - idle --> errored : bind [invalid_bind_] / reject_bind_ + idle --> binding_error_decision : bind [invalid_bind_] / reject_bind_ idle --> decoding : detokenize [valid_detokenize_] / begin_detokenize_ - idle --> errored : detokenize [invalid_detokenize_] / reject_detokenize_ + idle --> detokenize_error_decision : detokenize [invalid_detokenize_] / reject_detokenize_ done --> binding : bind [valid_bind_] / begin_bind_ - done --> errored : bind [invalid_bind_] / reject_bind_ + done --> binding_error_decision : bind [invalid_bind_] / reject_bind_ done --> decoding : detokenize [valid_detokenize_] / begin_detokenize_ - done --> errored : detokenize [invalid_detokenize_] / reject_detokenize_ + done --> detokenize_error_decision : detokenize [invalid_detokenize_] / reject_detokenize_ errored --> binding : bind [valid_bind_] / begin_bind_ - errored --> errored : bind [invalid_bind_] / reject_bind_ + errored --> binding_error_decision : bind [invalid_bind_] / reject_bind_ errored --> decoding : detokenize [valid_detokenize_] / begin_detokenize_ - errored --> errored : detokenize [invalid_detokenize_] / reject_detokenize_ + errored --> detokenize_error_decision : detokenize [invalid_detokenize_] / reject_detokenize_ unexpected --> binding : bind [valid_bind_] / begin_bind_ - unexpected --> unexpected : bind [invalid_bind_] / reject_bind_ + unexpected --> binding_error_decision : bind [invalid_bind_] / reject_bind_ unexpected --> decoding : detokenize [valid_detokenize_] / begin_detokenize_ - unexpected --> unexpected : detokenize [invalid_detokenize_] / reject_detokenize_ - binding --> binding_decision : [always] / commit_bind_ - binding_decision --> idle : [phase_ok_] / none - binding_decision --> errored : [phase_failed_] / ensure_last_error_ - decoding --> decode_decision : [always] / decode_token_ - decode_decision --> done : [phase_ok_] / mark_done_ - decode_decision --> errored : [phase_failed_] / ensure_last_error_ + unexpected --> detokenize_error_decision : detokenize [invalid_detokenize_] / reject_detokenize_ + binding --> binding_error_decision : bind [always] / reject_bind_ + binding --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + binding_decision --> binding_error_decision : bind [always] / reject_bind_ + binding_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + binding_done_decision --> binding_error_decision : bind [always] / reject_bind_ + binding_done_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + binding_done_callback --> binding_error_decision : bind [always] / reject_bind_ + binding_done_callback --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + binding_error_decision --> binding_error_decision : bind [always] / reject_bind_ + binding_error_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + binding_error_callback --> binding_error_decision : bind [always] / reject_bind_ + binding_error_callback --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decoding --> binding_error_decision : bind [always] / reject_bind_ + decoding --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_token_validation --> binding_error_decision : bind [always] / reject_bind_ + decode_token_validation --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_piece_decision --> binding_error_decision : bind [always] / reject_bind_ + decode_piece_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_byte_capacity_decision --> binding_error_decision : bind [always] / reject_bind_ + decode_byte_capacity_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_byte_pending_decision --> binding_error_decision : bind [always] / reject_bind_ + decode_byte_pending_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_byte_pending_write --> binding_error_decision : bind [always] / reject_bind_ + decode_byte_pending_write --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_text_pending_decision --> binding_error_decision : bind [always] / reject_bind_ + decode_text_pending_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_text_pending_write --> binding_error_decision : bind [always] / reject_bind_ + decode_text_pending_write --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_text_write --> binding_error_decision : bind [always] / reject_bind_ + decode_text_write --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_decision --> binding_error_decision : bind [always] / reject_bind_ + decode_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + detokenize_done_decision --> binding_error_decision : bind [always] / reject_bind_ + detokenize_done_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + detokenize_done_callback --> binding_error_decision : bind [always] / reject_bind_ + detokenize_done_callback --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + detokenize_error_decision --> binding_error_decision : bind [always] / reject_bind_ + detokenize_error_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + detokenize_error_callback --> binding_error_decision : bind [always] / reject_bind_ + detokenize_error_callback --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + binding --> binding_decision : completion_bind_ [always] / commit_bind_ + binding_decision --> binding_done_decision : completion_bind_ [bind_error_none_] / none + binding_decision --> binding_error_decision : completion_bind_ [bind_error_invalid_request_] / none + binding_decision --> binding_error_decision : completion_bind_ [bind_error_model_invalid_] / none + binding_decision --> binding_error_decision : completion_bind_ [bind_error_backend_error_] / none + binding_decision --> binding_error_decision : completion_bind_ [bind_error_internal_error_] / none + binding_decision --> binding_error_decision : completion_bind_ [bind_error_untracked_] / none + binding_decision --> binding_error_decision : completion_bind_ [bind_error_unknown_] / none + binding_done_decision --> binding_done_callback : completion_bind_ [has_bind_done_callback_] / notify_bind_done_ + binding_done_decision --> idle : completion_bind_ [no_bind_done_callback_] / none + binding_done_callback --> idle : completion_bind_ [always] / none + binding_error_decision --> binding_error_callback : completion_bind_ [has_bind_error_callback_] / notify_bind_error_ + binding_error_decision --> errored : completion_bind_ [no_bind_error_callback_] / none + binding_error_callback --> errored : completion_bind_ [always] / none + decoding --> decode_token_validation : completion_detokenize_ [always] / none + decode_token_validation --> decode_piece_decision : completion_detokenize_ [detokenize_token_in_vocab_] / none + decode_token_validation --> detokenize_error_decision : completion_detokenize_ [detokenize_token_out_of_vocab_] / mark_model_invalid_ + decode_piece_decision --> detokenize_done_decision : completion_detokenize_ [detokenize_skip_special_piece_] / mark_done_ + decode_piece_decision --> decode_byte_capacity_decision : completion_detokenize_ [detokenize_byte_piece_] / none + decode_piece_decision --> decode_text_pending_decision : completion_detokenize_ [detokenize_text_piece_] / none + decode_piece_decision --> detokenize_error_decision : completion_detokenize_ [always] / mark_internal_error_ + decode_byte_capacity_decision --> decode_byte_pending_decision : completion_detokenize_ [detokenize_pending_has_capacity_for_byte_] / append_byte_piece_ + decode_byte_capacity_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_pending_no_capacity_for_byte_] / mark_invalid_pending_full_ + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_invalid_request_] / none + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_model_invalid_] / none + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_backend_error_] / none + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_internal_error_] / none + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_untracked_] / none + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_unknown_] / none + decode_byte_pending_decision --> decode_byte_pending_write : completion_detokenize_ [detokenize_pending_head_complete_] / write_pending_head_sequence_ + decode_byte_pending_decision --> decode_decision : completion_detokenize_ [detokenize_pending_empty_] / none + decode_byte_pending_decision --> decode_decision : completion_detokenize_ [detokenize_pending_head_incomplete_] / none + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_pending_head_invalid_] / mark_invalid_pending_sequence_ + decode_byte_pending_write --> decode_byte_pending_decision : completion_detokenize_ [always] / none + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_invalid_request_] / none + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_model_invalid_] / none + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_backend_error_] / none + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_internal_error_] / none + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_untracked_] / none + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_unknown_] / none + decode_text_pending_decision --> decode_text_pending_write : completion_detokenize_ [detokenize_pending_head_complete_] / write_pending_head_sequence_ + decode_text_pending_decision --> decode_text_write : completion_detokenize_ [detokenize_pending_empty_] / write_text_piece_ + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_pending_head_incomplete_] / mark_invalid_pending_not_empty_ + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_pending_head_invalid_] / mark_invalid_pending_sequence_ + decode_text_pending_write --> decode_text_pending_decision : completion_detokenize_ [always] / none + decode_text_write --> decode_decision : completion_detokenize_ [always] / none + decode_decision --> detokenize_done_decision : completion_detokenize_ [detokenize_error_none_] / mark_done_ + decode_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_invalid_request_] / none + decode_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_model_invalid_] / none + decode_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_backend_error_] / none + decode_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_internal_error_] / none + decode_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_untracked_] / none + decode_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_unknown_] / none + detokenize_done_decision --> detokenize_done_callback : completion_detokenize_ [has_detokenize_done_callback_] / none + detokenize_done_decision --> done : completion_detokenize_ [no_detokenize_done_callback_] / none + detokenize_done_callback --> done : completion_detokenize_ [always] / notify_detokenize_done_ + detokenize_error_decision --> detokenize_error_callback : completion_detokenize_ [has_detokenize_error_callback_] / notify_detokenize_error_ + detokenize_error_decision --> errored : completion_detokenize_ [no_detokenize_error_callback_] / none + detokenize_error_callback --> errored : completion_detokenize_ [always] / none uninitialized --> unexpected : _ [always] / on_unexpected_ binding --> unexpected : _ [always] / on_unexpected_ binding_decision --> unexpected : _ [always] / on_unexpected_ + binding_done_decision --> unexpected : _ [always] / on_unexpected_ + binding_done_callback --> unexpected : _ [always] / on_unexpected_ + binding_error_decision --> unexpected : _ [always] / on_unexpected_ + binding_error_callback --> unexpected : _ [always] / on_unexpected_ idle --> unexpected : _ [always] / on_unexpected_ decoding --> unexpected : _ [always] / on_unexpected_ + decode_token_validation --> unexpected : _ [always] / on_unexpected_ + decode_piece_decision --> unexpected : _ [always] / on_unexpected_ + decode_byte_capacity_decision --> unexpected : _ [always] / on_unexpected_ + decode_byte_pending_decision --> unexpected : _ [always] / on_unexpected_ + decode_byte_pending_write --> unexpected : _ [always] / on_unexpected_ + decode_text_pending_decision --> unexpected : _ [always] / on_unexpected_ + decode_text_pending_write --> unexpected : _ [always] / on_unexpected_ + decode_text_write --> unexpected : _ [always] / on_unexpected_ decode_decision --> unexpected : _ [always] / on_unexpected_ + detokenize_done_decision --> unexpected : _ [always] / on_unexpected_ + detokenize_done_callback --> unexpected : _ [always] / on_unexpected_ + detokenize_error_decision --> unexpected : _ [always] / on_unexpected_ + detokenize_error_callback --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_encoders.mmd b/docs/architecture/mermaid/text_encoders.mmd deleted file mode 100644 index a02aac27..00000000 --- a/docs/architecture/mermaid/text_encoders.mmd +++ /dev/null @@ -1,34 +0,0 @@ -stateDiagram-v2 - direction TB - [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ - initialized --> unexpected : encoding_done [always] / on_unexpected_ - initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ - done --> unexpected : encoding_done [always] / on_unexpected_ - done --> unexpected : encoding_error [always] / on_unexpected_ - errored --> unexpected : encoding_done [always] / on_unexpected_ - errored --> unexpected : encoding_error [always] / on_unexpected_ - unexpected --> unexpected : encoding_done [always] / on_unexpected_ - unexpected --> unexpected : encoding_error [always] / on_unexpected_ - initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ - done --> unexpected : _ [always] / on_unexpected_ - errored --> unexpected : _ [always] / on_unexpected_ - unexpected --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_encoders_bpe.mmd b/docs/architecture/mermaid/text_encoders_bpe.mmd index a02aac27..8ea1dd27 100644 --- a/docs/architecture/mermaid/text_encoders_bpe.mmd +++ b/docs/architecture/mermaid/text_encoders_bpe.mmd @@ -1,25 +1,72 @@ stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> encode_input_policy_decision : completion_encode_runtime_ [text_non_empty_] / none + encode_precheck_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_input_policy_decision --> encode_table_prepare : completion_encode_runtime_ [preprocessed_] / prepare_tables_ + encode_input_policy_decision --> errored : completion_encode_runtime_ [not_preprocessed_] / reject_invalid_encode_ + encode_input_policy_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_table_prepare --> encode_path_decision : completion_encode_runtime_ [table_prepare_ok_] / none + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_backend_error_] / ensure_last_error_ + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_invalid_argument_error_] / ensure_last_error_ + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_model_invalid_error_] / ensure_last_error_ + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_unclassified_error_code_] / ensure_last_error_ + encode_path_decision --> encode_direct_word_policy_decision : completion_encode_runtime_ [ignore_merges_enabled_] / none + encode_path_decision --> encode_exec : completion_encode_runtime_ [always] / none + encode_direct_word_policy_decision --> encode_result_decision : completion_encode_runtime_ [direct_word_token_available_] / run_encode_ignore_merges_ + encode_direct_word_policy_decision --> encode_merge_input_capacity_decision : completion_encode_runtime_ [always] / none + encode_merge_input_capacity_decision --> encode_exec : completion_encode_runtime_ [merge_symbol_capacity_within_limit_] / none + encode_merge_input_capacity_decision --> errored : completion_encode_runtime_ [merge_symbol_capacity_exceeded_] / reject_invalid_encode_ + encode_merge_input_capacity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_exec --> encode_result_decision : completion_encode_runtime_ [always] / run_encode_merge_path_ + encode_result_decision --> done : completion_encode_runtime_ [encode_result_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_invalid_argument_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_backend_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_model_invalid_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_unclassified_error_code_] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_input_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_table_prepare --> unexpected : encode_runtime [always] / on_unexpected_ + encode_path_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_direct_word_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_exec --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_input_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_input_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_table_prepare --> unexpected : encoding_done [always] / on_unexpected_ + encode_table_prepare --> unexpected : encoding_error [always] / on_unexpected_ + encode_path_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_path_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_direct_word_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_direct_word_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_exec --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -27,8 +74,16 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + encode_input_policy_decision --> unexpected : _ [always] / on_unexpected_ + encode_table_prepare --> unexpected : _ [always] / on_unexpected_ + encode_path_decision --> unexpected : _ [always] / on_unexpected_ + encode_direct_word_policy_decision --> unexpected : _ [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : _ [always] / on_unexpected_ + encode_exec --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_encoders_fallback.mmd b/docs/architecture/mermaid/text_encoders_fallback.mmd index a02aac27..881c5c48 100644 --- a/docs/architecture/mermaid/text_encoders_fallback.mmd +++ b/docs/architecture/mermaid/text_encoders_fallback.mmd @@ -1,25 +1,55 @@ stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> encode_table_prepare : completion_encode_runtime_ [text_non_empty_] / prepare_tables_ + encode_table_prepare --> encode_exec : completion_encode_runtime_ [table_prepare_ok_] / none + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_invalid_argument_error_] / ensure_last_error_ + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_backend_error_] / ensure_last_error_ + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_model_invalid_error_] / ensure_last_error_ + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_unclassified_error_code_] / ensure_last_error_ + encode_exec --> emit_result_decision : completion_encode_runtime_ [always] / run_encode_exec_ + emit_result_decision --> encode_result_decision : completion_encode_runtime_ [emit_result_ok_] / apply_emit_result_ok_ + emit_result_decision --> encode_result_decision : completion_encode_runtime_ [emit_result_failed_] / apply_emit_result_failed_ + emit_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_result_decision --> done : completion_encode_runtime_ [encode_result_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_invalid_argument_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_backend_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_model_invalid_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_unclassified_error_code_] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_table_prepare --> unexpected : encode_runtime [always] / on_unexpected_ + encode_exec --> unexpected : encode_runtime [always] / on_unexpected_ + emit_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_table_prepare --> unexpected : encoding_done [always] / on_unexpected_ + encode_table_prepare --> unexpected : encoding_error [always] / on_unexpected_ + encode_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_exec --> unexpected : encoding_error [always] / on_unexpected_ + emit_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + emit_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -27,8 +57,13 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + encode_table_prepare --> unexpected : _ [always] / on_unexpected_ + encode_exec --> unexpected : _ [always] / on_unexpected_ + emit_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_encoders_plamo2.mmd b/docs/architecture/mermaid/text_encoders_plamo2.mmd index a02aac27..c4d95570 100644 --- a/docs/architecture/mermaid/text_encoders_plamo2.mmd +++ b/docs/architecture/mermaid/text_encoders_plamo2.mmd @@ -1,25 +1,88 @@ stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> table_policy_decision : completion_encode_runtime_ [text_non_empty_] / none + encode_precheck_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_policy_decision --> table_sync_exec : completion_encode_runtime_ [tables_missing_] / none + table_policy_decision --> decode_exec : completion_encode_runtime_ [tables_ready_] / none + table_policy_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_sync_exec --> table_sync_result_decision : completion_encode_runtime_ [always] / sync_tables_ + table_sync_result_decision --> decode_exec : completion_encode_runtime_ [table_sync_ok_] / none + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_invalid_argument_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_backend_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_model_invalid_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_unclassified_error_code_] / ensure_last_error_ + decode_exec --> decode_result_decision : completion_encode_runtime_ [always] / decode_input_ + decode_result_decision --> done : completion_encode_runtime_ [decode_result_empty_ok_] / mark_done_ + decode_result_decision --> dp_prepare_exec : completion_encode_runtime_ [decode_result_non_empty_ok_] / none + decode_result_decision --> errored : completion_encode_runtime_ [decode_result_invalid_argument_error_] / ensure_last_error_ + decode_result_decision --> errored : completion_encode_runtime_ [decode_result_backend_error_] / ensure_last_error_ + decode_result_decision --> errored : completion_encode_runtime_ [decode_result_model_invalid_error_] / ensure_last_error_ + decode_result_decision --> errored : completion_encode_runtime_ [decode_result_unclassified_error_code_] / ensure_last_error_ + dp_prepare_exec --> dp_exec : completion_encode_runtime_ [always] / prepare_dp_ + dp_exec --> emit_exec : completion_encode_runtime_ [always] / run_dp_ + emit_exec --> emit_result_decision : completion_encode_runtime_ [always] / emit_tokens_ + emit_result_decision --> encode_result_decision : completion_encode_runtime_ [emit_result_ok_] / apply_emit_result_ok_ + emit_result_decision --> encode_result_decision : completion_encode_runtime_ [emit_result_failed_] / apply_emit_result_failed_ + emit_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_result_decision --> done : completion_encode_runtime_ [encode_result_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_invalid_argument_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_backend_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_model_invalid_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_unclassified_error_code_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_exec --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + decode_exec --> unexpected : encode_runtime [always] / on_unexpected_ + decode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + dp_prepare_exec --> unexpected : encode_runtime [always] / on_unexpected_ + dp_exec --> unexpected : encode_runtime [always] / on_unexpected_ + emit_exec --> unexpected : encode_runtime [always] / on_unexpected_ + emit_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + decode_exec --> unexpected : encoding_done [always] / on_unexpected_ + decode_exec --> unexpected : encoding_error [always] / on_unexpected_ + decode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + decode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + dp_prepare_exec --> unexpected : encoding_done [always] / on_unexpected_ + dp_prepare_exec --> unexpected : encoding_error [always] / on_unexpected_ + dp_exec --> unexpected : encoding_done [always] / on_unexpected_ + dp_exec --> unexpected : encoding_error [always] / on_unexpected_ + emit_exec --> unexpected : encoding_done [always] / on_unexpected_ + emit_exec --> unexpected : encoding_error [always] / on_unexpected_ + emit_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + emit_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -27,8 +90,19 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + table_policy_decision --> unexpected : _ [always] / on_unexpected_ + table_sync_exec --> unexpected : _ [always] / on_unexpected_ + table_sync_result_decision --> unexpected : _ [always] / on_unexpected_ + decode_exec --> unexpected : _ [always] / on_unexpected_ + decode_result_decision --> unexpected : _ [always] / on_unexpected_ + dp_prepare_exec --> unexpected : _ [always] / on_unexpected_ + dp_exec --> unexpected : _ [always] / on_unexpected_ + emit_exec --> unexpected : _ [always] / on_unexpected_ + emit_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_encoders_rwkv.mmd b/docs/architecture/mermaid/text_encoders_rwkv.mmd index a02aac27..11dbcf95 100644 --- a/docs/architecture/mermaid/text_encoders_rwkv.mmd +++ b/docs/architecture/mermaid/text_encoders_rwkv.mmd @@ -1,25 +1,86 @@ stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> encode_capacity_decision : completion_encode_runtime_ [text_non_empty_] / none + encode_precheck_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_capacity_decision --> table_policy_decision : completion_encode_runtime_ [output_capacity_covers_text_] / none + encode_capacity_decision --> errored : completion_encode_runtime_ [output_capacity_short_] / reject_invalid_encode_ + encode_capacity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + table_policy_decision --> table_sync_exec : completion_encode_runtime_ [tables_missing_] / none + table_policy_decision --> unk_resolution_decision : completion_encode_runtime_ [tables_ready_] / none + table_policy_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_sync_exec --> table_sync_result_decision : completion_encode_runtime_ [always] / sync_tables_ + table_sync_result_decision --> unk_resolution_decision : completion_encode_runtime_ [table_sync_ok_] / none + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_invalid_argument_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_backend_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_model_invalid_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_unclassified_error_code_] / ensure_last_error_ + unk_resolution_decision --> encode_exec : completion_encode_runtime_ [vocab_unk_present_] / resolve_vocab_unk_ + unk_resolution_decision --> unk_lookup_exec : completion_encode_runtime_ [vocab_unk_missing_] / none + unk_lookup_exec --> unk_lookup_result_decision : completion_encode_runtime_ [always] / lookup_unk_candidate_ + unk_lookup_result_decision --> encode_exec : completion_encode_runtime_ [unk_lookup_found_] / set_unk_from_lookup_ + unk_lookup_result_decision --> encode_exec : completion_encode_runtime_ [unk_lookup_missing_] / set_unk_missing_ + encode_exec --> encode_emit_result_decision : completion_encode_runtime_ [always] / run_encode_ + encode_emit_result_decision --> errored : completion_encode_runtime_ [encode_push_failed_] / mark_encode_push_failed_ + encode_emit_result_decision --> encode_result_decision : completion_encode_runtime_ [encode_push_ok_] / none + encode_emit_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_result_decision --> done : completion_encode_runtime_ [encode_result_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_invalid_argument_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_backend_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_model_invalid_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_unclassified_error_code_] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_capacity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_exec --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + unk_resolution_decision --> unexpected : encode_runtime [always] / on_unexpected_ + unk_lookup_exec --> unexpected : encode_runtime [always] / on_unexpected_ + unk_lookup_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_exec --> unexpected : encode_runtime [always] / on_unexpected_ + encode_emit_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_capacity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_capacity_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + unk_resolution_decision --> unexpected : encoding_done [always] / on_unexpected_ + unk_resolution_decision --> unexpected : encoding_error [always] / on_unexpected_ + unk_lookup_exec --> unexpected : encoding_done [always] / on_unexpected_ + unk_lookup_exec --> unexpected : encoding_error [always] / on_unexpected_ + unk_lookup_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + unk_lookup_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_exec --> unexpected : encoding_error [always] / on_unexpected_ + encode_emit_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_emit_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -27,8 +88,19 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + encode_capacity_decision --> unexpected : _ [always] / on_unexpected_ + table_policy_decision --> unexpected : _ [always] / on_unexpected_ + table_sync_exec --> unexpected : _ [always] / on_unexpected_ + table_sync_result_decision --> unexpected : _ [always] / on_unexpected_ + unk_resolution_decision --> unexpected : _ [always] / on_unexpected_ + unk_lookup_exec --> unexpected : _ [always] / on_unexpected_ + unk_lookup_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_exec --> unexpected : _ [always] / on_unexpected_ + encode_emit_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_encoders_spm.mmd b/docs/architecture/mermaid/text_encoders_spm.mmd index a02aac27..e568d9f4 100644 --- a/docs/architecture/mermaid/text_encoders_spm.mmd +++ b/docs/architecture/mermaid/text_encoders_spm.mmd @@ -1,25 +1,102 @@ stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> table_policy_decision : completion_encode_runtime_ [text_non_empty_] / none + encode_precheck_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_policy_decision --> table_sync_exec : completion_encode_runtime_ [tables_missing_] / none + table_policy_decision --> encode_prepare_exec : completion_encode_runtime_ [tables_ready_] / none + table_policy_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_sync_exec --> table_sync_result_decision : completion_encode_runtime_ [always] / sync_tables_ + table_sync_result_decision --> encode_prepare_exec : completion_encode_runtime_ [table_sync_ok_] / none + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_invalid_argument_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_backend_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_model_invalid_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_unclassified_error_code_] / ensure_last_error_ + encode_prepare_exec --> encode_prepare_result_decision : completion_encode_runtime_ [always] / run_prepare_ + encode_prepare_result_decision --> encode_merge_input_capacity_decision : completion_encode_runtime_ [prepare_result_ok_] / none + encode_prepare_result_decision --> errored : completion_encode_runtime_ [prepare_result_invalid_argument_error_] / ensure_last_error_ + encode_prepare_result_decision --> errored : completion_encode_runtime_ [prepare_result_backend_error_] / ensure_last_error_ + encode_prepare_result_decision --> errored : completion_encode_runtime_ [prepare_result_model_invalid_error_] / ensure_last_error_ + encode_prepare_result_decision --> errored : completion_encode_runtime_ [prepare_result_unclassified_error_code_] / ensure_last_error_ + encode_merge_input_capacity_decision --> encode_merge_exec : completion_encode_runtime_ [merge_symbol_capacity_within_limit_] / none + encode_merge_input_capacity_decision --> errored : completion_encode_runtime_ [merge_symbol_capacity_exceeded_] / reject_invalid_encode_ + encode_merge_input_capacity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_merge_exec --> encode_merge_result_decision : completion_encode_runtime_ [always] / run_merge_ + encode_merge_result_decision --> encode_emit_input_decision : completion_encode_runtime_ [merge_result_ok_] / none + encode_merge_result_decision --> errored : completion_encode_runtime_ [merge_result_invalid_argument_error_] / ensure_last_error_ + encode_merge_result_decision --> errored : completion_encode_runtime_ [merge_result_backend_error_] / ensure_last_error_ + encode_merge_result_decision --> errored : completion_encode_runtime_ [merge_result_model_invalid_error_] / ensure_last_error_ + encode_merge_result_decision --> errored : completion_encode_runtime_ [merge_result_unclassified_error_code_] / ensure_last_error_ + encode_emit_input_decision --> encode_exec : completion_encode_runtime_ [symbols_present_] / none + encode_emit_input_decision --> encode_result_decision : completion_encode_runtime_ [symbols_absent_] / set_emit_result_empty_ + encode_emit_input_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_exec --> emit_result_decision : completion_encode_runtime_ [always] / run_encode_ + emit_result_decision --> encode_result_decision : completion_encode_runtime_ [emit_result_ok_] / apply_emit_result_ok_ + emit_result_decision --> encode_result_decision : completion_encode_runtime_ [emit_result_failed_] / apply_emit_result_failed_ + emit_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_result_decision --> done : completion_encode_runtime_ [encode_result_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_invalid_argument_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_backend_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_model_invalid_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_unclassified_error_code_] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_exec --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_prepare_exec --> unexpected : encode_runtime [always] / on_unexpected_ + encode_prepare_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_merge_exec --> unexpected : encode_runtime [always] / on_unexpected_ + encode_merge_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_emit_input_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_exec --> unexpected : encode_runtime [always] / on_unexpected_ + emit_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_prepare_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_prepare_exec --> unexpected : encoding_error [always] / on_unexpected_ + encode_prepare_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_prepare_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_merge_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_merge_exec --> unexpected : encoding_error [always] / on_unexpected_ + encode_merge_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_merge_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_emit_input_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_emit_input_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_exec --> unexpected : encoding_error [always] / on_unexpected_ + emit_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + emit_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -27,8 +104,21 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + table_policy_decision --> unexpected : _ [always] / on_unexpected_ + table_sync_exec --> unexpected : _ [always] / on_unexpected_ + table_sync_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_prepare_exec --> unexpected : _ [always] / on_unexpected_ + encode_prepare_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : _ [always] / on_unexpected_ + encode_merge_exec --> unexpected : _ [always] / on_unexpected_ + encode_merge_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_emit_input_decision --> unexpected : _ [always] / on_unexpected_ + encode_exec --> unexpected : _ [always] / on_unexpected_ + emit_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_encoders_ugm.mmd b/docs/architecture/mermaid/text_encoders_ugm.mmd index a02aac27..db618124 100644 --- a/docs/architecture/mermaid/text_encoders_ugm.mmd +++ b/docs/architecture/mermaid/text_encoders_ugm.mmd @@ -1,25 +1,114 @@ stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> table_policy_decision : completion_encode_runtime_ [text_non_empty_] / none + encode_precheck_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_policy_decision --> table_sync_exec : completion_encode_runtime_ [tables_missing_] / none + table_policy_decision --> unk_resolution_decision : completion_encode_runtime_ [tables_ready_] / none + table_policy_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_sync_exec --> table_sync_result_decision : completion_encode_runtime_ [always] / sync_tables_ + table_sync_result_decision --> unk_resolution_decision : completion_encode_runtime_ [table_sync_ok_] / none + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_invalid_argument_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_backend_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_model_invalid_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_unclassified_error_code_] / ensure_last_error_ + unk_resolution_decision --> normalize_exec : completion_encode_runtime_ [vocab_unk_present_] / resolve_vocab_unk_ + unk_resolution_decision --> unk_lookup_exec : completion_encode_runtime_ [vocab_unk_missing_] / none + unk_lookup_exec --> normalize_exec : completion_encode_runtime_ [always] / lookup_unk_id_ + normalize_exec --> normalize_result_decision : completion_encode_runtime_ [always] / normalize_input_ + normalize_result_decision --> input_prepare_exec : completion_encode_runtime_ [normalize_result_ok_] / none + normalize_result_decision --> errored : completion_encode_runtime_ [normalize_result_invalid_argument_error_] / ensure_last_error_ + normalize_result_decision --> errored : completion_encode_runtime_ [normalize_result_backend_error_] / ensure_last_error_ + normalize_result_decision --> errored : completion_encode_runtime_ [normalize_result_model_invalid_error_] / ensure_last_error_ + normalize_result_decision --> errored : completion_encode_runtime_ [normalize_result_unclassified_error_code_] / ensure_last_error_ + input_prepare_exec --> input_prepare_result_decision : completion_encode_runtime_ [always] / prepare_dp_input_ + input_prepare_result_decision --> dp_forward_exec : completion_encode_runtime_ [input_prepare_result_non_empty_ok_] / none + input_prepare_result_decision --> done : completion_encode_runtime_ [input_prepare_result_empty_ok_] / mark_done_ + input_prepare_result_decision --> errored : completion_encode_runtime_ [input_prepare_result_invalid_argument_error_] / ensure_last_error_ + input_prepare_result_decision --> errored : completion_encode_runtime_ [input_prepare_result_backend_error_] / ensure_last_error_ + input_prepare_result_decision --> errored : completion_encode_runtime_ [input_prepare_result_model_invalid_error_] / ensure_last_error_ + input_prepare_result_decision --> errored : completion_encode_runtime_ [input_prepare_result_unclassified_error_code_] / ensure_last_error_ + dp_forward_exec --> dp_forward_result_decision : completion_encode_runtime_ [always] / run_dp_forward_ + dp_forward_result_decision --> dp_backtrace_exec : completion_encode_runtime_ [dp_forward_result_ok_] / none + dp_forward_result_decision --> errored : completion_encode_runtime_ [dp_forward_result_invalid_argument_error_] / ensure_last_error_ + dp_forward_result_decision --> errored : completion_encode_runtime_ [dp_forward_result_backend_error_] / ensure_last_error_ + dp_forward_result_decision --> errored : completion_encode_runtime_ [dp_forward_result_model_invalid_error_] / ensure_last_error_ + dp_forward_result_decision --> errored : completion_encode_runtime_ [dp_forward_result_unclassified_error_code_] / ensure_last_error_ + dp_backtrace_exec --> dp_backtrace_result_decision : completion_encode_runtime_ [always] / run_dp_backtrace_ + dp_backtrace_result_decision --> emit_exec : completion_encode_runtime_ [backtrace_ok_] / none + dp_backtrace_result_decision --> errored : completion_encode_runtime_ [backtrace_failed_] / mark_backtrace_failed_ + dp_backtrace_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + emit_exec --> encode_result_decision : completion_encode_runtime_ [always] / emit_tokens_ + encode_result_decision --> done : completion_encode_runtime_ [emit_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [emit_failed_] / mark_emit_failed_ + encode_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_exec --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + unk_resolution_decision --> unexpected : encode_runtime [always] / on_unexpected_ + unk_lookup_exec --> unexpected : encode_runtime [always] / on_unexpected_ + normalize_exec --> unexpected : encode_runtime [always] / on_unexpected_ + normalize_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + input_prepare_exec --> unexpected : encode_runtime [always] / on_unexpected_ + input_prepare_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + dp_forward_exec --> unexpected : encode_runtime [always] / on_unexpected_ + dp_forward_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + dp_backtrace_exec --> unexpected : encode_runtime [always] / on_unexpected_ + dp_backtrace_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + emit_exec --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + unk_resolution_decision --> unexpected : encoding_done [always] / on_unexpected_ + unk_resolution_decision --> unexpected : encoding_error [always] / on_unexpected_ + unk_lookup_exec --> unexpected : encoding_done [always] / on_unexpected_ + unk_lookup_exec --> unexpected : encoding_error [always] / on_unexpected_ + normalize_exec --> unexpected : encoding_done [always] / on_unexpected_ + normalize_exec --> unexpected : encoding_error [always] / on_unexpected_ + normalize_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + normalize_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + input_prepare_exec --> unexpected : encoding_done [always] / on_unexpected_ + input_prepare_exec --> unexpected : encoding_error [always] / on_unexpected_ + input_prepare_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + input_prepare_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + dp_forward_exec --> unexpected : encoding_done [always] / on_unexpected_ + dp_forward_exec --> unexpected : encoding_error [always] / on_unexpected_ + dp_forward_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + dp_forward_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + dp_backtrace_exec --> unexpected : encoding_done [always] / on_unexpected_ + dp_backtrace_exec --> unexpected : encoding_error [always] / on_unexpected_ + dp_backtrace_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + dp_backtrace_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + emit_exec --> unexpected : encoding_done [always] / on_unexpected_ + emit_exec --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -27,8 +116,24 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + table_policy_decision --> unexpected : _ [always] / on_unexpected_ + table_sync_exec --> unexpected : _ [always] / on_unexpected_ + table_sync_result_decision --> unexpected : _ [always] / on_unexpected_ + unk_resolution_decision --> unexpected : _ [always] / on_unexpected_ + unk_lookup_exec --> unexpected : _ [always] / on_unexpected_ + normalize_exec --> unexpected : _ [always] / on_unexpected_ + normalize_result_decision --> unexpected : _ [always] / on_unexpected_ + input_prepare_exec --> unexpected : _ [always] / on_unexpected_ + input_prepare_result_decision --> unexpected : _ [always] / on_unexpected_ + dp_forward_exec --> unexpected : _ [always] / on_unexpected_ + dp_forward_result_decision --> unexpected : _ [always] / on_unexpected_ + dp_backtrace_exec --> unexpected : _ [always] / on_unexpected_ + dp_backtrace_result_decision --> unexpected : _ [always] / on_unexpected_ + emit_exec --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_encoders_wpm.mmd b/docs/architecture/mermaid/text_encoders_wpm.mmd index a02aac27..e0264348 100644 --- a/docs/architecture/mermaid/text_encoders_wpm.mmd +++ b/docs/architecture/mermaid/text_encoders_wpm.mmd @@ -1,25 +1,66 @@ stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> table_policy_decision : completion_encode_runtime_ [text_non_empty_] / none + encode_precheck_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_policy_decision --> table_sync_exec : completion_encode_runtime_ [tables_missing_] / none + table_policy_decision --> encode_input_capacity_decision : completion_encode_runtime_ [tables_ready_] / none + table_policy_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_sync_exec --> table_sync_result_decision : completion_encode_runtime_ [always] / sync_tables_ + table_sync_result_decision --> encode_input_capacity_decision : completion_encode_runtime_ [table_sync_ok_] / none + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_invalid_argument_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_backend_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_model_invalid_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_unclassified_error_code_] / ensure_last_error_ + encode_input_capacity_decision --> encode_exec : completion_encode_runtime_ [prefix_buffer_capacity_within_limit_] / none + encode_input_capacity_decision --> errored : completion_encode_runtime_ [prefix_buffer_capacity_exceeded_] / reject_invalid_encode_ + encode_input_capacity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_exec --> encode_result_decision : completion_encode_runtime_ [always] / run_encode_ + encode_result_decision --> done : completion_encode_runtime_ [encode_result_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_invalid_argument_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_backend_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_model_invalid_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_unclassified_error_code_] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_exec --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_input_capacity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_exec --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_input_capacity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_input_capacity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_exec --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -27,8 +68,15 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + table_policy_decision --> unexpected : _ [always] / on_unexpected_ + table_sync_exec --> unexpected : _ [always] / on_unexpected_ + table_sync_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_input_capacity_decision --> unexpected : _ [always] / on_unexpected_ + encode_exec --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_formatter.mmd b/docs/architecture/mermaid/text_formatter.mmd new file mode 100644 index 00000000..4c812535 --- /dev/null +++ b/docs/architecture/mermaid/text_formatter.mmd @@ -0,0 +1,5 @@ +stateDiagram-v2 + direction TB + [*] --> idle + idle --> idle : scaffold [always] / none + idle --> idle : _ [always] / none diff --git a/docs/architecture/mermaid/text_jinja_formatter.mmd b/docs/architecture/mermaid/text_jinja_formatter.mmd index 046e8213..52fe802f 100644 --- a/docs/architecture/mermaid/text_jinja_formatter.mmd +++ b/docs/architecture/mermaid/text_jinja_formatter.mmd @@ -1,33 +1,28 @@ stateDiagram-v2 direction TB [*] --> initialized - initialized --> setup : render [lambda_guards_8_38] / begin_render_ - initialized --> errored : render [lambda_guards_12_40] / reject_invalid_render_ - done --> setup : render [lambda_guards_8_38] / begin_render_ - done --> errored : render [lambda_guards_12_40] / reject_invalid_render_ - errored --> setup : render [lambda_guards_8_38] / begin_render_ - errored --> errored : render [lambda_guards_12_40] / reject_invalid_render_ - unexpected --> setup : render [lambda_guards_8_38] / begin_render_ - unexpected --> unexpected : render [lambda_guards_12_40] / reject_invalid_render_ - setup --> eval_stmt : [always] / seed_program_ - eval_stmt --> render_decision : [phase_failed_] / none - eval_stmt --> eval_expr : [needs_expr_] / none - eval_stmt --> eval_stmt : [has_stmt_work_] / eval_next_stmt_ - eval_stmt --> render_decision : [no_stmt_work_] / none - eval_expr --> eval_expr : [has_pending_expr_] / eval_pending_expr_ - eval_expr --> render_decision : [phase_failed_] / none - eval_expr --> write_output : [always] / none - write_output --> render_decision : [phase_failed_] / none - write_output --> write_output : [needs_write_] / write_pending_value_ - write_output --> eval_stmt : [always] / none - render_decision --> done : [phase_ok_] / finalize_done_ - render_decision --> errored : [phase_failed_] / finalize_error_ + initialized --> request_decision : render_runtime [valid_render_] / begin_render_ + initialized --> result_decision : render_runtime [invalid_render_with_callbacks_] / reject_invalid_render_ + initialized --> errored : render_runtime [invalid_render_without_callbacks_] / reject_invalid_render_ + done --> request_decision : render_runtime [valid_render_] / begin_render_ + done --> result_decision : render_runtime [invalid_render_with_callbacks_] / reject_invalid_render_ + done --> errored : render_runtime [invalid_render_without_callbacks_] / reject_invalid_render_ + errored --> request_decision : render_runtime [valid_render_] / begin_render_ + errored --> result_decision : render_runtime [invalid_render_with_callbacks_] / reject_invalid_render_ + errored --> errored : render_runtime [invalid_render_without_callbacks_] / reject_invalid_render_ + unexpected --> request_decision : render_runtime [valid_render_] / begin_render_ + unexpected --> result_decision : render_runtime [invalid_render_with_callbacks_] / reject_invalid_render_ + unexpected --> errored : render_runtime [invalid_render_without_callbacks_] / reject_invalid_render_ + request_decision --> result_decision : completion_render_runtime_ [source_empty_] / mark_empty_output_ + request_decision --> copy_exec : completion_render_runtime_ [copy_ready_] / copy_source_text_ + request_decision --> result_decision : completion_render_runtime_ [source_overflow_] / mark_capacity_error_ + copy_exec --> result_decision : completion_render_runtime_ [always] / none + result_decision --> done : completion_render_runtime_ [request_ok_] / dispatch_done_ + result_decision --> errored : completion_render_runtime_ [request_failed_] / dispatch_error_ initialized --> unexpected : _ [always] / on_unexpected_ - setup --> unexpected : _ [always] / on_unexpected_ - eval_stmt --> unexpected : _ [always] / on_unexpected_ - eval_expr --> unexpected : _ [always] / on_unexpected_ - write_output --> unexpected : _ [always] / on_unexpected_ - render_decision --> unexpected : _ [always] / on_unexpected_ + request_decision --> unexpected : _ [always] / on_unexpected_ + copy_exec --> unexpected : _ [always] / on_unexpected_ + result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_jinja_parser.mmd b/docs/architecture/mermaid/text_jinja_parser.mmd index 681fae53..ca8abfe5 100644 --- a/docs/architecture/mermaid/text_jinja_parser.mmd +++ b/docs/architecture/mermaid/text_jinja_parser.mmd @@ -13,18 +13,30 @@ stateDiagram-v2 unexpected --> request_decision : parse_runtime [valid_parse_] / begin_parse_ unexpected --> parse_result_decision : parse_runtime [invalid_parse_with_callbacks_] / reject_invalid_parse_ unexpected --> errored : parse_runtime [invalid_parse_without_callbacks_] / reject_invalid_parse_ - request_decision --> tokenize_exec : [always] / tokenize_template_ - tokenize_exec --> tokenize_result_decision : [always] / none - tokenize_result_decision --> parse_exec : [tokenize_ok_] / classify_tokens_ - tokenize_result_decision --> parse_result_decision : [tokenize_failed_] / none - parse_exec --> parse_result_decision : [always] / parse_tokens_ - parse_result_decision --> done : [request_ok_] / dispatch_done_ - parse_result_decision --> errored : [request_failed_] / dispatch_error_ + request_decision --> tokenize_begin : completion_parse_runtime_ [always] / begin_tokenization_ + tokenize_begin --> tokenize_next : completion_parse_runtime_ [always] / request_next_lex_token_ + tokenize_next --> tokenize_result_decision : completion_parse_runtime_ [always] / none + tokenize_result_decision --> model__ : completion_parse_runtime_ [lexer_at_eof_] / none + tokenize_result_decision --> tokenize_append : completion_parse_runtime_ [lexer_has_token_] / append_lex_token_ + tokenize_result_decision --> parse_result_decision : completion_parse_runtime_ [parse_error_invalid_request_] / commit_lex_error_ + tokenize_result_decision --> parse_result_decision : completion_parse_runtime_ [parse_error_parse_failed_] / commit_lex_error_ + tokenize_result_decision --> parse_result_decision : completion_parse_runtime_ [parse_error_internal_error_] / commit_lex_error_ + tokenize_result_decision --> parse_result_decision : completion_parse_runtime_ [parse_error_untracked_] / commit_lex_error_ + tokenize_result_decision --> parse_result_decision : completion_parse_runtime_ [parse_error_unknown_] / commit_lex_error_ + tokenize_append --> tokenize_next : completion_parse_runtime_ [always] / request_next_lex_token_ + model__ --> parse_result_decision : completion_parse_runtime_ [always] / none + parse_result_decision --> done : completion_parse_runtime_ [parse_error_none_] / dispatch_done_ + parse_result_decision --> errored : completion_parse_runtime_ [parse_error_invalid_request_] / dispatch_error_ + parse_result_decision --> errored : completion_parse_runtime_ [parse_error_parse_failed_] / dispatch_error_ + parse_result_decision --> errored : completion_parse_runtime_ [parse_error_internal_error_] / dispatch_error_ + parse_result_decision --> errored : completion_parse_runtime_ [parse_error_untracked_] / dispatch_error_ + parse_result_decision --> errored : completion_parse_runtime_ [parse_error_unknown_] / dispatch_error_ initialized --> unexpected : _ [always] / on_unexpected_ request_decision --> unexpected : _ [always] / on_unexpected_ - tokenize_exec --> unexpected : _ [always] / on_unexpected_ + tokenize_begin --> unexpected : _ [always] / on_unexpected_ + tokenize_next --> unexpected : _ [always] / on_unexpected_ tokenize_result_decision --> unexpected : _ [always] / on_unexpected_ - parse_exec --> unexpected : _ [always] / on_unexpected_ + tokenize_append --> unexpected : _ [always] / on_unexpected_ parse_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_jinja_parser_lexer.mmd b/docs/architecture/mermaid/text_jinja_parser_lexer.mmd index 68793cde..ead5ee70 100644 --- a/docs/architecture/mermaid/text_jinja_parser_lexer.mmd +++ b/docs/architecture/mermaid/text_jinja_parser_lexer.mmd @@ -1,15 +1,156 @@ stateDiagram-v2 direction TB - [*] --> deciding - deciding --> tokenize_exec : completion_parse_runtime_ [always] / run_tokenize_ - tokenize_exec --> tokenize_result_decision : completion_parse_runtime_ [always] / none - tokenize_result_decision --> tokenized : completion_parse_runtime_ [tokenize_succeeded_] / none - tokenize_result_decision --> parse_failed : completion_parse_runtime_ [tokenize_failed_] / mark_parse_failed_ - tokenized --> terminate : [always] / none - parse_failed --> terminate : [always] / none - deciding --> unexpected_event : _ [always] / on_unexpected_ - tokenize_exec --> unexpected_event : _ [always] / on_unexpected_ - tokenize_result_decision --> unexpected_event : _ [always] / on_unexpected_ - tokenized --> unexpected_event : _ [always] / on_unexpected_ - parse_failed --> unexpected_event : _ [always] / on_unexpected_ - unexpected_event --> unexpected_event : _ [always] / on_unexpected_ + [*] --> initialized + initialized --> initialized : next_runtime [invalid_next_] / reject_invalid_next_ + initialized --> initialized : next_runtime [invalid_cursor_position_] / reject_invalid_cursor_ + initialized --> text_boundary_candidate_decision : next_runtime [always] / begin_scan_ + scanning --> scanning : next_runtime [invalid_next_] / reject_invalid_next_ + scanning --> scanning : next_runtime [invalid_cursor_position_] / reject_invalid_cursor_ + scanning --> text_boundary_candidate_decision : next_runtime [always] / begin_scan_ + text_boundary_candidate_decision --> text_scan_exec : completion_next_runtime_ [at_text_boundary_] / scan_text_boundary_ + text_boundary_candidate_decision --> comment_candidate_decision : completion_next_runtime_ [always] / none + text_scan_exec --> text_opening_block_decision : completion_next_runtime_ [always] / none + text_opening_block_decision --> text_trim_opening_block_exec : completion_next_runtime_ [text_opening_block_ahead_] / none + text_opening_block_decision --> text_materialize_exec : completion_next_runtime_ [always] / none + text_trim_opening_block_exec --> text_trim_opening_block_result_decision : completion_next_runtime_ [always] / probe_text_opening_trim_ + text_trim_opening_block_result_decision --> text_materialize_exec : completion_next_runtime_ [text_opening_trim_stopped_on_newline_] / apply_text_opening_trim_to_newline_ + text_trim_opening_block_result_decision --> text_materialize_exec : completion_next_runtime_ [text_opening_trim_to_zero_] / apply_text_opening_trim_to_zero_ + text_trim_opening_block_result_decision --> text_materialize_exec : completion_next_runtime_ [always] / none + text_materialize_exec --> scanning : completion_next_runtime_ [text_boundary_empty_at_end_] / emit_text_boundary_eof_ + text_materialize_exec --> scanning : completion_next_runtime_ [text_plain_boundary_ready_] / emit_plain_text_boundary_token_ + text_materialize_exec --> text_finalize_exec : completion_next_runtime_ [always] / materialize_text_token_ + text_finalize_exec --> text_finalize_result_decision : completion_next_runtime_ [text_can_trim_leading_newline_] / trim_text_leading_newline_ + text_finalize_exec --> text_finalize_result_decision : completion_next_runtime_ [always] / none + text_finalize_result_decision --> text_finalize_token_exec : completion_next_runtime_ [text_apply_lstrip_and_rstrip_] / lstrip_and_rstrip_text_token_ + text_finalize_result_decision --> text_finalize_token_exec : completion_next_runtime_ [text_apply_lstrip_only_] / lstrip_text_token_ + text_finalize_result_decision --> text_finalize_token_exec : completion_next_runtime_ [text_apply_rstrip_only_] / rstrip_text_token_ + text_finalize_result_decision --> text_finalize_token_exec : completion_next_runtime_ [text_apply_no_strip_] / none + text_finalize_result_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + text_finalize_token_exec --> text_emit_result_decision : completion_next_runtime_ [always] / finalize_text_boundary_token_ + text_emit_result_decision --> scanning : completion_next_runtime_ [text_token_non_empty_] / emit_scanned_token_ + text_emit_result_decision --> space_eof_exec : completion_next_runtime_ [text_token_empty_at_end_] / mark_no_token_eof_ + text_emit_result_decision --> comment_candidate_decision : completion_next_runtime_ [always] / none + comment_candidate_decision --> comment_scan_exec : completion_next_runtime_ [starts_comment_] / scan_comment_ + comment_candidate_decision --> trim_prefix_scan_exec : completion_next_runtime_ [starts_trim_prefix_] / scan_trim_prefix_ + comment_candidate_decision --> space_scan_exec : completion_next_runtime_ [always] / scan_spaces_ + comment_scan_exec --> comment_scan_result_decision : completion_next_runtime_ [always] / none + comment_scan_result_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + comment_scan_result_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + comment_scan_result_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + comment_scan_result_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + comment_scan_result_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + comment_scan_result_decision --> comment_finalize_exec : completion_next_runtime_ [comment_terminated_] / none + comment_scan_result_decision --> comment_unterminated_exec : completion_next_runtime_ [always] / none + comment_finalize_exec --> comment_finalize_result_decision : completion_next_runtime_ [always] / finalize_comment_token_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [scan_token_available_] / emit_scanned_token_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [scan_no_token_eof_] / emit_eof_ + comment_finalize_result_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + comment_unterminated_exec --> comment_unterminated_result_decision : completion_next_runtime_ [always] / mark_comment_unterminated_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [scan_token_available_] / emit_scanned_token_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [scan_no_token_eof_] / emit_eof_ + comment_unterminated_result_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + trim_prefix_scan_exec --> trim_prefix_eof_exec : completion_next_runtime_ [cursor_at_end_] / mark_no_token_eof_ + trim_prefix_scan_exec --> space_scan_exec : completion_next_runtime_ [always] / scan_spaces_ + trim_prefix_eof_exec --> scanning : completion_next_runtime_ [always] / emit_eof_ + space_scan_exec --> space_eof_exec : completion_next_runtime_ [cursor_at_end_] / mark_no_token_eof_ + space_scan_exec --> unary_candidate_decision : completion_next_runtime_ [always] / none + space_eof_exec --> scanning : completion_next_runtime_ [always] / emit_eof_ + unary_candidate_decision --> unary_prefix_context_decision : completion_next_runtime_ [unary_candidate_] / none + unary_candidate_decision --> string_scan_exec : completion_next_runtime_ [starts_string_] / none + unary_candidate_decision --> numeric_scan_exec : completion_next_runtime_ [starts_numeric_] / scan_numeric_ + unary_candidate_decision --> word_scan_exec : completion_next_runtime_ [starts_word_] / scan_word_ + unary_candidate_decision --> mapping_candidate_decision : completion_next_runtime_ [always] / none + unary_prefix_context_decision --> invalid_char_exec : completion_next_runtime_ [unary_prefix_context_invalid_] / none + unary_prefix_context_decision --> unary_prefix_allowed_decision : completion_next_runtime_ [always] / none + unary_prefix_allowed_decision --> mapping_candidate_decision : completion_next_runtime_ [unary_prefix_disallowed_] / none + unary_prefix_allowed_decision --> unary_scan_exec : completion_next_runtime_ [always] / scan_unary_ + unary_scan_exec --> scanning : completion_next_runtime_ [unary_numeric_suffix_present_] / emit_unary_numeric_token_ + unary_scan_exec --> scanning : completion_next_runtime_ [always] / emit_unary_operator_token_ + mapping_candidate_decision --> mapping_close_curly_exec : completion_next_runtime_ [mapping_close_expression_blocked_by_curly_depth_] / scan_mapping_close_curly_ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence________________] / open_statement_________________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / open_statement____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / close_statement____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence________________] / open_expression_________________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / open_expression____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_close_expression_not_blocked_] / close_expression____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence________________] / close_statement_________________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence________________] / close_expression_________________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / open_paren_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / close_paren_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / open_curly_bracket_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / close_curly_bracket_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / open_square_bracket_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / close_square_bracket_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / comma_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / dot_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / colon_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / pipe_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / comparison_binary_operator____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / comparison_binary_operator____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / comparison_binary_operator____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / comparison_binary_operator____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / comparison_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / comparison_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / additive_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / additive_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / additive_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / multiplicative_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / multiplicative_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / multiplicative_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / equals_______ + mapping_candidate_decision --> invalid_char_exec : completion_next_runtime_ [always] / none + mapping_close_curly_exec --> scanning : completion_next_runtime_ [always] / emit_scanned_token_ + mapping_scan_exec --> scanning : completion_next_runtime_ [always] / emit_scanned_token_ + string_scan_exec --> string_content_scan_exec : completion_next_runtime_ [always] / begin_string_scan_ + string_content_scan_exec --> string_content_policy_decision : completion_next_runtime_ [always] / none + string_content_policy_decision --> string_scan_result_decision : completion_next_runtime_ [string_scan_immediate_termination_or_eof_] / none + string_content_policy_decision --> string_scan_result_decision : completion_next_runtime_ [string_scan_requires_content_] / scan_string_content_ + string_content_policy_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + string_scan_result_decision --> string_materialize_exec : completion_next_runtime_ [always] / none + string_materialize_exec --> string_status_decision : completion_next_runtime_ [always] / materialize_string_token_ + string_status_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + string_status_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + string_status_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + string_status_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + string_status_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + string_status_decision --> string_unterminated_exec : completion_next_runtime_ [string_not_terminated_] / none + string_status_decision --> string_finalize_exec : completion_next_runtime_ [string_terminated_] / none + string_status_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + string_unterminated_exec --> string_unterminated_result_decision : completion_next_runtime_ [always] / mark_string_unterminated_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [scan_token_available_] / emit_scanned_token_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [scan_no_token_eof_] / emit_eof_ + string_unterminated_result_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + string_finalize_exec --> string_finalize_result_decision : completion_next_runtime_ [always] / finalize_string_token_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [scan_token_available_] / emit_scanned_token_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [scan_no_token_eof_] / emit_eof_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + string_finalize_result_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + numeric_scan_exec --> scanning : completion_next_runtime_ [always] / emit_scanned_token_ + word_scan_exec --> scanning : completion_next_runtime_ [always] / emit_scanned_token_ + invalid_char_exec --> invalid_char_result_decision : completion_next_runtime_ [always] / mark_invalid_character_ + invalid_char_result_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + invalid_char_result_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + invalid_char_result_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + invalid_char_result_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + invalid_char_result_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + initialized --> scanning : _ [always] / on_unexpected_ + scanning --> scanning : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_renderer.mmd b/docs/architecture/mermaid/text_renderer.mmd index f25515aa..0c5c8dee 100644 --- a/docs/architecture/mermaid/text_renderer.mmd +++ b/docs/architecture/mermaid/text_renderer.mmd @@ -1,51 +1,91 @@ stateDiagram-v2 direction TB [*] --> uninitialized - uninitialized --> binding : bind [valid_bind_] / begin_bind_ - uninitialized --> errored : bind [invalid_bind_] / reject_bind_ - uninitialized --> errored : render [always] / reject_render_ - uninitialized --> errored : flush [always] / reject_flush_ - idle --> binding : bind [valid_bind_] / begin_bind_ - idle --> errored : bind [invalid_bind_] / reject_bind_ - idle --> rendering : render [valid_render_] / begin_render_ - idle --> errored : render [invalid_render_] / reject_render_ - idle --> flushing : flush [valid_flush_] / begin_flush_ - idle --> errored : flush [invalid_flush_] / reject_flush_ - done --> binding : bind [valid_bind_] / begin_bind_ - done --> errored : bind [invalid_bind_] / reject_bind_ - done --> rendering : render [valid_render_] / begin_render_ - done --> errored : render [invalid_render_] / reject_render_ - done --> flushing : flush [valid_flush_] / begin_flush_ - done --> errored : flush [invalid_flush_] / reject_flush_ - errored --> binding : bind [valid_bind_] / begin_bind_ - errored --> errored : bind [invalid_bind_] / reject_bind_ - errored --> rendering : render [valid_render_] / begin_render_ - errored --> errored : render [invalid_render_] / reject_render_ - errored --> flushing : flush [valid_flush_] / begin_flush_ - errored --> errored : flush [invalid_flush_] / reject_flush_ - unexpected --> binding : bind [valid_bind_] / begin_bind_ - unexpected --> unexpected : bind [invalid_bind_] / reject_bind_ - unexpected --> rendering : render [valid_render_] / begin_render_ - unexpected --> unexpected : render [invalid_render_] / reject_render_ - unexpected --> flushing : flush [valid_flush_] / begin_flush_ - unexpected --> unexpected : flush [invalid_flush_] / reject_flush_ - binding --> binding_decision : [always] / bind_detokenizer_ - binding_decision --> idle : [phase_ok_] / none - binding_decision --> errored : [phase_failed_] / ensure_last_error_ - rendering --> render_decision : [always] / run_render_ - render_decision --> done : [phase_ok_] / mark_done_ - render_decision --> errored : [phase_failed_] / ensure_last_error_ - flushing --> flush_decision : [always] / run_flush_ - flush_decision --> done : [phase_ok_] / mark_done_ - flush_decision --> errored : [phase_failed_] / ensure_last_error_ + uninitialized --> initializing : initialize_runtime [valid_initialize_] / begin_initialize_ + uninitialized --> initialize_publish_error : initialize_runtime [invalid_initialize_] / reject_initialize_ + uninitialized --> render_publish_error : render_runtime [always] / reject_render_ + uninitialized --> flush_publish_error : flush_runtime [always] / reject_flush_ + initialized --> initializing : initialize_runtime [valid_initialize_] / begin_initialize_ + initialized --> initialize_publish_error : initialize_runtime [invalid_initialize_] / reject_initialize_ + initialized --> rendering : render_runtime [valid_render_] / begin_render_ + initialized --> render_publish_error : render_runtime [invalid_render_] / reject_render_ + initialized --> flushing : flush_runtime [valid_flush_] / begin_flush_ + initialized --> flush_publish_error : flush_runtime [invalid_flush_] / reject_flush_ + done --> initializing : initialize_runtime [valid_initialize_] / begin_initialize_ + done --> initialize_publish_error : initialize_runtime [invalid_initialize_] / reject_initialize_ + done --> rendering : render_runtime [valid_render_] / begin_render_ + done --> render_publish_error : render_runtime [invalid_render_] / reject_render_ + done --> flushing : flush_runtime [valid_flush_] / begin_flush_ + done --> flush_publish_error : flush_runtime [invalid_flush_] / reject_flush_ + errored --> initializing : initialize_runtime [valid_initialize_] / begin_initialize_ + errored --> initialize_publish_error : initialize_runtime [invalid_initialize_] / reject_initialize_ + errored --> rendering : render_runtime [valid_render_] / begin_render_ + errored --> render_publish_error : render_runtime [invalid_render_] / reject_render_ + errored --> flushing : flush_runtime [valid_flush_] / begin_flush_ + errored --> flush_publish_error : flush_runtime [invalid_flush_] / reject_flush_ + unexpected --> initializing : initialize_runtime [valid_initialize_] / begin_initialize_ + unexpected --> unexpected : initialize_runtime [invalid_initialize_] / reject_initialize_ + unexpected --> rendering : render_runtime [valid_render_] / begin_render_ + unexpected --> unexpected : render_runtime [invalid_render_] / reject_render_ + unexpected --> flushing : flush_runtime [valid_flush_] / begin_flush_ + unexpected --> unexpected : flush_runtime [invalid_flush_] / reject_flush_ + initialization_decision --> initialize_publish_success : completion_initialize_runtime_ [initialize_dispatch_ok_] / commit_initialize_success_ + initialization_decision --> initialize_publish_error : completion_initialize_runtime_ [initialize_dispatch_backend_failure_] / set_backend_error_ + initialization_decision --> initialize_publish_error : completion_initialize_runtime_ [initialize_dispatch_reported_error_] / set_error_from_detokenizer_ + initialization_decision --> initialize_publish_error : completion_initialize_runtime_ [always] / set_error_from_detokenizer_ + initialize_publish_success --> initialized : completion_initialize_runtime_ [always] / publish_initialize_done_ + initialize_publish_error --> errored : completion_initialize_runtime_ [always] / publish_initialize_error_ + initializing --> initialization_decision : completion_initialize_runtime_ [always] / dispatch_initialize_detokenizer_ + rendering --> render_publish_success : completion_render_runtime_ [sequence_stop_matched_] / render_sequence_already_stopped_ + rendering --> render_dispatch_decision : completion_render_runtime_ [sequence_running_] / dispatch_render_detokenizer_ + render_dispatch_decision --> render_result_decision : completion_render_runtime_ [render_dispatch_ok_] / none + render_result_decision --> render_commit_output_exec : completion_render_runtime_ [always] / none + render_commit_output_exec --> render_strip_decision : completion_render_runtime_ [always] / commit_render_detokenizer_output_ + render_strip_decision --> render_strip_prefix_scan_exec : completion_render_runtime_ [strip_needed_] / none + render_strip_decision --> render_strip_state_exec : completion_render_runtime_ [strip_not_needed_] / none + render_strip_decision --> render_publish_error : completion_render_runtime_ [always] / ensure_last_error_ + render_strip_prefix_scan_exec --> render_strip_prefix_decision : completion_render_runtime_ [always] / compute_render_leading_space_prefix_ + render_strip_prefix_decision --> render_strip_apply_exec : completion_render_runtime_ [strip_prefix_nonzero_] / apply_render_leading_space_strip_ + render_strip_prefix_decision --> render_strip_state_exec : completion_render_runtime_ [strip_prefix_zero_] / none + render_strip_prefix_decision --> render_publish_error : completion_render_runtime_ [always] / ensure_last_error_ + render_strip_apply_exec --> render_strip_state_exec : completion_render_runtime_ [always] / none + render_strip_state_exec --> render_stop_match_exec : completion_render_runtime_ [always] / update_render_strip_state_ + render_stop_match_exec --> render_finalize_decision : completion_render_runtime_ [always] / apply_render_stop_matching_ + render_finalize_decision --> render_publish_success : completion_render_runtime_ [request_ok_] / mark_done_ + render_finalize_decision --> render_publish_error : completion_render_runtime_ [request_failed_] / ensure_last_error_ + render_finalize_decision --> render_publish_error : completion_render_runtime_ [always] / ensure_last_error_ + render_dispatch_decision --> render_publish_error : completion_render_runtime_ [render_dispatch_backend_failure_] / set_backend_error_ + render_dispatch_decision --> render_publish_error : completion_render_runtime_ [render_dispatch_reported_error_] / set_error_from_detokenizer_ + render_dispatch_decision --> render_publish_error : completion_render_runtime_ [render_dispatch_lengths_invalid_] / set_invalid_request_ + render_dispatch_decision --> render_publish_error : completion_render_runtime_ [always] / ensure_last_error_ + render_publish_success --> done : completion_render_runtime_ [always] / publish_render_done_ + render_publish_error --> errored : completion_render_runtime_ [always] / publish_render_error_ + flushing --> flush_publish_success : completion_flush_runtime_ [flush_output_fits_] / flush_copy_sequence_buffers_ + flushing --> flush_publish_error : completion_flush_runtime_ [flush_output_too_large_] / set_invalid_request_ + flush_publish_success --> done : completion_flush_runtime_ [always] / publish_flush_done_ + flush_publish_error --> errored : completion_flush_runtime_ [always] / publish_flush_error_ uninitialized --> unexpected : _ [always] / on_unexpected_ - binding --> unexpected : _ [always] / on_unexpected_ - binding_decision --> unexpected : _ [always] / on_unexpected_ - idle --> unexpected : _ [always] / on_unexpected_ + initializing --> unexpected : _ [always] / on_unexpected_ + initialization_decision --> unexpected : _ [always] / on_unexpected_ + initialize_publish_success --> unexpected : _ [always] / on_unexpected_ + initialize_publish_error --> unexpected : _ [always] / on_unexpected_ + initialized --> unexpected : _ [always] / on_unexpected_ rendering --> unexpected : _ [always] / on_unexpected_ - render_decision --> unexpected : _ [always] / on_unexpected_ + render_dispatch_decision --> unexpected : _ [always] / on_unexpected_ + render_result_decision --> unexpected : _ [always] / on_unexpected_ + render_commit_output_exec --> unexpected : _ [always] / on_unexpected_ + render_strip_decision --> unexpected : _ [always] / on_unexpected_ + render_strip_prefix_scan_exec --> unexpected : _ [always] / on_unexpected_ + render_strip_prefix_decision --> unexpected : _ [always] / on_unexpected_ + render_strip_apply_exec --> unexpected : _ [always] / on_unexpected_ + render_strip_state_exec --> unexpected : _ [always] / on_unexpected_ + render_stop_match_exec --> unexpected : _ [always] / on_unexpected_ + render_finalize_decision --> unexpected : _ [always] / on_unexpected_ + render_publish_success --> unexpected : _ [always] / on_unexpected_ + render_publish_error --> unexpected : _ [always] / on_unexpected_ flushing --> unexpected : _ [always] / on_unexpected_ - flush_decision --> unexpected : _ [always] / on_unexpected_ + flush_publish_success --> unexpected : _ [always] / on_unexpected_ + flush_publish_error --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_tokenizer.mmd b/docs/architecture/mermaid/text_tokenizer.mmd index ff832f4a..84f68a4c 100644 --- a/docs/architecture/mermaid/text_tokenizer.mmd +++ b/docs/architecture/mermaid/text_tokenizer.mmd @@ -1,54 +1,65 @@ stateDiagram-v2 direction TB [*] --> uninitialized - uninitialized --> binding_preprocessor : bind [can_bind_] / begin_bind_ - uninitialized --> errored : bind [always] / reject_bind_ - uninitialized --> errored : tokenize [always] / reject_invalid_ - binding_preprocessor --> binding_preprocessor_decision : [always] / bind_preprocessor_ - binding_preprocessor_decision --> errored : [phase_failed_] / none - binding_preprocessor_decision --> binding_encoder : [phase_ok_] / none - binding_encoder --> binding_encoder_decision : [always] / bind_encoder_ - binding_encoder_decision --> errored : [phase_failed_] / none - binding_encoder_decision --> idle : [phase_ok_] / none - idle --> binding_preprocessor : bind [can_bind_] / begin_bind_ - idle --> errored : bind [always] / reject_bind_ - idle --> preprocessing : tokenize [can_tokenize_] / begin_tokenize_ - idle --> errored : tokenize [always] / reject_invalid_ - done --> binding_preprocessor : bind [can_bind_] / begin_bind_ - done --> errored : bind [always] / reject_bind_ - done --> preprocessing : tokenize [can_tokenize_] / begin_tokenize_ - done --> errored : tokenize [always] / reject_invalid_ - errored --> binding_preprocessor : bind [can_bind_] / begin_bind_ - errored --> errored : bind [always] / reject_bind_ - errored --> preprocessing : tokenize [can_tokenize_] / begin_tokenize_ - errored --> errored : tokenize [always] / reject_invalid_ - unexpected --> binding_preprocessor : bind [can_bind_] / begin_bind_ - unexpected --> unexpected : bind [always] / reject_bind_ - unexpected --> preprocessing : tokenize [can_tokenize_] / begin_tokenize_ - unexpected --> unexpected : tokenize [always] / reject_invalid_ - preprocessing --> preprocess_decision : [always] / run_preprocess_ - preprocess_decision --> errored : [phase_failed_] / none - preprocess_decision --> prefix_decision : [phase_ok_] / none - prefix_decision --> encoding_ready : [bos_ready_] / append_bos_ - prefix_decision --> errored : [bos_no_capacity_] / set_capacity_error_ - prefix_decision --> errored : [bos_invalid_id_] / set_invalid_id_error_ - prefix_decision --> encoding_ready : [no_prefix_] / none - encoding_ready --> suffix_decision : [no_more_fragments_] / none - encoding_ready --> errored : [more_fragments_no_capacity_] / set_capacity_error_ - encoding_ready --> encoding_token_fragment : [more_fragments_token_] / none - encoding_ready --> encoding_raw_fragment : [more_fragments_raw_] / none - encoding_token_fragment --> encoding_decision : [always] / append_fragment_token_ - encoding_raw_fragment --> encoding_decision : [always] / encode_raw_fragment_ - encoding_decision --> errored : [phase_failed_] / none - encoding_decision --> encoding_ready : [phase_ok_] / none - suffix_decision --> finalizing : [sep_ready_] / append_sep_ - suffix_decision --> errored : [sep_no_capacity_] / set_capacity_error_ - suffix_decision --> errored : [sep_invalid_id_] / set_invalid_id_error_ - suffix_decision --> finalizing : [eos_ready_] / append_eos_ - suffix_decision --> errored : [eos_no_capacity_] / set_capacity_error_ - suffix_decision --> errored : [eos_invalid_id_] / set_invalid_id_error_ - suffix_decision --> finalizing : [no_suffix_] / none - finalizing --> done : [always] / finalize_ + uninitialized --> binding_preprocessor : bind_runtime [can_bind_] / begin_bind_ + uninitialized --> errored : bind_runtime [always] / reject_bind_ + uninitialized --> errored : tokenize_runtime [always] / reject_invalid_ + idle --> binding_preprocessor : bind_runtime [can_bind_] / begin_bind_ + idle --> errored : bind_runtime [always] / reject_bind_ + idle --> preprocessing : tokenize_runtime [can_tokenize_] / begin_tokenize_ + idle --> errored : tokenize_runtime [always] / reject_invalid_ + done --> binding_preprocessor : bind_runtime [can_bind_] / begin_bind_ + done --> errored : bind_runtime [always] / reject_bind_ + done --> preprocessing : tokenize_runtime [can_tokenize_] / begin_tokenize_ + done --> errored : tokenize_runtime [always] / reject_invalid_ + errored --> binding_preprocessor : bind_runtime [can_bind_] / begin_bind_ + errored --> errored : bind_runtime [always] / reject_bind_ + errored --> preprocessing : tokenize_runtime [can_tokenize_] / begin_tokenize_ + errored --> errored : tokenize_runtime [always] / reject_invalid_ + unexpected --> binding_preprocessor : bind_runtime [can_bind_] / begin_bind_ + unexpected --> unexpected : bind_runtime [always] / reject_bind_ + unexpected --> preprocessing : tokenize_runtime [can_tokenize_] / begin_tokenize_ + unexpected --> unexpected : tokenize_runtime [always] / reject_invalid_ + binding_preprocessor --> binding_preprocessor_decision : completion_bind_runtime_ [always] / bind_preprocessor_ + binding_preprocessor_decision --> binding_encoder : completion_bind_runtime_ [bind_preprocessor_error_none_] / none + binding_preprocessor_decision --> errored : completion_bind_runtime_ [bind_preprocessor_error_invalid_request_] / none + binding_preprocessor_decision --> errored : completion_bind_runtime_ [bind_preprocessor_error_model_invalid_] / none + binding_preprocessor_decision --> errored : completion_bind_runtime_ [bind_preprocessor_error_backend_error_] / none + binding_preprocessor_decision --> errored : completion_bind_runtime_ [bind_preprocessor_error_unknown_] / none + binding_encoder --> binding_encoder_decision : completion_bind_runtime_ [always] / bind_encoder_ + binding_encoder_decision --> idle : completion_bind_runtime_ [bind_encoder_error_none_] / mark_bind_success_ + binding_encoder_decision --> errored : completion_bind_runtime_ [bind_encoder_error_invalid_request_] / none + binding_encoder_decision --> errored : completion_bind_runtime_ [bind_encoder_error_model_invalid_] / none + binding_encoder_decision --> errored : completion_bind_runtime_ [bind_encoder_error_backend_error_] / none + binding_encoder_decision --> errored : completion_bind_runtime_ [bind_encoder_error_unknown_] / none + preprocessing --> preprocess_decision : completion_tokenize_runtime_ [always] / dispatch_preprocess_ + preprocess_decision --> errored : completion_tokenize_runtime_ [preprocess_rejected_no_error_] / set_backend_error_ + preprocess_decision --> errored : completion_tokenize_runtime_ [preprocess_reported_error_] / set_error_from_preprocess_ + preprocess_decision --> errored : completion_tokenize_runtime_ [preprocess_fragment_count_invalid_] / set_invalid_request_error_ + preprocess_decision --> prefix_decision : completion_tokenize_runtime_ [preprocess_success_] / none + prefix_decision --> encoding_ready : completion_tokenize_runtime_ [bos_ready_] / append_bos_ + prefix_decision --> errored : completion_tokenize_runtime_ [bos_no_capacity_] / set_invalid_request_error_ + prefix_decision --> errored : completion_tokenize_runtime_ [bos_invalid_id_] / set_invalid_id_error_ + prefix_decision --> encoding_ready : completion_tokenize_runtime_ [no_prefix_] / none + encoding_ready --> suffix_decision : completion_tokenize_runtime_ [no_more_fragments_] / none + encoding_ready --> errored : completion_tokenize_runtime_ [more_fragments_no_capacity_] / set_invalid_request_error_ + encoding_ready --> errored : completion_tokenize_runtime_ [more_fragments_token_invalid_] / set_invalid_request_error_ + encoding_ready --> encoding_token_fragment : completion_tokenize_runtime_ [more_fragments_token_valid_] / none + encoding_ready --> encoding_raw_fragment : completion_tokenize_runtime_ [more_fragments_raw_] / none + encoding_token_fragment --> encoding_ready : completion_tokenize_runtime_ [always] / append_fragment_token_ + encoding_raw_fragment --> encoding_raw_decision : completion_tokenize_runtime_ [always] / dispatch_encode_raw_fragment_ + encoding_raw_decision --> errored : completion_tokenize_runtime_ [encode_rejected_no_error_] / set_invalid_id_error_ + encoding_raw_decision --> errored : completion_tokenize_runtime_ [encode_reported_error_] / set_error_from_encode_ + encoding_raw_decision --> errored : completion_tokenize_runtime_ [encode_count_invalid_] / set_invalid_request_error_ + encoding_raw_decision --> encoding_ready : completion_tokenize_runtime_ [encode_success_] / commit_encoded_fragment_ + suffix_decision --> finalizing : completion_tokenize_runtime_ [sep_ready_] / append_sep_ + suffix_decision --> errored : completion_tokenize_runtime_ [sep_no_capacity_] / set_invalid_request_error_ + suffix_decision --> errored : completion_tokenize_runtime_ [sep_invalid_id_] / set_invalid_id_error_ + suffix_decision --> finalizing : completion_tokenize_runtime_ [eos_ready_] / append_eos_ + suffix_decision --> errored : completion_tokenize_runtime_ [eos_no_capacity_] / set_invalid_request_error_ + suffix_decision --> errored : completion_tokenize_runtime_ [eos_invalid_id_] / set_invalid_id_error_ + suffix_decision --> finalizing : completion_tokenize_runtime_ [no_suffix_] / none + finalizing --> done : completion_tokenize_runtime_ [always] / finalize_ uninitialized --> unexpected : _ [always] / on_unexpected_ binding_preprocessor --> unexpected : _ [always] / on_unexpected_ binding_preprocessor_decision --> unexpected : _ [always] / on_unexpected_ @@ -61,7 +72,7 @@ stateDiagram-v2 encoding_ready --> unexpected : _ [always] / on_unexpected_ encoding_token_fragment --> unexpected : _ [always] / on_unexpected_ encoding_raw_fragment --> unexpected : _ [always] / on_unexpected_ - encoding_decision --> unexpected : _ [always] / on_unexpected_ + encoding_raw_decision --> unexpected : _ [always] / on_unexpected_ suffix_decision --> unexpected : _ [always] / on_unexpected_ finalizing --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_tokenizer_preprocessor_bpe.mmd b/docs/architecture/mermaid/text_tokenizer_preprocessor_bpe.mmd index a5d864d4..806d8425 100644 --- a/docs/architecture/mermaid/text_tokenizer_preprocessor_bpe.mmd +++ b/docs/architecture/mermaid/text_tokenizer_preprocessor_bpe.mmd @@ -1,26 +1,60 @@ stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_select : [always] / build_specials_ - partitioning_select --> partitioning_bpe_no_specials : [no_specials_] / none - partitioning_select --> partitioning_bpe_with_specials : [has_specials_] / none - partitioning_bpe_no_specials --> partition_decision : [always] / partition_bpe_no_specials_ - partitioning_bpe_with_specials --> partition_decision : [always] / partition_bpe_with_specials_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partitioning_select : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partitioning_select --> partitioning_bpe_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partitioning_select --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partitioning_select --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_bpe_with_specials_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_bpe_with_specials_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_bpe_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_bpe_no_specials_input_decision --> partitioning_bpe_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_bpe_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_bpe_with_specials_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_bpe_with_specials_parse_input_decision --> partitioning_bpe_with_specials_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_bpe_with_specials_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_bpe_with_specials_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_bpe_with_specials_skip_input_decision --> partitioning_bpe_with_specials_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_bpe_with_specials_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_bpe_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_bpe_no_specials_ + partitioning_bpe_with_specials_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_bpe_with_specials_parse_special_ + partitioning_bpe_with_specials_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_bpe_with_specials_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ partitioning_select --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_bpe_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_bpe_with_specials_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_bpe_with_specials_skip_input_decision --> unexpected : _ [always] / on_unexpected_ partitioning_bpe_no_specials --> unexpected : _ [always] / on_unexpected_ - partitioning_bpe_with_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_bpe_with_specials_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_bpe_with_specials_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_tokenizer_preprocessor_fallback.mmd b/docs/architecture/mermaid/text_tokenizer_preprocessor_fallback.mmd index f4c1f8a6..793e019a 100644 --- a/docs/architecture/mermaid/text_tokenizer_preprocessor_fallback.mmd +++ b/docs/architecture/mermaid/text_tokenizer_preprocessor_fallback.mmd @@ -1,21 +1,60 @@ stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_non_bpe : [always] / build_specials_ - partitioning_non_bpe --> partition_decision : [always] / partition_non_bpe_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partition_specials_decision : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partition_specials_decision --> partitioning_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partition_specials_decision --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partition_specials_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_non_bpe_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_non_bpe_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_no_specials_input_decision --> partitioning_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_parse_input_decision --> partitioning_non_bpe_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_skip_input_decision --> partitioning_non_bpe_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_no_specials_ + partitioning_non_bpe_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_parse_special_ + partitioning_non_bpe_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ - partitioning_non_bpe --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_tokenizer_preprocessor_plamo2.mmd b/docs/architecture/mermaid/text_tokenizer_preprocessor_plamo2.mmd index f4c1f8a6..793e019a 100644 --- a/docs/architecture/mermaid/text_tokenizer_preprocessor_plamo2.mmd +++ b/docs/architecture/mermaid/text_tokenizer_preprocessor_plamo2.mmd @@ -1,21 +1,60 @@ stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_non_bpe : [always] / build_specials_ - partitioning_non_bpe --> partition_decision : [always] / partition_non_bpe_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partition_specials_decision : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partition_specials_decision --> partitioning_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partition_specials_decision --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partition_specials_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_non_bpe_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_non_bpe_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_no_specials_input_decision --> partitioning_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_parse_input_decision --> partitioning_non_bpe_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_skip_input_decision --> partitioning_non_bpe_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_no_specials_ + partitioning_non_bpe_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_parse_special_ + partitioning_non_bpe_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ - partitioning_non_bpe --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_tokenizer_preprocessor_rwkv.mmd b/docs/architecture/mermaid/text_tokenizer_preprocessor_rwkv.mmd index f4c1f8a6..793e019a 100644 --- a/docs/architecture/mermaid/text_tokenizer_preprocessor_rwkv.mmd +++ b/docs/architecture/mermaid/text_tokenizer_preprocessor_rwkv.mmd @@ -1,21 +1,60 @@ stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_non_bpe : [always] / build_specials_ - partitioning_non_bpe --> partition_decision : [always] / partition_non_bpe_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partition_specials_decision : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partition_specials_decision --> partitioning_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partition_specials_decision --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partition_specials_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_non_bpe_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_non_bpe_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_no_specials_input_decision --> partitioning_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_parse_input_decision --> partitioning_non_bpe_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_skip_input_decision --> partitioning_non_bpe_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_no_specials_ + partitioning_non_bpe_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_parse_special_ + partitioning_non_bpe_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ - partitioning_non_bpe --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_tokenizer_preprocessor_spm.mmd b/docs/architecture/mermaid/text_tokenizer_preprocessor_spm.mmd index f4c1f8a6..793e019a 100644 --- a/docs/architecture/mermaid/text_tokenizer_preprocessor_spm.mmd +++ b/docs/architecture/mermaid/text_tokenizer_preprocessor_spm.mmd @@ -1,21 +1,60 @@ stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_non_bpe : [always] / build_specials_ - partitioning_non_bpe --> partition_decision : [always] / partition_non_bpe_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partition_specials_decision : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partition_specials_decision --> partitioning_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partition_specials_decision --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partition_specials_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_non_bpe_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_non_bpe_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_no_specials_input_decision --> partitioning_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_parse_input_decision --> partitioning_non_bpe_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_skip_input_decision --> partitioning_non_bpe_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_no_specials_ + partitioning_non_bpe_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_parse_special_ + partitioning_non_bpe_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ - partitioning_non_bpe --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_tokenizer_preprocessor_ugm.mmd b/docs/architecture/mermaid/text_tokenizer_preprocessor_ugm.mmd index f4c1f8a6..793e019a 100644 --- a/docs/architecture/mermaid/text_tokenizer_preprocessor_ugm.mmd +++ b/docs/architecture/mermaid/text_tokenizer_preprocessor_ugm.mmd @@ -1,21 +1,60 @@ stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_non_bpe : [always] / build_specials_ - partitioning_non_bpe --> partition_decision : [always] / partition_non_bpe_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partition_specials_decision : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partition_specials_decision --> partitioning_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partition_specials_decision --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partition_specials_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_non_bpe_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_non_bpe_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_no_specials_input_decision --> partitioning_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_parse_input_decision --> partitioning_non_bpe_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_skip_input_decision --> partitioning_non_bpe_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_no_specials_ + partitioning_non_bpe_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_parse_special_ + partitioning_non_bpe_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ - partitioning_non_bpe --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/text_tokenizer_preprocessor_wpm.mmd b/docs/architecture/mermaid/text_tokenizer_preprocessor_wpm.mmd index f4c1f8a6..793e019a 100644 --- a/docs/architecture/mermaid/text_tokenizer_preprocessor_wpm.mmd +++ b/docs/architecture/mermaid/text_tokenizer_preprocessor_wpm.mmd @@ -1,21 +1,60 @@ stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_non_bpe : [always] / build_specials_ - partitioning_non_bpe --> partition_decision : [always] / partition_non_bpe_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partition_specials_decision : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partition_specials_decision --> partitioning_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partition_specials_decision --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partition_specials_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_non_bpe_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_non_bpe_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_no_specials_input_decision --> partitioning_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_parse_input_decision --> partitioning_non_bpe_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_skip_input_decision --> partitioning_non_bpe_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_no_specials_ + partitioning_non_bpe_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_parse_special_ + partitioning_non_bpe_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ - partitioning_non_bpe --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ diff --git a/docs/architecture/mermaid/token_batcher.mmd b/docs/architecture/mermaid/token_batcher.mmd index ae710ca8..65cb9843 100644 --- a/docs/architecture/mermaid/token_batcher.mmd +++ b/docs/architecture/mermaid/token_batcher.mmd @@ -1,20 +1,144 @@ stateDiagram-v2 direction TB - [*] --> initialized - initialized --> batching : batch [valid_request_] / begin_batch_ - initialized --> errored : batch [invalid_request_] / reject_invalid_batch_ - batching --> batch_decision : [always] / run_batch_ - batch_decision --> errored : [phase_failed_] / none - batch_decision --> done : [phase_ok_] / mark_done_ - done --> batching : batch [valid_request_] / begin_batch_ - done --> errored : batch [invalid_request_] / reject_invalid_batch_ - errored --> batching : batch [valid_request_] / begin_batch_ - errored --> errored : batch [invalid_request_] / reject_invalid_batch_ - unexpected --> batching : batch [valid_request_] / begin_batch_ - unexpected --> errored : batch [invalid_request_] / reject_invalid_batch_ - initialized --> unexpected : _ [always] / on_unexpected_ - batching --> unexpected : _ [always] / on_unexpected_ - batch_decision --> unexpected : _ [always] / on_unexpected_ - done --> unexpected : _ [always] / on_unexpected_ - errored --> unexpected : _ [always] / on_unexpected_ - unexpected --> unexpected : _ [always] / on_unexpected_ + [*] --> ready + ready --> request_decision : batch_runtime [always] / begin_batch_ + request_decision --> request_validation_probe : completion_batch_runtime_ [always] / none + request_validation_probe --> request_outputs_decision : completion_batch_runtime_ [always] / none + request_outputs_decision --> request_token_counts_decision : completion_batch_runtime_ [request_outputs_present_] / none + request_outputs_decision --> errored : completion_batch_runtime_ [request_outputs_missing_] / mark_invalid_request_ + request_token_counts_decision --> request_capacities_decision : completion_batch_runtime_ [request_token_counts_valid_] / none + request_token_counts_decision --> errored : completion_batch_runtime_ [request_token_counts_invalid_] / mark_invalid_request_ + request_capacities_decision --> request_token_ids_decision : completion_batch_runtime_ [request_capacities_valid_] / none + request_capacities_decision --> errored : completion_batch_runtime_ [request_capacities_invalid_] / mark_invalid_request_ + request_token_ids_decision --> request_seq_payload_decision : completion_batch_runtime_ [request_token_ids_in_vocab_] / none + request_token_ids_decision --> errored : completion_batch_runtime_ [request_token_ids_out_of_vocab_] / mark_invalid_request_ + request_seq_payload_decision --> seq_mode_decision : completion_batch_runtime_ [request_seq_payload_valid_] / none + request_seq_payload_decision --> errored : completion_batch_runtime_ [request_seq_payload_invalid_] / mark_invalid_request_ + seq_mode_decision --> seq_from_masks : completion_batch_runtime_ [seq_mode_masks_] / normalize_seq_from_masks_ + seq_mode_decision --> seq_from_primary_ids : completion_batch_runtime_ [seq_mode_primary_ids_] / normalize_seq_from_primary_ids_ + seq_mode_decision --> seq_default : completion_batch_runtime_ [seq_mode_default_] / normalize_seq_default_ + seq_mode_decision --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + seq_from_masks --> seq_mask_words_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + seq_from_masks --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + seq_from_masks --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + seq_from_masks --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + seq_from_masks --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + seq_from_primary_ids --> seq_mask_words_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + seq_from_primary_ids --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + seq_from_primary_ids --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + seq_from_primary_ids --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + seq_from_primary_ids --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + seq_default --> seq_mask_words_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + seq_default --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + seq_default --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + seq_default --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + seq_default --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + seq_mask_words_publish_decision --> positions_mode_decision : completion_batch_runtime_ [seq_mask_words_out_present_] / publish_seq_mask_words_ + seq_mask_words_publish_decision --> positions_mode_decision : completion_batch_runtime_ [seq_mask_words_out_absent_] / none + positions_mode_decision --> positions_copy_stride_three : completion_batch_runtime_ [positions_mode_stride_three_] / copy_positions_stride_three_ + positions_mode_decision --> positions_copy_stride_one : completion_batch_runtime_ [positions_mode_stride_one_] / copy_positions_stride_one_ + positions_mode_decision --> positions_seeded_probe : completion_batch_runtime_ [positions_mode_generate_seeded_] / probe_positions_seeded_ + positions_mode_decision --> positions_unseeded_probe : completion_batch_runtime_ [positions_mode_generate_unseeded_] / probe_positions_unseeded_ + positions_mode_decision --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + positions_seeded_probe --> positions_generate_seeded : completion_batch_runtime_ [positions_seeded_probe_ok_] / generate_positions_seeded_ + positions_seeded_probe --> errored : completion_batch_runtime_ [positions_seeded_probe_backend_error_] / mark_backend_error_ + positions_seeded_probe --> errored : completion_batch_runtime_ [positions_seeded_probe_invalid_request_] / mark_invalid_request_ + positions_seeded_probe --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + positions_unseeded_probe --> positions_generate_unseeded : completion_batch_runtime_ [positions_unseeded_probe_ok_] / generate_positions_unseeded_ + positions_unseeded_probe --> errored : completion_batch_runtime_ [positions_unseeded_probe_invalid_request_] / mark_invalid_request_ + positions_unseeded_probe --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + positions_copy_stride_three --> positions_count_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + positions_copy_stride_three --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + positions_copy_stride_three --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + positions_copy_stride_three --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + positions_copy_stride_three --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + positions_copy_stride_one --> positions_count_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + positions_copy_stride_one --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + positions_copy_stride_one --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + positions_copy_stride_one --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + positions_copy_stride_one --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + positions_generate_seeded --> positions_count_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + positions_generate_seeded --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + positions_generate_seeded --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + positions_generate_seeded --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + positions_generate_seeded --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + positions_generate_unseeded --> positions_count_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + positions_generate_unseeded --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + positions_generate_unseeded --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + positions_generate_unseeded --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + positions_generate_unseeded --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + positions_count_publish_decision --> output_mode_decision : completion_batch_runtime_ [positions_count_out_present_] / publish_positions_count_ + positions_count_publish_decision --> output_mode_decision : completion_batch_runtime_ [positions_count_out_absent_] / none + output_mode_decision --> output_mask_all : completion_batch_runtime_ [output_mode_all_] / set_output_mask_all_ + output_mode_decision --> output_mask_copy : completion_batch_runtime_ [output_mode_copy_] / copy_output_mask_ + output_mode_decision --> output_mask_last : completion_batch_runtime_ [output_mode_last_] / set_output_mask_last_ + output_mode_decision --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + output_mask_all --> output_counting : completion_batch_runtime_ [phase_result_ok_] / count_outputs_total_ + output_mask_all --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + output_mask_all --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + output_mask_all --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + output_mask_all --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + output_mask_copy --> output_counting : completion_batch_runtime_ [phase_result_ok_] / count_outputs_total_ + output_mask_copy --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + output_mask_copy --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + output_mask_copy --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + output_mask_copy --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + output_mask_last --> output_counting : completion_batch_runtime_ [phase_result_ok_] / count_outputs_total_ + output_mask_last --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + output_mask_last --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + output_mask_last --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + output_mask_last --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + output_counting --> outputs_total_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + output_counting --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + output_counting --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + output_counting --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + output_counting --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + outputs_total_publish_decision --> single_output_decision : completion_batch_runtime_ [outputs_total_out_present_] / publish_outputs_total_ + outputs_total_publish_decision --> single_output_decision : completion_batch_runtime_ [outputs_total_out_absent_] / none + single_output_decision --> continuity_decision : completion_batch_runtime_ [single_output_check_skipped_] / none + single_output_decision --> single_output_probe : completion_batch_runtime_ [single_output_check_required_] / probe_single_output_per_seq_ + single_output_probe --> continuity_decision : completion_batch_runtime_ [single_output_probe_ok_] / none + single_output_probe --> errored : completion_batch_runtime_ [single_output_probe_invalid_request_] / mark_invalid_request_ + single_output_probe --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + continuity_decision --> done : completion_batch_runtime_ [continuity_check_skipped_] / none + continuity_decision --> continuity_probe : completion_batch_runtime_ [continuity_check_required_] / probe_continuity_ + continuity_probe --> done : completion_batch_runtime_ [continuity_probe_ok_] / none + continuity_probe --> errored : completion_batch_runtime_ [continuity_probe_invalid_request_] / mark_invalid_request_ + continuity_probe --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + done --> ready : completion_batch_runtime_ [done_callback_present_] / publish_done_ + done --> ready : completion_batch_runtime_ [done_callback_absent_] / publish_done_noop_ + errored --> ready : completion_batch_runtime_ [error_callback_present_] / publish_error_ + errored --> ready : completion_batch_runtime_ [error_callback_absent_] / publish_error_noop_ + ready --> ready : _ [always] / on_unexpected_ + request_decision --> ready : _ [always] / on_unexpected_ + request_validation_probe --> ready : _ [always] / on_unexpected_ + request_outputs_decision --> ready : _ [always] / on_unexpected_ + request_token_counts_decision --> ready : _ [always] / on_unexpected_ + request_capacities_decision --> ready : _ [always] / on_unexpected_ + request_token_ids_decision --> ready : _ [always] / on_unexpected_ + request_seq_payload_decision --> ready : _ [always] / on_unexpected_ + seq_mode_decision --> ready : _ [always] / on_unexpected_ + seq_from_masks --> ready : _ [always] / on_unexpected_ + seq_from_primary_ids --> ready : _ [always] / on_unexpected_ + seq_default --> ready : _ [always] / on_unexpected_ + seq_mask_words_publish_decision --> ready : _ [always] / on_unexpected_ + positions_mode_decision --> ready : _ [always] / on_unexpected_ + positions_copy_stride_three --> ready : _ [always] / on_unexpected_ + positions_copy_stride_one --> ready : _ [always] / on_unexpected_ + positions_seeded_probe --> ready : _ [always] / on_unexpected_ + positions_unseeded_probe --> ready : _ [always] / on_unexpected_ + positions_generate_seeded --> ready : _ [always] / on_unexpected_ + positions_generate_unseeded --> ready : _ [always] / on_unexpected_ + positions_count_publish_decision --> ready : _ [always] / on_unexpected_ + output_mode_decision --> ready : _ [always] / on_unexpected_ + output_mask_all --> ready : _ [always] / on_unexpected_ + output_mask_copy --> ready : _ [always] / on_unexpected_ + output_mask_last --> ready : _ [always] / on_unexpected_ + output_counting --> ready : _ [always] / on_unexpected_ + outputs_total_publish_decision --> ready : _ [always] / on_unexpected_ + single_output_decision --> ready : _ [always] / on_unexpected_ + single_output_probe --> ready : _ [always] / on_unexpected_ + continuity_decision --> ready : _ [always] / on_unexpected_ + continuity_probe --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ diff --git a/docs/architecture/model_loader.md b/docs/architecture/model_loader.md index 3ae66c6e..b73ec692 100644 --- a/docs/architecture/model_loader.md +++ b/docs/architecture/model_loader.md @@ -7,108 +7,202 @@ Source: [`emel/model/loader/sm.hpp`](https://github.com/stateforward/emel.cpp/bl ```mermaid stateDiagram-v2 direction TB - [*] --> initialized - initialized --> mapping_parser : load [can_map_parser_] / begin_load_ - initialized --> errored : load [cannot_map_parser_] / set_invalid_argument_ - mapping_parser --> map_parser_decision : [always] / run_map_parser_ - map_parser_decision --> errored : [phase_failed_] / none - map_parser_decision --> parsing : [phase_ok_and_can_parse_] / none - map_parser_decision --> errored : [phase_ok_and_cannot_parse_] / set_invalid_argument_ - parsing --> parse_decision : [always] / run_parse_ - parse_decision --> errored : [phase_failed_] / none - parse_decision --> loading_weights : [phase_ok_and_should_load_weights_and_can_load_] / none - parse_decision --> errored : [phase_ok_and_should_load_weights_and_cannot_load_] / set_invalid_argument_ - parse_decision --> structure_skipped : [phase_ok_and_skip_weights_and_skip_structure_] / none - parse_decision --> validating_structure : [phase_ok_and_skip_weights_and_can_validate_structure_] / none - parse_decision --> errored : [phase_ok_and_skip_weights_and_cannot_validate_structure_] / set_invalid_argument_ - loading_weights --> load_decision : [always] / run_load_weights_ - load_decision --> errored : [phase_failed_] / none - load_decision --> mapping_layers : [phase_ok_and_can_map_layers_] / none - load_decision --> errored : [phase_ok_and_cannot_map_layers_] / set_invalid_argument_ - mapping_layers --> map_layers_decision : [always] / run_map_layers_ - map_layers_decision --> errored : [phase_failed_] / none - map_layers_decision --> structure_skipped : [phase_ok_and_skip_structure_] / none - map_layers_decision --> validating_structure : [phase_ok_and_can_validate_structure_] / none - map_layers_decision --> errored : [phase_ok_and_cannot_validate_structure_] / set_invalid_argument_ - validating_structure --> structure_decision : [always] / run_validate_structure_ - structure_skipped --> structure_decision : [always] / skip_validate_structure_ - structure_decision --> errored : [phase_failed_] / none - structure_decision --> validating_architecture : [phase_ok_and_has_arch_validate_and_can_validate_architecture_] / none - structure_decision --> errored : [phase_ok_and_has_arch_validate_and_cannot_validate_architecture_] / set_invalid_argument_ - structure_decision --> done : [phase_ok_and_no_arch_validate_] / none - validating_architecture --> architecture_decision : [always] / run_validate_architecture_ - architecture_decision --> errored : [phase_failed_] / none - architecture_decision --> done : [phase_ok_] / none - done --> initialized : [always] / publish_done_ - errored --> initialized : [always] / publish_error_ - initialized --> errored : _ [always] / on_unexpected_ - mapping_parser --> errored : _ [always] / on_unexpected_ - map_parser_decision --> errored : _ [always] / on_unexpected_ - parsing --> errored : _ [always] / on_unexpected_ - parse_decision --> errored : _ [always] / on_unexpected_ - loading_weights --> errored : _ [always] / on_unexpected_ - load_decision --> errored : _ [always] / on_unexpected_ - mapping_layers --> errored : _ [always] / on_unexpected_ - map_layers_decision --> errored : _ [always] / on_unexpected_ - validating_structure --> errored : _ [always] / on_unexpected_ - structure_skipped --> errored : _ [always] / on_unexpected_ - structure_decision --> errored : _ [always] / on_unexpected_ - validating_architecture --> errored : _ [always] / on_unexpected_ - architecture_decision --> errored : _ [always] / on_unexpected_ - done --> errored : _ [always] / on_unexpected_ - errored --> errored : _ [always] / on_unexpected_ + [*] --> ready + ready --> request_decision : load_runtime [always] / begin_load_ + request_decision --> parsing : completion_load_runtime_ [valid_request_] / none + request_decision --> errored : completion_load_runtime_ [invalid_request_] / mark_invalid_request_ + parsing --> parse_decision : completion_load_runtime_ [always] / run_parse_ + parse_decision --> parse_phase_decision : completion_load_runtime_ [always] / none + parse_phase_decision --> parse_load_weights_policy_decision : completion_load_runtime_ [error_none_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_invalid_request_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_parse_failed_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_backend_error_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_model_invalid_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_internal_error_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_untracked_] / none + parse_phase_decision --> errored : completion_load_runtime_ [error_unclassified_code_] / none + parse_load_weights_policy_decision --> parse_load_weights_handler_decision : completion_load_runtime_ [should_load_weights_] / none + parse_load_weights_policy_decision --> structure_decision : completion_load_runtime_ [skip_load_weights_] / none + parse_load_weights_policy_decision --> errored : completion_load_runtime_ [always] / mark_internal_error_ + parse_load_weights_handler_decision --> loading_weights : completion_load_runtime_ [can_load_weights_] / none + parse_load_weights_handler_decision --> errored : completion_load_runtime_ [cannot_load_weights_] / mark_invalid_request_ + parse_load_weights_handler_decision --> errored : completion_load_runtime_ [always] / mark_internal_error_ + loading_weights --> load_decision : completion_load_runtime_ [always] / run_load_weights_ + load_decision --> load_phase_decision : completion_load_runtime_ [always] / none + load_phase_decision --> load_map_policy_decision : completion_load_runtime_ [error_none_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_invalid_request_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_parse_failed_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_backend_error_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_model_invalid_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_internal_error_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_untracked_] / none + load_phase_decision --> errored : completion_load_runtime_ [error_unclassified_code_] / none + load_map_policy_decision --> mapping_layers : completion_load_runtime_ [can_map_layers_] / none + load_map_policy_decision --> errored : completion_load_runtime_ [cannot_map_layers_] / mark_invalid_request_ + load_map_policy_decision --> errored : completion_load_runtime_ [always] / mark_internal_error_ + mapping_layers --> map_layers_decision : completion_load_runtime_ [always] / run_map_layers_ + map_layers_decision --> structure_decision : completion_load_runtime_ [error_none_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_invalid_request_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_parse_failed_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_backend_error_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_model_invalid_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_internal_error_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_untracked_] / none + map_layers_decision --> errored : completion_load_runtime_ [error_unclassified_code_] / none + structure_decision --> structure_policy_decision : completion_load_runtime_ [always] / none + structure_policy_decision --> architecture_decision : completion_load_runtime_ [skip_validate_structure_] / none + structure_policy_decision --> validating_structure : completion_load_runtime_ [can_validate_structure_] / none + structure_policy_decision --> errored : completion_load_runtime_ [cannot_validate_structure_] / mark_invalid_request_ + structure_policy_decision --> errored : completion_load_runtime_ [always] / mark_internal_error_ + validating_structure --> structure_validation_decision : completion_load_runtime_ [always] / run_validate_structure_ + structure_validation_decision --> architecture_decision : completion_load_runtime_ [error_none_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_invalid_request_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_parse_failed_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_backend_error_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_model_invalid_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_internal_error_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_untracked_] / none + structure_validation_decision --> errored : completion_load_runtime_ [error_unclassified_code_] / none + architecture_decision --> architecture_policy_decision : completion_load_runtime_ [always] / none + architecture_policy_decision --> done : completion_load_runtime_ [skip_validate_architecture_] / none + architecture_policy_decision --> validating_architecture : completion_load_runtime_ [can_validate_architecture_] / none + architecture_policy_decision --> errored : completion_load_runtime_ [cannot_validate_architecture_] / mark_invalid_request_ + architecture_policy_decision --> errored : completion_load_runtime_ [always] / mark_internal_error_ + validating_architecture --> architecture_validation_decision : completion_load_runtime_ [always] / run_validate_architecture_ + architecture_validation_decision --> done : completion_load_runtime_ [error_none_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_invalid_request_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_parse_failed_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_backend_error_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_model_invalid_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_internal_error_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_untracked_] / none + architecture_validation_decision --> errored : completion_load_runtime_ [error_unclassified_code_] / none + done --> ready : completion_load_runtime_ [done_callback_present_] / publish_done_ + done --> ready : completion_load_runtime_ [done_callback_absent_] / publish_done_noop_ + errored --> ready : completion_load_runtime_ [error_callback_present_] / publish_error_ + errored --> ready : completion_load_runtime_ [error_callback_absent_] / publish_error_noop_ + ready --> ready : _ [always] / on_unexpected_ + request_decision --> ready : _ [always] / on_unexpected_ + parsing --> ready : _ [always] / on_unexpected_ + parse_decision --> ready : _ [always] / on_unexpected_ + parse_phase_decision --> ready : _ [always] / on_unexpected_ + parse_load_weights_policy_decision --> ready : _ [always] / on_unexpected_ + parse_load_weights_handler_decision --> ready : _ [always] / on_unexpected_ + loading_weights --> ready : _ [always] / on_unexpected_ + load_decision --> ready : _ [always] / on_unexpected_ + load_phase_decision --> ready : _ [always] / on_unexpected_ + load_map_policy_decision --> ready : _ [always] / on_unexpected_ + mapping_layers --> ready : _ [always] / on_unexpected_ + map_layers_decision --> ready : _ [always] / on_unexpected_ + structure_decision --> ready : _ [always] / on_unexpected_ + structure_policy_decision --> ready : _ [always] / on_unexpected_ + validating_structure --> ready : _ [always] / on_unexpected_ + structure_validation_decision --> ready : _ [always] / on_unexpected_ + architecture_decision --> ready : _ [always] / on_unexpected_ + architecture_policy_decision --> ready : _ [always] / on_unexpected_ + validating_architecture --> ready : _ [always] / on_unexpected_ + architecture_validation_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ ``` ## Transitions | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`load`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`can_map_parser>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`begin_load>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mapping_parser`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`load`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`cannot_map_parser>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`mapping_parser`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`run_map_parser>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`map_parser_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`map_parser_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`map_parser_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_can_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`parsing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`map_parser_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_cannot_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`parsing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`run_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_should_load_weights_and_can_load>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`loading_weights`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_should_load_weights_and_cannot_load>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_skip_weights_and_skip_structure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`structure_skipped`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_skip_weights_and_can_validate_structure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`validating_structure`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_skip_weights_and_cannot_validate_structure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`loading_weights`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`run_load_weights>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`load_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`load_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`load_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_can_map_layers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mapping_layers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`load_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_cannot_map_layers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`mapping_layers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`run_map_layers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_skip_structure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`structure_skipped`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_can_validate_structure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`validating_structure`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_cannot_validate_structure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`validating_structure`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`run_validate_structure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`structure_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`structure_skipped`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`skip_validate_structure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`structure_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`structure_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`structure_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_has_arch_validate_and_can_validate_architecture>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`validating_architecture`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`structure_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_has_arch_validate_and_cannot_validate_architecture>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`structure_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok_and_no_arch_validate>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`validating_architecture`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`run_validate_architecture>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`architecture_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`architecture_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`architecture_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`mapping_parser`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`map_parser_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`parsing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`loading_weights`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`load_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`mapping_layers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`validating_structure`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`structure_skipped`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`structure_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`validating_architecture`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`architecture_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`load_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`begin_load>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`parsing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parsing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`run_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`parse_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`parse_load_weights_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_unclassified_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_load_weights_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`should_load_weights>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`parse_load_weights_handler_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_load_weights_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`skip_load_weights>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`structure_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_load_weights_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_load_weights_handler_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`can_load_weights>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`loading_weights`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_load_weights_handler_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`cannot_load_weights>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_load_weights_handler_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`loading_weights`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`run_load_weights>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`load_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`load_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`load_map_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_unclassified_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_map_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`can_map_layers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mapping_layers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_map_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`cannot_map_layers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_map_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`mapping_layers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`run_map_layers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`structure_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_unclassified_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`structure_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`skip_validate_structure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`architecture_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`can_validate_structure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`validating_structure`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`cannot_validate_structure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`validating_structure`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`run_validate_structure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`structure_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`architecture_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_unclassified_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`architecture_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`skip_validate_architecture>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`can_validate_architecture>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`validating_architecture`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`cannot_validate_architecture>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`validating_architecture`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`run_validate_architecture>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`architecture_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_unclassified_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`done_callback_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`done_callback_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`publish_done_noop>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_callback_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`error_callback_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`publish_error_noop>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parsing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_load_weights_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`parse_load_weights_handler_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`loading_weights`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_phase_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`load_map_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`mapping_layers`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`map_layers_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`validating_structure`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`structure_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`validating_architecture`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`architecture_validation_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/loader/sm.hpp) | diff --git a/docs/architecture/model_weight_loader.md b/docs/architecture/model_weight_loader.md index 6b6cf6da..3471f118 100644 --- a/docs/architecture/model_weight_loader.md +++ b/docs/architecture/model_weight_loader.md @@ -8,35 +8,207 @@ Source: [`emel/model/weight_loader/sm.hpp`](https://github.com/stateforward/emel stateDiagram-v2 direction TB [*] --> unbound - unbound --> bound : bind_storage [valid_bind_] / run_bind_storage_ - unbound --> errored : bind_storage [invalid_bind_] / set_invalid_argument_ - bound --> awaiting_effects : plan_load [valid_plan_] / run_plan_load_ - bound --> errored : plan_load [invalid_plan_] / set_invalid_argument_ - awaiting_effects --> ready : apply_effect_results [valid_apply_] / run_apply_effects_ - awaiting_effects --> errored : apply_effect_results [invalid_apply_] / set_invalid_argument_ - ready --> bound : bind_storage [valid_bind_] / run_bind_storage_ - errored --> bound : bind_storage [valid_bind_] / run_bind_storage_ + unbound --> bind_dispatch_decision : bind_runtime [valid_bind_] / exec_bind_ + unbound --> bind_dispatch_decision : bind_runtime [invalid_bind_] / mark_invalid_request_ + bound --> bind_dispatch_decision : bind_runtime [valid_bind_] / exec_bind_ + bound --> bind_dispatch_decision : bind_runtime [invalid_bind_] / mark_invalid_request_ + awaiting_effects --> bind_dispatch_decision : bind_runtime [valid_bind_] / exec_bind_ + awaiting_effects --> bind_dispatch_decision : bind_runtime [invalid_bind_] / mark_invalid_request_ + ready --> bind_dispatch_decision : bind_runtime [valid_bind_] / exec_bind_ + ready --> bind_dispatch_decision : bind_runtime [invalid_bind_] / mark_invalid_request_ + errored --> bind_dispatch_decision : bind_runtime [valid_bind_] / exec_bind_ + errored --> bind_dispatch_decision : bind_runtime [invalid_bind_] / mark_invalid_request_ + bind_dispatch_decision --> bind_done_decision : completion_bind_runtime_ [bind_error_none_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_invalid_request_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_capacity_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_backend_error_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_model_invalid_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_out_of_memory_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_internal_error_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_untracked_] / none + bind_dispatch_decision --> bind_error_decision : completion_bind_runtime_ [bind_error_unknown_] / none + bind_done_decision --> bind_done_callback : completion_bind_runtime_ [bind_done_callback_present_] / publish_bind_done_ + bind_done_decision --> bound : completion_bind_runtime_ [bind_done_callback_absent_] / none + bind_done_callback --> bound : completion_bind_runtime_ [always] / none + bind_error_decision --> bind_error_callback : completion_bind_runtime_ [bind_error_callback_present_] / publish_bind_error_ + bind_error_decision --> errored : completion_bind_runtime_ [bind_error_callback_absent_] / none + bind_error_callback --> errored : completion_bind_runtime_ [always] / none + bound --> plan_dispatch_decision : plan_runtime [valid_plan_] / exec_plan_ + bound --> plan_dispatch_decision : plan_runtime [invalid_plan_request_] / mark_invalid_request_ + bound --> plan_dispatch_decision : plan_runtime [invalid_plan_capacity_] / mark_capacity_ + ready --> plan_dispatch_decision : plan_runtime [valid_plan_] / exec_plan_ + ready --> plan_dispatch_decision : plan_runtime [invalid_plan_request_] / mark_invalid_request_ + ready --> plan_dispatch_decision : plan_runtime [invalid_plan_capacity_] / mark_capacity_ + unbound --> plan_dispatch_decision : plan_runtime [always] / mark_invalid_request_ + awaiting_effects --> plan_dispatch_decision : plan_runtime [always] / mark_invalid_request_ + errored --> plan_dispatch_decision : plan_runtime [always] / mark_invalid_request_ + plan_dispatch_decision --> plan_done_decision : completion_plan_runtime_ [plan_error_none_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_invalid_request_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_capacity_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_backend_error_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_model_invalid_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_out_of_memory_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_internal_error_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_untracked_] / none + plan_dispatch_decision --> plan_error_decision : completion_plan_runtime_ [plan_error_unknown_] / none + plan_done_decision --> plan_done_callback : completion_plan_runtime_ [plan_done_callback_present_] / publish_plan_done_ + plan_done_decision --> awaiting_effects : completion_plan_runtime_ [plan_done_callback_absent_] / none + plan_done_callback --> awaiting_effects : completion_plan_runtime_ [always] / none + plan_error_decision --> plan_error_callback : completion_plan_runtime_ [plan_error_callback_present_] / publish_plan_error_ + plan_error_decision --> errored : completion_plan_runtime_ [plan_error_callback_absent_] / none + plan_error_callback --> errored : completion_plan_runtime_ [always] / none + awaiting_effects --> apply_request_decision : apply_runtime [always] / none + apply_request_decision --> apply_dispatch_decision : completion_apply_runtime_ [invalid_apply_request_] / mark_apply_invalid_request_ + apply_request_decision --> apply_error_scan_exec : completion_apply_runtime_ [valid_apply_request_] / scan_apply_effect_errors_ + apply_request_decision --> apply_dispatch_decision : completion_apply_runtime_ [always] / mark_apply_invalid_request_ + apply_error_scan_exec --> apply_scan_result_decision : completion_apply_runtime_ [always] / none + apply_scan_result_decision --> apply_dispatch_decision : completion_apply_runtime_ [apply_effect_errors_present_] / mark_apply_backend_error_ + apply_scan_result_decision --> apply_dispatch_decision : completion_apply_runtime_ [apply_effect_errors_absent_] / exec_apply_ + apply_scan_result_decision --> apply_dispatch_decision : completion_apply_runtime_ [always] / mark_apply_backend_error_ + unbound --> apply_dispatch_decision : apply_runtime [invalid_apply_request_] / mark_apply_invalid_request_ + bound --> apply_dispatch_decision : apply_runtime [always] / mark_apply_invalid_request_ + ready --> apply_dispatch_decision : apply_runtime [always] / mark_apply_invalid_request_ + errored --> apply_dispatch_decision : apply_runtime [always] / mark_apply_invalid_request_ + apply_dispatch_decision --> apply_done_decision : completion_apply_runtime_ [apply_error_none_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_invalid_request_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_capacity_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_backend_error_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_model_invalid_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_out_of_memory_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_internal_error_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_untracked_] / none + apply_dispatch_decision --> apply_error_decision : completion_apply_runtime_ [apply_error_unknown_] / none + apply_done_decision --> apply_done_callback : completion_apply_runtime_ [apply_done_callback_present_] / publish_apply_done_ + apply_done_decision --> ready : completion_apply_runtime_ [apply_done_callback_absent_] / none + apply_done_callback --> ready : completion_apply_runtime_ [always] / none + apply_error_decision --> apply_error_callback : completion_apply_runtime_ [apply_error_callback_present_] / publish_apply_error_ + apply_error_decision --> errored : completion_apply_runtime_ [apply_error_callback_absent_] / none + apply_error_callback --> errored : completion_apply_runtime_ [always] / none unbound --> errored : _ [always] / on_unexpected_ bound --> errored : _ [always] / on_unexpected_ awaiting_effects --> errored : _ [always] / on_unexpected_ ready --> errored : _ [always] / on_unexpected_ errored --> errored : _ [always] / on_unexpected_ + bind_dispatch_decision --> errored : _ [always] / on_unexpected_ + bind_done_decision --> errored : _ [always] / on_unexpected_ + bind_done_callback --> errored : _ [always] / on_unexpected_ + bind_error_decision --> errored : _ [always] / on_unexpected_ + bind_error_callback --> errored : _ [always] / on_unexpected_ + plan_dispatch_decision --> errored : _ [always] / on_unexpected_ + plan_done_decision --> errored : _ [always] / on_unexpected_ + plan_done_callback --> errored : _ [always] / on_unexpected_ + plan_error_decision --> errored : _ [always] / on_unexpected_ + plan_error_callback --> errored : _ [always] / on_unexpected_ + apply_dispatch_decision --> errored : _ [always] / on_unexpected_ + apply_request_decision --> errored : _ [always] / on_unexpected_ + apply_error_scan_exec --> errored : _ [always] / on_unexpected_ + apply_scan_result_decision --> errored : _ [always] / on_unexpected_ + apply_done_decision --> errored : _ [always] / on_unexpected_ + apply_done_callback --> errored : _ [always] / on_unexpected_ + apply_error_decision --> errored : _ [always] / on_unexpected_ + apply_error_callback --> errored : _ [always] / on_unexpected_ ``` ## Transitions | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`unbound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_storage`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`run_bind_storage>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | -| [`unbound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_storage`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | -| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_load`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_plan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`run_plan_load>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`awaiting_effects`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | -| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_load`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_plan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | -| [`awaiting_effects`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_effect_results`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_apply>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`run_apply_effects>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | -| [`awaiting_effects`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_effect_results`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_apply>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | -| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_storage`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`run_bind_storage>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_storage`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`run_bind_storage>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`unbound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`exec_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`unbound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`exec_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`awaiting_effects`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`exec_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`awaiting_effects`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`exec_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`exec_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_done_callback_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`publish_bind_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_done_callback_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_callback_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`publish_bind_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`bind_error_callback_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_plan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`exec_plan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_plan_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_plan_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_plan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`exec_plan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_plan_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_plan_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`unbound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`awaiting_effects`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_done_callback_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`publish_plan_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_done_callback_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`awaiting_effects`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`awaiting_effects`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_callback_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`publish_plan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`plan_error_callback_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`awaiting_effects`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_apply_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_apply_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`valid_apply_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`scan_apply_effect_errors>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_apply_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_error_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_effect_errors_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_apply_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_effect_errors_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`exec_apply>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_apply_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`unbound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`invalid_apply_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_apply_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_apply_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_apply_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`mark_apply_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_out_of_memory>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_done_callback_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`publish_apply_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_done_callback_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_callback_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`publish_apply_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`apply_error_callback_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | | [`unbound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | | [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | | [`awaiting_effects`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`bind_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`plan_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_error_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | +| [`apply_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/model/weight_loader/sm.hpp) | diff --git a/docs/architecture/parser_gguf.md b/docs/architecture/parser_gguf.md deleted file mode 100644 index aaf5b997..00000000 --- a/docs/architecture/parser_gguf.md +++ /dev/null @@ -1,42 +0,0 @@ -# parser_gguf - -Source: [`emel/parser/gguf/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) - -## Mermaid - -```mermaid -stateDiagram-v2 - direction TB - [*] --> uninitialized - uninitialized --> probed : probe [valid_probe_] / run_probe_ - uninitialized --> errored : probe [invalid_probe_] / set_invalid_argument_ - probed --> bound : bind_storage [valid_bind_] / run_bind_storage_ - probed --> errored : bind_storage [invalid_bind_] / set_invalid_argument_ - bound --> parsed : parse [valid_parse_] / run_parse_ - bound --> errored : parse [invalid_parse_] / set_invalid_argument_ - parsed --> probed : probe [valid_probe_] / run_probe_ - errored --> probed : probe [valid_probe_] / run_probe_ - uninitialized --> errored : _ [always] / on_unexpected_ - probed --> errored : _ [always] / on_unexpected_ - bound --> errored : _ [always] / on_unexpected_ - parsed --> errored : _ [always] / on_unexpected_ - errored --> errored : _ [always] / on_unexpected_ -``` - -## Transitions - -| Source | Event | Guard | Action | Target | -| --- | --- | --- | --- | --- | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`valid_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`run_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`probed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`invalid_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | -| [`probed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`bind_storage`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`run_bind_storage>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | -| [`probed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`bind_storage`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | -| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`parse`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`valid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`run_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`parsed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | -| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`parse`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`invalid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`set_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | -| [`parsed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`valid_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`run_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`probed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`valid_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`run_probe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`probed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | -| [`probed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | -| [`bound`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | -| [`parsed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/parser/gguf/sm.hpp) | diff --git a/docs/architecture/tensor.md b/docs/architecture/tensor.md new file mode 100644 index 00000000..24805680 --- /dev/null +++ b/docs/architecture/tensor.md @@ -0,0 +1,140 @@ +# tensor + +Source: [`emel/tensor/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) + +## Mermaid + +```mermaid +stateDiagram-v2 + direction TB + [*] --> ready + ready --> reserve_tensor_request_decision : reserve_tensor_runtime [always] / begin_reserve_tensor_ + reserve_tensor_request_decision --> reserve_tensor_exec : completion_reserve_tensor_runtime_ [reserve_tensor_request_valid_] / none + reserve_tensor_request_decision --> errored : completion_reserve_tensor_runtime_ [reserve_tensor_request_invalid_] / mark_invalid_request_ + reserve_tensor_exec --> reserve_tensor_result_decision : completion_reserve_tensor_runtime_ [always] / exec_reserve_tensor_ + reserve_tensor_result_decision --> done : completion_reserve_tensor_runtime_ [operation_succeeded_] / none + reserve_tensor_result_decision --> errored : completion_reserve_tensor_runtime_ [operation_failed_internal_] / mark_internal_error_ + reserve_tensor_result_decision --> errored : completion_reserve_tensor_runtime_ [operation_not_dispatched_] / mark_internal_error_ + ready --> publish_filled_tensor_request_decision : publish_filled_tensor_runtime [always] / begin_publish_filled_tensor_ + publish_filled_tensor_request_decision --> publish_filled_tensor_exec : completion_publish_filled_tensor_runtime_ [publish_filled_tensor_request_valid_] / none + publish_filled_tensor_request_decision --> errored : completion_publish_filled_tensor_runtime_ [publish_filled_tensor_request_invalid_] / mark_invalid_request_ + publish_filled_tensor_exec --> publish_filled_tensor_result_decision : completion_publish_filled_tensor_runtime_ [always] / exec_publish_filled_tensor_ + publish_filled_tensor_result_decision --> done : completion_publish_filled_tensor_runtime_ [operation_succeeded_] / none + publish_filled_tensor_result_decision --> errored : completion_publish_filled_tensor_runtime_ [operation_failed_internal_] / mark_internal_error_ + publish_filled_tensor_result_decision --> errored : completion_publish_filled_tensor_runtime_ [operation_not_dispatched_] / mark_internal_error_ + ready --> release_tensor_ref_request_decision : release_tensor_ref_runtime [always] / begin_release_tensor_ref_ + release_tensor_ref_request_decision --> release_tensor_ref_exec : completion_release_tensor_ref_runtime_ [release_tensor_ref_request_valid_] / none + release_tensor_ref_request_decision --> errored : completion_release_tensor_ref_runtime_ [release_tensor_ref_request_invalid_] / mark_invalid_request_ + release_tensor_ref_exec --> release_tensor_ref_result_decision : completion_release_tensor_ref_runtime_ [always] / exec_release_tensor_ref_ + release_tensor_ref_result_decision --> done : completion_release_tensor_ref_runtime_ [operation_succeeded_] / none + release_tensor_ref_result_decision --> errored : completion_release_tensor_ref_runtime_ [operation_failed_internal_] / mark_internal_error_ + release_tensor_ref_result_decision --> errored : completion_release_tensor_ref_runtime_ [operation_not_dispatched_] / mark_internal_error_ + ready --> reset_tensor_epoch_request_decision : reset_tensor_epoch_runtime [always] / begin_reset_tensor_epoch_ + reset_tensor_epoch_request_decision --> reset_tensor_epoch_exec : completion_reset_tensor_epoch_runtime_ [reset_tensor_epoch_request_valid_] / none + reset_tensor_epoch_request_decision --> errored : completion_reset_tensor_epoch_runtime_ [reset_tensor_epoch_request_invalid_] / mark_invalid_request_ + reset_tensor_epoch_exec --> reset_tensor_epoch_result_decision : completion_reset_tensor_epoch_runtime_ [always] / exec_reset_tensor_epoch_ + reset_tensor_epoch_result_decision --> done : completion_reset_tensor_epoch_runtime_ [operation_succeeded_] / none + reset_tensor_epoch_result_decision --> errored : completion_reset_tensor_epoch_runtime_ [operation_failed_internal_] / mark_internal_error_ + reset_tensor_epoch_result_decision --> errored : completion_reset_tensor_epoch_runtime_ [operation_not_dispatched_] / mark_internal_error_ + ready --> capture_tensor_state_request_decision : capture_tensor_state_runtime [always] / begin_capture_tensor_state_ + capture_tensor_state_request_decision --> capture_tensor_state_exec : completion_capture_tensor_state_runtime_ [capture_tensor_state_request_valid_] / none + capture_tensor_state_request_decision --> errored : completion_capture_tensor_state_runtime_ [capture_tensor_state_request_invalid_] / mark_invalid_request_ + capture_tensor_state_exec --> capture_tensor_state_result_decision : completion_capture_tensor_state_runtime_ [always] / exec_capture_tensor_state_ + capture_tensor_state_result_decision --> done : completion_capture_tensor_state_runtime_ [capture_operation_succeeded_] / none + capture_tensor_state_result_decision --> errored : completion_capture_tensor_state_runtime_ [capture_operation_not_dispatched_] / mark_internal_error_ + done --> ready : completion_reserve_tensor_runtime_ [always] / publish_done_ + errored --> ready : completion_reserve_tensor_runtime_ [always] / publish_error_ + done --> ready : completion_publish_filled_tensor_runtime_ [always] / publish_done_ + errored --> ready : completion_publish_filled_tensor_runtime_ [always] / publish_error_ + done --> ready : completion_release_tensor_ref_runtime_ [always] / publish_done_ + errored --> ready : completion_release_tensor_ref_runtime_ [always] / publish_error_ + done --> ready : completion_reset_tensor_epoch_runtime_ [always] / publish_done_ + errored --> ready : completion_reset_tensor_epoch_runtime_ [always] / publish_error_ + done --> ready : completion_capture_tensor_state_runtime_ [always] / publish_done_ + errored --> ready : completion_capture_tensor_state_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + reserve_tensor_request_decision --> ready : _ [always] / on_unexpected_ + reserve_tensor_exec --> ready : _ [always] / on_unexpected_ + reserve_tensor_result_decision --> ready : _ [always] / on_unexpected_ + publish_filled_tensor_request_decision --> ready : _ [always] / on_unexpected_ + publish_filled_tensor_exec --> ready : _ [always] / on_unexpected_ + publish_filled_tensor_result_decision --> ready : _ [always] / on_unexpected_ + release_tensor_ref_request_decision --> ready : _ [always] / on_unexpected_ + release_tensor_ref_exec --> ready : _ [always] / on_unexpected_ + release_tensor_ref_result_decision --> ready : _ [always] / on_unexpected_ + reset_tensor_epoch_request_decision --> ready : _ [always] / on_unexpected_ + reset_tensor_epoch_exec --> ready : _ [always] / on_unexpected_ + reset_tensor_epoch_result_decision --> ready : _ [always] / on_unexpected_ + capture_tensor_state_request_decision --> ready : _ [always] / on_unexpected_ + capture_tensor_state_exec --> ready : _ [always] / on_unexpected_ + capture_tensor_state_result_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ +``` + +## Transitions + +| Source | Event | Guard | Action | Target | +| --- | --- | --- | --- | --- | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`reserve_tensor_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`begin_reserve_tensor>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`reserve_tensor_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reserve_tensor_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`reserve_tensor_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`reserve_tensor_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reserve_tensor_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`reserve_tensor_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reserve_tensor_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`exec_reserve_tensor>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`reserve_tensor_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reserve_tensor_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reserve_tensor_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`operation_failed_internal>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reserve_tensor_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`operation_not_dispatched>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_filled_tensor_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`begin_publish_filled_tensor>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_filled_tensor_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`publish_filled_tensor_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_filled_tensor_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_filled_tensor_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`publish_filled_tensor_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_filled_tensor_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`publish_filled_tensor_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`exec_publish_filled_tensor>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_filled_tensor_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`publish_filled_tensor_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`publish_filled_tensor_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`operation_failed_internal>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`publish_filled_tensor_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`operation_not_dispatched>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`release_tensor_ref_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`begin_release_tensor_ref>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`release_tensor_ref_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`release_tensor_ref_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`release_tensor_ref_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`release_tensor_ref_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`release_tensor_ref_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`release_tensor_ref_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`release_tensor_ref_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`exec_release_tensor_ref>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`release_tensor_ref_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`release_tensor_ref_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`release_tensor_ref_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`operation_failed_internal>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`release_tensor_ref_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`operation_not_dispatched>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`reset_tensor_epoch_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`begin_reset_tensor_epoch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`reset_tensor_epoch_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reset_tensor_epoch_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`reset_tensor_epoch_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`reset_tensor_epoch_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reset_tensor_epoch_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`reset_tensor_epoch_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reset_tensor_epoch_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`exec_reset_tensor_epoch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`reset_tensor_epoch_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reset_tensor_epoch_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reset_tensor_epoch_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`operation_failed_internal>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reset_tensor_epoch_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`operation_not_dispatched>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`capture_tensor_state_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`begin_capture_tensor_state>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`capture_tensor_state_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`capture_tensor_state_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`capture_tensor_state_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`capture_tensor_state_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`capture_tensor_state_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`capture_tensor_state_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`capture_tensor_state_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`exec_capture_tensor_state>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`capture_tensor_state_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`capture_tensor_state_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`capture_operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`capture_tensor_state_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`capture_operation_not_dispatched>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reserve_tensor_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reserve_tensor_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reserve_tensor_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`publish_filled_tensor_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`publish_filled_tensor_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`publish_filled_tensor_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`release_tensor_ref_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`release_tensor_ref_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`release_tensor_ref_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reset_tensor_epoch_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reset_tensor_epoch_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`reset_tensor_epoch_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`capture_tensor_state_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`capture_tensor_state_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`capture_tensor_state_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/sm.hpp) | diff --git a/docs/architecture/tensor_view.md b/docs/architecture/tensor_view.md new file mode 100644 index 00000000..7bc2c933 --- /dev/null +++ b/docs/architecture/tensor_view.md @@ -0,0 +1,46 @@ +# tensor_view + +Source: [`emel/tensor/view/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) + +## Mermaid + +```mermaid +stateDiagram-v2 + direction TB + [*] --> ready + ready --> capture_tensor_view_request_decision : capture_tensor_view_runtime [always] / begin_capture_tensor_view_ + capture_tensor_view_request_decision --> capture_tensor_view_exec : completion_capture_tensor_view_runtime_ [capture_tensor_view_request_valid_] / none + capture_tensor_view_request_decision --> errored : completion_capture_tensor_view_runtime_ [capture_tensor_view_request_invalid_] / mark_invalid_request_ + capture_tensor_view_exec --> capture_tensor_view_result_decision : completion_capture_tensor_view_runtime_ [always] / exec_capture_tensor_view_ + capture_tensor_view_result_decision --> done : completion_capture_tensor_view_runtime_ [operation_succeeded_] / none + capture_tensor_view_result_decision --> errored : completion_capture_tensor_view_runtime_ [operation_failed_with_error_] / mark_error_from_operation_ + capture_tensor_view_result_decision --> errored : completion_capture_tensor_view_runtime_ [operation_failed_without_error_] / mark_internal_error_ + done --> ready : completion_capture_tensor_view_runtime_ [always] / publish_done_ + errored --> ready : completion_capture_tensor_view_runtime_ [always] / publish_error_ + ready --> ready : _ [always] / on_unexpected_ + capture_tensor_view_request_decision --> ready : _ [always] / on_unexpected_ + capture_tensor_view_exec --> ready : _ [always] / on_unexpected_ + capture_tensor_view_result_decision --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ +``` + +## Transitions + +| Source | Event | Guard | Action | Target | +| --- | --- | --- | --- | --- | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`capture_tensor_view_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`begin_capture_tensor_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`capture_tensor_view_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`capture_tensor_view_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`capture_tensor_view_request_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`capture_tensor_view_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`capture_tensor_view_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`capture_tensor_view_request_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`capture_tensor_view_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`exec_capture_tensor_view>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`capture_tensor_view_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`capture_tensor_view_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`operation_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`capture_tensor_view_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`operation_failed_with_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`mark_error_from_operation>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`capture_tensor_view_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`operation_failed_without_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`capture_tensor_view_request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`capture_tensor_view_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`capture_tensor_view_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/tensor/view/sm.hpp) | diff --git a/docs/architecture/text_conditioner.md b/docs/architecture/text_conditioner.md index cf10291c..ddbf200e 100644 --- a/docs/architecture/text_conditioner.md +++ b/docs/architecture/text_conditioner.md @@ -8,44 +8,91 @@ Source: [`emel/text/conditioner/sm.hpp`](https://github.com/stateforward/emel.cp stateDiagram-v2 direction TB [*] --> uninitialized - uninitialized --> binding : bind [valid_bind_] / begin_bind_ - uninitialized --> errored : bind [invalid_bind_] / reject_bind_ - uninitialized --> errored : prepare [always] / reject_prepare_ - idle --> binding : bind [valid_bind_] / begin_bind_ - idle --> errored : bind [invalid_bind_] / reject_bind_ - idle --> formatting : prepare [valid_prepare_] / begin_prepare_ - idle --> errored : prepare [invalid_prepare_] / reject_prepare_ - done --> binding : bind [valid_bind_] / begin_bind_ - done --> errored : bind [invalid_bind_] / reject_bind_ - done --> formatting : prepare [valid_prepare_] / begin_prepare_ - done --> errored : prepare [invalid_prepare_] / reject_prepare_ - errored --> binding : bind [valid_bind_] / begin_bind_ - errored --> errored : bind [invalid_bind_] / reject_bind_ - errored --> formatting : prepare [valid_prepare_] / begin_prepare_ - errored --> errored : prepare [invalid_prepare_] / reject_prepare_ - unexpected --> binding : bind [valid_bind_] / begin_bind_ - unexpected --> unexpected : bind [invalid_bind_] / reject_bind_ - unexpected --> formatting : prepare [valid_prepare_] / begin_prepare_ - unexpected --> unexpected : prepare [invalid_prepare_] / reject_prepare_ - binding --> binding_decision : [always] / bind_tokenizer_ - binding_decision --> idle : [phase_ok_] / none - binding_decision --> errored : [phase_failed_] / ensure_last_error_ - formatting --> format_decision : [always] / run_format_ - format_decision --> tokenizing : [phase_ok_] / none - format_decision --> errored : [phase_failed_] / ensure_last_error_ - tokenizing --> tokenize_decision : [always] / run_tokenize_ - tokenize_decision --> done : [phase_ok_] / mark_done_ - tokenize_decision --> errored : [phase_failed_] / ensure_last_error_ + uninitialized --> binding : bind_runtime [valid_bind_] / begin_bind_ + uninitialized --> bind_error : bind_runtime [invalid_bind_] / reject_bind_ + uninitialized --> prepare_error : prepare_runtime [always] / reject_prepare_ + idle --> binding : bind_runtime [valid_bind_] / begin_bind_ + idle --> bind_error : bind_runtime [invalid_bind_] / reject_bind_ + idle --> preparing : prepare_runtime [valid_prepare_with_bind_defaults_] / begin_prepare_bind_defaults_ + idle --> preparing : prepare_runtime [valid_prepare_with_request_overrides_] / begin_prepare_from_request_ + idle --> prepare_error : prepare_runtime [invalid_prepare_] / reject_prepare_ + done --> binding : bind_runtime [valid_bind_] / begin_bind_ + done --> bind_error : bind_runtime [invalid_bind_] / reject_bind_ + done --> preparing : prepare_runtime [valid_prepare_with_bind_defaults_] / begin_prepare_bind_defaults_ + done --> preparing : prepare_runtime [valid_prepare_with_request_overrides_] / begin_prepare_from_request_ + done --> prepare_error : prepare_runtime [invalid_prepare_] / reject_prepare_ + errored --> binding : bind_runtime [valid_bind_] / begin_bind_ + errored --> bind_error : bind_runtime [invalid_bind_] / reject_bind_ + errored --> preparing : prepare_runtime [valid_prepare_with_bind_defaults_] / begin_prepare_bind_defaults_ + errored --> preparing : prepare_runtime [valid_prepare_with_request_overrides_] / begin_prepare_from_request_ + errored --> prepare_error : prepare_runtime [invalid_prepare_] / reject_prepare_ + unexpected --> binding : bind_runtime [valid_bind_] / begin_bind_ + unexpected --> bind_error : bind_runtime [invalid_bind_] / reject_bind_ + unexpected --> preparing : prepare_runtime [valid_prepare_with_bind_defaults_] / begin_prepare_bind_defaults_ + unexpected --> preparing : prepare_runtime [valid_prepare_with_request_overrides_] / begin_prepare_from_request_ + unexpected --> prepare_error : prepare_runtime [invalid_prepare_] / reject_prepare_ + binding --> bind_decision : completion_bind_runtime_ [always] / dispatch_bind_tokenizer_ + bind_decision --> bind_error : completion_bind_runtime_ [bind_rejected_no_error_] / bind_error_backend_ + bind_decision --> bind_error : completion_bind_runtime_ [bind_error_invalid_argument_code_] / set_error_invalid_argument_ + bind_decision --> bind_error : completion_bind_runtime_ [bind_error_model_invalid_code_] / set_error_model_invalid_ + bind_decision --> bind_error : completion_bind_runtime_ [bind_error_capacity_code_] / set_error_capacity_ + bind_decision --> bind_error : completion_bind_runtime_ [bind_error_backend_code_] / set_error_backend_ + bind_decision --> bind_error : completion_bind_runtime_ [bind_error_untracked_code_] / set_error_untracked_ + bind_decision --> bind_success : completion_bind_runtime_ [bind_successful_] / bind_success_ + bind_success --> bind_publish_success : completion_bind_runtime_ [has_bind_error_out_] / write_bind_error_out_ + bind_success --> bind_publish_success : completion_bind_runtime_ [no_bind_error_out_] / none + bind_publish_success --> idle : completion_bind_runtime_ [has_bind_done_callback_] / emit_bind_done_ + bind_publish_success --> idle : completion_bind_runtime_ [no_bind_done_callback_] / none + bind_error --> bind_publish_error : completion_bind_runtime_ [has_bind_error_out_] / write_bind_error_out_ + bind_error --> bind_publish_error : completion_bind_runtime_ [no_bind_error_out_] / none + bind_publish_error --> errored : completion_bind_runtime_ [has_bind_error_callback_] / emit_bind_error_ + bind_publish_error --> errored : completion_bind_runtime_ [no_bind_error_callback_] / none + preparing --> format_decision : completion_prepare_runtime_ [always] / dispatch_format_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_rejected_no_error_] / format_error_backend_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_error_invalid_argument_code_] / set_error_invalid_argument_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_error_model_invalid_code_] / set_error_model_invalid_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_error_capacity_code_] / set_error_capacity_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_error_backend_code_] / set_error_backend_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_error_untracked_code_] / set_error_untracked_ + format_decision --> prepare_error : completion_prepare_runtime_ [format_length_overflow_] / format_error_invalid_argument_ + format_decision --> tokenizing : completion_prepare_runtime_ [format_successful_] / none + tokenizing --> tokenize_decision : completion_prepare_runtime_ [always] / dispatch_tokenize_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_rejected_no_error_] / tokenize_error_backend_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_error_invalid_argument_code_] / set_error_invalid_argument_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_error_model_invalid_code_] / set_error_model_invalid_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_error_capacity_code_] / set_error_capacity_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_error_backend_code_] / set_error_backend_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_error_untracked_code_] / set_error_untracked_ + tokenize_decision --> prepare_error : completion_prepare_runtime_ [tokenize_count_invalid_] / tokenize_error_backend_ + tokenize_decision --> prepare_success : completion_prepare_runtime_ [tokenize_successful_] / prepare_success_ + prepare_success --> prepare_publish_success_count : completion_prepare_runtime_ [always] / write_prepare_token_count_ + prepare_publish_success_count --> prepare_publish_success_error : completion_prepare_runtime_ [always] / write_prepare_error_out_ + prepare_publish_success_error --> done : completion_prepare_runtime_ [has_prepare_done_callback_] / emit_prepare_done_ + prepare_publish_success_error --> done : completion_prepare_runtime_ [no_prepare_done_callback_] / none + prepare_error --> prepare_publish_error_count : completion_prepare_runtime_ [always] / write_prepare_token_count_ + prepare_publish_error_count --> prepare_publish_error : completion_prepare_runtime_ [always] / write_prepare_error_out_ + prepare_publish_error --> errored : completion_prepare_runtime_ [has_prepare_error_callback_] / emit_prepare_error_ + prepare_publish_error --> errored : completion_prepare_runtime_ [no_prepare_error_callback_] / none uninitialized --> unexpected : _ [always] / on_unexpected_ binding --> unexpected : _ [always] / on_unexpected_ - binding_decision --> unexpected : _ [always] / on_unexpected_ - idle --> unexpected : _ [always] / on_unexpected_ - formatting --> unexpected : _ [always] / on_unexpected_ + bind_decision --> unexpected : _ [always] / on_unexpected_ + bind_success --> unexpected : _ [always] / on_unexpected_ + bind_error --> unexpected : _ [always] / on_unexpected_ + bind_publish_success --> unexpected : _ [always] / on_unexpected_ + bind_publish_error --> unexpected : _ [always] / on_unexpected_ + preparing --> unexpected : _ [always] / on_unexpected_ format_decision --> unexpected : _ [always] / on_unexpected_ tokenizing --> unexpected : _ [always] / on_unexpected_ tokenize_decision --> unexpected : _ [always] / on_unexpected_ + prepare_success --> unexpected : _ [always] / on_unexpected_ + prepare_error --> unexpected : _ [always] / on_unexpected_ + prepare_publish_success_count --> unexpected : _ [always] / on_unexpected_ + prepare_publish_success_error --> unexpected : _ [always] / on_unexpected_ + prepare_publish_error_count --> unexpected : _ [always] / on_unexpected_ + prepare_publish_error --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ + idle --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ ``` @@ -53,42 +100,89 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`formatting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`formatting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`formatting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`formatting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_tokenizer>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`formatting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`run_format>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`tokenizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`run_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_prepare_with_bind_defaults>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_prepare_bind_defaults>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_prepare_with_request_overrides>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_prepare_from_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_prepare_with_bind_defaults>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_prepare_bind_defaults>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_prepare_with_request_overrides>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_prepare_from_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_prepare_with_bind_defaults>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_prepare_bind_defaults>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_prepare_with_request_overrides>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_prepare_from_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_prepare_with_bind_defaults>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_prepare_bind_defaults>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`valid_prepare_with_request_overrides>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`begin_prepare_from_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`invalid_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`reject_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`dispatch_bind_tokenizer>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_rejected_no_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error_backend>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error_invalid_argument_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error_model_invalid_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error_capacity_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error_backend_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_backend>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error_untracked_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_successful>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_success>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`has_bind_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`write_bind_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`no_bind_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`has_bind_done_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`emit_bind_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`no_bind_done_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`has_bind_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`write_bind_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`no_bind_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`bind_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`has_bind_error_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`emit_bind_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`no_bind_error_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`dispatch_format>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`format_rejected_no_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`format_error_backend>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`format_error_invalid_argument_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`format_error_model_invalid_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`format_error_capacity_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`format_error_backend_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_backend>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`format_error_untracked_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`format_length_overflow>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`format_error_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`format_successful>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`tokenizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`dispatch_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenize_rejected_no_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenize_error_backend>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenize_error_invalid_argument_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_invalid_argument>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenize_error_model_invalid_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenize_error_capacity_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenize_error_backend_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_backend>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenize_error_untracked_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`set_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenize_count_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenize_error_backend>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`tokenize_successful>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_success>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`write_prepare_token_count>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_publish_success_count`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_publish_success_count`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`write_prepare_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_publish_success_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_publish_success_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`has_prepare_done_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`emit_prepare_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_publish_success_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`no_prepare_done_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`write_prepare_token_count>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_publish_error_count`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_publish_error_count`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`write_prepare_error_out>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`prepare_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`has_prepare_error_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`emit_prepare_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`no_prepare_error_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | -| [`formatting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`bind_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | | [`format_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | | [`tokenizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | | [`tokenize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_publish_success_count`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_publish_success_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_publish_error_count`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`prepare_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/conditioner/sm.hpp) | diff --git a/docs/architecture/text_detokenizer.md b/docs/architecture/text_detokenizer.md index bfe60496..4f7c87d9 100644 --- a/docs/architecture/text_detokenizer.md +++ b/docs/architecture/text_detokenizer.md @@ -9,36 +9,145 @@ stateDiagram-v2 direction TB [*] --> uninitialized uninitialized --> binding : bind [valid_bind_] / begin_bind_ - uninitialized --> errored : bind [invalid_bind_] / reject_bind_ - uninitialized --> errored : detokenize [always] / reject_detokenize_ + uninitialized --> binding_error_decision : bind [invalid_bind_] / reject_bind_ + uninitialized --> detokenize_error_decision : detokenize [always] / reject_detokenize_ idle --> binding : bind [valid_bind_] / begin_bind_ - idle --> errored : bind [invalid_bind_] / reject_bind_ + idle --> binding_error_decision : bind [invalid_bind_] / reject_bind_ idle --> decoding : detokenize [valid_detokenize_] / begin_detokenize_ - idle --> errored : detokenize [invalid_detokenize_] / reject_detokenize_ + idle --> detokenize_error_decision : detokenize [invalid_detokenize_] / reject_detokenize_ done --> binding : bind [valid_bind_] / begin_bind_ - done --> errored : bind [invalid_bind_] / reject_bind_ + done --> binding_error_decision : bind [invalid_bind_] / reject_bind_ done --> decoding : detokenize [valid_detokenize_] / begin_detokenize_ - done --> errored : detokenize [invalid_detokenize_] / reject_detokenize_ + done --> detokenize_error_decision : detokenize [invalid_detokenize_] / reject_detokenize_ errored --> binding : bind [valid_bind_] / begin_bind_ - errored --> errored : bind [invalid_bind_] / reject_bind_ + errored --> binding_error_decision : bind [invalid_bind_] / reject_bind_ errored --> decoding : detokenize [valid_detokenize_] / begin_detokenize_ - errored --> errored : detokenize [invalid_detokenize_] / reject_detokenize_ + errored --> detokenize_error_decision : detokenize [invalid_detokenize_] / reject_detokenize_ unexpected --> binding : bind [valid_bind_] / begin_bind_ - unexpected --> unexpected : bind [invalid_bind_] / reject_bind_ + unexpected --> binding_error_decision : bind [invalid_bind_] / reject_bind_ unexpected --> decoding : detokenize [valid_detokenize_] / begin_detokenize_ - unexpected --> unexpected : detokenize [invalid_detokenize_] / reject_detokenize_ - binding --> binding_decision : [always] / commit_bind_ - binding_decision --> idle : [phase_ok_] / none - binding_decision --> errored : [phase_failed_] / ensure_last_error_ - decoding --> decode_decision : [always] / decode_token_ - decode_decision --> done : [phase_ok_] / mark_done_ - decode_decision --> errored : [phase_failed_] / ensure_last_error_ + unexpected --> detokenize_error_decision : detokenize [invalid_detokenize_] / reject_detokenize_ + binding --> binding_error_decision : bind [always] / reject_bind_ + binding --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + binding_decision --> binding_error_decision : bind [always] / reject_bind_ + binding_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + binding_done_decision --> binding_error_decision : bind [always] / reject_bind_ + binding_done_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + binding_done_callback --> binding_error_decision : bind [always] / reject_bind_ + binding_done_callback --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + binding_error_decision --> binding_error_decision : bind [always] / reject_bind_ + binding_error_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + binding_error_callback --> binding_error_decision : bind [always] / reject_bind_ + binding_error_callback --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decoding --> binding_error_decision : bind [always] / reject_bind_ + decoding --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_token_validation --> binding_error_decision : bind [always] / reject_bind_ + decode_token_validation --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_piece_decision --> binding_error_decision : bind [always] / reject_bind_ + decode_piece_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_byte_capacity_decision --> binding_error_decision : bind [always] / reject_bind_ + decode_byte_capacity_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_byte_pending_decision --> binding_error_decision : bind [always] / reject_bind_ + decode_byte_pending_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_byte_pending_write --> binding_error_decision : bind [always] / reject_bind_ + decode_byte_pending_write --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_text_pending_decision --> binding_error_decision : bind [always] / reject_bind_ + decode_text_pending_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_text_pending_write --> binding_error_decision : bind [always] / reject_bind_ + decode_text_pending_write --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_text_write --> binding_error_decision : bind [always] / reject_bind_ + decode_text_write --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + decode_decision --> binding_error_decision : bind [always] / reject_bind_ + decode_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + detokenize_done_decision --> binding_error_decision : bind [always] / reject_bind_ + detokenize_done_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + detokenize_done_callback --> binding_error_decision : bind [always] / reject_bind_ + detokenize_done_callback --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + detokenize_error_decision --> binding_error_decision : bind [always] / reject_bind_ + detokenize_error_decision --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + detokenize_error_callback --> binding_error_decision : bind [always] / reject_bind_ + detokenize_error_callback --> detokenize_error_decision : detokenize [always] / reject_detokenize_ + binding --> binding_decision : completion_bind_ [always] / commit_bind_ + binding_decision --> binding_done_decision : completion_bind_ [bind_error_none_] / none + binding_decision --> binding_error_decision : completion_bind_ [bind_error_invalid_request_] / none + binding_decision --> binding_error_decision : completion_bind_ [bind_error_model_invalid_] / none + binding_decision --> binding_error_decision : completion_bind_ [bind_error_backend_error_] / none + binding_decision --> binding_error_decision : completion_bind_ [bind_error_internal_error_] / none + binding_decision --> binding_error_decision : completion_bind_ [bind_error_untracked_] / none + binding_decision --> binding_error_decision : completion_bind_ [bind_error_unknown_] / none + binding_done_decision --> binding_done_callback : completion_bind_ [has_bind_done_callback_] / notify_bind_done_ + binding_done_decision --> idle : completion_bind_ [no_bind_done_callback_] / none + binding_done_callback --> idle : completion_bind_ [always] / none + binding_error_decision --> binding_error_callback : completion_bind_ [has_bind_error_callback_] / notify_bind_error_ + binding_error_decision --> errored : completion_bind_ [no_bind_error_callback_] / none + binding_error_callback --> errored : completion_bind_ [always] / none + decoding --> decode_token_validation : completion_detokenize_ [always] / none + decode_token_validation --> decode_piece_decision : completion_detokenize_ [detokenize_token_in_vocab_] / none + decode_token_validation --> detokenize_error_decision : completion_detokenize_ [detokenize_token_out_of_vocab_] / mark_model_invalid_ + decode_piece_decision --> detokenize_done_decision : completion_detokenize_ [detokenize_skip_special_piece_] / mark_done_ + decode_piece_decision --> decode_byte_capacity_decision : completion_detokenize_ [detokenize_byte_piece_] / none + decode_piece_decision --> decode_text_pending_decision : completion_detokenize_ [detokenize_text_piece_] / none + decode_piece_decision --> detokenize_error_decision : completion_detokenize_ [always] / mark_internal_error_ + decode_byte_capacity_decision --> decode_byte_pending_decision : completion_detokenize_ [detokenize_pending_has_capacity_for_byte_] / append_byte_piece_ + decode_byte_capacity_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_pending_no_capacity_for_byte_] / mark_invalid_pending_full_ + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_invalid_request_] / none + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_model_invalid_] / none + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_backend_error_] / none + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_internal_error_] / none + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_untracked_] / none + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_unknown_] / none + decode_byte_pending_decision --> decode_byte_pending_write : completion_detokenize_ [detokenize_pending_head_complete_] / write_pending_head_sequence_ + decode_byte_pending_decision --> decode_decision : completion_detokenize_ [detokenize_pending_empty_] / none + decode_byte_pending_decision --> decode_decision : completion_detokenize_ [detokenize_pending_head_incomplete_] / none + decode_byte_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_pending_head_invalid_] / mark_invalid_pending_sequence_ + decode_byte_pending_write --> decode_byte_pending_decision : completion_detokenize_ [always] / none + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_invalid_request_] / none + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_model_invalid_] / none + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_backend_error_] / none + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_internal_error_] / none + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_untracked_] / none + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_unknown_] / none + decode_text_pending_decision --> decode_text_pending_write : completion_detokenize_ [detokenize_pending_head_complete_] / write_pending_head_sequence_ + decode_text_pending_decision --> decode_text_write : completion_detokenize_ [detokenize_pending_empty_] / write_text_piece_ + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_pending_head_incomplete_] / mark_invalid_pending_not_empty_ + decode_text_pending_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_pending_head_invalid_] / mark_invalid_pending_sequence_ + decode_text_pending_write --> decode_text_pending_decision : completion_detokenize_ [always] / none + decode_text_write --> decode_decision : completion_detokenize_ [always] / none + decode_decision --> detokenize_done_decision : completion_detokenize_ [detokenize_error_none_] / mark_done_ + decode_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_invalid_request_] / none + decode_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_model_invalid_] / none + decode_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_backend_error_] / none + decode_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_internal_error_] / none + decode_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_untracked_] / none + decode_decision --> detokenize_error_decision : completion_detokenize_ [detokenize_error_unknown_] / none + detokenize_done_decision --> detokenize_done_callback : completion_detokenize_ [has_detokenize_done_callback_] / none + detokenize_done_decision --> done : completion_detokenize_ [no_detokenize_done_callback_] / none + detokenize_done_callback --> done : completion_detokenize_ [always] / notify_detokenize_done_ + detokenize_error_decision --> detokenize_error_callback : completion_detokenize_ [has_detokenize_error_callback_] / notify_detokenize_error_ + detokenize_error_decision --> errored : completion_detokenize_ [no_detokenize_error_callback_] / none + detokenize_error_callback --> errored : completion_detokenize_ [always] / none uninitialized --> unexpected : _ [always] / on_unexpected_ binding --> unexpected : _ [always] / on_unexpected_ binding_decision --> unexpected : _ [always] / on_unexpected_ + binding_done_decision --> unexpected : _ [always] / on_unexpected_ + binding_done_callback --> unexpected : _ [always] / on_unexpected_ + binding_error_decision --> unexpected : _ [always] / on_unexpected_ + binding_error_callback --> unexpected : _ [always] / on_unexpected_ idle --> unexpected : _ [always] / on_unexpected_ decoding --> unexpected : _ [always] / on_unexpected_ + decode_token_validation --> unexpected : _ [always] / on_unexpected_ + decode_piece_decision --> unexpected : _ [always] / on_unexpected_ + decode_byte_capacity_decision --> unexpected : _ [always] / on_unexpected_ + decode_byte_pending_decision --> unexpected : _ [always] / on_unexpected_ + decode_byte_pending_write --> unexpected : _ [always] / on_unexpected_ + decode_text_pending_decision --> unexpected : _ [always] / on_unexpected_ + decode_text_pending_write --> unexpected : _ [always] / on_unexpected_ + decode_text_write --> unexpected : _ [always] / on_unexpected_ decode_decision --> unexpected : _ [always] / on_unexpected_ + detokenize_done_decision --> unexpected : _ [always] / on_unexpected_ + detokenize_done_callback --> unexpected : _ [always] / on_unexpected_ + detokenize_error_decision --> unexpected : _ [always] / on_unexpected_ + detokenize_error_callback --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ @@ -49,36 +158,145 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`valid_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`begin_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`valid_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`begin_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`valid_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`begin_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`valid_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`begin_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`commit_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`decoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | -| [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`invalid_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_token_validation`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_token_validation`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_piece_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_piece_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`reject_detokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`commit_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind_error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`bind_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`has_bind_done_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`notify_bind_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`no_bind_done_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`has_bind_error_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`notify_bind_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`binding_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`no_bind_error_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_token_validation`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_token_validation`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_token_in_vocab>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_piece_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_token_validation`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_token_out_of_vocab>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`mark_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_piece_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_skip_special_piece>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_piece_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_byte_piece>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_byte_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_piece_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_text_piece>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_piece_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_pending_has_capacity_for_byte>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`append_byte_piece>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_pending_no_capacity_for_byte>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`mark_invalid_pending_full>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_pending_head_complete>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`write_pending_head_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_byte_pending_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_pending_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_pending_head_incomplete>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_pending_head_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`mark_invalid_pending_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_pending_head_complete>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`write_pending_head_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_text_pending_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_pending_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`write_text_piece>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_text_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_pending_head_incomplete>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`mark_invalid_pending_not_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_pending_head_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`mark_invalid_pending_sequence>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`has_detokenize_done_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`no_detokenize_done_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`notify_detokenize_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`has_detokenize_error_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`notify_detokenize_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`detokenize_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`no_detokenize_error_callback>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`binding_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`decoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_token_validation`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_piece_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_byte_pending_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_pending_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`decode_text_write`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`decode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_done_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_done_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_error_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | +| [`detokenize_error_callback`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/detokenizer/sm.hpp) | diff --git a/docs/architecture/text_encoders.md b/docs/architecture/text_encoders.md deleted file mode 100644 index f56e6284..00000000 --- a/docs/architecture/text_encoders.md +++ /dev/null @@ -1,78 +0,0 @@ -# text_encoders - -Source: [`emel/text/encoders/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) - -## Mermaid - -```mermaid -stateDiagram-v2 - direction TB - [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ - initialized --> unexpected : encoding_done [always] / on_unexpected_ - initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ - done --> unexpected : encoding_done [always] / on_unexpected_ - done --> unexpected : encoding_error [always] / on_unexpected_ - errored --> unexpected : encoding_done [always] / on_unexpected_ - errored --> unexpected : encoding_error [always] / on_unexpected_ - unexpected --> unexpected : encoding_done [always] / on_unexpected_ - unexpected --> unexpected : encoding_error [always] / on_unexpected_ - initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ - done --> unexpected : _ [always] / on_unexpected_ - errored --> unexpected : _ [always] / on_unexpected_ - unexpected --> unexpected : _ [always] / on_unexpected_ -``` - -## Transitions - -| Source | Event | Guard | Action | Target | -| --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`run_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/sm.hpp) | diff --git a/docs/architecture/text_encoders_bpe.md b/docs/architecture/text_encoders_bpe.md index a7192d0d..39d63dfb 100644 --- a/docs/architecture/text_encoders_bpe.md +++ b/docs/architecture/text_encoders_bpe.md @@ -8,25 +8,72 @@ Source: [`emel/text/encoders/bpe/sm.hpp`](https://github.com/stateforward/emel.c stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> encode_input_policy_decision : completion_encode_runtime_ [text_non_empty_] / none + encode_precheck_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_input_policy_decision --> encode_table_prepare : completion_encode_runtime_ [preprocessed_] / prepare_tables_ + encode_input_policy_decision --> errored : completion_encode_runtime_ [not_preprocessed_] / reject_invalid_encode_ + encode_input_policy_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_table_prepare --> encode_path_decision : completion_encode_runtime_ [table_prepare_ok_] / none + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_backend_error_] / ensure_last_error_ + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_invalid_argument_error_] / ensure_last_error_ + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_model_invalid_error_] / ensure_last_error_ + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_unclassified_error_code_] / ensure_last_error_ + encode_path_decision --> encode_direct_word_policy_decision : completion_encode_runtime_ [ignore_merges_enabled_] / none + encode_path_decision --> encode_exec : completion_encode_runtime_ [always] / none + encode_direct_word_policy_decision --> encode_result_decision : completion_encode_runtime_ [direct_word_token_available_] / run_encode_ignore_merges_ + encode_direct_word_policy_decision --> encode_merge_input_capacity_decision : completion_encode_runtime_ [always] / none + encode_merge_input_capacity_decision --> encode_exec : completion_encode_runtime_ [merge_symbol_capacity_within_limit_] / none + encode_merge_input_capacity_decision --> errored : completion_encode_runtime_ [merge_symbol_capacity_exceeded_] / reject_invalid_encode_ + encode_merge_input_capacity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_exec --> encode_result_decision : completion_encode_runtime_ [always] / run_encode_merge_path_ + encode_result_decision --> done : completion_encode_runtime_ [encode_result_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_invalid_argument_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_backend_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_model_invalid_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_unclassified_error_code_] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_input_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_table_prepare --> unexpected : encode_runtime [always] / on_unexpected_ + encode_path_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_direct_word_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_exec --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_input_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_input_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_table_prepare --> unexpected : encoding_done [always] / on_unexpected_ + encode_table_prepare --> unexpected : encoding_error [always] / on_unexpected_ + encode_path_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_path_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_direct_word_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_direct_word_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_exec --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -34,8 +81,16 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + encode_input_policy_decision --> unexpected : _ [always] / on_unexpected_ + encode_table_prepare --> unexpected : _ [always] / on_unexpected_ + encode_path_decision --> unexpected : _ [always] / on_unexpected_ + encode_direct_word_policy_decision --> unexpected : _ [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : _ [always] / on_unexpected_ + encode_exec --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ @@ -45,25 +100,72 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`run_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`vocab_changed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`begin_encode_sync_vocab>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`vocab_unchanged>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`text_non_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_input_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_input_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`preprocessed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`prepare_tables>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_input_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`not_preprocessed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_input_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`table_prepare_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_path_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`table_prepare_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`table_prepare_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`table_prepare_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`table_prepare_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_path_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`ignore_merges_enabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_direct_word_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_path_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_direct_word_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`direct_word_token_available>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`run_encode_ignore_merges>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_direct_word_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`merge_symbol_capacity_within_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`merge_symbol_capacity_exceeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`run_encode_merge_path>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_result_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_result_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_result_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_input_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_path_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_direct_word_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_input_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_input_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_path_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_path_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_direct_word_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_direct_word_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | @@ -71,8 +173,16 @@ stateDiagram-v2 | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_input_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_path_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_direct_word_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/bpe/sm.hpp) | diff --git a/docs/architecture/text_encoders_fallback.md b/docs/architecture/text_encoders_fallback.md index 39088573..dbaaf0c3 100644 --- a/docs/architecture/text_encoders_fallback.md +++ b/docs/architecture/text_encoders_fallback.md @@ -8,25 +8,55 @@ Source: [`emel/text/encoders/fallback/sm.hpp`](https://github.com/stateforward/e stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> encode_table_prepare : completion_encode_runtime_ [text_non_empty_] / prepare_tables_ + encode_table_prepare --> encode_exec : completion_encode_runtime_ [table_prepare_ok_] / none + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_invalid_argument_error_] / ensure_last_error_ + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_backend_error_] / ensure_last_error_ + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_model_invalid_error_] / ensure_last_error_ + encode_table_prepare --> errored : completion_encode_runtime_ [table_prepare_unclassified_error_code_] / ensure_last_error_ + encode_exec --> emit_result_decision : completion_encode_runtime_ [always] / run_encode_exec_ + emit_result_decision --> encode_result_decision : completion_encode_runtime_ [emit_result_ok_] / apply_emit_result_ok_ + emit_result_decision --> encode_result_decision : completion_encode_runtime_ [emit_result_failed_] / apply_emit_result_failed_ + emit_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_result_decision --> done : completion_encode_runtime_ [encode_result_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_invalid_argument_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_backend_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_model_invalid_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_unclassified_error_code_] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_table_prepare --> unexpected : encode_runtime [always] / on_unexpected_ + encode_exec --> unexpected : encode_runtime [always] / on_unexpected_ + emit_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_table_prepare --> unexpected : encoding_done [always] / on_unexpected_ + encode_table_prepare --> unexpected : encoding_error [always] / on_unexpected_ + encode_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_exec --> unexpected : encoding_error [always] / on_unexpected_ + emit_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + emit_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -34,8 +64,13 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + encode_table_prepare --> unexpected : _ [always] / on_unexpected_ + encode_exec --> unexpected : _ [always] / on_unexpected_ + emit_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ @@ -45,25 +80,55 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`run_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`vocab_changed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`begin_encode_sync_vocab>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`vocab_unchanged>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`text_non_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`prepare_tables>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`table_prepare_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`table_prepare_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`table_prepare_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`table_prepare_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`table_prepare_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`run_encode_exec>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`emit_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`apply_emit_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`emit_result_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`apply_emit_result_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_result_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_result_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_result_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | @@ -71,8 +136,13 @@ stateDiagram-v2 | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_table_prepare`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/fallback/sm.hpp) | diff --git a/docs/architecture/text_encoders_plamo2.md b/docs/architecture/text_encoders_plamo2.md index 28ed62cf..69bc437c 100644 --- a/docs/architecture/text_encoders_plamo2.md +++ b/docs/architecture/text_encoders_plamo2.md @@ -8,25 +8,88 @@ Source: [`emel/text/encoders/plamo2/sm.hpp`](https://github.com/stateforward/eme stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> table_policy_decision : completion_encode_runtime_ [text_non_empty_] / none + encode_precheck_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_policy_decision --> table_sync_exec : completion_encode_runtime_ [tables_missing_] / none + table_policy_decision --> decode_exec : completion_encode_runtime_ [tables_ready_] / none + table_policy_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_sync_exec --> table_sync_result_decision : completion_encode_runtime_ [always] / sync_tables_ + table_sync_result_decision --> decode_exec : completion_encode_runtime_ [table_sync_ok_] / none + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_invalid_argument_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_backend_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_model_invalid_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_unclassified_error_code_] / ensure_last_error_ + decode_exec --> decode_result_decision : completion_encode_runtime_ [always] / decode_input_ + decode_result_decision --> done : completion_encode_runtime_ [decode_result_empty_ok_] / mark_done_ + decode_result_decision --> dp_prepare_exec : completion_encode_runtime_ [decode_result_non_empty_ok_] / none + decode_result_decision --> errored : completion_encode_runtime_ [decode_result_invalid_argument_error_] / ensure_last_error_ + decode_result_decision --> errored : completion_encode_runtime_ [decode_result_backend_error_] / ensure_last_error_ + decode_result_decision --> errored : completion_encode_runtime_ [decode_result_model_invalid_error_] / ensure_last_error_ + decode_result_decision --> errored : completion_encode_runtime_ [decode_result_unclassified_error_code_] / ensure_last_error_ + dp_prepare_exec --> dp_exec : completion_encode_runtime_ [always] / prepare_dp_ + dp_exec --> emit_exec : completion_encode_runtime_ [always] / run_dp_ + emit_exec --> emit_result_decision : completion_encode_runtime_ [always] / emit_tokens_ + emit_result_decision --> encode_result_decision : completion_encode_runtime_ [emit_result_ok_] / apply_emit_result_ok_ + emit_result_decision --> encode_result_decision : completion_encode_runtime_ [emit_result_failed_] / apply_emit_result_failed_ + emit_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_result_decision --> done : completion_encode_runtime_ [encode_result_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_invalid_argument_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_backend_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_model_invalid_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_unclassified_error_code_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_exec --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + decode_exec --> unexpected : encode_runtime [always] / on_unexpected_ + decode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + dp_prepare_exec --> unexpected : encode_runtime [always] / on_unexpected_ + dp_exec --> unexpected : encode_runtime [always] / on_unexpected_ + emit_exec --> unexpected : encode_runtime [always] / on_unexpected_ + emit_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + decode_exec --> unexpected : encoding_done [always] / on_unexpected_ + decode_exec --> unexpected : encoding_error [always] / on_unexpected_ + decode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + decode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + dp_prepare_exec --> unexpected : encoding_done [always] / on_unexpected_ + dp_prepare_exec --> unexpected : encoding_error [always] / on_unexpected_ + dp_exec --> unexpected : encoding_done [always] / on_unexpected_ + dp_exec --> unexpected : encoding_error [always] / on_unexpected_ + emit_exec --> unexpected : encoding_done [always] / on_unexpected_ + emit_exec --> unexpected : encoding_error [always] / on_unexpected_ + emit_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + emit_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -34,8 +97,19 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + table_policy_decision --> unexpected : _ [always] / on_unexpected_ + table_sync_exec --> unexpected : _ [always] / on_unexpected_ + table_sync_result_decision --> unexpected : _ [always] / on_unexpected_ + decode_exec --> unexpected : _ [always] / on_unexpected_ + decode_result_decision --> unexpected : _ [always] / on_unexpected_ + dp_prepare_exec --> unexpected : _ [always] / on_unexpected_ + dp_exec --> unexpected : _ [always] / on_unexpected_ + emit_exec --> unexpected : _ [always] / on_unexpected_ + emit_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ @@ -45,25 +119,88 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`run_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`vocab_changed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`begin_encode_sync_vocab>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`vocab_unchanged>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`text_non_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`tables_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`tables_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`decode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`sync_tables>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`table_sync_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`decode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`table_sync_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`table_sync_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`table_sync_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`table_sync_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`decode_input>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`decode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`decode_result_empty_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`decode_result_non_empty_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`dp_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`decode_result_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`decode_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`decode_result_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`decode_result_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`dp_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`prepare_dp>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`dp_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`dp_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`run_dp>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`emit_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`emit_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`emit_tokens>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`emit_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`apply_emit_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`emit_result_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`apply_emit_result_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_result_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_result_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_result_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`dp_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`dp_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`emit_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`dp_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`dp_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`dp_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`dp_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`emit_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`emit_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | @@ -71,8 +208,19 @@ stateDiagram-v2 | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`decode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`dp_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`dp_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`emit_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/plamo2/sm.hpp) | diff --git a/docs/architecture/text_encoders_rwkv.md b/docs/architecture/text_encoders_rwkv.md index 01f1e9fe..59fa5cb9 100644 --- a/docs/architecture/text_encoders_rwkv.md +++ b/docs/architecture/text_encoders_rwkv.md @@ -8,25 +8,86 @@ Source: [`emel/text/encoders/rwkv/sm.hpp`](https://github.com/stateforward/emel. stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> encode_capacity_decision : completion_encode_runtime_ [text_non_empty_] / none + encode_precheck_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_capacity_decision --> table_policy_decision : completion_encode_runtime_ [output_capacity_covers_text_] / none + encode_capacity_decision --> errored : completion_encode_runtime_ [output_capacity_short_] / reject_invalid_encode_ + encode_capacity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + table_policy_decision --> table_sync_exec : completion_encode_runtime_ [tables_missing_] / none + table_policy_decision --> unk_resolution_decision : completion_encode_runtime_ [tables_ready_] / none + table_policy_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_sync_exec --> table_sync_result_decision : completion_encode_runtime_ [always] / sync_tables_ + table_sync_result_decision --> unk_resolution_decision : completion_encode_runtime_ [table_sync_ok_] / none + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_invalid_argument_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_backend_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_model_invalid_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_unclassified_error_code_] / ensure_last_error_ + unk_resolution_decision --> encode_exec : completion_encode_runtime_ [vocab_unk_present_] / resolve_vocab_unk_ + unk_resolution_decision --> unk_lookup_exec : completion_encode_runtime_ [vocab_unk_missing_] / none + unk_lookup_exec --> unk_lookup_result_decision : completion_encode_runtime_ [always] / lookup_unk_candidate_ + unk_lookup_result_decision --> encode_exec : completion_encode_runtime_ [unk_lookup_found_] / set_unk_from_lookup_ + unk_lookup_result_decision --> encode_exec : completion_encode_runtime_ [unk_lookup_missing_] / set_unk_missing_ + encode_exec --> encode_emit_result_decision : completion_encode_runtime_ [always] / run_encode_ + encode_emit_result_decision --> errored : completion_encode_runtime_ [encode_push_failed_] / mark_encode_push_failed_ + encode_emit_result_decision --> encode_result_decision : completion_encode_runtime_ [encode_push_ok_] / none + encode_emit_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_result_decision --> done : completion_encode_runtime_ [encode_result_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_invalid_argument_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_backend_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_model_invalid_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_unclassified_error_code_] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_capacity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_exec --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + unk_resolution_decision --> unexpected : encode_runtime [always] / on_unexpected_ + unk_lookup_exec --> unexpected : encode_runtime [always] / on_unexpected_ + unk_lookup_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_exec --> unexpected : encode_runtime [always] / on_unexpected_ + encode_emit_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_capacity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_capacity_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + unk_resolution_decision --> unexpected : encoding_done [always] / on_unexpected_ + unk_resolution_decision --> unexpected : encoding_error [always] / on_unexpected_ + unk_lookup_exec --> unexpected : encoding_done [always] / on_unexpected_ + unk_lookup_exec --> unexpected : encoding_error [always] / on_unexpected_ + unk_lookup_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + unk_lookup_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_exec --> unexpected : encoding_error [always] / on_unexpected_ + encode_emit_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_emit_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -34,8 +95,19 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + encode_capacity_decision --> unexpected : _ [always] / on_unexpected_ + table_policy_decision --> unexpected : _ [always] / on_unexpected_ + table_sync_exec --> unexpected : _ [always] / on_unexpected_ + table_sync_result_decision --> unexpected : _ [always] / on_unexpected_ + unk_resolution_decision --> unexpected : _ [always] / on_unexpected_ + unk_lookup_exec --> unexpected : _ [always] / on_unexpected_ + unk_lookup_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_exec --> unexpected : _ [always] / on_unexpected_ + encode_emit_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ @@ -45,25 +117,86 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`run_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`vocab_changed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`begin_encode_sync_vocab>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`vocab_unchanged>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`text_non_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`output_capacity_covers_text>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`output_capacity_short>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`tables_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`tables_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`sync_tables>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`table_sync_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`table_sync_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`table_sync_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`table_sync_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`table_sync_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`vocab_unk_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`resolve_vocab_unk>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`vocab_unk_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unk_lookup_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_lookup_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`lookup_unk_candidate>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unk_lookup_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_lookup_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unk_lookup_found>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`set_unk_from_lookup>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_lookup_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unk_lookup_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`set_unk_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`run_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_push_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`mark_encode_push_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_push_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_result_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_result_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_result_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_lookup_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_lookup_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_lookup_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_lookup_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_lookup_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_lookup_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | @@ -71,8 +204,19 @@ stateDiagram-v2 | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_lookup_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`unk_lookup_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/rwkv/sm.hpp) | diff --git a/docs/architecture/text_encoders_spm.md b/docs/architecture/text_encoders_spm.md index 1882ba02..49ef4e1e 100644 --- a/docs/architecture/text_encoders_spm.md +++ b/docs/architecture/text_encoders_spm.md @@ -8,25 +8,102 @@ Source: [`emel/text/encoders/spm/sm.hpp`](https://github.com/stateforward/emel.c stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> table_policy_decision : completion_encode_runtime_ [text_non_empty_] / none + encode_precheck_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_policy_decision --> table_sync_exec : completion_encode_runtime_ [tables_missing_] / none + table_policy_decision --> encode_prepare_exec : completion_encode_runtime_ [tables_ready_] / none + table_policy_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_sync_exec --> table_sync_result_decision : completion_encode_runtime_ [always] / sync_tables_ + table_sync_result_decision --> encode_prepare_exec : completion_encode_runtime_ [table_sync_ok_] / none + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_invalid_argument_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_backend_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_model_invalid_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_unclassified_error_code_] / ensure_last_error_ + encode_prepare_exec --> encode_prepare_result_decision : completion_encode_runtime_ [always] / run_prepare_ + encode_prepare_result_decision --> encode_merge_input_capacity_decision : completion_encode_runtime_ [prepare_result_ok_] / none + encode_prepare_result_decision --> errored : completion_encode_runtime_ [prepare_result_invalid_argument_error_] / ensure_last_error_ + encode_prepare_result_decision --> errored : completion_encode_runtime_ [prepare_result_backend_error_] / ensure_last_error_ + encode_prepare_result_decision --> errored : completion_encode_runtime_ [prepare_result_model_invalid_error_] / ensure_last_error_ + encode_prepare_result_decision --> errored : completion_encode_runtime_ [prepare_result_unclassified_error_code_] / ensure_last_error_ + encode_merge_input_capacity_decision --> encode_merge_exec : completion_encode_runtime_ [merge_symbol_capacity_within_limit_] / none + encode_merge_input_capacity_decision --> errored : completion_encode_runtime_ [merge_symbol_capacity_exceeded_] / reject_invalid_encode_ + encode_merge_input_capacity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_merge_exec --> encode_merge_result_decision : completion_encode_runtime_ [always] / run_merge_ + encode_merge_result_decision --> encode_emit_input_decision : completion_encode_runtime_ [merge_result_ok_] / none + encode_merge_result_decision --> errored : completion_encode_runtime_ [merge_result_invalid_argument_error_] / ensure_last_error_ + encode_merge_result_decision --> errored : completion_encode_runtime_ [merge_result_backend_error_] / ensure_last_error_ + encode_merge_result_decision --> errored : completion_encode_runtime_ [merge_result_model_invalid_error_] / ensure_last_error_ + encode_merge_result_decision --> errored : completion_encode_runtime_ [merge_result_unclassified_error_code_] / ensure_last_error_ + encode_emit_input_decision --> encode_exec : completion_encode_runtime_ [symbols_present_] / none + encode_emit_input_decision --> encode_result_decision : completion_encode_runtime_ [symbols_absent_] / set_emit_result_empty_ + encode_emit_input_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_exec --> emit_result_decision : completion_encode_runtime_ [always] / run_encode_ + emit_result_decision --> encode_result_decision : completion_encode_runtime_ [emit_result_ok_] / apply_emit_result_ok_ + emit_result_decision --> encode_result_decision : completion_encode_runtime_ [emit_result_failed_] / apply_emit_result_failed_ + emit_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_result_decision --> done : completion_encode_runtime_ [encode_result_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_invalid_argument_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_backend_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_model_invalid_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_unclassified_error_code_] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_exec --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_prepare_exec --> unexpected : encode_runtime [always] / on_unexpected_ + encode_prepare_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_merge_exec --> unexpected : encode_runtime [always] / on_unexpected_ + encode_merge_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_emit_input_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_exec --> unexpected : encode_runtime [always] / on_unexpected_ + emit_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_prepare_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_prepare_exec --> unexpected : encoding_error [always] / on_unexpected_ + encode_prepare_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_prepare_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_merge_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_merge_exec --> unexpected : encoding_error [always] / on_unexpected_ + encode_merge_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_merge_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_emit_input_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_emit_input_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_exec --> unexpected : encoding_error [always] / on_unexpected_ + emit_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + emit_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -34,8 +111,21 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + table_policy_decision --> unexpected : _ [always] / on_unexpected_ + table_sync_exec --> unexpected : _ [always] / on_unexpected_ + table_sync_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_prepare_exec --> unexpected : _ [always] / on_unexpected_ + encode_prepare_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_merge_input_capacity_decision --> unexpected : _ [always] / on_unexpected_ + encode_merge_exec --> unexpected : _ [always] / on_unexpected_ + encode_merge_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_emit_input_decision --> unexpected : _ [always] / on_unexpected_ + encode_exec --> unexpected : _ [always] / on_unexpected_ + emit_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ @@ -45,25 +135,102 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`run_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`vocab_changed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`begin_encode_sync_vocab>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`vocab_unchanged>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`text_non_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`tables_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`tables_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`sync_tables>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`table_sync_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`table_sync_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`table_sync_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`table_sync_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`table_sync_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`run_prepare>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`prepare_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`prepare_result_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`prepare_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`prepare_result_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`prepare_result_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`merge_symbol_capacity_within_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_merge_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`merge_symbol_capacity_exceeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`run_merge>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_merge_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`merge_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_emit_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`merge_result_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`merge_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`merge_result_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`merge_result_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_emit_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`symbols_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_emit_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`symbols_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`set_emit_result_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_emit_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`run_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`emit_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`apply_emit_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`emit_result_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`apply_emit_result_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_result_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_result_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_result_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_emit_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_emit_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_emit_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | @@ -71,8 +238,21 @@ stateDiagram-v2 | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_merge_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_emit_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/spm/sm.hpp) | diff --git a/docs/architecture/text_encoders_ugm.md b/docs/architecture/text_encoders_ugm.md index c544a786..009b9e37 100644 --- a/docs/architecture/text_encoders_ugm.md +++ b/docs/architecture/text_encoders_ugm.md @@ -8,25 +8,114 @@ Source: [`emel/text/encoders/ugm/sm.hpp`](https://github.com/stateforward/emel.c stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> table_policy_decision : completion_encode_runtime_ [text_non_empty_] / none + encode_precheck_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_policy_decision --> table_sync_exec : completion_encode_runtime_ [tables_missing_] / none + table_policy_decision --> unk_resolution_decision : completion_encode_runtime_ [tables_ready_] / none + table_policy_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_sync_exec --> table_sync_result_decision : completion_encode_runtime_ [always] / sync_tables_ + table_sync_result_decision --> unk_resolution_decision : completion_encode_runtime_ [table_sync_ok_] / none + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_invalid_argument_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_backend_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_model_invalid_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_unclassified_error_code_] / ensure_last_error_ + unk_resolution_decision --> normalize_exec : completion_encode_runtime_ [vocab_unk_present_] / resolve_vocab_unk_ + unk_resolution_decision --> unk_lookup_exec : completion_encode_runtime_ [vocab_unk_missing_] / none + unk_lookup_exec --> normalize_exec : completion_encode_runtime_ [always] / lookup_unk_id_ + normalize_exec --> normalize_result_decision : completion_encode_runtime_ [always] / normalize_input_ + normalize_result_decision --> input_prepare_exec : completion_encode_runtime_ [normalize_result_ok_] / none + normalize_result_decision --> errored : completion_encode_runtime_ [normalize_result_invalid_argument_error_] / ensure_last_error_ + normalize_result_decision --> errored : completion_encode_runtime_ [normalize_result_backend_error_] / ensure_last_error_ + normalize_result_decision --> errored : completion_encode_runtime_ [normalize_result_model_invalid_error_] / ensure_last_error_ + normalize_result_decision --> errored : completion_encode_runtime_ [normalize_result_unclassified_error_code_] / ensure_last_error_ + input_prepare_exec --> input_prepare_result_decision : completion_encode_runtime_ [always] / prepare_dp_input_ + input_prepare_result_decision --> dp_forward_exec : completion_encode_runtime_ [input_prepare_result_non_empty_ok_] / none + input_prepare_result_decision --> done : completion_encode_runtime_ [input_prepare_result_empty_ok_] / mark_done_ + input_prepare_result_decision --> errored : completion_encode_runtime_ [input_prepare_result_invalid_argument_error_] / ensure_last_error_ + input_prepare_result_decision --> errored : completion_encode_runtime_ [input_prepare_result_backend_error_] / ensure_last_error_ + input_prepare_result_decision --> errored : completion_encode_runtime_ [input_prepare_result_model_invalid_error_] / ensure_last_error_ + input_prepare_result_decision --> errored : completion_encode_runtime_ [input_prepare_result_unclassified_error_code_] / ensure_last_error_ + dp_forward_exec --> dp_forward_result_decision : completion_encode_runtime_ [always] / run_dp_forward_ + dp_forward_result_decision --> dp_backtrace_exec : completion_encode_runtime_ [dp_forward_result_ok_] / none + dp_forward_result_decision --> errored : completion_encode_runtime_ [dp_forward_result_invalid_argument_error_] / ensure_last_error_ + dp_forward_result_decision --> errored : completion_encode_runtime_ [dp_forward_result_backend_error_] / ensure_last_error_ + dp_forward_result_decision --> errored : completion_encode_runtime_ [dp_forward_result_model_invalid_error_] / ensure_last_error_ + dp_forward_result_decision --> errored : completion_encode_runtime_ [dp_forward_result_unclassified_error_code_] / ensure_last_error_ + dp_backtrace_exec --> dp_backtrace_result_decision : completion_encode_runtime_ [always] / run_dp_backtrace_ + dp_backtrace_result_decision --> emit_exec : completion_encode_runtime_ [backtrace_ok_] / none + dp_backtrace_result_decision --> errored : completion_encode_runtime_ [backtrace_failed_] / mark_backtrace_failed_ + dp_backtrace_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + emit_exec --> encode_result_decision : completion_encode_runtime_ [always] / emit_tokens_ + encode_result_decision --> done : completion_encode_runtime_ [emit_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [emit_failed_] / mark_emit_failed_ + encode_result_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_exec --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + unk_resolution_decision --> unexpected : encode_runtime [always] / on_unexpected_ + unk_lookup_exec --> unexpected : encode_runtime [always] / on_unexpected_ + normalize_exec --> unexpected : encode_runtime [always] / on_unexpected_ + normalize_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + input_prepare_exec --> unexpected : encode_runtime [always] / on_unexpected_ + input_prepare_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + dp_forward_exec --> unexpected : encode_runtime [always] / on_unexpected_ + dp_forward_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + dp_backtrace_exec --> unexpected : encode_runtime [always] / on_unexpected_ + dp_backtrace_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + emit_exec --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + unk_resolution_decision --> unexpected : encoding_done [always] / on_unexpected_ + unk_resolution_decision --> unexpected : encoding_error [always] / on_unexpected_ + unk_lookup_exec --> unexpected : encoding_done [always] / on_unexpected_ + unk_lookup_exec --> unexpected : encoding_error [always] / on_unexpected_ + normalize_exec --> unexpected : encoding_done [always] / on_unexpected_ + normalize_exec --> unexpected : encoding_error [always] / on_unexpected_ + normalize_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + normalize_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + input_prepare_exec --> unexpected : encoding_done [always] / on_unexpected_ + input_prepare_exec --> unexpected : encoding_error [always] / on_unexpected_ + input_prepare_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + input_prepare_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + dp_forward_exec --> unexpected : encoding_done [always] / on_unexpected_ + dp_forward_exec --> unexpected : encoding_error [always] / on_unexpected_ + dp_forward_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + dp_forward_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + dp_backtrace_exec --> unexpected : encoding_done [always] / on_unexpected_ + dp_backtrace_exec --> unexpected : encoding_error [always] / on_unexpected_ + dp_backtrace_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + dp_backtrace_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + emit_exec --> unexpected : encoding_done [always] / on_unexpected_ + emit_exec --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -34,8 +123,24 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + table_policy_decision --> unexpected : _ [always] / on_unexpected_ + table_sync_exec --> unexpected : _ [always] / on_unexpected_ + table_sync_result_decision --> unexpected : _ [always] / on_unexpected_ + unk_resolution_decision --> unexpected : _ [always] / on_unexpected_ + unk_lookup_exec --> unexpected : _ [always] / on_unexpected_ + normalize_exec --> unexpected : _ [always] / on_unexpected_ + normalize_result_decision --> unexpected : _ [always] / on_unexpected_ + input_prepare_exec --> unexpected : _ [always] / on_unexpected_ + input_prepare_result_decision --> unexpected : _ [always] / on_unexpected_ + dp_forward_exec --> unexpected : _ [always] / on_unexpected_ + dp_forward_result_decision --> unexpected : _ [always] / on_unexpected_ + dp_backtrace_exec --> unexpected : _ [always] / on_unexpected_ + dp_backtrace_result_decision --> unexpected : _ [always] / on_unexpected_ + emit_exec --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ @@ -45,25 +150,114 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`run_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`vocab_changed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`begin_encode_sync_vocab>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`vocab_unchanged>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`text_non_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`tables_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`tables_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`sync_tables>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`table_sync_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`table_sync_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`table_sync_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`table_sync_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`table_sync_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`vocab_unk_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`resolve_vocab_unk>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`normalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`vocab_unk_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unk_lookup_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`unk_lookup_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`lookup_unk_id>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`normalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`normalize_input>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`normalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`normalize_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`input_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`normalize_result_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`normalize_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`normalize_result_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`normalize_result_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`prepare_dp_input>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`input_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`input_prepare_result_non_empty_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`dp_forward_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`input_prepare_result_empty_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`input_prepare_result_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`input_prepare_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`input_prepare_result_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`input_prepare_result_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`run_dp_forward>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`dp_forward_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`dp_forward_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`dp_backtrace_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`dp_forward_result_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`dp_forward_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`dp_forward_result_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`dp_forward_result_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_backtrace_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`run_dp_backtrace>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`dp_backtrace_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_backtrace_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`backtrace_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`emit_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_backtrace_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`backtrace_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`mark_backtrace_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_backtrace_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`emit_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`emit_tokens>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`emit_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`emit_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`mark_emit_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`unk_lookup_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_backtrace_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_backtrace_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`emit_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`unk_lookup_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`unk_lookup_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_backtrace_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_backtrace_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_backtrace_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_backtrace_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`emit_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`emit_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | @@ -71,8 +265,24 @@ stateDiagram-v2 | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`unk_resolution_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`unk_lookup_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`normalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`input_prepare_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_forward_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_backtrace_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`dp_backtrace_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`emit_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/ugm/sm.hpp) | diff --git a/docs/architecture/text_encoders_wpm.md b/docs/architecture/text_encoders_wpm.md index 3102d190..87e2b8bc 100644 --- a/docs/architecture/text_encoders_wpm.md +++ b/docs/architecture/text_encoders_wpm.md @@ -8,25 +8,66 @@ Source: [`emel/text/encoders/wpm/sm.hpp`](https://github.com/stateforward/emel.c stateDiagram-v2 direction TB [*] --> initialized - initialized --> encoding : encode [valid_encode_] / begin_encode_ - initialized --> errored : encode [invalid_encode_] / reject_invalid_encode_ - done --> encoding : encode [valid_encode_] / begin_encode_ - done --> errored : encode [invalid_encode_] / reject_invalid_encode_ - errored --> encoding : encode [valid_encode_] / begin_encode_ - errored --> errored : encode [invalid_encode_] / reject_invalid_encode_ - unexpected --> encoding : encode [valid_encode_] / begin_encode_ - unexpected --> unexpected : encode [invalid_encode_] / reject_invalid_encode_ - encoding --> encode_decision : [always] / run_encode_ - encode_decision --> done : [phase_ok_] / mark_done_ - encode_decision --> errored : [phase_failed_] / ensure_last_error_ - encoding --> unexpected : encode [always] / on_unexpected_ - encode_decision --> unexpected : encode [always] / on_unexpected_ + initialized --> encode_validity_decision : encode_runtime [always] / none + done --> encode_validity_decision : encode_runtime [always] / none + errored --> encode_validity_decision : encode_runtime [always] / none + unexpected --> encode_validity_decision : encode_runtime [always] / none + encode_validity_decision --> encode_vocab_sync_decision : completion_encode_runtime_ [valid_encode_] / none + encode_validity_decision --> errored : completion_encode_runtime_ [invalid_encode_] / reject_invalid_encode_ + encode_validity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_changed_] / begin_encode_sync_vocab_ + encode_vocab_sync_decision --> encode_precheck_decision : completion_encode_runtime_ [vocab_unchanged_] / begin_encode_ + encode_vocab_sync_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_precheck_decision --> done : completion_encode_runtime_ [text_empty_] / mark_done_ + encode_precheck_decision --> table_policy_decision : completion_encode_runtime_ [text_non_empty_] / none + encode_precheck_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_policy_decision --> table_sync_exec : completion_encode_runtime_ [tables_missing_] / none + table_policy_decision --> encode_input_capacity_decision : completion_encode_runtime_ [tables_ready_] / none + table_policy_decision --> errored : completion_encode_runtime_ [always] / ensure_last_error_ + table_sync_exec --> table_sync_result_decision : completion_encode_runtime_ [always] / sync_tables_ + table_sync_result_decision --> encode_input_capacity_decision : completion_encode_runtime_ [table_sync_ok_] / none + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_invalid_argument_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_backend_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_model_invalid_error_] / ensure_last_error_ + table_sync_result_decision --> errored : completion_encode_runtime_ [table_sync_unclassified_error_code_] / ensure_last_error_ + encode_input_capacity_decision --> encode_exec : completion_encode_runtime_ [prefix_buffer_capacity_within_limit_] / none + encode_input_capacity_decision --> errored : completion_encode_runtime_ [prefix_buffer_capacity_exceeded_] / reject_invalid_encode_ + encode_input_capacity_decision --> errored : completion_encode_runtime_ [always] / reject_invalid_encode_ + encode_exec --> encode_result_decision : completion_encode_runtime_ [always] / run_encode_ + encode_result_decision --> done : completion_encode_runtime_ [encode_result_ok_] / mark_done_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_invalid_argument_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_backend_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_model_invalid_error_] / ensure_last_error_ + encode_result_decision --> errored : completion_encode_runtime_ [encode_result_unclassified_error_code_] / ensure_last_error_ + encode_validity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_policy_decision --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_exec --> unexpected : encode_runtime [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_input_capacity_decision --> unexpected : encode_runtime [always] / on_unexpected_ + encode_exec --> unexpected : encode_runtime [always] / on_unexpected_ + encode_result_decision --> unexpected : encode_runtime [always] / on_unexpected_ initialized --> unexpected : encoding_done [always] / on_unexpected_ initialized --> unexpected : encoding_error [always] / on_unexpected_ - encoding --> unexpected : encoding_done [always] / on_unexpected_ - encoding --> unexpected : encoding_error [always] / on_unexpected_ - encode_decision --> unexpected : encoding_done [always] / on_unexpected_ - encode_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_validity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_precheck_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_policy_decision --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_exec --> unexpected : encoding_error [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + table_sync_result_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_input_capacity_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_input_capacity_decision --> unexpected : encoding_error [always] / on_unexpected_ + encode_exec --> unexpected : encoding_done [always] / on_unexpected_ + encode_exec --> unexpected : encoding_error [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_done [always] / on_unexpected_ + encode_result_decision --> unexpected : encoding_error [always] / on_unexpected_ done --> unexpected : encoding_done [always] / on_unexpected_ done --> unexpected : encoding_error [always] / on_unexpected_ errored --> unexpected : encoding_done [always] / on_unexpected_ @@ -34,8 +75,15 @@ stateDiagram-v2 unexpected --> unexpected : encoding_done [always] / on_unexpected_ unexpected --> unexpected : encoding_error [always] / on_unexpected_ initialized --> unexpected : _ [always] / on_unexpected_ - encoding --> unexpected : _ [always] / on_unexpected_ - encode_decision --> unexpected : _ [always] / on_unexpected_ + encode_validity_decision --> unexpected : _ [always] / on_unexpected_ + encode_vocab_sync_decision --> unexpected : _ [always] / on_unexpected_ + encode_precheck_decision --> unexpected : _ [always] / on_unexpected_ + table_policy_decision --> unexpected : _ [always] / on_unexpected_ + table_sync_exec --> unexpected : _ [always] / on_unexpected_ + table_sync_result_decision --> unexpected : _ [always] / on_unexpected_ + encode_input_capacity_decision --> unexpected : _ [always] / on_unexpected_ + encode_exec --> unexpected : _ [always] / on_unexpected_ + encode_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ @@ -45,25 +93,66 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`run_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`valid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`vocab_changed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`begin_encode_sync_vocab>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`vocab_unchanged>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`begin_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`text_non_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`tables_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`tables_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`sync_tables>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`table_sync_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`table_sync_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`table_sync_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`table_sync_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`table_sync_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`prefix_buffer_capacity_within_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`prefix_buffer_capacity_exceeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`reject_invalid_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`run_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_result_invalid_argument_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_result_model_invalid_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_result_unclassified_error_code>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encode_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | @@ -71,8 +160,15 @@ stateDiagram-v2 | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`encoding_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`encoding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | -| [`encode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_validity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_vocab_sync_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_precheck_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`table_sync_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_input_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | +| [`encode_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/encoders/wpm/sm.hpp) | diff --git a/docs/architecture/text_formatter.md b/docs/architecture/text_formatter.md new file mode 100644 index 00000000..a984d39c --- /dev/null +++ b/docs/architecture/text_formatter.md @@ -0,0 +1,20 @@ +# text_formatter + +Source: [`emel/text/formatter/sm.hpp`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/formatter/sm.hpp) + +## Mermaid + +```mermaid +stateDiagram-v2 + direction TB + [*] --> idle + idle --> idle : scaffold [always] / none + idle --> idle : _ [always] / none +``` + +## Transitions + +| Source | Event | Guard | Action | Target | +| --- | --- | --- | --- | --- | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/formatter/sm.hpp) | [`scaffold`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/formatter/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/formatter/sm.hpp) | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/formatter/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/formatter/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/formatter/sm.hpp) | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/formatter/sm.hpp) | diff --git a/docs/architecture/text_jinja_formatter.md b/docs/architecture/text_jinja_formatter.md index 10ca1632..2d698623 100644 --- a/docs/architecture/text_jinja_formatter.md +++ b/docs/architecture/text_jinja_formatter.md @@ -8,33 +8,28 @@ Source: [`emel/text/jinja/formatter/sm.hpp`](https://github.com/stateforward/eme stateDiagram-v2 direction TB [*] --> initialized - initialized --> setup : render [lambda_guards_8_38] / begin_render_ - initialized --> errored : render [lambda_guards_12_40] / reject_invalid_render_ - done --> setup : render [lambda_guards_8_38] / begin_render_ - done --> errored : render [lambda_guards_12_40] / reject_invalid_render_ - errored --> setup : render [lambda_guards_8_38] / begin_render_ - errored --> errored : render [lambda_guards_12_40] / reject_invalid_render_ - unexpected --> setup : render [lambda_guards_8_38] / begin_render_ - unexpected --> unexpected : render [lambda_guards_12_40] / reject_invalid_render_ - setup --> eval_stmt : [always] / seed_program_ - eval_stmt --> render_decision : [phase_failed_] / none - eval_stmt --> eval_expr : [needs_expr_] / none - eval_stmt --> eval_stmt : [has_stmt_work_] / eval_next_stmt_ - eval_stmt --> render_decision : [no_stmt_work_] / none - eval_expr --> eval_expr : [has_pending_expr_] / eval_pending_expr_ - eval_expr --> render_decision : [phase_failed_] / none - eval_expr --> write_output : [always] / none - write_output --> render_decision : [phase_failed_] / none - write_output --> write_output : [needs_write_] / write_pending_value_ - write_output --> eval_stmt : [always] / none - render_decision --> done : [phase_ok_] / finalize_done_ - render_decision --> errored : [phase_failed_] / finalize_error_ + initialized --> request_decision : render_runtime [valid_render_] / begin_render_ + initialized --> result_decision : render_runtime [invalid_render_with_callbacks_] / reject_invalid_render_ + initialized --> errored : render_runtime [invalid_render_without_callbacks_] / reject_invalid_render_ + done --> request_decision : render_runtime [valid_render_] / begin_render_ + done --> result_decision : render_runtime [invalid_render_with_callbacks_] / reject_invalid_render_ + done --> errored : render_runtime [invalid_render_without_callbacks_] / reject_invalid_render_ + errored --> request_decision : render_runtime [valid_render_] / begin_render_ + errored --> result_decision : render_runtime [invalid_render_with_callbacks_] / reject_invalid_render_ + errored --> errored : render_runtime [invalid_render_without_callbacks_] / reject_invalid_render_ + unexpected --> request_decision : render_runtime [valid_render_] / begin_render_ + unexpected --> result_decision : render_runtime [invalid_render_with_callbacks_] / reject_invalid_render_ + unexpected --> errored : render_runtime [invalid_render_without_callbacks_] / reject_invalid_render_ + request_decision --> result_decision : completion_render_runtime_ [source_empty_] / mark_empty_output_ + request_decision --> copy_exec : completion_render_runtime_ [copy_ready_] / copy_source_text_ + request_decision --> result_decision : completion_render_runtime_ [source_overflow_] / mark_capacity_error_ + copy_exec --> result_decision : completion_render_runtime_ [always] / none + result_decision --> done : completion_render_runtime_ [request_ok_] / dispatch_done_ + result_decision --> errored : completion_render_runtime_ [request_failed_] / dispatch_error_ initialized --> unexpected : _ [always] / on_unexpected_ - setup --> unexpected : _ [always] / on_unexpected_ - eval_stmt --> unexpected : _ [always] / on_unexpected_ - eval_expr --> unexpected : _ [always] / on_unexpected_ - write_output --> unexpected : _ [always] / on_unexpected_ - render_decision --> unexpected : _ [always] / on_unexpected_ + request_decision --> unexpected : _ [always] / on_unexpected_ + copy_exec --> unexpected : _ [always] / on_unexpected_ + result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ @@ -44,33 +39,28 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`lambda_guards_8_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`setup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`lambda_guards_12_40`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`reject_invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`lambda_guards_8_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`setup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`lambda_guards_12_40`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`reject_invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`lambda_guards_8_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`setup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`lambda_guards_12_40`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`reject_invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`lambda_guards_8_38`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`setup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`lambda_guards_12_40`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`reject_invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`setup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`seed_program>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`eval_stmt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`eval_stmt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`eval_stmt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`needs_expr>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`eval_expr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`eval_stmt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`has_stmt_work>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`eval_next_stmt>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`eval_stmt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`eval_stmt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`no_stmt_work>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`eval_expr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`has_pending_expr>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`eval_pending_expr>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`eval_expr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`eval_expr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`eval_expr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`write_output`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`write_output`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`write_output`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`needs_write>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`write_pending_value>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`write_output`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`write_output`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`eval_stmt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`finalize_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`finalize_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`valid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`invalid_render_with_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`reject_invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`invalid_render_without_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`reject_invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`valid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`invalid_render_with_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`reject_invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`invalid_render_without_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`reject_invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`valid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`invalid_render_with_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`reject_invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`invalid_render_without_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`reject_invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`valid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`invalid_render_with_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`reject_invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`invalid_render_without_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`reject_invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`source_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`mark_empty_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`copy_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`copy_source_text>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`copy_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`source_overflow>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`mark_capacity_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`copy_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`request_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`dispatch_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`request_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`setup`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`eval_stmt`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`eval_expr`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`write_output`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | -| [`render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`copy_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | +| [`result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/formatter/sm.hpp) | diff --git a/docs/architecture/text_jinja_parser.md b/docs/architecture/text_jinja_parser.md index 2eb625cc..976a19c7 100644 --- a/docs/architecture/text_jinja_parser.md +++ b/docs/architecture/text_jinja_parser.md @@ -20,18 +20,30 @@ stateDiagram-v2 unexpected --> request_decision : parse_runtime [valid_parse_] / begin_parse_ unexpected --> parse_result_decision : parse_runtime [invalid_parse_with_callbacks_] / reject_invalid_parse_ unexpected --> errored : parse_runtime [invalid_parse_without_callbacks_] / reject_invalid_parse_ - request_decision --> tokenize_exec : [always] / tokenize_template_ - tokenize_exec --> tokenize_result_decision : [always] / none - tokenize_result_decision --> parse_exec : [tokenize_ok_] / classify_tokens_ - tokenize_result_decision --> parse_result_decision : [tokenize_failed_] / none - parse_exec --> parse_result_decision : [always] / parse_tokens_ - parse_result_decision --> done : [request_ok_] / dispatch_done_ - parse_result_decision --> errored : [request_failed_] / dispatch_error_ + request_decision --> tokenize_begin : completion_parse_runtime_ [always] / begin_tokenization_ + tokenize_begin --> tokenize_next : completion_parse_runtime_ [always] / request_next_lex_token_ + tokenize_next --> tokenize_result_decision : completion_parse_runtime_ [always] / none + tokenize_result_decision --> model__ : completion_parse_runtime_ [lexer_at_eof_] / none + tokenize_result_decision --> tokenize_append : completion_parse_runtime_ [lexer_has_token_] / append_lex_token_ + tokenize_result_decision --> parse_result_decision : completion_parse_runtime_ [parse_error_invalid_request_] / commit_lex_error_ + tokenize_result_decision --> parse_result_decision : completion_parse_runtime_ [parse_error_parse_failed_] / commit_lex_error_ + tokenize_result_decision --> parse_result_decision : completion_parse_runtime_ [parse_error_internal_error_] / commit_lex_error_ + tokenize_result_decision --> parse_result_decision : completion_parse_runtime_ [parse_error_untracked_] / commit_lex_error_ + tokenize_result_decision --> parse_result_decision : completion_parse_runtime_ [parse_error_unknown_] / commit_lex_error_ + tokenize_append --> tokenize_next : completion_parse_runtime_ [always] / request_next_lex_token_ + model__ --> parse_result_decision : completion_parse_runtime_ [always] / none + parse_result_decision --> done : completion_parse_runtime_ [parse_error_none_] / dispatch_done_ + parse_result_decision --> errored : completion_parse_runtime_ [parse_error_invalid_request_] / dispatch_error_ + parse_result_decision --> errored : completion_parse_runtime_ [parse_error_parse_failed_] / dispatch_error_ + parse_result_decision --> errored : completion_parse_runtime_ [parse_error_internal_error_] / dispatch_error_ + parse_result_decision --> errored : completion_parse_runtime_ [parse_error_untracked_] / dispatch_error_ + parse_result_decision --> errored : completion_parse_runtime_ [parse_error_unknown_] / dispatch_error_ initialized --> unexpected : _ [always] / on_unexpected_ request_decision --> unexpected : _ [always] / on_unexpected_ - tokenize_exec --> unexpected : _ [always] / on_unexpected_ + tokenize_begin --> unexpected : _ [always] / on_unexpected_ + tokenize_next --> unexpected : _ [always] / on_unexpected_ tokenize_result_decision --> unexpected : _ [always] / on_unexpected_ - parse_exec --> unexpected : _ [always] / on_unexpected_ + tokenize_append --> unexpected : _ [always] / on_unexpected_ parse_result_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ @@ -42,31 +54,43 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| initialized | parse_runtime | valid_parse_ | begin_parse_ | request_decision | -| initialized | parse_runtime | invalid_parse_with_callbacks_ | reject_invalid_parse_ | parse_result_decision | -| initialized | parse_runtime | invalid_parse_without_callbacks_ | reject_invalid_parse_ | errored | -| done | parse_runtime | valid_parse_ | begin_parse_ | request_decision | -| done | parse_runtime | invalid_parse_with_callbacks_ | reject_invalid_parse_ | parse_result_decision | -| done | parse_runtime | invalid_parse_without_callbacks_ | reject_invalid_parse_ | errored | -| errored | parse_runtime | valid_parse_ | begin_parse_ | request_decision | -| errored | parse_runtime | invalid_parse_with_callbacks_ | reject_invalid_parse_ | parse_result_decision | -| errored | parse_runtime | invalid_parse_without_callbacks_ | reject_invalid_parse_ | errored | -| unexpected | parse_runtime | valid_parse_ | begin_parse_ | request_decision | -| unexpected | parse_runtime | invalid_parse_with_callbacks_ | reject_invalid_parse_ | parse_result_decision | -| unexpected | parse_runtime | invalid_parse_without_callbacks_ | reject_invalid_parse_ | errored | -| request_decision | completion | always | tokenize_template_ | tokenize_exec | -| tokenize_exec | completion | always | none | tokenize_result_decision | -| tokenize_result_decision | completion | tokenize_ok_ | classify_tokens_ | parse_exec | -| tokenize_result_decision | completion | tokenize_failed_ | none | parse_result_decision | -| parse_exec | completion | always | parse_tokens_ | parse_result_decision | -| parse_result_decision | completion | request_ok_ | dispatch_done_ | done | -| parse_result_decision | completion | request_failed_ | dispatch_error_ | errored | -| initialized | _ | always | on_unexpected_ | unexpected | -| request_decision | _ | always | on_unexpected_ | unexpected | -| tokenize_exec | _ | always | on_unexpected_ | unexpected | -| tokenize_result_decision | _ | always | on_unexpected_ | unexpected | -| parse_exec | _ | always | on_unexpected_ | unexpected | -| parse_result_decision | _ | always | on_unexpected_ | unexpected | -| done | _ | always | on_unexpected_ | unexpected | -| errored | _ | always | on_unexpected_ | unexpected | -| unexpected | _ | always | on_unexpected_ | unexpected | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`valid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`begin_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`invalid_parse_with_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`reject_invalid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`invalid_parse_without_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`reject_invalid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`valid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`begin_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`invalid_parse_with_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`reject_invalid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`invalid_parse_without_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`reject_invalid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`valid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`begin_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`invalid_parse_with_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`reject_invalid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`invalid_parse_without_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`reject_invalid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`valid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`begin_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`invalid_parse_with_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`reject_invalid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`invalid_parse_without_callbacks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`reject_invalid_parse>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`begin_tokenization>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`tokenize_begin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_begin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`request_next_lex_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`tokenize_next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`lexer_at_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`lexer_has_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`append_lex_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`tokenize_append`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`commit_lex_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`commit_lex_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`commit_lex_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`commit_lex_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`commit_lex_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_append`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`request_next_lex_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`tokenize_next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`model>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`dispatch_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`parse_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`dispatch_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_begin`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_next`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`tokenize_append`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`parse_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/sm.hpp) | diff --git a/docs/architecture/text_jinja_parser_lexer.md b/docs/architecture/text_jinja_parser_lexer.md index 0f5b7382..b83044e5 100644 --- a/docs/architecture/text_jinja_parser_lexer.md +++ b/docs/architecture/text_jinja_parser_lexer.md @@ -7,34 +7,316 @@ Source: [`emel/text/jinja/parser/lexer/sm.hpp`](https://github.com/stateforward/ ```mermaid stateDiagram-v2 direction TB - [*] --> deciding - deciding --> tokenize_exec : completion_parse_runtime_ [always] / run_tokenize_ - tokenize_exec --> tokenize_result_decision : completion_parse_runtime_ [always] / none - tokenize_result_decision --> tokenized : completion_parse_runtime_ [tokenize_succeeded_] / none - tokenize_result_decision --> parse_failed : completion_parse_runtime_ [tokenize_failed_] / mark_parse_failed_ - tokenized --> terminate : [always] / none - parse_failed --> terminate : [always] / none - deciding --> unexpected_event : _ [always] / on_unexpected_ - tokenize_exec --> unexpected_event : _ [always] / on_unexpected_ - tokenize_result_decision --> unexpected_event : _ [always] / on_unexpected_ - tokenized --> unexpected_event : _ [always] / on_unexpected_ - parse_failed --> unexpected_event : _ [always] / on_unexpected_ - unexpected_event --> unexpected_event : _ [always] / on_unexpected_ + [*] --> initialized + initialized --> initialized : next_runtime [invalid_next_] / reject_invalid_next_ + initialized --> initialized : next_runtime [invalid_cursor_position_] / reject_invalid_cursor_ + initialized --> text_boundary_candidate_decision : next_runtime [always] / begin_scan_ + scanning --> scanning : next_runtime [invalid_next_] / reject_invalid_next_ + scanning --> scanning : next_runtime [invalid_cursor_position_] / reject_invalid_cursor_ + scanning --> text_boundary_candidate_decision : next_runtime [always] / begin_scan_ + text_boundary_candidate_decision --> text_scan_exec : completion_next_runtime_ [at_text_boundary_] / scan_text_boundary_ + text_boundary_candidate_decision --> comment_candidate_decision : completion_next_runtime_ [always] / none + text_scan_exec --> text_opening_block_decision : completion_next_runtime_ [always] / none + text_opening_block_decision --> text_trim_opening_block_exec : completion_next_runtime_ [text_opening_block_ahead_] / none + text_opening_block_decision --> text_materialize_exec : completion_next_runtime_ [always] / none + text_trim_opening_block_exec --> text_trim_opening_block_result_decision : completion_next_runtime_ [always] / probe_text_opening_trim_ + text_trim_opening_block_result_decision --> text_materialize_exec : completion_next_runtime_ [text_opening_trim_stopped_on_newline_] / apply_text_opening_trim_to_newline_ + text_trim_opening_block_result_decision --> text_materialize_exec : completion_next_runtime_ [text_opening_trim_to_zero_] / apply_text_opening_trim_to_zero_ + text_trim_opening_block_result_decision --> text_materialize_exec : completion_next_runtime_ [always] / none + text_materialize_exec --> scanning : completion_next_runtime_ [text_boundary_empty_at_end_] / emit_text_boundary_eof_ + text_materialize_exec --> scanning : completion_next_runtime_ [text_plain_boundary_ready_] / emit_plain_text_boundary_token_ + text_materialize_exec --> text_finalize_exec : completion_next_runtime_ [always] / materialize_text_token_ + text_finalize_exec --> text_finalize_result_decision : completion_next_runtime_ [text_can_trim_leading_newline_] / trim_text_leading_newline_ + text_finalize_exec --> text_finalize_result_decision : completion_next_runtime_ [always] / none + text_finalize_result_decision --> text_finalize_token_exec : completion_next_runtime_ [text_apply_lstrip_and_rstrip_] / lstrip_and_rstrip_text_token_ + text_finalize_result_decision --> text_finalize_token_exec : completion_next_runtime_ [text_apply_lstrip_only_] / lstrip_text_token_ + text_finalize_result_decision --> text_finalize_token_exec : completion_next_runtime_ [text_apply_rstrip_only_] / rstrip_text_token_ + text_finalize_result_decision --> text_finalize_token_exec : completion_next_runtime_ [text_apply_no_strip_] / none + text_finalize_result_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + text_finalize_token_exec --> text_emit_result_decision : completion_next_runtime_ [always] / finalize_text_boundary_token_ + text_emit_result_decision --> scanning : completion_next_runtime_ [text_token_non_empty_] / emit_scanned_token_ + text_emit_result_decision --> space_eof_exec : completion_next_runtime_ [text_token_empty_at_end_] / mark_no_token_eof_ + text_emit_result_decision --> comment_candidate_decision : completion_next_runtime_ [always] / none + comment_candidate_decision --> comment_scan_exec : completion_next_runtime_ [starts_comment_] / scan_comment_ + comment_candidate_decision --> trim_prefix_scan_exec : completion_next_runtime_ [starts_trim_prefix_] / scan_trim_prefix_ + comment_candidate_decision --> space_scan_exec : completion_next_runtime_ [always] / scan_spaces_ + comment_scan_exec --> comment_scan_result_decision : completion_next_runtime_ [always] / none + comment_scan_result_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + comment_scan_result_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + comment_scan_result_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + comment_scan_result_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + comment_scan_result_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + comment_scan_result_decision --> comment_finalize_exec : completion_next_runtime_ [comment_terminated_] / none + comment_scan_result_decision --> comment_unterminated_exec : completion_next_runtime_ [always] / none + comment_finalize_exec --> comment_finalize_result_decision : completion_next_runtime_ [always] / finalize_comment_token_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [scan_token_available_] / emit_scanned_token_ + comment_finalize_result_decision --> scanning : completion_next_runtime_ [scan_no_token_eof_] / emit_eof_ + comment_finalize_result_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + comment_unterminated_exec --> comment_unterminated_result_decision : completion_next_runtime_ [always] / mark_comment_unterminated_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [scan_token_available_] / emit_scanned_token_ + comment_unterminated_result_decision --> scanning : completion_next_runtime_ [scan_no_token_eof_] / emit_eof_ + comment_unterminated_result_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + trim_prefix_scan_exec --> trim_prefix_eof_exec : completion_next_runtime_ [cursor_at_end_] / mark_no_token_eof_ + trim_prefix_scan_exec --> space_scan_exec : completion_next_runtime_ [always] / scan_spaces_ + trim_prefix_eof_exec --> scanning : completion_next_runtime_ [always] / emit_eof_ + space_scan_exec --> space_eof_exec : completion_next_runtime_ [cursor_at_end_] / mark_no_token_eof_ + space_scan_exec --> unary_candidate_decision : completion_next_runtime_ [always] / none + space_eof_exec --> scanning : completion_next_runtime_ [always] / emit_eof_ + unary_candidate_decision --> unary_prefix_context_decision : completion_next_runtime_ [unary_candidate_] / none + unary_candidate_decision --> string_scan_exec : completion_next_runtime_ [starts_string_] / none + unary_candidate_decision --> numeric_scan_exec : completion_next_runtime_ [starts_numeric_] / scan_numeric_ + unary_candidate_decision --> word_scan_exec : completion_next_runtime_ [starts_word_] / scan_word_ + unary_candidate_decision --> mapping_candidate_decision : completion_next_runtime_ [always] / none + unary_prefix_context_decision --> invalid_char_exec : completion_next_runtime_ [unary_prefix_context_invalid_] / none + unary_prefix_context_decision --> unary_prefix_allowed_decision : completion_next_runtime_ [always] / none + unary_prefix_allowed_decision --> mapping_candidate_decision : completion_next_runtime_ [unary_prefix_disallowed_] / none + unary_prefix_allowed_decision --> unary_scan_exec : completion_next_runtime_ [always] / scan_unary_ + unary_scan_exec --> scanning : completion_next_runtime_ [unary_numeric_suffix_present_] / emit_unary_numeric_token_ + unary_scan_exec --> scanning : completion_next_runtime_ [always] / emit_unary_operator_token_ + mapping_candidate_decision --> mapping_close_curly_exec : completion_next_runtime_ [mapping_close_expression_blocked_by_curly_depth_] / scan_mapping_close_curly_ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence________________] / open_statement_________________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / open_statement____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / close_statement____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence________________] / open_expression_________________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / open_expression____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_close_expression_not_blocked_] / close_expression____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence________________] / close_statement_________________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence________________] / close_expression_________________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / open_paren_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / close_paren_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / open_curly_bracket_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / close_curly_bracket_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / open_square_bracket_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / close_square_bracket_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / comma_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / dot_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / colon_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / pipe_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / comparison_binary_operator____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / comparison_binary_operator____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / comparison_binary_operator____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence___________] / comparison_binary_operator____________ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / comparison_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / comparison_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / additive_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / additive_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / additive_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / multiplicative_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / multiplicative_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / multiplicative_binary_operator_______ + mapping_candidate_decision --> mapping_scan_exec : completion_next_runtime_ [mapping_sequence______] / equals_______ + mapping_candidate_decision --> invalid_char_exec : completion_next_runtime_ [always] / none + mapping_close_curly_exec --> scanning : completion_next_runtime_ [always] / emit_scanned_token_ + mapping_scan_exec --> scanning : completion_next_runtime_ [always] / emit_scanned_token_ + string_scan_exec --> string_content_scan_exec : completion_next_runtime_ [always] / begin_string_scan_ + string_content_scan_exec --> string_content_policy_decision : completion_next_runtime_ [always] / none + string_content_policy_decision --> string_scan_result_decision : completion_next_runtime_ [string_scan_immediate_termination_or_eof_] / none + string_content_policy_decision --> string_scan_result_decision : completion_next_runtime_ [string_scan_requires_content_] / scan_string_content_ + string_content_policy_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + string_scan_result_decision --> string_materialize_exec : completion_next_runtime_ [always] / none + string_materialize_exec --> string_status_decision : completion_next_runtime_ [always] / materialize_string_token_ + string_status_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + string_status_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + string_status_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + string_status_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + string_status_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + string_status_decision --> string_unterminated_exec : completion_next_runtime_ [string_not_terminated_] / none + string_status_decision --> string_finalize_exec : completion_next_runtime_ [string_terminated_] / none + string_status_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + string_unterminated_exec --> string_unterminated_result_decision : completion_next_runtime_ [always] / mark_string_unterminated_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [scan_token_available_] / emit_scanned_token_ + string_unterminated_result_decision --> scanning : completion_next_runtime_ [scan_no_token_eof_] / emit_eof_ + string_unterminated_result_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + string_finalize_exec --> string_finalize_result_decision : completion_next_runtime_ [always] / finalize_string_token_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [scan_token_available_] / emit_scanned_token_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [scan_no_token_eof_] / emit_eof_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + string_finalize_result_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + string_finalize_result_decision --> invalid_char_exec : completion_next_runtime_ [scan_unhandled_] / none + numeric_scan_exec --> scanning : completion_next_runtime_ [always] / emit_scanned_token_ + word_scan_exec --> scanning : completion_next_runtime_ [always] / emit_scanned_token_ + invalid_char_exec --> invalid_char_result_decision : completion_next_runtime_ [always] / mark_invalid_character_ + invalid_char_result_decision --> scanning : completion_next_runtime_ [parse_error_invalid_request_] / emit_scan_error_ + invalid_char_result_decision --> scanning : completion_next_runtime_ [parse_error_parse_failed_] / emit_scan_error_ + invalid_char_result_decision --> scanning : completion_next_runtime_ [parse_error_internal_error_] / emit_scan_error_ + invalid_char_result_decision --> scanning : completion_next_runtime_ [parse_error_untracked_] / emit_scan_error_ + invalid_char_result_decision --> scanning : completion_next_runtime_ [parse_error_unknown_] / emit_scan_error_ + initialized --> scanning : _ [always] / on_unexpected_ + scanning --> scanning : _ [always] / on_unexpected_ ``` ## Transitions | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`deciding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`run_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`tokenize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | -| [`tokenize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | -| [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`tokenize_succeeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`tokenized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | -| [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`tokenize_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mark_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | -| [`tokenized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`terminate`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | -| [`parse_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`terminate`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | -| [`deciding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | -| [`tokenize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | -| [`tokenize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | -| [`tokenized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | -| [`parse_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | -| [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unexpected_event`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`next_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_next>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`reject_invalid_next>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`next_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_cursor_position>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`reject_invalid_cursor>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`next_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`begin_scan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_boundary_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`next_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_next>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`reject_invalid_next>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`next_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_cursor_position>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`reject_invalid_cursor>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`next_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`begin_scan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_boundary_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_boundary_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`at_text_boundary>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_text_boundary>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_boundary_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comment_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_opening_block_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_opening_block_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_opening_block_ahead>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_trim_opening_block_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_opening_block_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_materialize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_trim_opening_block_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`probe_text_opening_trim>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_trim_opening_block_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_trim_opening_block_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_opening_trim_stopped_on_newline>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`apply_text_opening_trim_to_newline>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_materialize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_trim_opening_block_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_opening_trim_to_zero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`apply_text_opening_trim_to_zero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_materialize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_trim_opening_block_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_materialize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_materialize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_boundary_empty_at_end>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_text_boundary_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_materialize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_plain_boundary_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_plain_text_boundary_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_materialize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`materialize_text_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_finalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_finalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_can_trim_leading_newline>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`trim_text_leading_newline>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_finalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_apply_lstrip_and_rstrip>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`lstrip_and_rstrip_text_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_finalize_token_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_apply_lstrip_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`lstrip_text_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_finalize_token_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_apply_rstrip_only>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`rstrip_text_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_finalize_token_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_apply_no_strip>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_finalize_token_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_unhandled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_char_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_finalize_token_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`finalize_text_boundary_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_token_non_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scanned_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`text_token_empty_at_end>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mark_no_token_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`space_eof_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`text_emit_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comment_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`starts_comment>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_comment>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comment_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`starts_trim_prefix>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_trim_prefix>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`trim_prefix_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_spaces>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`space_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comment_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comment_terminated>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comment_finalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comment_unterminated_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_finalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`finalize_comment_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comment_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_token_available>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scanned_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_no_token_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_unhandled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_char_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_unterminated_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mark_comment_unterminated>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comment_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_token_available>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scanned_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_no_token_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`comment_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_unhandled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_char_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`trim_prefix_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`cursor_at_end>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mark_no_token_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`trim_prefix_eof_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`trim_prefix_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_spaces>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`space_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`trim_prefix_eof_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`space_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`cursor_at_end>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mark_no_token_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`space_eof_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`space_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unary_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`space_eof_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`unary_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unary_candidate>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unary_prefix_context_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`unary_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`starts_string>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`unary_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`starts_numeric>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_numeric>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`numeric_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`unary_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`starts_word>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_word>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`word_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`unary_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`unary_prefix_context_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unary_prefix_context_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_char_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`unary_prefix_context_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unary_prefix_allowed_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`unary_prefix_allowed_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unary_prefix_disallowed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`unary_prefix_allowed_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_unary>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unary_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`unary_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`unary_numeric_suffix_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_unary_numeric_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`unary_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_unary_operator_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_close_expression_blocked_by_curly_depth>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_mapping_close_curly>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_close_curly_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'{', '%', '-'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`open_statement, '{', '%', '-'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'{', '%'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`open_statement, '{', '%'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'%', '}'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`close_statement, '%', '}'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'{', '{', '-'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`open_expression, '{', '{', '-'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'{', '{'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`open_expression, '{', '{'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_close_expression_not_blocked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`close_expression, '}', '}'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'-', '%', '}'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`close_statement, '-', '%', '}'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'-', '}', '}'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`close_expression, '-', '}', '}'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'('>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`open_paren, '('>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<')'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`close_paren, ')'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'{'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`open_curly_bracket, '{'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'}'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`close_curly_bracket, '}'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'['>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`open_square_bracket, '['>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<']'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`close_square_bracket, ']'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<','>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comma, ','>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'.'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`dot, '.'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<':'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`colon, ':'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'|'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`pipe, '|'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'<', '='>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comparison_binary_operator, '<', '='>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'>', '='>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comparison_binary_operator, '>', '='>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'=', '='>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comparison_binary_operator, '=', '='>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'!', '='>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comparison_binary_operator, '!', '='>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'<'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comparison_binary_operator, '<'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'>'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`comparison_binary_operator, '>'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'+'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`additive_binary_operator, '+'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'-'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`additive_binary_operator, '-'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'~'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`additive_binary_operator, '~'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'*'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`multiplicative_binary_operator, '*'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'/'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`multiplicative_binary_operator, '/'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'%'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`multiplicative_binary_operator, '%'>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_sequence<'='>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`equals, '='>>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_candidate_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_char_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_close_curly_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scanned_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`mapping_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scanned_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`begin_string_scan>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_content_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_content_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_content_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_content_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_scan_immediate_termination_or_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_content_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_scan_requires_content>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_string_content>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_content_policy_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_unhandled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_char_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_scan_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_materialize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_materialize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`materialize_string_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_status_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_status_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_status_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_status_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_status_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_status_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_status_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_not_terminated>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_unterminated_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_status_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_terminated>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_finalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_status_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_unhandled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_char_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_unterminated_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mark_string_unterminated>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_token_available>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scanned_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_no_token_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_unterminated_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_unhandled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_char_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_finalize_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`finalize_string_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`string_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_token_available>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scanned_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_no_token_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_eof>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`string_finalize_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scan_unhandled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_char_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`numeric_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scanned_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`word_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scanned_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`invalid_char_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`mark_invalid_character>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`invalid_char_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`invalid_char_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`invalid_char_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_parse_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`invalid_char_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`invalid_char_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_untracked>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`invalid_char_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`parse_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`emit_scan_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | +| [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | [`scanning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/jinja/parser/lexer/sm.hpp) | diff --git a/docs/architecture/text_renderer.md b/docs/architecture/text_renderer.md index ced1f66b..819f7176 100644 --- a/docs/architecture/text_renderer.md +++ b/docs/architecture/text_renderer.md @@ -8,51 +8,91 @@ Source: [`emel/text/renderer/sm.hpp`](https://github.com/stateforward/emel.cpp/b stateDiagram-v2 direction TB [*] --> uninitialized - uninitialized --> binding : bind [valid_bind_] / begin_bind_ - uninitialized --> errored : bind [invalid_bind_] / reject_bind_ - uninitialized --> errored : render [always] / reject_render_ - uninitialized --> errored : flush [always] / reject_flush_ - idle --> binding : bind [valid_bind_] / begin_bind_ - idle --> errored : bind [invalid_bind_] / reject_bind_ - idle --> rendering : render [valid_render_] / begin_render_ - idle --> errored : render [invalid_render_] / reject_render_ - idle --> flushing : flush [valid_flush_] / begin_flush_ - idle --> errored : flush [invalid_flush_] / reject_flush_ - done --> binding : bind [valid_bind_] / begin_bind_ - done --> errored : bind [invalid_bind_] / reject_bind_ - done --> rendering : render [valid_render_] / begin_render_ - done --> errored : render [invalid_render_] / reject_render_ - done --> flushing : flush [valid_flush_] / begin_flush_ - done --> errored : flush [invalid_flush_] / reject_flush_ - errored --> binding : bind [valid_bind_] / begin_bind_ - errored --> errored : bind [invalid_bind_] / reject_bind_ - errored --> rendering : render [valid_render_] / begin_render_ - errored --> errored : render [invalid_render_] / reject_render_ - errored --> flushing : flush [valid_flush_] / begin_flush_ - errored --> errored : flush [invalid_flush_] / reject_flush_ - unexpected --> binding : bind [valid_bind_] / begin_bind_ - unexpected --> unexpected : bind [invalid_bind_] / reject_bind_ - unexpected --> rendering : render [valid_render_] / begin_render_ - unexpected --> unexpected : render [invalid_render_] / reject_render_ - unexpected --> flushing : flush [valid_flush_] / begin_flush_ - unexpected --> unexpected : flush [invalid_flush_] / reject_flush_ - binding --> binding_decision : [always] / bind_detokenizer_ - binding_decision --> idle : [phase_ok_] / none - binding_decision --> errored : [phase_failed_] / ensure_last_error_ - rendering --> render_decision : [always] / run_render_ - render_decision --> done : [phase_ok_] / mark_done_ - render_decision --> errored : [phase_failed_] / ensure_last_error_ - flushing --> flush_decision : [always] / run_flush_ - flush_decision --> done : [phase_ok_] / mark_done_ - flush_decision --> errored : [phase_failed_] / ensure_last_error_ + uninitialized --> initializing : initialize_runtime [valid_initialize_] / begin_initialize_ + uninitialized --> initialize_publish_error : initialize_runtime [invalid_initialize_] / reject_initialize_ + uninitialized --> render_publish_error : render_runtime [always] / reject_render_ + uninitialized --> flush_publish_error : flush_runtime [always] / reject_flush_ + initialized --> initializing : initialize_runtime [valid_initialize_] / begin_initialize_ + initialized --> initialize_publish_error : initialize_runtime [invalid_initialize_] / reject_initialize_ + initialized --> rendering : render_runtime [valid_render_] / begin_render_ + initialized --> render_publish_error : render_runtime [invalid_render_] / reject_render_ + initialized --> flushing : flush_runtime [valid_flush_] / begin_flush_ + initialized --> flush_publish_error : flush_runtime [invalid_flush_] / reject_flush_ + done --> initializing : initialize_runtime [valid_initialize_] / begin_initialize_ + done --> initialize_publish_error : initialize_runtime [invalid_initialize_] / reject_initialize_ + done --> rendering : render_runtime [valid_render_] / begin_render_ + done --> render_publish_error : render_runtime [invalid_render_] / reject_render_ + done --> flushing : flush_runtime [valid_flush_] / begin_flush_ + done --> flush_publish_error : flush_runtime [invalid_flush_] / reject_flush_ + errored --> initializing : initialize_runtime [valid_initialize_] / begin_initialize_ + errored --> initialize_publish_error : initialize_runtime [invalid_initialize_] / reject_initialize_ + errored --> rendering : render_runtime [valid_render_] / begin_render_ + errored --> render_publish_error : render_runtime [invalid_render_] / reject_render_ + errored --> flushing : flush_runtime [valid_flush_] / begin_flush_ + errored --> flush_publish_error : flush_runtime [invalid_flush_] / reject_flush_ + unexpected --> initializing : initialize_runtime [valid_initialize_] / begin_initialize_ + unexpected --> unexpected : initialize_runtime [invalid_initialize_] / reject_initialize_ + unexpected --> rendering : render_runtime [valid_render_] / begin_render_ + unexpected --> unexpected : render_runtime [invalid_render_] / reject_render_ + unexpected --> flushing : flush_runtime [valid_flush_] / begin_flush_ + unexpected --> unexpected : flush_runtime [invalid_flush_] / reject_flush_ + initialization_decision --> initialize_publish_success : completion_initialize_runtime_ [initialize_dispatch_ok_] / commit_initialize_success_ + initialization_decision --> initialize_publish_error : completion_initialize_runtime_ [initialize_dispatch_backend_failure_] / set_backend_error_ + initialization_decision --> initialize_publish_error : completion_initialize_runtime_ [initialize_dispatch_reported_error_] / set_error_from_detokenizer_ + initialization_decision --> initialize_publish_error : completion_initialize_runtime_ [always] / set_error_from_detokenizer_ + initialize_publish_success --> initialized : completion_initialize_runtime_ [always] / publish_initialize_done_ + initialize_publish_error --> errored : completion_initialize_runtime_ [always] / publish_initialize_error_ + initializing --> initialization_decision : completion_initialize_runtime_ [always] / dispatch_initialize_detokenizer_ + rendering --> render_publish_success : completion_render_runtime_ [sequence_stop_matched_] / render_sequence_already_stopped_ + rendering --> render_dispatch_decision : completion_render_runtime_ [sequence_running_] / dispatch_render_detokenizer_ + render_dispatch_decision --> render_result_decision : completion_render_runtime_ [render_dispatch_ok_] / none + render_result_decision --> render_commit_output_exec : completion_render_runtime_ [always] / none + render_commit_output_exec --> render_strip_decision : completion_render_runtime_ [always] / commit_render_detokenizer_output_ + render_strip_decision --> render_strip_prefix_scan_exec : completion_render_runtime_ [strip_needed_] / none + render_strip_decision --> render_strip_state_exec : completion_render_runtime_ [strip_not_needed_] / none + render_strip_decision --> render_publish_error : completion_render_runtime_ [always] / ensure_last_error_ + render_strip_prefix_scan_exec --> render_strip_prefix_decision : completion_render_runtime_ [always] / compute_render_leading_space_prefix_ + render_strip_prefix_decision --> render_strip_apply_exec : completion_render_runtime_ [strip_prefix_nonzero_] / apply_render_leading_space_strip_ + render_strip_prefix_decision --> render_strip_state_exec : completion_render_runtime_ [strip_prefix_zero_] / none + render_strip_prefix_decision --> render_publish_error : completion_render_runtime_ [always] / ensure_last_error_ + render_strip_apply_exec --> render_strip_state_exec : completion_render_runtime_ [always] / none + render_strip_state_exec --> render_stop_match_exec : completion_render_runtime_ [always] / update_render_strip_state_ + render_stop_match_exec --> render_finalize_decision : completion_render_runtime_ [always] / apply_render_stop_matching_ + render_finalize_decision --> render_publish_success : completion_render_runtime_ [request_ok_] / mark_done_ + render_finalize_decision --> render_publish_error : completion_render_runtime_ [request_failed_] / ensure_last_error_ + render_finalize_decision --> render_publish_error : completion_render_runtime_ [always] / ensure_last_error_ + render_dispatch_decision --> render_publish_error : completion_render_runtime_ [render_dispatch_backend_failure_] / set_backend_error_ + render_dispatch_decision --> render_publish_error : completion_render_runtime_ [render_dispatch_reported_error_] / set_error_from_detokenizer_ + render_dispatch_decision --> render_publish_error : completion_render_runtime_ [render_dispatch_lengths_invalid_] / set_invalid_request_ + render_dispatch_decision --> render_publish_error : completion_render_runtime_ [always] / ensure_last_error_ + render_publish_success --> done : completion_render_runtime_ [always] / publish_render_done_ + render_publish_error --> errored : completion_render_runtime_ [always] / publish_render_error_ + flushing --> flush_publish_success : completion_flush_runtime_ [flush_output_fits_] / flush_copy_sequence_buffers_ + flushing --> flush_publish_error : completion_flush_runtime_ [flush_output_too_large_] / set_invalid_request_ + flush_publish_success --> done : completion_flush_runtime_ [always] / publish_flush_done_ + flush_publish_error --> errored : completion_flush_runtime_ [always] / publish_flush_error_ uninitialized --> unexpected : _ [always] / on_unexpected_ - binding --> unexpected : _ [always] / on_unexpected_ - binding_decision --> unexpected : _ [always] / on_unexpected_ - idle --> unexpected : _ [always] / on_unexpected_ + initializing --> unexpected : _ [always] / on_unexpected_ + initialization_decision --> unexpected : _ [always] / on_unexpected_ + initialize_publish_success --> unexpected : _ [always] / on_unexpected_ + initialize_publish_error --> unexpected : _ [always] / on_unexpected_ + initialized --> unexpected : _ [always] / on_unexpected_ rendering --> unexpected : _ [always] / on_unexpected_ - render_decision --> unexpected : _ [always] / on_unexpected_ + render_dispatch_decision --> unexpected : _ [always] / on_unexpected_ + render_result_decision --> unexpected : _ [always] / on_unexpected_ + render_commit_output_exec --> unexpected : _ [always] / on_unexpected_ + render_strip_decision --> unexpected : _ [always] / on_unexpected_ + render_strip_prefix_scan_exec --> unexpected : _ [always] / on_unexpected_ + render_strip_prefix_decision --> unexpected : _ [always] / on_unexpected_ + render_strip_apply_exec --> unexpected : _ [always] / on_unexpected_ + render_strip_state_exec --> unexpected : _ [always] / on_unexpected_ + render_stop_match_exec --> unexpected : _ [always] / on_unexpected_ + render_finalize_decision --> unexpected : _ [always] / on_unexpected_ + render_publish_success --> unexpected : _ [always] / on_unexpected_ + render_publish_error --> unexpected : _ [always] / on_unexpected_ flushing --> unexpected : _ [always] / on_unexpected_ - flush_decision --> unexpected : _ [always] / on_unexpected_ + flush_publish_success --> unexpected : _ [always] / on_unexpected_ + flush_publish_error --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ unexpected --> unexpected : _ [always] / on_unexpected_ @@ -62,51 +102,91 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`rendering`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flushing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`rendering`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flushing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`rendering`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flushing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`rendering`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flushing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`bind_detokenizer>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`rendering`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`run_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`flushing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`run_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`flush_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`flush_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`rendering`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flushing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`rendering`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flushing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`rendering`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flushing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_initialize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`rendering`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_render>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`valid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`begin_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flushing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`invalid_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`reject_flush>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialization_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_dispatch_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`commit_initialize_success>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialization_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_dispatch_backend_failure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`set_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialization_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_dispatch_reported_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`set_error_from_detokenizer>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialization_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`set_error_from_detokenizer>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialize_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialize_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`publish_initialize_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialize_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`publish_initialize_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`dispatch_initialize_detokenizer>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`initialization_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`rendering`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`sequence_stop_matched>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_sequence_already_stopped>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`rendering`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`sequence_running>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`dispatch_render_detokenizer>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_dispatch_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_commit_output_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_commit_output_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`commit_render_detokenizer_output>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_strip_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`strip_needed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_strip_prefix_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`strip_not_needed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_strip_state_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_prefix_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`compute_render_leading_space_prefix>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_strip_prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`strip_prefix_nonzero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`apply_render_leading_space_strip>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_strip_apply_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`strip_prefix_zero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_strip_state_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_apply_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_strip_state_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_state_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`update_render_strip_state>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_stop_match_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_stop_match_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`apply_render_stop_matching>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_finalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_finalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`request_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_finalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`request_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_finalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_dispatch_backend_failure>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`set_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_dispatch_reported_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`set_error_from_detokenizer>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_dispatch_lengths_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`set_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`publish_render_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`publish_render_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`flushing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_output_fits>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_copy_sequence_buffers>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`flushing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_output_too_large>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`set_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`flush_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`flush_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`publish_flush_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`flush_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`publish_flush_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`binding`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`binding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initializing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialization_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialize_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialize_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | | [`rendering`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`render_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_dispatch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_result_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_commit_output_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_prefix_scan_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_apply_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_strip_state_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_stop_match_exec`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_finalize_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`render_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | | [`flushing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | -| [`flush_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`flush_publish_success`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | +| [`flush_publish_error`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/renderer/sm.hpp) | diff --git a/docs/architecture/text_tokenizer.md b/docs/architecture/text_tokenizer.md index cc2bba4a..a49d8edb 100644 --- a/docs/architecture/text_tokenizer.md +++ b/docs/architecture/text_tokenizer.md @@ -8,54 +8,65 @@ Source: [`emel/text/tokenizer/sm.hpp`](https://github.com/stateforward/emel.cpp/ stateDiagram-v2 direction TB [*] --> uninitialized - uninitialized --> binding_preprocessor : bind [can_bind_] / begin_bind_ - uninitialized --> errored : bind [always] / reject_bind_ - uninitialized --> errored : tokenize [always] / reject_invalid_ - binding_preprocessor --> binding_preprocessor_decision : [always] / bind_preprocessor_ - binding_preprocessor_decision --> errored : [phase_failed_] / none - binding_preprocessor_decision --> binding_encoder : [phase_ok_] / none - binding_encoder --> binding_encoder_decision : [always] / bind_encoder_ - binding_encoder_decision --> errored : [phase_failed_] / none - binding_encoder_decision --> idle : [phase_ok_] / none - idle --> binding_preprocessor : bind [can_bind_] / begin_bind_ - idle --> errored : bind [always] / reject_bind_ - idle --> preprocessing : tokenize [can_tokenize_] / begin_tokenize_ - idle --> errored : tokenize [always] / reject_invalid_ - done --> binding_preprocessor : bind [can_bind_] / begin_bind_ - done --> errored : bind [always] / reject_bind_ - done --> preprocessing : tokenize [can_tokenize_] / begin_tokenize_ - done --> errored : tokenize [always] / reject_invalid_ - errored --> binding_preprocessor : bind [can_bind_] / begin_bind_ - errored --> errored : bind [always] / reject_bind_ - errored --> preprocessing : tokenize [can_tokenize_] / begin_tokenize_ - errored --> errored : tokenize [always] / reject_invalid_ - unexpected --> binding_preprocessor : bind [can_bind_] / begin_bind_ - unexpected --> unexpected : bind [always] / reject_bind_ - unexpected --> preprocessing : tokenize [can_tokenize_] / begin_tokenize_ - unexpected --> unexpected : tokenize [always] / reject_invalid_ - preprocessing --> preprocess_decision : [always] / run_preprocess_ - preprocess_decision --> errored : [phase_failed_] / none - preprocess_decision --> prefix_decision : [phase_ok_] / none - prefix_decision --> encoding_ready : [bos_ready_] / append_bos_ - prefix_decision --> errored : [bos_no_capacity_] / set_capacity_error_ - prefix_decision --> errored : [bos_invalid_id_] / set_invalid_id_error_ - prefix_decision --> encoding_ready : [no_prefix_] / none - encoding_ready --> suffix_decision : [no_more_fragments_] / none - encoding_ready --> errored : [more_fragments_no_capacity_] / set_capacity_error_ - encoding_ready --> encoding_token_fragment : [more_fragments_token_] / none - encoding_ready --> encoding_raw_fragment : [more_fragments_raw_] / none - encoding_token_fragment --> encoding_decision : [always] / append_fragment_token_ - encoding_raw_fragment --> encoding_decision : [always] / encode_raw_fragment_ - encoding_decision --> errored : [phase_failed_] / none - encoding_decision --> encoding_ready : [phase_ok_] / none - suffix_decision --> finalizing : [sep_ready_] / append_sep_ - suffix_decision --> errored : [sep_no_capacity_] / set_capacity_error_ - suffix_decision --> errored : [sep_invalid_id_] / set_invalid_id_error_ - suffix_decision --> finalizing : [eos_ready_] / append_eos_ - suffix_decision --> errored : [eos_no_capacity_] / set_capacity_error_ - suffix_decision --> errored : [eos_invalid_id_] / set_invalid_id_error_ - suffix_decision --> finalizing : [no_suffix_] / none - finalizing --> done : [always] / finalize_ + uninitialized --> binding_preprocessor : bind_runtime [can_bind_] / begin_bind_ + uninitialized --> errored : bind_runtime [always] / reject_bind_ + uninitialized --> errored : tokenize_runtime [always] / reject_invalid_ + idle --> binding_preprocessor : bind_runtime [can_bind_] / begin_bind_ + idle --> errored : bind_runtime [always] / reject_bind_ + idle --> preprocessing : tokenize_runtime [can_tokenize_] / begin_tokenize_ + idle --> errored : tokenize_runtime [always] / reject_invalid_ + done --> binding_preprocessor : bind_runtime [can_bind_] / begin_bind_ + done --> errored : bind_runtime [always] / reject_bind_ + done --> preprocessing : tokenize_runtime [can_tokenize_] / begin_tokenize_ + done --> errored : tokenize_runtime [always] / reject_invalid_ + errored --> binding_preprocessor : bind_runtime [can_bind_] / begin_bind_ + errored --> errored : bind_runtime [always] / reject_bind_ + errored --> preprocessing : tokenize_runtime [can_tokenize_] / begin_tokenize_ + errored --> errored : tokenize_runtime [always] / reject_invalid_ + unexpected --> binding_preprocessor : bind_runtime [can_bind_] / begin_bind_ + unexpected --> unexpected : bind_runtime [always] / reject_bind_ + unexpected --> preprocessing : tokenize_runtime [can_tokenize_] / begin_tokenize_ + unexpected --> unexpected : tokenize_runtime [always] / reject_invalid_ + binding_preprocessor --> binding_preprocessor_decision : completion_bind_runtime_ [always] / bind_preprocessor_ + binding_preprocessor_decision --> binding_encoder : completion_bind_runtime_ [bind_preprocessor_error_none_] / none + binding_preprocessor_decision --> errored : completion_bind_runtime_ [bind_preprocessor_error_invalid_request_] / none + binding_preprocessor_decision --> errored : completion_bind_runtime_ [bind_preprocessor_error_model_invalid_] / none + binding_preprocessor_decision --> errored : completion_bind_runtime_ [bind_preprocessor_error_backend_error_] / none + binding_preprocessor_decision --> errored : completion_bind_runtime_ [bind_preprocessor_error_unknown_] / none + binding_encoder --> binding_encoder_decision : completion_bind_runtime_ [always] / bind_encoder_ + binding_encoder_decision --> idle : completion_bind_runtime_ [bind_encoder_error_none_] / mark_bind_success_ + binding_encoder_decision --> errored : completion_bind_runtime_ [bind_encoder_error_invalid_request_] / none + binding_encoder_decision --> errored : completion_bind_runtime_ [bind_encoder_error_model_invalid_] / none + binding_encoder_decision --> errored : completion_bind_runtime_ [bind_encoder_error_backend_error_] / none + binding_encoder_decision --> errored : completion_bind_runtime_ [bind_encoder_error_unknown_] / none + preprocessing --> preprocess_decision : completion_tokenize_runtime_ [always] / dispatch_preprocess_ + preprocess_decision --> errored : completion_tokenize_runtime_ [preprocess_rejected_no_error_] / set_backend_error_ + preprocess_decision --> errored : completion_tokenize_runtime_ [preprocess_reported_error_] / set_error_from_preprocess_ + preprocess_decision --> errored : completion_tokenize_runtime_ [preprocess_fragment_count_invalid_] / set_invalid_request_error_ + preprocess_decision --> prefix_decision : completion_tokenize_runtime_ [preprocess_success_] / none + prefix_decision --> encoding_ready : completion_tokenize_runtime_ [bos_ready_] / append_bos_ + prefix_decision --> errored : completion_tokenize_runtime_ [bos_no_capacity_] / set_invalid_request_error_ + prefix_decision --> errored : completion_tokenize_runtime_ [bos_invalid_id_] / set_invalid_id_error_ + prefix_decision --> encoding_ready : completion_tokenize_runtime_ [no_prefix_] / none + encoding_ready --> suffix_decision : completion_tokenize_runtime_ [no_more_fragments_] / none + encoding_ready --> errored : completion_tokenize_runtime_ [more_fragments_no_capacity_] / set_invalid_request_error_ + encoding_ready --> errored : completion_tokenize_runtime_ [more_fragments_token_invalid_] / set_invalid_request_error_ + encoding_ready --> encoding_token_fragment : completion_tokenize_runtime_ [more_fragments_token_valid_] / none + encoding_ready --> encoding_raw_fragment : completion_tokenize_runtime_ [more_fragments_raw_] / none + encoding_token_fragment --> encoding_ready : completion_tokenize_runtime_ [always] / append_fragment_token_ + encoding_raw_fragment --> encoding_raw_decision : completion_tokenize_runtime_ [always] / dispatch_encode_raw_fragment_ + encoding_raw_decision --> errored : completion_tokenize_runtime_ [encode_rejected_no_error_] / set_invalid_id_error_ + encoding_raw_decision --> errored : completion_tokenize_runtime_ [encode_reported_error_] / set_error_from_encode_ + encoding_raw_decision --> errored : completion_tokenize_runtime_ [encode_count_invalid_] / set_invalid_request_error_ + encoding_raw_decision --> encoding_ready : completion_tokenize_runtime_ [encode_success_] / commit_encoded_fragment_ + suffix_decision --> finalizing : completion_tokenize_runtime_ [sep_ready_] / append_sep_ + suffix_decision --> errored : completion_tokenize_runtime_ [sep_no_capacity_] / set_invalid_request_error_ + suffix_decision --> errored : completion_tokenize_runtime_ [sep_invalid_id_] / set_invalid_id_error_ + suffix_decision --> finalizing : completion_tokenize_runtime_ [eos_ready_] / append_eos_ + suffix_decision --> errored : completion_tokenize_runtime_ [eos_no_capacity_] / set_invalid_request_error_ + suffix_decision --> errored : completion_tokenize_runtime_ [eos_invalid_id_] / set_invalid_id_error_ + suffix_decision --> finalizing : completion_tokenize_runtime_ [no_suffix_] / none + finalizing --> done : completion_tokenize_runtime_ [always] / finalize_ uninitialized --> unexpected : _ [always] / on_unexpected_ binding_preprocessor --> unexpected : _ [always] / on_unexpected_ binding_preprocessor_decision --> unexpected : _ [always] / on_unexpected_ @@ -68,7 +79,7 @@ stateDiagram-v2 encoding_ready --> unexpected : _ [always] / on_unexpected_ encoding_token_fragment --> unexpected : _ [always] / on_unexpected_ encoding_raw_fragment --> unexpected : _ [always] / on_unexpected_ - encoding_decision --> unexpected : _ [always] / on_unexpected_ + encoding_raw_decision --> unexpected : _ [always] / on_unexpected_ suffix_decision --> unexpected : _ [always] / on_unexpected_ finalizing --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ @@ -80,54 +91,65 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_preprocessor>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_preprocessor_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`binding_preprocessor_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`binding_preprocessor_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_encoder`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`binding_encoder`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_encoder>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_encoder_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`binding_encoder_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`binding_encoder_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocessing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocessing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocessing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocessing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`preprocessing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`run_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocess_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`preprocess_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`preprocess_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`bos_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`append_bos>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`bos_no_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_capacity_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`bos_invalid_id>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_id_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`no_prefix>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`no_more_fragments>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`more_fragments_no_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_capacity_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`more_fragments_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_token_fragment`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`more_fragments_raw>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_raw_fragment`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`encoding_token_fragment`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`append_fragment_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`encoding_raw_fragment`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encode_raw_fragment>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`encoding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`encoding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`sep_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`append_sep>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`finalizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`sep_no_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_capacity_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`sep_invalid_id>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_id_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`eos_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`append_eos>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`finalizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`eos_no_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_capacity_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`eos_invalid_id>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_id_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`no_suffix>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`finalizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`finalizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`finalize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocessing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocessing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocessing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_bind>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`can_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`begin_tokenize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocessing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`tokenize_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_preprocessor>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_preprocessor_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`binding_preprocessor_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_preprocessor_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_encoder`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`binding_preprocessor_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_preprocessor_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`binding_preprocessor_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_preprocessor_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`binding_preprocessor_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_preprocessor_error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`binding_preprocessor_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_preprocessor_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`binding_encoder`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_encoder>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`binding_encoder_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`binding_encoder_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_encoder_error_none>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`mark_bind_success>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`binding_encoder_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_encoder_error_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`binding_encoder_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_encoder_error_model_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`binding_encoder_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_encoder_error_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`binding_encoder_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bind_encoder_error_unknown>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`preprocessing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`dispatch_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocess_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`preprocess_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocess_rejected_no_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`preprocess_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocess_reported_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_error_from_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`preprocess_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocess_fragment_count_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`preprocess_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`preprocess_success>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bos_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`append_bos>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bos_no_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`bos_invalid_id>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_id_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`prefix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`no_prefix>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`no_more_fragments>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`more_fragments_no_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`more_fragments_token_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`more_fragments_token_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_token_fragment`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`more_fragments_raw>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_raw_fragment`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`encoding_token_fragment`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`append_fragment_token>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`encoding_raw_fragment`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`dispatch_encode_raw_fragment>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_raw_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`encoding_raw_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encode_rejected_no_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_id_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`encoding_raw_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encode_reported_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_error_from_encode>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`encoding_raw_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encode_count_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`encoding_raw_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encode_success>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`commit_encoded_fragment>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`sep_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`append_sep>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`finalizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`sep_no_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`sep_invalid_id>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_id_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`eos_ready>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`append_eos>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`finalizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`eos_no_capacity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`eos_invalid_id>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`set_invalid_id_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`no_suffix>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`finalizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`finalizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`finalize>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | | [`uninitialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | | [`binding_preprocessor`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | | [`binding_preprocessor_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | @@ -140,7 +162,7 @@ stateDiagram-v2 | [`encoding_ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | | [`encoding_token_fragment`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | | [`encoding_raw_fragment`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | -| [`encoding_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | +| [`encoding_raw_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | | [`suffix_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | | [`finalizing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/sm.hpp) | diff --git a/docs/architecture/text_tokenizer_preprocessor_bpe.md b/docs/architecture/text_tokenizer_preprocessor_bpe.md index eda89491..b7f81291 100644 --- a/docs/architecture/text_tokenizer_preprocessor_bpe.md +++ b/docs/architecture/text_tokenizer_preprocessor_bpe.md @@ -8,26 +8,60 @@ Source: [`emel/text/tokenizer/preprocessor/bpe/sm.hpp`](https://github.com/state stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_select : [always] / build_specials_ - partitioning_select --> partitioning_bpe_no_specials : [no_specials_] / none - partitioning_select --> partitioning_bpe_with_specials : [has_specials_] / none - partitioning_bpe_no_specials --> partition_decision : [always] / partition_bpe_no_specials_ - partitioning_bpe_with_specials --> partition_decision : [always] / partition_bpe_with_specials_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partitioning_select : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partitioning_select --> partitioning_bpe_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partitioning_select --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partitioning_select --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_bpe_with_specials_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_bpe_with_specials_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_bpe_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_bpe_no_specials_input_decision --> partitioning_bpe_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_bpe_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_bpe_with_specials_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_bpe_with_specials_parse_input_decision --> partitioning_bpe_with_specials_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_bpe_with_specials_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_bpe_with_specials_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_bpe_with_specials_skip_input_decision --> partitioning_bpe_with_specials_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_bpe_with_specials_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_bpe_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_bpe_no_specials_ + partitioning_bpe_with_specials_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_bpe_with_specials_parse_special_ + partitioning_bpe_with_specials_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_bpe_with_specials_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ partitioning_select --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_bpe_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_bpe_with_specials_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_bpe_with_specials_skip_input_decision --> unexpected : _ [always] / on_unexpected_ partitioning_bpe_no_specials --> unexpected : _ [always] / on_unexpected_ - partitioning_bpe_with_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_bpe_with_specials_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_bpe_with_specials_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ @@ -38,26 +72,60 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partitioning_select`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`partitioning_select`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | - | [`no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partitioning_bpe_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`partitioning_select`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | - | [`has_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partitioning_bpe_with_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`partitioning_bpe_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_bpe_no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`partitioning_bpe_with_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_bpe_with_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`fragments_buffer_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`fragments_buffer_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`fragments_capacity_nonzero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`fragments_capacity_zero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`fragments_capacity_within_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`fragments_capacity_exceeds_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`build_specials_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partitioning_select`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`build_specials_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`build_specials_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`build_specials_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_select`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partitioning_bpe_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_select`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`has_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_select`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`parse_special_enabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partitioning_bpe_with_specials_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`parse_special_disabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partitioning_bpe_with_specials_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partitioning_bpe_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_with_specials_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_with_specials_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partitioning_bpe_with_specials_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_with_specials_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_with_specials_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_with_specials_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partitioning_bpe_with_specials_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_with_specials_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_bpe_no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_with_specials_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_bpe_with_specials_parse_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_with_specials_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_bpe_with_specials_skip_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`partition_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | | [`partitioning_select`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_with_specials_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_with_specials_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | | [`partitioning_bpe_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | -| [`partitioning_bpe_with_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_with_specials_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | +| [`partitioning_bpe_with_specials_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/bpe/sm.hpp) | diff --git a/docs/architecture/text_tokenizer_preprocessor_fallback.md b/docs/architecture/text_tokenizer_preprocessor_fallback.md index 8135e57d..432b2884 100644 --- a/docs/architecture/text_tokenizer_preprocessor_fallback.md +++ b/docs/architecture/text_tokenizer_preprocessor_fallback.md @@ -8,21 +8,60 @@ Source: [`emel/text/tokenizer/preprocessor/fallback/sm.hpp`](https://github.com/ stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_non_bpe : [always] / build_specials_ - partitioning_non_bpe --> partition_decision : [always] / partition_non_bpe_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partition_specials_decision : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partition_specials_decision --> partitioning_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partition_specials_decision --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partition_specials_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_non_bpe_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_non_bpe_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_no_specials_input_decision --> partitioning_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_parse_input_decision --> partitioning_non_bpe_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_skip_input_decision --> partitioning_non_bpe_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_no_specials_ + partitioning_non_bpe_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_parse_special_ + partitioning_non_bpe_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ - partitioning_non_bpe --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ @@ -33,21 +72,60 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | -| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | -| [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_non_bpe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`fragments_buffer_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`fragments_buffer_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`fragments_capacity_nonzero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`fragments_capacity_zero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`fragments_capacity_within_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`fragments_capacity_exceeds_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`build_specials_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`build_specials_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`build_specials_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`build_specials_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`has_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`parse_special_enabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`parse_special_disabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_non_bpe_parse_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_non_bpe_skip_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`partition_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | -| [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | +| [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/fallback/sm.hpp) | diff --git a/docs/architecture/text_tokenizer_preprocessor_plamo2.md b/docs/architecture/text_tokenizer_preprocessor_plamo2.md index e209bbb4..0be8e7b6 100644 --- a/docs/architecture/text_tokenizer_preprocessor_plamo2.md +++ b/docs/architecture/text_tokenizer_preprocessor_plamo2.md @@ -8,21 +8,60 @@ Source: [`emel/text/tokenizer/preprocessor/plamo2/sm.hpp`](https://github.com/st stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_non_bpe : [always] / build_specials_ - partitioning_non_bpe --> partition_decision : [always] / partition_non_bpe_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partition_specials_decision : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partition_specials_decision --> partitioning_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partition_specials_decision --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partition_specials_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_non_bpe_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_non_bpe_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_no_specials_input_decision --> partitioning_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_parse_input_decision --> partitioning_non_bpe_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_skip_input_decision --> partitioning_non_bpe_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_no_specials_ + partitioning_non_bpe_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_parse_special_ + partitioning_non_bpe_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ - partitioning_non_bpe --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ @@ -33,21 +72,60 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | -| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | -| [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_non_bpe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`fragments_buffer_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`fragments_buffer_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`fragments_capacity_nonzero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`fragments_capacity_zero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`fragments_capacity_within_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`fragments_capacity_exceeds_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`build_specials_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`build_specials_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`build_specials_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`build_specials_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`has_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`parse_special_enabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`parse_special_disabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_non_bpe_parse_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_non_bpe_skip_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`partition_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | -| [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | +| [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/plamo2/sm.hpp) | diff --git a/docs/architecture/text_tokenizer_preprocessor_rwkv.md b/docs/architecture/text_tokenizer_preprocessor_rwkv.md index eb751ac5..ac7b7f9f 100644 --- a/docs/architecture/text_tokenizer_preprocessor_rwkv.md +++ b/docs/architecture/text_tokenizer_preprocessor_rwkv.md @@ -8,21 +8,60 @@ Source: [`emel/text/tokenizer/preprocessor/rwkv/sm.hpp`](https://github.com/stat stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_non_bpe : [always] / build_specials_ - partitioning_non_bpe --> partition_decision : [always] / partition_non_bpe_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partition_specials_decision : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partition_specials_decision --> partitioning_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partition_specials_decision --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partition_specials_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_non_bpe_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_non_bpe_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_no_specials_input_decision --> partitioning_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_parse_input_decision --> partitioning_non_bpe_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_skip_input_decision --> partitioning_non_bpe_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_no_specials_ + partitioning_non_bpe_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_parse_special_ + partitioning_non_bpe_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ - partitioning_non_bpe --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ @@ -33,21 +72,60 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | -| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | -| [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_non_bpe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`fragments_buffer_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`fragments_buffer_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`fragments_capacity_nonzero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`fragments_capacity_zero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`fragments_capacity_within_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`fragments_capacity_exceeds_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`build_specials_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`build_specials_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`build_specials_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`build_specials_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`has_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`parse_special_enabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`parse_special_disabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_non_bpe_parse_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_non_bpe_skip_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`partition_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | -| [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | +| [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/rwkv/sm.hpp) | diff --git a/docs/architecture/text_tokenizer_preprocessor_spm.md b/docs/architecture/text_tokenizer_preprocessor_spm.md index a161327c..27a583fc 100644 --- a/docs/architecture/text_tokenizer_preprocessor_spm.md +++ b/docs/architecture/text_tokenizer_preprocessor_spm.md @@ -8,21 +8,60 @@ Source: [`emel/text/tokenizer/preprocessor/spm/sm.hpp`](https://github.com/state stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_non_bpe : [always] / build_specials_ - partitioning_non_bpe --> partition_decision : [always] / partition_non_bpe_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partition_specials_decision : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partition_specials_decision --> partitioning_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partition_specials_decision --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partition_specials_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_non_bpe_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_non_bpe_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_no_specials_input_decision --> partitioning_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_parse_input_decision --> partitioning_non_bpe_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_skip_input_decision --> partitioning_non_bpe_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_no_specials_ + partitioning_non_bpe_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_parse_special_ + partitioning_non_bpe_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ - partitioning_non_bpe --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ @@ -33,21 +72,60 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | -| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | -| [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_non_bpe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`fragments_buffer_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`fragments_buffer_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`fragments_capacity_nonzero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`fragments_capacity_zero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`fragments_capacity_within_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`fragments_capacity_exceeds_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`build_specials_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`build_specials_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`build_specials_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`build_specials_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`has_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`parse_special_enabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`parse_special_disabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_non_bpe_parse_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_non_bpe_skip_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`partition_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | -| [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | +| [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/spm/sm.hpp) | diff --git a/docs/architecture/text_tokenizer_preprocessor_ugm.md b/docs/architecture/text_tokenizer_preprocessor_ugm.md index 6a79c25d..ac020c95 100644 --- a/docs/architecture/text_tokenizer_preprocessor_ugm.md +++ b/docs/architecture/text_tokenizer_preprocessor_ugm.md @@ -8,21 +8,60 @@ Source: [`emel/text/tokenizer/preprocessor/ugm/sm.hpp`](https://github.com/state stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_non_bpe : [always] / build_specials_ - partitioning_non_bpe --> partition_decision : [always] / partition_non_bpe_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partition_specials_decision : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partition_specials_decision --> partitioning_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partition_specials_decision --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partition_specials_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_non_bpe_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_non_bpe_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_no_specials_input_decision --> partitioning_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_parse_input_decision --> partitioning_non_bpe_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_skip_input_decision --> partitioning_non_bpe_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_no_specials_ + partitioning_non_bpe_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_parse_special_ + partitioning_non_bpe_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ - partitioning_non_bpe --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ @@ -33,21 +72,60 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | -| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | -| [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_non_bpe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`fragments_buffer_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`fragments_buffer_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`fragments_capacity_nonzero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`fragments_capacity_zero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`fragments_capacity_within_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`fragments_capacity_exceeds_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`build_specials_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`build_specials_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`build_specials_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`build_specials_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`has_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`parse_special_enabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`parse_special_disabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_non_bpe_parse_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_non_bpe_skip_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`partition_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | -| [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | +| [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/ugm/sm.hpp) | diff --git a/docs/architecture/text_tokenizer_preprocessor_wpm.md b/docs/architecture/text_tokenizer_preprocessor_wpm.md index ce468e5b..6a4e0c26 100644 --- a/docs/architecture/text_tokenizer_preprocessor_wpm.md +++ b/docs/architecture/text_tokenizer_preprocessor_wpm.md @@ -8,21 +8,60 @@ Source: [`emel/text/tokenizer/preprocessor/wpm/sm.hpp`](https://github.com/state stateDiagram-v2 direction TB [*] --> idle - idle --> preparing : preprocess [valid_request_] / begin_preprocess_ - idle --> errored : preprocess [invalid_request_] / reject_invalid_ - preparing --> partitioning_non_bpe : [always] / build_specials_ - partitioning_non_bpe --> partition_decision : [always] / partition_non_bpe_ - partition_decision --> errored : [phase_failed_] / ensure_last_error_ - partition_decision --> done : [phase_ok_] / mark_done_ - done --> preparing : preprocess [valid_request_] / begin_preprocess_ - done --> errored : preprocess [invalid_request_] / reject_invalid_ - errored --> preparing : preprocess [valid_request_] / begin_preprocess_ - errored --> errored : preprocess [invalid_request_] / reject_invalid_ - unexpected --> preparing : preprocess [valid_request_] / begin_preprocess_ - unexpected --> errored : preprocess [invalid_request_] / reject_invalid_ + idle --> request_buffer_decision : preprocess_runtime [always] / none + done --> request_buffer_decision : preprocess_runtime [always] / none + errored --> request_buffer_decision : preprocess_runtime [always] / none + unexpected --> request_buffer_decision : preprocess_runtime [always] / none + request_buffer_decision --> request_capacity_nonzero_decision : completion_preprocess_runtime_ [fragments_buffer_present_] / none + request_buffer_decision --> errored : completion_preprocess_runtime_ [fragments_buffer_missing_] / reject_invalid_ + request_buffer_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_nonzero_decision --> request_capacity_limit_decision : completion_preprocess_runtime_ [fragments_capacity_nonzero_] / none + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_zero_] / reject_invalid_ + request_capacity_nonzero_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + request_capacity_limit_decision --> preparing : completion_preprocess_runtime_ [fragments_capacity_within_limit_] / begin_preprocess_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [fragments_capacity_exceeds_limit_] / reject_invalid_ + request_capacity_limit_decision --> errored : completion_preprocess_runtime_ [always] / reject_invalid_ + preparing --> build_specials_decision : completion_preprocess_runtime_ [always] / build_specials_ + build_specials_decision --> partition_specials_decision : completion_preprocess_runtime_ [build_specials_ok_] / none + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_invalid_request_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_backend_error_] / ensure_last_error_ + build_specials_decision --> errored : completion_preprocess_runtime_ [build_specials_unknown_error_] / ensure_last_error_ + partition_specials_decision --> partitioning_no_specials_input_decision : completion_preprocess_runtime_ [no_specials_] / none + partition_specials_decision --> partition_parse_special_decision : completion_preprocess_runtime_ [has_specials_] / none + partition_specials_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partition_parse_special_decision --> partitioning_non_bpe_parse_input_decision : completion_preprocess_runtime_ [parse_special_enabled_] / none + partition_parse_special_decision --> partitioning_non_bpe_skip_input_decision : completion_preprocess_runtime_ [parse_special_disabled_] / none + partition_parse_special_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_no_specials_input_decision --> partitioning_no_specials : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_no_specials_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_parse_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_parse_input_decision --> partitioning_non_bpe_parse_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_parse_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_non_bpe_skip_input_decision --> partition_decision : completion_preprocess_runtime_ [request_text_empty_] / set_empty_partition_result_ + partitioning_non_bpe_skip_input_decision --> partitioning_non_bpe_skip_special : completion_preprocess_runtime_ [request_text_nonempty_] / none + partitioning_non_bpe_skip_input_decision --> errored : completion_preprocess_runtime_ [always] / ensure_last_error_ + partitioning_no_specials --> partition_decision : completion_preprocess_runtime_ [always] / partition_no_specials_ + partitioning_non_bpe_parse_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_parse_special_ + partitioning_non_bpe_skip_special --> partition_decision : completion_preprocess_runtime_ [always] / partition_non_bpe_skip_special_ + partition_decision --> done : completion_preprocess_runtime_ [partition_ok_] / mark_done_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_invalid_request_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_backend_error_] / ensure_last_error_ + partition_decision --> errored : completion_preprocess_runtime_ [partition_unknown_error_] / ensure_last_error_ idle --> unexpected : _ [always] / on_unexpected_ + request_buffer_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_nonzero_decision --> unexpected : _ [always] / on_unexpected_ + request_capacity_limit_decision --> unexpected : _ [always] / on_unexpected_ preparing --> unexpected : _ [always] / on_unexpected_ - partitioning_non_bpe --> unexpected : _ [always] / on_unexpected_ + build_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_specials_decision --> unexpected : _ [always] / on_unexpected_ + partition_parse_special_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_input_decision --> unexpected : _ [always] / on_unexpected_ + partitioning_no_specials --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_parse_special --> unexpected : _ [always] / on_unexpected_ + partitioning_non_bpe_skip_special --> unexpected : _ [always] / on_unexpected_ partition_decision --> unexpected : _ [always] / on_unexpected_ done --> unexpected : _ [always] / on_unexpected_ errored --> unexpected : _ [always] / on_unexpected_ @@ -33,21 +72,60 @@ stateDiagram-v2 | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | -| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | -| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | -| [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_non_bpe>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | -| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preprocess`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preprocess_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`fragments_buffer_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`fragments_buffer_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`fragments_capacity_nonzero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`fragments_capacity_zero>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`fragments_capacity_within_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`begin_preprocess>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`fragments_capacity_exceeds_limit>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`reject_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`build_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`build_specials_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`build_specials_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`build_specials_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`build_specials_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`has_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`parse_special_enabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`parse_special_disabled>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`request_text_empty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`set_empty_partition_result>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`request_text_nonempty>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_no_specials>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_non_bpe_parse_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_non_bpe_skip_special>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`partition_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`ensure_last_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | | [`idle`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`request_buffer_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`request_capacity_nonzero_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`request_capacity_limit_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | | [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | -| [`partitioning_non_bpe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`build_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partition_specials_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partition_parse_special_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_no_specials_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_non_bpe_parse_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_non_bpe_skip_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_no_specials`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_non_bpe_parse_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | +| [`partitioning_non_bpe_skip_special`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | | [`partition_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/text/tokenizer/preprocessor/wpm/sm.hpp) | diff --git a/docs/architecture/token_batcher.md b/docs/architecture/token_batcher.md index 023dc6f5..fa5fa01e 100644 --- a/docs/architecture/token_batcher.md +++ b/docs/architecture/token_batcher.md @@ -7,44 +7,292 @@ Source: [`emel/token/batcher/sm.hpp`](https://github.com/stateforward/emel.cpp/b ```mermaid stateDiagram-v2 direction TB - [*] --> initialized - initialized --> batching : batch [valid_request_] / begin_batch_ - initialized --> errored : batch [invalid_request_] / reject_invalid_batch_ - batching --> batch_decision : [always] / run_batch_ - batch_decision --> errored : [phase_failed_] / none - batch_decision --> done : [phase_ok_] / mark_done_ - done --> batching : batch [valid_request_] / begin_batch_ - done --> errored : batch [invalid_request_] / reject_invalid_batch_ - errored --> batching : batch [valid_request_] / begin_batch_ - errored --> errored : batch [invalid_request_] / reject_invalid_batch_ - unexpected --> batching : batch [valid_request_] / begin_batch_ - unexpected --> errored : batch [invalid_request_] / reject_invalid_batch_ - initialized --> unexpected : _ [always] / on_unexpected_ - batching --> unexpected : _ [always] / on_unexpected_ - batch_decision --> unexpected : _ [always] / on_unexpected_ - done --> unexpected : _ [always] / on_unexpected_ - errored --> unexpected : _ [always] / on_unexpected_ - unexpected --> unexpected : _ [always] / on_unexpected_ + [*] --> ready + ready --> request_decision : batch_runtime [always] / begin_batch_ + request_decision --> request_validation_probe : completion_batch_runtime_ [always] / none + request_validation_probe --> request_outputs_decision : completion_batch_runtime_ [always] / none + request_outputs_decision --> request_token_counts_decision : completion_batch_runtime_ [request_outputs_present_] / none + request_outputs_decision --> errored : completion_batch_runtime_ [request_outputs_missing_] / mark_invalid_request_ + request_token_counts_decision --> request_capacities_decision : completion_batch_runtime_ [request_token_counts_valid_] / none + request_token_counts_decision --> errored : completion_batch_runtime_ [request_token_counts_invalid_] / mark_invalid_request_ + request_capacities_decision --> request_token_ids_decision : completion_batch_runtime_ [request_capacities_valid_] / none + request_capacities_decision --> errored : completion_batch_runtime_ [request_capacities_invalid_] / mark_invalid_request_ + request_token_ids_decision --> request_seq_payload_decision : completion_batch_runtime_ [request_token_ids_in_vocab_] / none + request_token_ids_decision --> errored : completion_batch_runtime_ [request_token_ids_out_of_vocab_] / mark_invalid_request_ + request_seq_payload_decision --> seq_mode_decision : completion_batch_runtime_ [request_seq_payload_valid_] / none + request_seq_payload_decision --> errored : completion_batch_runtime_ [request_seq_payload_invalid_] / mark_invalid_request_ + seq_mode_decision --> seq_from_masks : completion_batch_runtime_ [seq_mode_masks_] / normalize_seq_from_masks_ + seq_mode_decision --> seq_from_primary_ids : completion_batch_runtime_ [seq_mode_primary_ids_] / normalize_seq_from_primary_ids_ + seq_mode_decision --> seq_default : completion_batch_runtime_ [seq_mode_default_] / normalize_seq_default_ + seq_mode_decision --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + seq_from_masks --> seq_mask_words_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + seq_from_masks --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + seq_from_masks --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + seq_from_masks --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + seq_from_masks --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + seq_from_primary_ids --> seq_mask_words_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + seq_from_primary_ids --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + seq_from_primary_ids --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + seq_from_primary_ids --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + seq_from_primary_ids --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + seq_default --> seq_mask_words_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + seq_default --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + seq_default --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + seq_default --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + seq_default --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + seq_mask_words_publish_decision --> positions_mode_decision : completion_batch_runtime_ [seq_mask_words_out_present_] / publish_seq_mask_words_ + seq_mask_words_publish_decision --> positions_mode_decision : completion_batch_runtime_ [seq_mask_words_out_absent_] / none + positions_mode_decision --> positions_copy_stride_three : completion_batch_runtime_ [positions_mode_stride_three_] / copy_positions_stride_three_ + positions_mode_decision --> positions_copy_stride_one : completion_batch_runtime_ [positions_mode_stride_one_] / copy_positions_stride_one_ + positions_mode_decision --> positions_seeded_probe : completion_batch_runtime_ [positions_mode_generate_seeded_] / probe_positions_seeded_ + positions_mode_decision --> positions_unseeded_probe : completion_batch_runtime_ [positions_mode_generate_unseeded_] / probe_positions_unseeded_ + positions_mode_decision --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + positions_seeded_probe --> positions_generate_seeded : completion_batch_runtime_ [positions_seeded_probe_ok_] / generate_positions_seeded_ + positions_seeded_probe --> errored : completion_batch_runtime_ [positions_seeded_probe_backend_error_] / mark_backend_error_ + positions_seeded_probe --> errored : completion_batch_runtime_ [positions_seeded_probe_invalid_request_] / mark_invalid_request_ + positions_seeded_probe --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + positions_unseeded_probe --> positions_generate_unseeded : completion_batch_runtime_ [positions_unseeded_probe_ok_] / generate_positions_unseeded_ + positions_unseeded_probe --> errored : completion_batch_runtime_ [positions_unseeded_probe_invalid_request_] / mark_invalid_request_ + positions_unseeded_probe --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + positions_copy_stride_three --> positions_count_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + positions_copy_stride_three --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + positions_copy_stride_three --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + positions_copy_stride_three --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + positions_copy_stride_three --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + positions_copy_stride_one --> positions_count_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + positions_copy_stride_one --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + positions_copy_stride_one --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + positions_copy_stride_one --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + positions_copy_stride_one --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + positions_generate_seeded --> positions_count_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + positions_generate_seeded --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + positions_generate_seeded --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + positions_generate_seeded --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + positions_generate_seeded --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + positions_generate_unseeded --> positions_count_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + positions_generate_unseeded --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + positions_generate_unseeded --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + positions_generate_unseeded --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + positions_generate_unseeded --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + positions_count_publish_decision --> output_mode_decision : completion_batch_runtime_ [positions_count_out_present_] / publish_positions_count_ + positions_count_publish_decision --> output_mode_decision : completion_batch_runtime_ [positions_count_out_absent_] / none + output_mode_decision --> output_mask_all : completion_batch_runtime_ [output_mode_all_] / set_output_mask_all_ + output_mode_decision --> output_mask_copy : completion_batch_runtime_ [output_mode_copy_] / copy_output_mask_ + output_mode_decision --> output_mask_last : completion_batch_runtime_ [output_mode_last_] / set_output_mask_last_ + output_mode_decision --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + output_mask_all --> output_counting : completion_batch_runtime_ [phase_result_ok_] / count_outputs_total_ + output_mask_all --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + output_mask_all --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + output_mask_all --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + output_mask_all --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + output_mask_copy --> output_counting : completion_batch_runtime_ [phase_result_ok_] / count_outputs_total_ + output_mask_copy --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + output_mask_copy --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + output_mask_copy --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + output_mask_copy --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + output_mask_last --> output_counting : completion_batch_runtime_ [phase_result_ok_] / count_outputs_total_ + output_mask_last --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + output_mask_last --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + output_mask_last --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + output_mask_last --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + output_counting --> outputs_total_publish_decision : completion_batch_runtime_ [phase_result_ok_] / none + output_counting --> errored : completion_batch_runtime_ [phase_result_invalid_request_error_] / none + output_counting --> errored : completion_batch_runtime_ [phase_result_backend_error_] / none + output_counting --> errored : completion_batch_runtime_ [phase_result_internal_error_] / none + output_counting --> errored : completion_batch_runtime_ [phase_result_unknown_error_] / none + outputs_total_publish_decision --> single_output_decision : completion_batch_runtime_ [outputs_total_out_present_] / publish_outputs_total_ + outputs_total_publish_decision --> single_output_decision : completion_batch_runtime_ [outputs_total_out_absent_] / none + single_output_decision --> continuity_decision : completion_batch_runtime_ [single_output_check_skipped_] / none + single_output_decision --> single_output_probe : completion_batch_runtime_ [single_output_check_required_] / probe_single_output_per_seq_ + single_output_probe --> continuity_decision : completion_batch_runtime_ [single_output_probe_ok_] / none + single_output_probe --> errored : completion_batch_runtime_ [single_output_probe_invalid_request_] / mark_invalid_request_ + single_output_probe --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + continuity_decision --> done : completion_batch_runtime_ [continuity_check_skipped_] / none + continuity_decision --> continuity_probe : completion_batch_runtime_ [continuity_check_required_] / probe_continuity_ + continuity_probe --> done : completion_batch_runtime_ [continuity_probe_ok_] / none + continuity_probe --> errored : completion_batch_runtime_ [continuity_probe_invalid_request_] / mark_invalid_request_ + continuity_probe --> errored : completion_batch_runtime_ [always] / mark_internal_error_ + done --> ready : completion_batch_runtime_ [done_callback_present_] / publish_done_ + done --> ready : completion_batch_runtime_ [done_callback_absent_] / publish_done_noop_ + errored --> ready : completion_batch_runtime_ [error_callback_present_] / publish_error_ + errored --> ready : completion_batch_runtime_ [error_callback_absent_] / publish_error_noop_ + ready --> ready : _ [always] / on_unexpected_ + request_decision --> ready : _ [always] / on_unexpected_ + request_validation_probe --> ready : _ [always] / on_unexpected_ + request_outputs_decision --> ready : _ [always] / on_unexpected_ + request_token_counts_decision --> ready : _ [always] / on_unexpected_ + request_capacities_decision --> ready : _ [always] / on_unexpected_ + request_token_ids_decision --> ready : _ [always] / on_unexpected_ + request_seq_payload_decision --> ready : _ [always] / on_unexpected_ + seq_mode_decision --> ready : _ [always] / on_unexpected_ + seq_from_masks --> ready : _ [always] / on_unexpected_ + seq_from_primary_ids --> ready : _ [always] / on_unexpected_ + seq_default --> ready : _ [always] / on_unexpected_ + seq_mask_words_publish_decision --> ready : _ [always] / on_unexpected_ + positions_mode_decision --> ready : _ [always] / on_unexpected_ + positions_copy_stride_three --> ready : _ [always] / on_unexpected_ + positions_copy_stride_one --> ready : _ [always] / on_unexpected_ + positions_seeded_probe --> ready : _ [always] / on_unexpected_ + positions_unseeded_probe --> ready : _ [always] / on_unexpected_ + positions_generate_seeded --> ready : _ [always] / on_unexpected_ + positions_generate_unseeded --> ready : _ [always] / on_unexpected_ + positions_count_publish_decision --> ready : _ [always] / on_unexpected_ + output_mode_decision --> ready : _ [always] / on_unexpected_ + output_mask_all --> ready : _ [always] / on_unexpected_ + output_mask_copy --> ready : _ [always] / on_unexpected_ + output_mask_last --> ready : _ [always] / on_unexpected_ + output_counting --> ready : _ [always] / on_unexpected_ + outputs_total_publish_decision --> ready : _ [always] / on_unexpected_ + single_output_decision --> ready : _ [always] / on_unexpected_ + single_output_probe --> ready : _ [always] / on_unexpected_ + continuity_decision --> ready : _ [always] / on_unexpected_ + continuity_probe --> ready : _ [always] / on_unexpected_ + done --> ready : _ [always] / on_unexpected_ + errored --> ready : _ [always] / on_unexpected_ ``` ## Transitions | Source | Event | Guard | Action | Target | | --- | --- | --- | --- | --- | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`begin_batch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batching`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`reject_invalid_batch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`batching`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`run_batch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`batch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | - | [`phase_failed>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`batch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | - | [`phase_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`begin_batch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batching`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`reject_invalid_batch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`begin_batch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batching`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`reject_invalid_batch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`valid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`begin_batch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batching`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batch`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`reject_invalid_batch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`initialized`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`batching`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`batch_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | -| [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`unexpected`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`batch_runtime`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`begin_batch>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_validation_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_validation_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_outputs_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_outputs_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_outputs_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_token_counts_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_outputs_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_outputs_missing>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_token_counts_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_token_counts_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_capacities_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_token_counts_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_token_counts_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_capacities_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_capacities_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_token_ids_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_capacities_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_capacities_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_token_ids_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_token_ids_in_vocab>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_seq_payload_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_token_ids_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_token_ids_out_of_vocab>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_seq_payload_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_seq_payload_valid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`seq_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_seq_payload_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`request_seq_payload_invalid>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`seq_mode_masks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`normalize_seq_from_masks>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`seq_from_masks`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`seq_mode_primary_ids>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`normalize_seq_from_primary_ids>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`seq_from_primary_ids`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`seq_mode_default>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`normalize_seq_default>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`seq_default`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_from_masks`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`seq_mask_words_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_from_masks`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_from_masks`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_from_masks`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_from_masks`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_from_primary_ids`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`seq_mask_words_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_from_primary_ids`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_from_primary_ids`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_from_primary_ids`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_from_primary_ids`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_default`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`seq_mask_words_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_default`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_default`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_default`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_default`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_mask_words_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`seq_mask_words_out_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`publish_seq_mask_words>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_mask_words_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`seq_mask_words_out_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_mode_stride_three>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`copy_positions_stride_three>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_copy_stride_three`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_mode_stride_one>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`copy_positions_stride_one>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_copy_stride_one`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_mode_generate_seeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`probe_positions_seeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_seeded_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_mode_generate_unseeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`probe_positions_unseeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_unseeded_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_seeded_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_seeded_probe_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`generate_positions_seeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_generate_seeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_seeded_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_seeded_probe_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_seeded_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_seeded_probe_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_seeded_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_unseeded_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_unseeded_probe_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`generate_positions_unseeded>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_generate_unseeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_unseeded_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_unseeded_probe_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_unseeded_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_copy_stride_three`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_count_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_copy_stride_three`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_copy_stride_three`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_copy_stride_three`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_copy_stride_three`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_copy_stride_one`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_count_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_copy_stride_one`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_copy_stride_one`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_copy_stride_one`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_copy_stride_one`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_generate_seeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_count_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_generate_seeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_generate_seeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_generate_seeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_generate_seeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_generate_unseeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_count_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_generate_unseeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_generate_unseeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_generate_unseeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_generate_unseeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_count_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_count_out_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`publish_positions_count>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`output_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_count_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`positions_count_out_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`output_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`output_mode_all>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`set_output_mask_all>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`output_mask_all`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`output_mode_copy>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`copy_output_mask>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`output_mask_copy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`output_mode_last>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`set_output_mask_last>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`output_mask_last`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_all`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`count_outputs_total>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`output_counting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_all`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_all`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_all`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_all`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_copy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`count_outputs_total>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`output_counting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_copy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_copy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_copy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_copy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_last`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`count_outputs_total>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`output_counting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_last`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_last`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_last`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_last`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_counting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`outputs_total_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_counting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_invalid_request_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_counting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_backend_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_counting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_counting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`phase_result_unknown_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`outputs_total_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`outputs_total_out_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`publish_outputs_total>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`single_output_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`outputs_total_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`outputs_total_out_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`single_output_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`single_output_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`single_output_check_skipped>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`continuity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`single_output_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`single_output_check_required>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`probe_single_output_per_seq>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`single_output_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`single_output_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`single_output_probe_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`continuity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`single_output_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`single_output_probe_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`single_output_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`continuity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`continuity_check_skipped>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`continuity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`continuity_check_required>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`probe_continuity>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`continuity_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`continuity_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`continuity_probe_ok>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`continuity_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`continuity_probe_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_invalid_request>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`continuity_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`mark_internal_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`done_callback_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`publish_done>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`done_callback_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`publish_done_noop>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`error_callback_present>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`publish_error>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`completion`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`error_callback_absent>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`publish_error_noop>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_validation_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_outputs_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_token_counts_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_capacities_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_token_ids_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`request_seq_payload_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_from_masks`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_from_primary_ids`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_default`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`seq_mask_words_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_copy_stride_three`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_copy_stride_one`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_seeded_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_unseeded_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_generate_seeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_generate_unseeded`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`positions_count_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mode_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_all`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_copy`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_mask_last`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`output_counting`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`outputs_total_publish_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`single_output_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`single_output_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`continuity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`continuity_probe`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | +| [`errored`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`on_unexpected>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | [`ready`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/token/batcher/sm.hpp) | diff --git a/docs/benchmarks.md b/docs/benchmarks.md index 71dfbecb..5e819446 100644 --- a/docs/benchmarks.md +++ b/docs/benchmarks.md @@ -8,80 +8,80 @@ are not. True benchmarks will be end-to-end once the system is complete. | Benchmark | emel.cpp ns/op | llama.cpp ns/op | ratio | | --- | ---: | ---: | ---: | -| `batch/planner_equal` | 939186.833 | 8692.417 | 108.047x | -| `batch/planner_seq` | 3657264.416 | 3837.959 | 952.919x | -| `batch/planner_simple` | 1284.584 | 3602.000 | 0.357x | -| `gbnf/rule_parser_basic` | 2771.709 | 455.291 | 6.088x | -| `gbnf/rule_parser_complex` | 73000.333 | 2478.042 | 29.459x | -| `kernel/aarch64/op_add` | 100.417 | 5267.250 | 0.019x | -| `kernel/aarch64/op_cos` | 1795.500 | 5821.667 | 0.308x | -| `kernel/aarch64/op_div` | 98.375 | 4783.625 | 0.021x | -| `kernel/aarch64/op_dup` | 91.916 | 4228.833 | 0.022x | -| `kernel/aarch64/op_log` | 2105.042 | 6519.542 | 0.323x | -| `kernel/aarch64/op_mul` | 101.667 | 5172.500 | 0.020x | -| `kernel/aarch64/op_mul_mat` | 4914.584 | 10503.542 | 0.468x | -| `kernel/aarch64/op_sin` | 1551.917 | 5880.000 | 0.264x | -| `kernel/aarch64/op_soft_max` | 2981.917 | 5499.375 | 0.542x | -| `kernel/aarch64/op_sqr` | 91.000 | 4428.208 | 0.021x | -| `kernel/aarch64/op_sqrt` | 143.666 | 4686.375 | 0.031x | -| `kernel/aarch64/op_sub` | 91.458 | 5398.917 | 0.017x | -| `kernel/aarch64/op_unary_exp` | 1311.250 | 5855.375 | 0.224x | -| `kernel/aarch64/op_unary_neg` | 90.000 | 4515.375 | 0.020x | -| `kernel/aarch64/op_unary_relu` | 94.583 | 4562.041 | 0.021x | -| `logits/sampler_raw/vocab_128000` | 24341.833 | 18744.958 | 1.299x | -| `logits/sampler_raw/vocab_256000` | 35257.833 | 35719.625 | 0.987x | -| `logits/sampler_raw/vocab_32000` | 4933.417 | 5106.333 | 0.966x | -| `logits/sampler_sml/vocab_128000` | 16054.625 | 16349.666 | 0.982x | -| `logits/sampler_sml/vocab_256000` | 33690.792 | 27527.209 | 1.224x | -| `logits/sampler_sml/vocab_32000` | 4291.666 | 4106.875 | 1.045x | -| `logits/validator_raw/vocab_128000` | 90702.083 | 88182.583 | 1.029x | -| `logits/validator_raw/vocab_256000` | 192301.708 | 176266.208 | 1.091x | -| `logits/validator_raw/vocab_32000` | 23929.792 | 23373.000 | 1.024x | -| `logits/validator_sml/vocab_128000` | 113048.708 | 96825.250 | 1.168x | -| `logits/validator_sml/vocab_256000` | 199162.333 | 190301.666 | 1.047x | -| `logits/validator_sml/vocab_32000` | 24686.542 | 23527.083 | 1.049x | -| `memory/hybrid_full` | 449.666 | 37575.042 | 0.012x | -| `memory/kv_full` | 127.708 | 36796.250 | 0.003x | -| `memory/recurrent_full` | 145.417 | 5488.125 | 0.026x | -| `text/encoders/bpe_long` | 62.125 | 59.500 | 1.044x | -| `text/encoders/bpe_short` | 61.166 | 56.792 | 1.077x | -| `text/encoders/fallback_long` | 2362.666 | 2714.000 | 0.871x | -| `text/encoders/fallback_short` | 62.041 | 65.542 | 0.947x | -| `text/encoders/plamo2_long` | 7414.167 | 8680.458 | 0.854x | -| `text/encoders/plamo2_short` | 206.458 | 197.291 | 1.046x | -| `text/encoders/rwkv_long` | 808757.708 | 826598.292 | 0.978x | -| `text/encoders/rwkv_short` | 55517.584 | 56073.250 | 0.990x | -| `text/encoders/spm_long` | 3517185.917 | 3583048.250 | 0.982x | -| `text/encoders/spm_short` | 1289.708 | 1275.958 | 1.011x | -| `text/encoders/ugm_long` | 1359503.542 | 1389902.250 | 0.978x | -| `text/encoders/ugm_short` | 708.459 | 738.958 | 0.959x | -| `text/encoders/wpm_long` | 29647.708 | 30952.750 | 0.958x | -| `text/encoders/wpm_short` | 580.417 | 585.833 | 0.991x | -| `text/jinja/formatter_long` | 62.666 | 405529.125 | 0.000x | -| `text/jinja/formatter_short` | 16.208 | 6655.708 | 0.002x | -| `text/jinja/parser_long` | 189800.417 | 55849.458 | 3.398x | -| `text/jinja/parser_short` | 2228.208 | 660.625 | 3.373x | -| `tokenizer/full_bpe_long` | 13145.375 | 14264.333 | 0.922x | -| `tokenizer/full_bpe_short` | 319.375 | 306.542 | 1.042x | -| `tokenizer/full_plamo2_long` | 12418.000 | 12462.000 | 0.996x | -| `tokenizer/full_plamo2_short` | 2026.375 | 1903.416 | 1.065x | -| `tokenizer/full_rwkv_long` | 814398.250 | 814529.208 | 1.000x | -| `tokenizer/full_rwkv_short` | 54591.125 | 54274.542 | 1.006x | -| `tokenizer/full_spm_long` | 3509957.875 | 3563597.917 | 0.985x | -| `tokenizer/full_spm_short` | 1436.333 | 1495.250 | 0.961x | -| `tokenizer/full_ugm_long` | 1361935.792 | 1348696.458 | 1.010x | -| `tokenizer/full_ugm_short` | 2444.750 | 2365.791 | 1.033x | -| `tokenizer/full_wpm_long` | 31507.875 | 31614.542 | 0.997x | -| `tokenizer/full_wpm_short` | 2254.542 | 2244.708 | 1.004x | -| `tokenizer/preprocessor_bpe_long` | 3358.042 | 5341.625 | 0.629x | -| `tokenizer/preprocessor_bpe_short` | 134.125 | 1727.208 | 0.078x | -| `tokenizer/preprocessor_plamo2_long` | 3991.750 | 5544.500 | 0.720x | -| `tokenizer/preprocessor_plamo2_short` | 2412.292 | 3613.083 | 0.668x | -| `tokenizer/preprocessor_rwkv_long` | 4216.417 | 5511.833 | 0.765x | -| `tokenizer/preprocessor_rwkv_short` | 3026.209 | 3572.750 | 0.847x | -| `tokenizer/preprocessor_spm_long` | 5179.917 | 5299.041 | 0.978x | -| `tokenizer/preprocessor_spm_short` | 2459.750 | 3744.958 | 0.657x | -| `tokenizer/preprocessor_ugm_long` | 5050.041 | 5589.458 | 0.903x | -| `tokenizer/preprocessor_ugm_short` | 3144.458 | 3573.167 | 0.880x | -| `tokenizer/preprocessor_wpm_long` | 5034.084 | 5417.125 | 0.929x | -| `tokenizer/preprocessor_wpm_short` | 3096.416 | 3470.541 | 0.892x | +| `batch/planner_equal` | 2118.209 | 8819.625 | 0.240x | +| `batch/planner_seq` | 2415.000 | 3955.625 | 0.611x | +| `batch/planner_simple` | 1288.375 | 3550.250 | 0.363x | +| `gbnf/rule_parser_basic` | 488.709 | 500.417 | 0.977x | +| `gbnf/rule_parser_complex` | 3341.584 | 2556.625 | 1.307x | +| `kernel/aarch64/op_add` | 97.042 | 5402.375 | 0.018x | +| `kernel/aarch64/op_cos` | 1673.875 | 5981.209 | 0.280x | +| `kernel/aarch64/op_div` | 94.667 | 4337.250 | 0.022x | +| `kernel/aarch64/op_dup` | 93.125 | 4470.666 | 0.021x | +| `kernel/aarch64/op_log` | 1847.875 | 6028.375 | 0.307x | +| `kernel/aarch64/op_mul` | 94.917 | 5094.000 | 0.019x | +| `kernel/aarch64/op_mul_mat` | 4612.916 | 10541.083 | 0.438x | +| `kernel/aarch64/op_sin` | 1302.583 | 5466.125 | 0.238x | +| `kernel/aarch64/op_soft_max` | 2127.541 | 4986.583 | 0.427x | +| `kernel/aarch64/op_sqr` | 89.166 | 4615.583 | 0.019x | +| `kernel/aarch64/op_sqrt` | 159.250 | 4502.000 | 0.035x | +| `kernel/aarch64/op_sub` | 105.041 | 5300.667 | 0.020x | +| `kernel/aarch64/op_unary_exp` | 1287.416 | 5662.750 | 0.227x | +| `kernel/aarch64/op_unary_neg` | 92.000 | 4548.125 | 0.020x | +| `kernel/aarch64/op_unary_relu` | 91.583 | 4402.000 | 0.021x | +| `logits/sampler_raw/vocab_128000` | 18198.292 | 19903.166 | 0.914x | +| `logits/sampler_raw/vocab_256000` | 37163.542 | 37863.000 | 0.982x | +| `logits/sampler_raw/vocab_32000` | 4314.083 | 5266.416 | 0.819x | +| `logits/sampler_sml/vocab_128000` | 15645.000 | 16619.416 | 0.941x | +| `logits/sampler_sml/vocab_256000` | 31608.250 | 36052.792 | 0.877x | +| `logits/sampler_sml/vocab_32000` | 4203.042 | 4521.166 | 0.930x | +| `logits/validator_raw/vocab_128000` | 91549.042 | 91699.917 | 0.998x | +| `logits/validator_raw/vocab_256000` | 181266.750 | 181318.667 | 1.000x | +| `logits/validator_raw/vocab_32000` | 24441.833 | 24148.834 | 1.012x | +| `logits/validator_sml/vocab_128000` | 103882.959 | 99569.292 | 1.043x | +| `logits/validator_sml/vocab_256000` | 197125.750 | 196076.791 | 1.005x | +| `logits/validator_sml/vocab_32000` | 24381.584 | 24261.709 | 1.005x | +| `memory/hybrid_full` | 460.291 | 38673.375 | 0.012x | +| `memory/kv_full` | 133.500 | 37028.000 | 0.004x | +| `memory/recurrent_full` | 151.375 | 5674.917 | 0.027x | +| `text/encoders/bpe_long` | 64.458 | 64.708 | 0.996x | +| `text/encoders/bpe_short` | 57.917 | 60.125 | 0.963x | +| `text/encoders/fallback_long` | 2501.292 | 2497.125 | 1.002x | +| `text/encoders/fallback_short` | 63.500 | 64.875 | 0.979x | +| `text/encoders/plamo2_long` | 7480.042 | 7749.459 | 0.965x | +| `text/encoders/plamo2_short` | 224.750 | 205.500 | 1.094x | +| `text/encoders/rwkv_long` | 832029.875 | 829474.083 | 1.003x | +| `text/encoders/rwkv_short` | 56237.375 | 56070.208 | 1.003x | +| `text/encoders/spm_long` | 3606311.333 | 3610968.791 | 0.999x | +| `text/encoders/spm_short` | 1284.750 | 1347.500 | 0.953x | +| `text/encoders/ugm_long` | 1372310.333 | 1372264.667 | 1.000x | +| `text/encoders/ugm_short` | 745.709 | 721.166 | 1.034x | +| `text/encoders/wpm_long` | 30396.375 | 30763.584 | 0.988x | +| `text/encoders/wpm_short` | 610.291 | 617.208 | 0.989x | +| `text/jinja/formatter_long` | 61.875 | 415277.375 | 0.000x | +| `text/jinja/formatter_short` | 16.750 | 6741.833 | 0.002x | +| `text/jinja/parser_long` | 67714.959 | 55710.750 | 1.215x | +| `text/jinja/parser_short` | 962.125 | 634.375 | 1.517x | +| `tokenizer/full_bpe_long` | 13396.667 | 13712.916 | 0.977x | +| `tokenizer/full_bpe_short` | 295.333 | 321.084 | 0.920x | +| `tokenizer/full_plamo2_long` | 12623.584 | 12354.959 | 1.022x | +| `tokenizer/full_plamo2_short` | 1959.500 | 1954.041 | 1.003x | +| `tokenizer/full_rwkv_long` | 828026.500 | 833893.958 | 0.993x | +| `tokenizer/full_rwkv_short` | 55338.917 | 55265.791 | 1.001x | +| `tokenizer/full_spm_long` | 3616312.167 | 3609337.833 | 1.002x | +| `tokenizer/full_spm_short` | 1455.458 | 1455.583 | 1.000x | +| `tokenizer/full_ugm_long` | 1378101.959 | 1378477.459 | 1.000x | +| `tokenizer/full_ugm_short` | 2441.291 | 2435.416 | 1.002x | +| `tokenizer/full_wpm_long` | 32383.291 | 32134.792 | 1.008x | +| `tokenizer/full_wpm_short` | 2371.333 | 2383.208 | 0.995x | +| `tokenizer/preprocessor_bpe_long` | 3391.917 | 5285.375 | 0.642x | +| `tokenizer/preprocessor_bpe_short` | 125.417 | 1743.541 | 0.072x | +| `tokenizer/preprocessor_plamo2_long` | 4089.208 | 5547.459 | 0.737x | +| `tokenizer/preprocessor_plamo2_short` | 2427.250 | 3579.250 | 0.678x | +| `tokenizer/preprocessor_rwkv_long` | 4088.458 | 5509.833 | 0.742x | +| `tokenizer/preprocessor_rwkv_short` | 2465.500 | 3541.583 | 0.696x | +| `tokenizer/preprocessor_spm_long` | 4116.792 | 5397.875 | 0.763x | +| `tokenizer/preprocessor_spm_short` | 2488.292 | 3512.250 | 0.708x | +| `tokenizer/preprocessor_ugm_long` | 4212.041 | 5767.708 | 0.730x | +| `tokenizer/preprocessor_ugm_short` | 2498.209 | 3701.083 | 0.675x | +| `tokenizer/preprocessor_wpm_long` | 4130.833 | 5446.917 | 0.758x | +| `tokenizer/preprocessor_wpm_short` | 2526.625 | 3654.208 | 0.691x | diff --git a/snapshots/bench/benchmarks_compare.txt b/snapshots/bench/benchmarks_compare.txt index b7458a11..292fd295 100644 --- a/snapshots/bench/benchmarks_compare.txt +++ b/snapshots/bench/benchmarks_compare.txt @@ -1,79 +1,79 @@ # ref=ecbcb7ea9d3303097519723b264a8b5f1e977028 # toolchain=/opt/homebrew/bin/zig -batch/planner_equal emel.cpp 939186.833 ns/op, llama.cpp 8692.417 ns/op, ratio=108.047x -batch/planner_seq emel.cpp 3657264.416 ns/op, llama.cpp 3837.959 ns/op, ratio=952.919x -batch/planner_simple emel.cpp 1284.584 ns/op, llama.cpp 3602.000 ns/op, ratio=0.357x -gbnf/rule_parser_basic emel.cpp 2771.709 ns/op, llama.cpp 455.291 ns/op, ratio=6.088x -gbnf/rule_parser_complex emel.cpp 73000.333 ns/op, llama.cpp 2478.042 ns/op, ratio=29.459x -kernel/aarch64/op_add emel.cpp 100.417 ns/op, llama.cpp 5267.250 ns/op, ratio=0.019x -kernel/aarch64/op_cos emel.cpp 1795.500 ns/op, llama.cpp 5821.667 ns/op, ratio=0.308x -kernel/aarch64/op_div emel.cpp 98.375 ns/op, llama.cpp 4783.625 ns/op, ratio=0.021x -kernel/aarch64/op_dup emel.cpp 91.916 ns/op, llama.cpp 4228.833 ns/op, ratio=0.022x -kernel/aarch64/op_log emel.cpp 2105.042 ns/op, llama.cpp 6519.542 ns/op, ratio=0.323x -kernel/aarch64/op_mul emel.cpp 101.667 ns/op, llama.cpp 5172.500 ns/op, ratio=0.020x -kernel/aarch64/op_mul_mat emel.cpp 4914.584 ns/op, llama.cpp 10503.542 ns/op, ratio=0.468x -kernel/aarch64/op_sin emel.cpp 1551.917 ns/op, llama.cpp 5880.000 ns/op, ratio=0.264x -kernel/aarch64/op_soft_max emel.cpp 2981.917 ns/op, llama.cpp 5499.375 ns/op, ratio=0.542x -kernel/aarch64/op_sqr emel.cpp 91.000 ns/op, llama.cpp 4428.208 ns/op, ratio=0.021x -kernel/aarch64/op_sqrt emel.cpp 143.666 ns/op, llama.cpp 4686.375 ns/op, ratio=0.031x -kernel/aarch64/op_sub emel.cpp 91.458 ns/op, llama.cpp 5398.917 ns/op, ratio=0.017x -kernel/aarch64/op_unary_exp emel.cpp 1311.250 ns/op, llama.cpp 5855.375 ns/op, ratio=0.224x -kernel/aarch64/op_unary_neg emel.cpp 90.000 ns/op, llama.cpp 4515.375 ns/op, ratio=0.020x -kernel/aarch64/op_unary_relu emel.cpp 94.583 ns/op, llama.cpp 4562.041 ns/op, ratio=0.021x -logits/sampler_raw/vocab_128000 emel.cpp 24341.833 ns/op, llama.cpp 18744.958 ns/op, ratio=1.299x -logits/sampler_raw/vocab_256000 emel.cpp 35257.833 ns/op, llama.cpp 35719.625 ns/op, ratio=0.987x -logits/sampler_raw/vocab_32000 emel.cpp 4933.417 ns/op, llama.cpp 5106.333 ns/op, ratio=0.966x -logits/sampler_sml/vocab_128000 emel.cpp 16054.625 ns/op, llama.cpp 16349.666 ns/op, ratio=0.982x -logits/sampler_sml/vocab_256000 emel.cpp 33690.792 ns/op, llama.cpp 27527.209 ns/op, ratio=1.224x -logits/sampler_sml/vocab_32000 emel.cpp 4291.666 ns/op, llama.cpp 4106.875 ns/op, ratio=1.045x -logits/validator_raw/vocab_128000 emel.cpp 90702.083 ns/op, llama.cpp 88182.583 ns/op, ratio=1.029x -logits/validator_raw/vocab_256000 emel.cpp 192301.708 ns/op, llama.cpp 176266.208 ns/op, ratio=1.091x -logits/validator_raw/vocab_32000 emel.cpp 23929.792 ns/op, llama.cpp 23373.000 ns/op, ratio=1.024x -logits/validator_sml/vocab_128000 emel.cpp 113048.708 ns/op, llama.cpp 96825.250 ns/op, ratio=1.168x -logits/validator_sml/vocab_256000 emel.cpp 199162.333 ns/op, llama.cpp 190301.666 ns/op, ratio=1.047x -logits/validator_sml/vocab_32000 emel.cpp 24686.542 ns/op, llama.cpp 23527.083 ns/op, ratio=1.049x -memory/hybrid_full emel.cpp 449.666 ns/op, llama.cpp 37575.042 ns/op, ratio=0.012x -memory/kv_full emel.cpp 127.708 ns/op, llama.cpp 36796.250 ns/op, ratio=0.003x -memory/recurrent_full emel.cpp 145.417 ns/op, llama.cpp 5488.125 ns/op, ratio=0.026x -text/encoders/bpe_long emel.cpp 62.125 ns/op, llama.cpp 59.500 ns/op, ratio=1.044x -text/encoders/bpe_short emel.cpp 61.166 ns/op, llama.cpp 56.792 ns/op, ratio=1.077x -text/encoders/fallback_long emel.cpp 2362.666 ns/op, llama.cpp 2714.000 ns/op, ratio=0.871x -text/encoders/fallback_short emel.cpp 62.041 ns/op, llama.cpp 65.542 ns/op, ratio=0.947x -text/encoders/plamo2_long emel.cpp 7414.167 ns/op, llama.cpp 8680.458 ns/op, ratio=0.854x -text/encoders/plamo2_short emel.cpp 206.458 ns/op, llama.cpp 197.291 ns/op, ratio=1.046x -text/encoders/rwkv_long emel.cpp 808757.708 ns/op, llama.cpp 826598.292 ns/op, ratio=0.978x -text/encoders/rwkv_short emel.cpp 55517.584 ns/op, llama.cpp 56073.250 ns/op, ratio=0.990x -text/encoders/spm_long emel.cpp 3517185.917 ns/op, llama.cpp 3583048.250 ns/op, ratio=0.982x -text/encoders/spm_short emel.cpp 1289.708 ns/op, llama.cpp 1275.958 ns/op, ratio=1.011x -text/encoders/ugm_long emel.cpp 1359503.542 ns/op, llama.cpp 1389902.250 ns/op, ratio=0.978x -text/encoders/ugm_short emel.cpp 708.459 ns/op, llama.cpp 738.958 ns/op, ratio=0.959x -text/encoders/wpm_long emel.cpp 29647.708 ns/op, llama.cpp 30952.750 ns/op, ratio=0.958x -text/encoders/wpm_short emel.cpp 580.417 ns/op, llama.cpp 585.833 ns/op, ratio=0.991x -text/jinja/formatter_long emel.cpp 62.666 ns/op, llama.cpp 405529.125 ns/op, ratio=0.000x -text/jinja/formatter_short emel.cpp 16.208 ns/op, llama.cpp 6655.708 ns/op, ratio=0.002x -text/jinja/parser_long emel.cpp 189800.417 ns/op, llama.cpp 55849.458 ns/op, ratio=3.398x -text/jinja/parser_short emel.cpp 2228.208 ns/op, llama.cpp 660.625 ns/op, ratio=3.373x -tokenizer/full_bpe_long emel.cpp 13145.375 ns/op, llama.cpp 14264.333 ns/op, ratio=0.922x -tokenizer/full_bpe_short emel.cpp 319.375 ns/op, llama.cpp 306.542 ns/op, ratio=1.042x -tokenizer/full_plamo2_long emel.cpp 12418.000 ns/op, llama.cpp 12462.000 ns/op, ratio=0.996x -tokenizer/full_plamo2_short emel.cpp 2026.375 ns/op, llama.cpp 1903.416 ns/op, ratio=1.065x -tokenizer/full_rwkv_long emel.cpp 814398.250 ns/op, llama.cpp 814529.208 ns/op, ratio=1.000x -tokenizer/full_rwkv_short emel.cpp 54591.125 ns/op, llama.cpp 54274.542 ns/op, ratio=1.006x -tokenizer/full_spm_long emel.cpp 3509957.875 ns/op, llama.cpp 3563597.917 ns/op, ratio=0.985x -tokenizer/full_spm_short emel.cpp 1436.333 ns/op, llama.cpp 1495.250 ns/op, ratio=0.961x -tokenizer/full_ugm_long emel.cpp 1361935.792 ns/op, llama.cpp 1348696.458 ns/op, ratio=1.010x -tokenizer/full_ugm_short emel.cpp 2444.750 ns/op, llama.cpp 2365.791 ns/op, ratio=1.033x -tokenizer/full_wpm_long emel.cpp 31507.875 ns/op, llama.cpp 31614.542 ns/op, ratio=0.997x -tokenizer/full_wpm_short emel.cpp 2254.542 ns/op, llama.cpp 2244.708 ns/op, ratio=1.004x -tokenizer/preprocessor_bpe_long emel.cpp 3358.042 ns/op, llama.cpp 5341.625 ns/op, ratio=0.629x -tokenizer/preprocessor_bpe_short emel.cpp 134.125 ns/op, llama.cpp 1727.208 ns/op, ratio=0.078x -tokenizer/preprocessor_plamo2_long emel.cpp 3991.750 ns/op, llama.cpp 5544.500 ns/op, ratio=0.720x -tokenizer/preprocessor_plamo2_short emel.cpp 2412.292 ns/op, llama.cpp 3613.083 ns/op, ratio=0.668x -tokenizer/preprocessor_rwkv_long emel.cpp 4216.417 ns/op, llama.cpp 5511.833 ns/op, ratio=0.765x -tokenizer/preprocessor_rwkv_short emel.cpp 3026.209 ns/op, llama.cpp 3572.750 ns/op, ratio=0.847x -tokenizer/preprocessor_spm_long emel.cpp 5179.917 ns/op, llama.cpp 5299.041 ns/op, ratio=0.978x -tokenizer/preprocessor_spm_short emel.cpp 2459.750 ns/op, llama.cpp 3744.958 ns/op, ratio=0.657x -tokenizer/preprocessor_ugm_long emel.cpp 5050.041 ns/op, llama.cpp 5589.458 ns/op, ratio=0.903x -tokenizer/preprocessor_ugm_short emel.cpp 3144.458 ns/op, llama.cpp 3573.167 ns/op, ratio=0.880x -tokenizer/preprocessor_wpm_long emel.cpp 5034.084 ns/op, llama.cpp 5417.125 ns/op, ratio=0.929x -tokenizer/preprocessor_wpm_short emel.cpp 3096.416 ns/op, llama.cpp 3470.541 ns/op, ratio=0.892x +batch/planner_equal emel.cpp 2118.209 ns/op, llama.cpp 8819.625 ns/op, ratio=0.240x +batch/planner_seq emel.cpp 2415.000 ns/op, llama.cpp 3955.625 ns/op, ratio=0.611x +batch/planner_simple emel.cpp 1288.375 ns/op, llama.cpp 3550.250 ns/op, ratio=0.363x +gbnf/rule_parser_basic emel.cpp 488.709 ns/op, llama.cpp 500.417 ns/op, ratio=0.977x +gbnf/rule_parser_complex emel.cpp 3341.584 ns/op, llama.cpp 2556.625 ns/op, ratio=1.307x +kernel/aarch64/op_add emel.cpp 97.042 ns/op, llama.cpp 5402.375 ns/op, ratio=0.018x +kernel/aarch64/op_cos emel.cpp 1673.875 ns/op, llama.cpp 5981.209 ns/op, ratio=0.280x +kernel/aarch64/op_div emel.cpp 94.667 ns/op, llama.cpp 4337.250 ns/op, ratio=0.022x +kernel/aarch64/op_dup emel.cpp 93.125 ns/op, llama.cpp 4470.666 ns/op, ratio=0.021x +kernel/aarch64/op_log emel.cpp 1847.875 ns/op, llama.cpp 6028.375 ns/op, ratio=0.307x +kernel/aarch64/op_mul emel.cpp 94.917 ns/op, llama.cpp 5094.000 ns/op, ratio=0.019x +kernel/aarch64/op_mul_mat emel.cpp 4612.916 ns/op, llama.cpp 10541.083 ns/op, ratio=0.438x +kernel/aarch64/op_sin emel.cpp 1302.583 ns/op, llama.cpp 5466.125 ns/op, ratio=0.238x +kernel/aarch64/op_soft_max emel.cpp 2127.541 ns/op, llama.cpp 4986.583 ns/op, ratio=0.427x +kernel/aarch64/op_sqr emel.cpp 89.166 ns/op, llama.cpp 4615.583 ns/op, ratio=0.019x +kernel/aarch64/op_sqrt emel.cpp 159.250 ns/op, llama.cpp 4502.000 ns/op, ratio=0.035x +kernel/aarch64/op_sub emel.cpp 105.041 ns/op, llama.cpp 5300.667 ns/op, ratio=0.020x +kernel/aarch64/op_unary_exp emel.cpp 1287.416 ns/op, llama.cpp 5662.750 ns/op, ratio=0.227x +kernel/aarch64/op_unary_neg emel.cpp 92.000 ns/op, llama.cpp 4548.125 ns/op, ratio=0.020x +kernel/aarch64/op_unary_relu emel.cpp 91.583 ns/op, llama.cpp 4402.000 ns/op, ratio=0.021x +logits/sampler_raw/vocab_128000 emel.cpp 18198.292 ns/op, llama.cpp 19903.166 ns/op, ratio=0.914x +logits/sampler_raw/vocab_256000 emel.cpp 37163.542 ns/op, llama.cpp 37863.000 ns/op, ratio=0.982x +logits/sampler_raw/vocab_32000 emel.cpp 4314.083 ns/op, llama.cpp 5266.416 ns/op, ratio=0.819x +logits/sampler_sml/vocab_128000 emel.cpp 15645.000 ns/op, llama.cpp 16619.416 ns/op, ratio=0.941x +logits/sampler_sml/vocab_256000 emel.cpp 31608.250 ns/op, llama.cpp 36052.792 ns/op, ratio=0.877x +logits/sampler_sml/vocab_32000 emel.cpp 4203.042 ns/op, llama.cpp 4521.166 ns/op, ratio=0.930x +logits/validator_raw/vocab_128000 emel.cpp 91549.042 ns/op, llama.cpp 91699.917 ns/op, ratio=0.998x +logits/validator_raw/vocab_256000 emel.cpp 181266.750 ns/op, llama.cpp 181318.667 ns/op, ratio=1.000x +logits/validator_raw/vocab_32000 emel.cpp 24441.833 ns/op, llama.cpp 24148.834 ns/op, ratio=1.012x +logits/validator_sml/vocab_128000 emel.cpp 103882.959 ns/op, llama.cpp 99569.292 ns/op, ratio=1.043x +logits/validator_sml/vocab_256000 emel.cpp 197125.750 ns/op, llama.cpp 196076.791 ns/op, ratio=1.005x +logits/validator_sml/vocab_32000 emel.cpp 24381.584 ns/op, llama.cpp 24261.709 ns/op, ratio=1.005x +memory/hybrid_full emel.cpp 460.291 ns/op, llama.cpp 38673.375 ns/op, ratio=0.012x +memory/kv_full emel.cpp 133.500 ns/op, llama.cpp 37028.000 ns/op, ratio=0.004x +memory/recurrent_full emel.cpp 151.375 ns/op, llama.cpp 5674.917 ns/op, ratio=0.027x +text/encoders/bpe_long emel.cpp 64.458 ns/op, llama.cpp 64.708 ns/op, ratio=0.996x +text/encoders/bpe_short emel.cpp 57.917 ns/op, llama.cpp 60.125 ns/op, ratio=0.963x +text/encoders/fallback_long emel.cpp 2501.292 ns/op, llama.cpp 2497.125 ns/op, ratio=1.002x +text/encoders/fallback_short emel.cpp 63.500 ns/op, llama.cpp 64.875 ns/op, ratio=0.979x +text/encoders/plamo2_long emel.cpp 7480.042 ns/op, llama.cpp 7749.459 ns/op, ratio=0.965x +text/encoders/plamo2_short emel.cpp 224.750 ns/op, llama.cpp 205.500 ns/op, ratio=1.094x +text/encoders/rwkv_long emel.cpp 832029.875 ns/op, llama.cpp 829474.083 ns/op, ratio=1.003x +text/encoders/rwkv_short emel.cpp 56237.375 ns/op, llama.cpp 56070.208 ns/op, ratio=1.003x +text/encoders/spm_long emel.cpp 3606311.333 ns/op, llama.cpp 3610968.791 ns/op, ratio=0.999x +text/encoders/spm_short emel.cpp 1284.750 ns/op, llama.cpp 1347.500 ns/op, ratio=0.953x +text/encoders/ugm_long emel.cpp 1372310.333 ns/op, llama.cpp 1372264.667 ns/op, ratio=1.000x +text/encoders/ugm_short emel.cpp 745.709 ns/op, llama.cpp 721.166 ns/op, ratio=1.034x +text/encoders/wpm_long emel.cpp 30396.375 ns/op, llama.cpp 30763.584 ns/op, ratio=0.988x +text/encoders/wpm_short emel.cpp 610.291 ns/op, llama.cpp 617.208 ns/op, ratio=0.989x +text/jinja/formatter_long emel.cpp 61.875 ns/op, llama.cpp 415277.375 ns/op, ratio=0.000x +text/jinja/formatter_short emel.cpp 16.750 ns/op, llama.cpp 6741.833 ns/op, ratio=0.002x +text/jinja/parser_long emel.cpp 67714.959 ns/op, llama.cpp 55710.750 ns/op, ratio=1.215x +text/jinja/parser_short emel.cpp 962.125 ns/op, llama.cpp 634.375 ns/op, ratio=1.517x +tokenizer/full_bpe_long emel.cpp 13396.667 ns/op, llama.cpp 13712.916 ns/op, ratio=0.977x +tokenizer/full_bpe_short emel.cpp 295.333 ns/op, llama.cpp 321.084 ns/op, ratio=0.920x +tokenizer/full_plamo2_long emel.cpp 12623.584 ns/op, llama.cpp 12354.959 ns/op, ratio=1.022x +tokenizer/full_plamo2_short emel.cpp 1959.500 ns/op, llama.cpp 1954.041 ns/op, ratio=1.003x +tokenizer/full_rwkv_long emel.cpp 828026.500 ns/op, llama.cpp 833893.958 ns/op, ratio=0.993x +tokenizer/full_rwkv_short emel.cpp 55338.917 ns/op, llama.cpp 55265.791 ns/op, ratio=1.001x +tokenizer/full_spm_long emel.cpp 3616312.167 ns/op, llama.cpp 3609337.833 ns/op, ratio=1.002x +tokenizer/full_spm_short emel.cpp 1455.458 ns/op, llama.cpp 1455.583 ns/op, ratio=1.000x +tokenizer/full_ugm_long emel.cpp 1378101.959 ns/op, llama.cpp 1378477.459 ns/op, ratio=1.000x +tokenizer/full_ugm_short emel.cpp 2441.291 ns/op, llama.cpp 2435.416 ns/op, ratio=1.002x +tokenizer/full_wpm_long emel.cpp 32383.291 ns/op, llama.cpp 32134.792 ns/op, ratio=1.008x +tokenizer/full_wpm_short emel.cpp 2371.333 ns/op, llama.cpp 2383.208 ns/op, ratio=0.995x +tokenizer/preprocessor_bpe_long emel.cpp 3391.917 ns/op, llama.cpp 5285.375 ns/op, ratio=0.642x +tokenizer/preprocessor_bpe_short emel.cpp 125.417 ns/op, llama.cpp 1743.541 ns/op, ratio=0.072x +tokenizer/preprocessor_plamo2_long emel.cpp 4089.208 ns/op, llama.cpp 5547.459 ns/op, ratio=0.737x +tokenizer/preprocessor_plamo2_short emel.cpp 2427.250 ns/op, llama.cpp 3579.250 ns/op, ratio=0.678x +tokenizer/preprocessor_rwkv_long emel.cpp 4088.458 ns/op, llama.cpp 5509.833 ns/op, ratio=0.742x +tokenizer/preprocessor_rwkv_short emel.cpp 2465.500 ns/op, llama.cpp 3541.583 ns/op, ratio=0.696x +tokenizer/preprocessor_spm_long emel.cpp 4116.792 ns/op, llama.cpp 5397.875 ns/op, ratio=0.763x +tokenizer/preprocessor_spm_short emel.cpp 2488.292 ns/op, llama.cpp 3512.250 ns/op, ratio=0.708x +tokenizer/preprocessor_ugm_long emel.cpp 4212.041 ns/op, llama.cpp 5767.708 ns/op, ratio=0.730x +tokenizer/preprocessor_ugm_short emel.cpp 2498.209 ns/op, llama.cpp 3701.083 ns/op, ratio=0.675x +tokenizer/preprocessor_wpm_long emel.cpp 4130.833 ns/op, llama.cpp 5446.917 ns/op, ratio=0.758x +tokenizer/preprocessor_wpm_short emel.cpp 2526.625 ns/op, llama.cpp 3654.208 ns/op, ratio=0.691x diff --git a/src/emel/kernel/aarch64/sm.hpp b/src/emel/kernel/aarch64/sm.hpp index 9fff6b47..8d168602 100644 --- a/src/emel/kernel/aarch64/sm.hpp +++ b/src/emel/kernel/aarch64/sm.hpp @@ -1,8 +1,6 @@ #pragma once // benchmark: kernel -// docs: disabled - #include "emel/emel.h" #include "emel/kernel/aarch64/actions.hpp" #include "emel/kernel/aarch64/errors.hpp" diff --git a/src/emel/kernel/cuda/sm.hpp b/src/emel/kernel/cuda/sm.hpp index 67bfd19c..8241d546 100644 --- a/src/emel/kernel/cuda/sm.hpp +++ b/src/emel/kernel/cuda/sm.hpp @@ -1,8 +1,6 @@ #pragma once // benchmark: kernel -// docs: disabled - #include "emel/emel.h" #include "emel/kernel/errors.hpp" #include "emel/kernel/cuda/actions.hpp" diff --git a/src/emel/kernel/metal/sm.hpp b/src/emel/kernel/metal/sm.hpp index 5779cb20..99953eb6 100644 --- a/src/emel/kernel/metal/sm.hpp +++ b/src/emel/kernel/metal/sm.hpp @@ -1,8 +1,6 @@ #pragma once // benchmark: kernel -// docs: disabled - #include "emel/emel.h" #include "emel/kernel/errors.hpp" #include "emel/kernel/metal/actions.hpp" diff --git a/src/emel/kernel/vulkan/sm.hpp b/src/emel/kernel/vulkan/sm.hpp index eed4f444..7c8f2558 100644 --- a/src/emel/kernel/vulkan/sm.hpp +++ b/src/emel/kernel/vulkan/sm.hpp @@ -1,8 +1,6 @@ #pragma once // benchmark: kernel -// docs: disabled - #include "emel/emel.h" #include "emel/kernel/errors.hpp" #include "emel/kernel/vulkan/actions.hpp" diff --git a/src/emel/kernel/wasm/sm.hpp b/src/emel/kernel/wasm/sm.hpp index d2ea7ace..14500467 100644 --- a/src/emel/kernel/wasm/sm.hpp +++ b/src/emel/kernel/wasm/sm.hpp @@ -1,8 +1,6 @@ #pragma once // benchmark: kernel -// docs: disabled - #include "emel/emel.h" #include "emel/kernel/errors.hpp" #include "emel/kernel/wasm/actions.hpp" diff --git a/src/emel/kernel/x86_64/sm.hpp b/src/emel/kernel/x86_64/sm.hpp index 3af45934..aa21e2e6 100644 --- a/src/emel/kernel/x86_64/sm.hpp +++ b/src/emel/kernel/x86_64/sm.hpp @@ -1,8 +1,6 @@ #pragma once // benchmark: kernel -// docs: disabled - #include "emel/emel.h" #include "emel/kernel/x86_64/actions.hpp" #include "emel/kernel/x86_64/errors.hpp" diff --git a/src/emel/text/formatter/sm.hpp b/src/emel/text/formatter/sm.hpp index d7c80bd4..8f31eb43 100644 --- a/src/emel/text/formatter/sm.hpp +++ b/src/emel/text/formatter/sm.hpp @@ -49,8 +49,6 @@ design doc: docs/designs/text/formatter.design.md // benchmark: designed -// docs: disabled - #include "emel/sm.hpp" #include "emel/text/formatter/events.hpp" diff --git a/tools/docsgen/CMakeLists.txt b/tools/docsgen/CMakeLists.txt index e122cca9..75f0a930 100644 --- a/tools/docsgen/CMakeLists.txt +++ b/tools/docsgen/CMakeLists.txt @@ -20,15 +20,21 @@ file(GLOB_RECURSE SM_HEADERS CONFIGURE_DEPENDS "${ROOT_DIR}/src/emel/**/sm.hpp") list(FILTER SM_HEADERS EXCLUDE REGEX ".*/src/emel/sm.hpp$") list(SORT SM_HEADERS) -set(DOCS_ENABLED_SM_HEADERS "") +set(DOCS_MODEL_SM_HEADERS "") foreach(sm_header IN LISTS SM_HEADERS) file(STRINGS "${sm_header}" docs_markers REGEX "docs: (enabled|disabled)") if("${docs_markers}" MATCHES "docs: disabled") continue() endif() - list(APPEND DOCS_ENABLED_SM_HEADERS "${sm_header}") + + file(STRINGS "${sm_header}" model_markers REGEX "^struct model *\\{") + if(NOT model_markers) + continue() + endif() + + list(APPEND DOCS_MODEL_SM_HEADERS "${sm_header}") endforeach() -set(SM_HEADERS "${DOCS_ENABLED_SM_HEADERS}") +set(SM_HEADERS "${DOCS_MODEL_SM_HEADERS}") set(GEN_HEADER "${CMAKE_CURRENT_BINARY_DIR}/docsgen_machines.hpp") file(WRITE "${GEN_HEADER}" "#pragma once\n\n") @@ -39,16 +45,11 @@ endforeach() file(APPEND "${GEN_HEADER}" "\ninline void register_machines(std::vector & out) {\n") foreach(sm_header IN LISTS SM_HEADERS) - file(STRINGS "${sm_header}" model_type_markers REGEX "using model_type = model;") - if(NOT model_type_markers) - continue() - endif() - file(RELATIVE_PATH rel_emel "${ROOT_DIR}/src/emel" "${sm_header}") string(REPLACE "/sm.hpp" "" dir "${rel_emel}") string(REPLACE "/" "_" name "${dir}") string(REPLACE "/" "::" ns "${dir}") - file(APPEND "${GEN_HEADER}" " register_machine(out, \"${name}\", \"emel/${dir}/sm.hpp\");\n") + file(APPEND "${GEN_HEADER}" " register_machine(out, \"${name}\", \"emel/${dir}/sm.hpp\");\n") endforeach() file(APPEND "${GEN_HEADER}" "}\n") diff --git a/tools/docsgen/docsgen.cpp b/tools/docsgen/docsgen.cpp index e948c328..bb696549 100644 --- a/tools/docsgen/docsgen.cpp +++ b/tools/docsgen/docsgen.cpp @@ -78,6 +78,40 @@ bool write_file(const fs::path & path, const std::string & content, bool check) return static_cast(output); } +bool prune_stale_generated_files(const fs::path & dir, + const std::string_view extension, + const std::unordered_set & expected_stems, + bool check) { + if (!fs::exists(dir)) { + return true; + } + + for (const auto & entry : fs::directory_iterator(dir)) { + if (!entry.is_regular_file() || entry.path().extension() != extension) { + continue; + } + + const std::string stem = entry.path().stem().string(); + if (expected_stems.contains(stem)) { + continue; + } + + if (check) { + std::fprintf(stderr, "error: stale generated file %s\n", entry.path().string().c_str()); + return false; + } + + std::error_code ec; + fs::remove(entry.path(), ec); + if (ec) { + std::fprintf(stderr, "error: unable to remove %s\n", entry.path().string().c_str()); + return false; + } + } + + return true; +} + std::string md_link(const std::string & label, const std::string & source_path) { std::string link = "https://github.com/stateforward/emel.cpp/blob/main/src/"; link += source_path; @@ -450,6 +484,19 @@ int main(int argc, char ** argv) { std::vector machines; register_machines(machines); + std::unordered_set machine_names; + machine_names.reserve(machines.size()); + for (const auto & spec : machines) { + machine_names.insert(spec.name); + } + + if (!prune_stale_generated_files(paths.architecture_dir, ".md", machine_names, opts.check)) { + return 1; + } + if (!prune_stale_generated_files(paths.mermaid_dir, ".mmd", machine_names, opts.check)) { + return 1; + } + for (const auto & spec : machines) { spec.emit(spec, paths, opts.check); }