On Aug 24 09:28, David Allsopp wrote: > Corinna Vinschen wrote: > > On Aug 23 20:00, David Allsopp wrote: > > > Jon Turney wrote: > > > > I'm confused here: /usr/lib/ocaml/camlheaderd[di] look like > > > > executables (according to file etc.) > > > > > > > > If they genuinely aren't, then perhaps they shouldn't have execute > > > > permission (which is I think what is causing them to be caught by > > > > that piece of code in cygport...) > > > > > > ocamlc won't care about the executable bit, but these files are _data_ > > > and so it will care if they end up with a .exe extension, because they > > > are open'd not exec'd. > > > > > > The files themselves form the start of executables produced by ocamlc. > > > For both Cygwin and native Windows, it's a tiny C program responsible > > > for locating ocamlrun (on Unix, it's just a shebang line) and the > > > bytecode itself gets appended. > > > > Why is ocaml for Cygwin not produing shebang files as well? After all, > > we're trying to be as Unix-compatible as possible. > > I'm not 100% that this is the correct history, but I think it's down > to being able to start the programs from outside a Cygwin bash prompt > - i.e. the programs emitted want to have a .exe by default and it's > strange to have ".exe" files with a shebang header (at least from > outside Cygwin). > > This part of OCaml is actually old enough (late nineties) that this > executable was also used on "real" Unix systems where shebang didn't > work properly :) > > It is possible to configure Cygwin OCaml to use shebang headers > (although at the moment only by changing Makefile.config after running > configure)
That would be nice, actually, together with dropping the .exe suffix, perhaps. Dunno about others, but I'd prefer to have ocaml scripts w/o exe prefix and working OOTB on other Unixoid systems in the first place. Thanks, Corinna