Ben Morrow wrote:
This is probably too late for a change like this, in which case ignore
me,
No, not too late - it's still a draft so there's time for suggestions.
but I don't suppose there's any chance that pbc files could allow an optional
#! line, so that they can be used as executables directly?
Parrot would need an option analogous to gcc's -x, of course, to specify to
type of a file explicitly rather than inferring it from the
extension; but IMHO that also would be a good thing in itself.
It crossed my mind that we could do this, but I rejected it since it's
not really helpful. The #! line is generally only applicable to UNIX-y
systems. Even on those systems that do support it, the path to Parrot
won't always be the same either.
Microsoft did something similar when specifying the .Net bytecode
format: they enclosed the bytecode and metadata inside a PE file and had
a loader to load the .Net VM, so that you could just run a .Net EXE file
as you would any other. That only has benefit on the Windows platform
though. That's fair enough, because that's what MS care about most, but
Parrot doesn't have a primary platform; all your platforms are belong to
us. :-)
Finally, if you have a situation where having something that will Just
Execute as a native binary is important, then I guess there's the exec
runcore that will produce you an executable file.
Thanks,
Jonathan