179 karma · joined September 7, 2016
This change isn't so much done for the sake of being able to next quotes in f-strings, it's done because there was a dedicated extra parser for the python syntax inside f-strings, but with the new parser this can be parsed without this special case extra parser.
It's all to manage technical debt.
Another example of a content-addressed data store could be OCI registries (more commonly known as container image registries). Using them to store arbitrary artefacts is quite well supported now: https://oras.land/
If there's a sure-fire way to create a mental health problem, it's to tell yourself you don't deserve to have a problem because other people have worse problems.
I also used to find it disconcerting watching some YouTubers film themselves with their face taking up the entire screen. I must have got used to that though as I've not noticed it in a while.
# Makefile
SHELL := bash
.ONESHELL:
.RECIPEPREFIX = >
thing1:
> FOO=bar
> echo "$${FOO:?}"
.PHONY: thing1
thing2:
> echo "$${FOO:?}"
.PHONY: thing2
Results in: $ make thing1 thing2
FOO=bar
echo "${FOO:?}"
bar
echo "${FOO:?}"
bash: line 1: FOO: parameter null or not set
Note how the bash error for unset FOO is line 1 for the second target.Edit: Maybe I misinterpreted, do you mean you'd want to choose whether a given target is ONESHELL or not?
The advice on output sentinel files for rules creating multiple files helps keep rebuilding dependencies reliable. Avoiding most of the cryptic make variables also helps Makefiles to remain easily understandable when you're not frequently working on them. And using .ONESHELL to allow multi-line statements (e.g. loops, conditional etc) is great. No need to contort things into one line. or escape line breaks.
Seems like you could even use a more serious programming language instead of sh/bash by setting SHELL to Python or similar. That may be a road to madness though...