@@ -706,7 +706,9 @@ Supported options:
706
706
707
707
-O3
708
708
Enables optimizations that respect the language semantics only on
709
- programs that don't ever throw any subtype of `Error`. To use this
709
+ programs that don't ever throw any subtype of `Error`. These
710
+ optimizations improve the generated code, but they may cause programs to
711
+ behave unexpectedly if this assumption is not met. To use this
710
712
option, we recommend that you properly test your application first
711
713
without it, and ensure that no subtype of `Error` (such as `TypeError`)
712
714
is ever thrown.
@@ -725,10 +727,12 @@ Supported options:
725
727
-O3
726
728
--trust-primitives
727
729
728
- In the future, new safe optimizations may be added on any level, and
729
- optimizations that only work on some programs may move up from one level to
730
- the next (for instance, we may move `omit-implicit-checks` to the O3 level
731
- in the future).
730
+ While some of the individual optimizations and flags may change with time,
731
+ we intend to keep the -O* flags stable. New safe optimizations may be added
732
+ on any level, and optimizations that only work on some programs may move up
733
+ from one level to the next (for instance, once alternative safe
734
+ optimizations are implemented, `omit-implicit-checks` may be removed of may
735
+ move to the O4 level).
732
736
733
737
The following individual options are included in some of the -O optimization
734
738
levels above. They help reduce the size of the generated code, but they may
0 commit comments