harehare
mq
BlogDocsChangelog

♻️ refactor(macro): add AST runtime value and improve macro evaluation

#1027Merged
Comparing
refactor/macro-evaluation-and-ast-support
(
75bf430
) with
main
(
6a5c5a0
)
CodSpeed Performance Gauge
-13%
Regressions
1
Untouched
28

Benchmarks

Failed

eval_variable_assignment_chain
crates/mq-lang/benches/benchmark.rs
Regression
CodSpeed Performance Gauge
-13%
830.9 µs953.5 µs

Passed

eval_array_chained_operations
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
+2%
8.7 ms8.6 ms
eval_nested_object_access
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
+1%
5 ms4.9 ms
eval_array_map
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
+1%
7.1 ms7 ms
eval_no_macro_large_program
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
292.2 µs290.9 µs
eval_select_h
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
262.8 µs262.3 µs
eval_fibonacci
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
55.7 ms55.7 ms
eval_markdown_complex_query
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
20.3 ms20.3 ms
eval_array_filter
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
9.4 ms9.4 ms
eval_while_speed_test
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
17.1 ms17.1 ms
eval_foreach
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
5.3 ms5.3 ms
eval_array_fold
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
6.2 ms6.2 ms
eval_function_call_overhead
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
1.5 ms1.5 ms
eval_pipeline_with_conditionals
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
5.4 ms5.4 ms
eval_object_field_access
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
5.6 ms5.6 ms
eval_nodes
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
4.5 ms4.5 ms
eval_yaml_parse
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
24.3 ms24.4 ms
eval_qualified_access_to_csv_module
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
9.9 ms9.9 ms
eval_large_markdown_filtering
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
24.3 ms24.4 ms
eval_long_pipeline
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
6.4 ms6.4 ms
eval_string_equality
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
4.9 ms5 ms
eval_json_parse
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
12.4 ms12.4 ms
eval_if_else_branching
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-1%
6.8 ms6.9 ms
eval_csv_parse
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-1%
9.6 ms9.7 ms
eval_nested_function_calls
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-1%
1.1 ms1.1 ms
eval_string_interpolation
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-1%
58.6 µs59.2 µs
parse_fibonacci
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-1%
149.1 µs150.9 µs
eval_macro_expansion_simple
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-4%
190.9 µs198.5 µs
eval_macro_expansion_nested
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-7%
103.5 µs111.2 µs

Commits

Click on a commit to change the comparison range
Base
main
6a5c5a0
-12.68%
♻️ refactor(macro): add AST runtime value and improve macro evaluation This change refactors the macro system to properly support quote/unquote and introduces a new MacroEvaluator trait for evaluating macro bodies during expansion. Key changes: - Add RuntimeValue::Ast variant to represent quoted expressions - Introduce MacroEvaluator trait to decouple macro expansion from evaluation - Change quote expressions to evaluate to AST values instead of erroring - Add InvalidMacroResultAst and InvalidMacroResult error types - Refactor macro collection to evaluate macro bodies at definition time - Update macro expansion to properly handle AST values - Fix tests to use proper quote blocks in macro definitions
c5fc171
11 days ago
by harehare
0%
✅ test(macro): add comprehensive tests for macro expansion and substitution scenarios
52b0cbf
11 days ago
by harehare
-0.05%
Merge pull request #1028 from harehare/copilot/sub-pr-1027 Refactor duplicated macro_expander take/restore pattern into helper method
ccf2395
11 days ago
by harehare
+0.01%
♻️ Refactor(runtime): enhance RuntimeValue display and AST formatting
9041a9d
11 days ago
by harehare
-0.12%
♻️ refactor(eval): update eval_macro to use macro environment for evaluation
c88d7af
10 days ago
by harehare
+0.07%
♻️ test(macro): add tests for macro expansion with empty blocks
8b494b7
10 days ago
by harehare
-0.1%
♻️ refactor(runtime): update AST node formatting to use Rust Debug-like syntax
912472f
10 days ago
by harehare
0%
♻️ refactor(tests): remove commented-out cases for quote functionality in integration tests
75bf430
10 days ago
by harehare
© 2026 CodSpeed Technology
Home Terms Privacy Docs