Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion UIPS/UIP-0123.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.
Expand Down