I'm trying to understand what is (not) a "machine" in GPL's "machine-readable source code".
GPL requires you to share (a) the preferred-form-of-the-work-for-making-changes-in-it, yet at the same time (b) it "does not include general purpose tool".
In cases where the two laws conflict, which takes precedence?
For a simple example, if you develop code (nontext-based) using a code studio, do you have to share-alike release the studio? (btw it might use functions that normal hardware don't have)
Or is an explanation of the file format all that is needed? (the same working idea as Google Takeout making their exports in practice as unimportable as possible)
Another simple example: what happens to GPLed code (text-based) written in a custom language? Do you need to share-alike release the language definition? Including the compiler definition? Including a working copy (however unextendable in practice) of a compiler that can digest the code within reasonable time?