Lindenii Project Forge
Login

spec

e² language specification

Hi… I am well aware that this diff view is very suboptimal. It will be fixed when the refactored server comes along!

Commit info
ID
44da3efe6828a43fcb768bd8af4a4778be5ef062
Author
Runxi Yu <me@runxiyu.org>
Author date
Sun, 01 Dec 2024 20:16:59 +0800
Committer
Runxi Yu <me@runxiyu.org>
Committer date
Sun, 01 Dec 2024 20:16:59 +0800
Actions
reasoning: Explicitly mention unlocking as a candidate for nofail
Some reasons for some stuff done here. Not going to be a part of the specification, just ideas for why.

nofail:
	If you can get into a situation where there's no way to free resources you no longer need, you have done something wrong.
	If the language doesn't give you a way to do the above, the language has done something wrong.
	free(), close(), and other such should be marked as `nofail`, so that you don't run out of stack space trying to call them, resulting in inability to free resources.
	free(), close(), unlocking, and other such should be marked as `nofail`, so that you don't run out of stack space trying to call them, resulting in inability to free resources.

	Good for situations where failing to call a function partway through is deemed (by the programmer) undesirable.

	Also usable for times when you don't want to have to deal with failure.