Zack Weinberg on Nostr: On the subject of implementation language, I have one half-baked idea and one castle ...
On the subject of implementation language, I have one half-baked idea and one castle in the air.
The half-baked idea is: Suppose ./configure continues to be a shell script, but it ceases to be a *generated* shell script. No more M4. Similarly, the Makefile continues to be a Makefile but it ceases to be generated from Makefile.am. Instead, there is a large library of shell functions and a somewhat smaller library of Make rules that you include and then use.
For ./configure I'm fairly confident it would be possible to do this and remain compatible with POSIX.1-2001 "shell and utilities". (Little known fact: for a long time now, autoconf scripts *do* use shell functions! Internally, wrapped in multiple layers of M4 goo, but still — we haven't insisted on backcompat all the way to System V sh in a long, long time.) For Makefiles I believe it would be necessary to insist on GNU Make.
This would definitely be an improvement on the status quo, but would it be *enough* of one? And would it be less work than migration to something else? (It would be a compatibility break and it would *not* be possible to automate the conversion. Lots of work for everyone no matter what.)
Published at
2024-04-02 01:24:30Event JSON
{
"id": "2694237a7b77bd7d137b7f4e062a0aeb8e8f8a2bd8c35d40ed383c2a74acac9d",
"pubkey": "a000f907b79a48e77b70e3514879efc24502acd0bc15424ea4c1823570345ef2",
"created_at": 1712021070,
"kind": 1,
"tags": [
[
"e",
"97bc59a9064f5a749828d58fb6bb5da8af696ea1658402ce4c82893248899b28",
"",
"reply"
],
[
"e",
"366648c0a079672677ebc91385a83d661500985a987506f3f3013fedf752b0fe",
"",
"root"
],
[
"p",
"a000f907b79a48e77b70e3514879efc24502acd0bc15424ea4c1823570345ef2"
],
[
"proxy",
"https://hackers.town/users/zwol/statuses/112199012905317617",
"activitypub"
],
[
"L",
"pink.momostr"
],
[
"l",
"pink.momostr.activitypub:https://hackers.town/users/zwol/statuses/112199012905317617",
"pink.momostr"
]
],
"content": "On the subject of implementation language, I have one half-baked idea and one castle in the air.\n\nThe half-baked idea is: Suppose ./configure continues to be a shell script, but it ceases to be a *generated* shell script. No more M4. Similarly, the Makefile continues to be a Makefile but it ceases to be generated from Makefile.am. Instead, there is a large library of shell functions and a somewhat smaller library of Make rules that you include and then use.\n\nFor ./configure I'm fairly confident it would be possible to do this and remain compatible with POSIX.1-2001 \"shell and utilities\". (Little known fact: for a long time now, autoconf scripts *do* use shell functions! Internally, wrapped in multiple layers of M4 goo, but still — we haven't insisted on backcompat all the way to System V sh in a long, long time.) For Makefiles I believe it would be necessary to insist on GNU Make.\n\nThis would definitely be an improvement on the status quo, but would it be *enough* of one? And would it be less work than migration to something else? (It would be a compatibility break and it would *not* be possible to automate the conversion. Lots of work for everyone no matter what.)",
"sig": "db621b1b1fe5af2aa4c6fd72133f0264cdb865c409c25fda171b066f2d1e669367a095326d19d32fe3210deea7da8c8e45c49292290abad0f031f59ce86e77b2"
}