379379`ex` must be a method definition.
380380
381381WARNING: Improper use of this macro causes undefined behavior (including crashes,
382- incorrect answers, or other hard to track bugs). Use with care an only if absolutely
382+ incorrect answers, or other hard to track bugs). Use with care and only if absolutely
383383required.
384384
385385In general, each `setting` value makes an assertion about the behavior of the
@@ -400,17 +400,17 @@ Note: This in particular implies that the return value of the method must be
400400 contents) are not egal.
401401
402402Note: The idempotency assertion is made world-arge wise. More formally, write
403- fₐ for the evaluation of `f` in world-age `a `, then we require:
403+ fᵢ for the evaluation of `f` in world-age `i `, then we require:
404404
405- ∀ a , x, y: x === y → fₐ (x) === fₐ (y)
405+ ∀ i , x, y: x === y → fᵢ (x) === fᵢ (y)
406406
407- However, for two world ages `a, b ` s.t. `a != b `, we may have `fₐ (x) !== fₐ (y)``
407+ However, for two world ages `i, j ` s.t. `i != j `, we may have `fᵢ (x) !== fⱼ (y)`.
408408
409- Note: A further implication is that idempontent functions may not make their
409+ Note: A further implication is that idempotent functions may not make their
410410 return value dependent on the state of the heap or any other global state
411411 that is not constant for a given world age.
412412
413- Note: The idempontency includes all legal rewrites performed by the optimizizer.
413+ Note: The idempotency includes all legal rewrites performed by the optimizizer.
414414 For example, floating-point fastmath operations are not considered idempotent,
415415 because the optimizer may rewrite them causing the output to not be idempotent,
416416 even for the same world age (e.g. because one ran in the interpreter, while
@@ -460,20 +460,20 @@ Note: MethodErrors and similar exceptions count as abnormal termination.
460460# `:terminates_globally`
461461
462462The `:terminates_globally` settings asserts that this method will eventually terminate
463- (either normally or abnormally), i.e. does not infinite loop.
463+ (either normally or abnormally), i.e. does not loop indefinitely .
464464
465465Note: The compiler will consider this a strong indication that the method will
466466 terminate relatively *quickly* and may (if otherwise legal), call this
467467 method at compile time. I.e. it is a bad idea to annotate this setting
468468 on a method that *technically*, but not *practically*, terminates.
469469
470- Note: The `terminates_globally` assertion, covers any other methods called by
470+ Note: The `terminates_globally` assertion covers any other methods called by
471471 the annotated method.
472472
473473# `:terminates_locally`
474474
475475The `:terminates_locally` setting is like `:terminates_globally`, except that it only
476- applies to syntactic control flow *within* the annotated method. It is this
476+ applies to syntactic control flow *within* the annotated method. It is thus
477477a much weaker (and thus safer) assertion that allows for the possibility of
478478non-termination if the method calls some other method that does not terminate.
479479
0 commit comments