PSA: Swift 6.4.0 breaks non-inlined macros from reading from disk on linux

I don't think it can be considered a regression. There's no way to correctly support incremental builds and side effects in macros at the same time.

By side effects I mean file system and networking access, any kind of I/O, uses of Date.now, randomness etc.

The build system will not rebuild a file in incremental builds if such file hasn't changed on the file system. Since there's no way for macros to communicate their side effects to the build system, macros should not have side effects in the first place. You shouldn't expect that your macros will behave correctly if they do.

See also:

3 Likes