From 9b9943408b57f2667074b0687e0f0ac6447af55e Mon Sep 17 00:00:00 2001 From: ~dozreg-toplud Date: Mon, 24 Nov 2025 17:46:55 +0100 Subject: [PATCH] loop UIP update --- UIPS/UIP-0123.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/UIPS/UIP-0123.md b/UIPS/UIP-0123.md index 3df2923..c142dd3 100644 --- a/UIPS/UIP-0123.md +++ b/UIPS/UIP-0123.md @@ -3,7 +3,7 @@ uip: "0123" title: "%loop hint: reify infinite loops as crashes" description: "A simple hint allows the interpreter to reify \"obvious\" non-terminating loops as Nock crashes." author: ~ritpub-sipsyl (eamsden) -status: Stagnant +status: Shipped type: Standards Track category: Nock # Only required for Standards Track. Otherwise, remove this field. created: 2024-03-25 @@ -15,6 +15,10 @@ A simple static hint can signal to the runtime to check for nontermination by ch Implementing this hint would remove the need to manually implement such checks within Nock, enabling usecases of the `%memo` hint previously prevented by the need to track such state in the subject. +## Status + +This UIP is shipped with a `%loop` hint [implementation](https://github.com/urbit/vere/pull/905) merged into `develop` branch of Vere. This implementation raises a nondeterministic exception in the runtime, so it does not require changes to the code of Urbit OS. On the other hand it means, that the error can not be caught by a virtual Nock interpreter. + ## Motivation The `%memo` hint, supported by both Vere and Ares, allows algorithms to improve performance using memoization. The underlying cache for the hint is, in general, a map from subject-formula pair to result.