Commit 77b94d5
[OPTIMIZATION-001] NASA-grade compilation optimization presets
- Implemented `ruchy compile --optimize <level>` with 4 presets
- Optimization levels:
* none: Debug mode (opt-level=0, 3.8MB binaries)
* balanced: Production (opt-level=2 + thin LTO, 1.9MB, 51% reduction)
* aggressive: Maximum performance (opt-level=3 + fat LTO, 312KB, 91.8% reduction)
* nasa: Absolute maximum (opt-level=3 + fat LTO + target-cpu=native, 315KB, 91.8% reduction)
- Added --verbose flag to show detailed optimization flags
- Added --json flag for CI/CD integration (outputs binary size, compile time, flags)
- EXTREME TDD: 8/8 tests passing (100%)
- Binary size reduction: 3.8MB → 315KB (12.4x reduction)
- Validated with real Ruchy code (fibonacci, factorial, loops)
- Zero clippy warnings, ≤10 complexity
Files modified:
- src/bin/ruchy.rs (+3 CLI flags: optimize, verbose, json)
- src/bin/handlers/mod.rs (+238 LOC: optimization preset mapping, JSON generation)
- CHANGELOG.md (documented feature with validation results)
- docs/execution/roadmap.yaml (added OPTIMIZATION-001 sprint)
Files added:
- tests/optimization_001_compile_optimize.rs (8 tests: 100% passing)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>1 parent 78bbb50 commit 77b94d5
File tree
5 files changed
+658
-7
lines changed- docs/execution
- src/bin
- handlers
- tests
5 files changed
+658
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
8 | 24 | | |
9 | 25 | | |
10 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8126 | 8126 | | |
8127 | 8127 | | |
8128 | 8128 | | |
| 8129 | + | |
| 8130 | + | |
| 8131 | + | |
| 8132 | + | |
| 8133 | + | |
| 8134 | + | |
| 8135 | + | |
| 8136 | + | |
| 8137 | + | |
| 8138 | + | |
| 8139 | + | |
| 8140 | + | |
| 8141 | + | |
| 8142 | + | |
| 8143 | + | |
| 8144 | + | |
| 8145 | + | |
| 8146 | + | |
| 8147 | + | |
| 8148 | + | |
| 8149 | + | |
| 8150 | + | |
| 8151 | + | |
| 8152 | + | |
| 8153 | + | |
| 8154 | + | |
| 8155 | + | |
| 8156 | + | |
| 8157 | + | |
| 8158 | + | |
| 8159 | + | |
| 8160 | + | |
| 8161 | + | |
| 8162 | + | |
| 8163 | + | |
| 8164 | + | |
| 8165 | + | |
| 8166 | + | |
| 8167 | + | |
| 8168 | + | |
8129 | 8169 | | |
8130 | 8170 | | |
8131 | 8171 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
560 | 560 | | |
561 | 561 | | |
562 | 562 | | |
| 563 | + | |
563 | 564 | | |
564 | 565 | | |
565 | 566 | | |
| 567 | + | |
| 568 | + | |
566 | 569 | | |
567 | 570 | | |
568 | 571 | | |
569 | 572 | | |
| 573 | + | |
| 574 | + | |
570 | 575 | | |
571 | 576 | | |
572 | 577 | | |
573 | 578 | | |
574 | 579 | | |
575 | 580 | | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
576 | 590 | | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
577 | 612 | | |
578 | | - | |
579 | | - | |
580 | | - | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
581 | 616 | | |
582 | | - | |
583 | | - | |
| 617 | + | |
| 618 | + | |
584 | 619 | | |
| 620 | + | |
585 | 621 | | |
586 | 622 | | |
| 623 | + | |
| 624 | + | |
587 | 625 | | |
588 | 626 | | |
589 | 627 | | |
590 | 628 | | |
591 | 629 | | |
| 630 | + | |
592 | 631 | | |
593 | 632 | | |
594 | 633 | | |
| |||
597 | 636 | | |
598 | 637 | | |
599 | 638 | | |
| 639 | + | |
| 640 | + | |
600 | 641 | | |
601 | 642 | | |
602 | 643 | | |
603 | | - | |
| 644 | + | |
604 | 645 | | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
605 | 661 | | |
606 | 662 | | |
607 | 663 | | |
| |||
610 | 666 | | |
611 | 667 | | |
612 | 668 | | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
613 | 797 | | |
614 | 798 | | |
615 | 799 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
126 | 129 | | |
127 | 130 | | |
128 | 131 | | |
| |||
132 | 135 | | |
133 | 136 | | |
134 | 137 | | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
135 | 144 | | |
136 | 145 | | |
137 | 146 | | |
| |||
891 | 900 | | |
892 | 901 | | |
893 | 902 | | |
| 903 | + | |
894 | 904 | | |
895 | 905 | | |
896 | 906 | | |
897 | | - | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
898 | 910 | | |
899 | 911 | | |
900 | 912 | | |
| |||
1228 | 1240 | | |
1229 | 1241 | | |
1230 | 1242 | | |
| 1243 | + | |
1231 | 1244 | | |
1232 | 1245 | | |
1233 | 1246 | | |
| 1247 | + | |
| 1248 | + | |
1234 | 1249 | | |
1235 | 1250 | | |
1236 | 1251 | | |
| |||
0 commit comments