The top-level ` macro method has at least two issues:
There is no way to quote anything because Process.quote is unavailable here. That means programs or arguments that contain spaces or other special characters risk being misinterpreted, or are completely unusable within macros. I think we should provide a safer form of ` for macros as well.
On Windows only, if the executable cannot be found then File::Error is raised, showing up as an internal compiler error, instead of a compile-time error. (Judging from Crystal::System::Process.spawn's implementation, it seems this could also happen on Unix systems.)
The top-level
`
macro method has at least two issues:Process.quote
is unavailable here. That means programs or arguments that contain spaces or other special characters risk being misinterpreted, or are completely unusable within macros. I think we should provide a safer form of`
for macros as well.File::Error
is raised, showing up as an internal compiler error, instead of a compile-time error. (Judging fromCrystal::System::Process.spawn
's implementation, it seems this could also happen on Unix systems.)