From dd3d8f9d768479df36e51d402adf55afad1aff07 Mon Sep 17 00:00:00 2001 From: Taylan Kammer Date: Mon, 10 Feb 2025 20:20:26 +0100 Subject: update --- html/notes/strict-mode.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 html/notes/strict-mode.md (limited to 'html/notes/strict-mode.md') diff --git a/html/notes/strict-mode.md b/html/notes/strict-mode.md new file mode 100644 index 0000000..5b99386 --- /dev/null +++ b/html/notes/strict-mode.md @@ -0,0 +1,16 @@ +# Strict mode to disallow ignoring returned values + +This ties in to the last point. In Scheme, a non-tail expression in a +body can return an arbitrary number of values, which will be silently +ignored. + +This can lead to bugs, where a procedure actually returns some kind of +success or failure indicator (instead of raising an error) and the +programmer forgets to handle it. + +Though it may be too inefficient to enable globally, there should at +least be a mode of compilation that emits code which checks at every +single function return whether there are any values that are being +ignored, and raises an error if so. + +There would of course be a form to explicitly ignore values. -- cgit v1.2.3