Re: .exe magic reloaded 2
Greetings, Al! You didn't read my reply to the end, but I accept your explanation. Still, that specific point of code is suspicious for my taste of fool-proof'ness. Sure you could reflect about the length of minor versions here. But does that address the original topic? :-) After python 2.7 there is 3.x AFAIK. As I said, I'm aware of that. -- WBR, Andrey Repin (anrdae...@freemail.ru) 16.09.2010, 15:07 Sorry for my terrible english... -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
Hello, I have another interesting case where .exe magic doesn't work as transparently as one would expect. I have a file python2.6.exe. A script tries to find it with ls python2.?. It is not found. Here the script needs a modification to work with Cygwin, but we can't really say that there is a bug in the script. Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
On Sep 15 13:40, Al wrote: Hello, I have another interesting case where .exe magic doesn't work as transparently as one would expect. I have a file python2.6.exe. A script tries to find it with ls python2.?. It is not found. Here the script needs a modification to work with Cygwin, but we can't really say that there is a bug in the script. True. In theory we would have to remove .exe and .lnk suffixes from directory listings as well, but that was never the case in Cygwin. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
True. In theory we would have to remove .exe and .lnk suffixes from directory listings as well, but that was never the case in Cygwin. That's the way it has always been... isn't a strong argument in development. I guess there are some other reasons to do it this way. If not one should really consider to improve it to make Cygwin still more Unix compatible. Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
On Sep 15 15:38, Al wrote: True. In theory we would have to remove .exe and .lnk suffixes from directory listings as well, but that was never the case in Cygwin. That's the way it has always been... isn't a strong argument in development. It wasn't an argument, it was just a description of the state. I guess there are some other reasons to do it this way. If not one should really consider to improve it to make Cygwin still more Unix compatible. I'd love to drop the .exe suffix from readdir(), I'm just not sure what unwelcome side-effects we create. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
On Sep 15 15:50, Corinna Vinschen wrote: On Sep 15 15:38, Al wrote: True. In theory we would have to remove .exe and .lnk suffixes from directory listings as well, but that was never the case in Cygwin. That's the way it has always been... isn't a strong argument in development. It wasn't an argument, it was just a description of the state. I guess there are some other reasons to do it this way. If not one should really consider to improve it to make Cygwin still more Unix compatible. I'd love to drop the .exe suffix from readdir(), I'm just not sure what unwelcome side-effects we create. For instance, this one: Either we always remove the .exe suffix from a file, or we have to check for each file with a .exe suffix, whether it's executable or not. In the first case, you get something like this: $ echo foo bar.exe $ ls bar* bar $ Fortunately: $ ls bar.exe bar.exe However, dependent of the intelligence of a script or application, the suddenly missing suffix could result in trouble. In the second case, the extra test for executability would be a big performance hit, especially if you call `ls /usr/bin'. And you know how we already have a lot of users kicking our asses for Cygwin's performance. So, whatever we do will result in problems for another group of users. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
I'd love to drop the .exe suffix from readdir(), I'm just not sure what unwelcome side-effects we create. Yes, that's always the point. All programs would break, that are only build against the .exe suffix. Like mine after patching it. :-) Don't know if Cygwin has a testing state to fix those side-effects before everything goes public. The listing with .exe extensions also has an informative value for the human reader of the list, that would be lost. Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
For instance, this one: Either we always remove the .exe suffix from a file, or we have to check for each file with a .exe suffix, whether it's executable or not. Probably without checking it. No sane program would use the .exe suffix as extension of a mere textfile. What would be the ideal approach, without thinking of backward issues? How about this? 1.) When a file is made executable .exe is appended, but only visible from Windows API. 2.) When the last execution bit is removed the .exe suffix is also removed. 3.) Using the .exe suffix from the Cygwin API always gives an error. 4.) Hence: You never see this suffix on the Cygwin API. Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
On 9/15/2010 12:23 PM, Al wrote: For instance, this one: Either we always remove the .exe suffix from a file, or we have to check for each file with a .exe suffix, whether it's executable or not. Probably without checking it. No sane program would use the .exe suffix as extension of a mere textfile. What would be the ideal approach, without thinking of backward issues? How about this? 1.) When a file is made executable .exe is appended, but only visible from Windows API. 2.) When the last execution bit is removed the .exe suffix is also removed. 3.) Using the .exe suffix from the Cygwin API always gives an error. 4.) Hence: You never see this suffix on the Cygwin API. How would this work with non-Cygwin programs? They wouldn't be handled under (1). -- Larry Hall http://www.rfk.com RFK Partners, Inc. (508) 893-9779 - RFK Office 216 Dalton Rd. (508) 893-9889 - FAX Holliston, MA 01746 _ A: Yes. Q: Are you sure? A: Because it reverses the logical flow of conversation. Q: Why is top posting annoying in email? -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
Greetings, Al! I have another interesting case where .exe magic doesn't work as transparently as one would expect. I have a file python2.6.exe. A script tries to find it with ls python2.?. It is not found. I'm fairly certain, that the script is bugged in this specific case. It should be looking for python2.* instead. Minor version could have any length... potentially. (And yes, I know, there wouldn't be .10 for now) Here the script needs a modification to work with Cygwin, but we can't really say that there is a bug in the script. -- WBR, Andrey Repin (anrdae...@freemail.ru) 15.09.2010, 21:18 Sorry for my terrible english... -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
1.) When a file is made executable .exe is appended, but only visible from Windows API. How would this work with non-Cygwin programs? They wouldn't be handled under (1). Depends on how you install or mount them. But yes, as a prerequest there would be two types of filessystem handling. The normal windows one, always with .exe suffix stored into the filename of executables. When mounting foreign unix filesystems no .exe magic would be used at all on them. Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
I'm fairly certain, that the script is bugged in this specific case. It should be looking for python2.* instead. Minor version could have any length... potentially. (And yes, I know, there wouldn't be .10 for now) Definitly not. It would also find python2.6-config which is not wanted. It want's to find python2.x and nothing else. The script is a normal POSIX script and has no knowlege of Cygwins existance at all and any of it's special behaviour. Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
Greetings, Al! For instance, this one: Either we always remove the .exe suffix from a file, or we have to check for each file with a .exe suffix, whether it's executable or not. Probably without checking it. No sane program would use the .exe suffix as extension of a mere textfile. What would be the ideal approach, without thinking of backward issues? How about this? 1.) When a file is made executable .exe is appended, but only visible from Windows API. 2.) When the last execution bit is removed the .exe suffix is also removed. 3.) Using the .exe suffix from the Cygwin API always gives an error. 4.) Hence: You never see this suffix on the Cygwin API. May I point to the fact that not only binary files could be executable? Shell(both), Perl, PHP scripts... (Wish we could set short file name longer than 8.3 ... that would be wonderful and semi-transparent solution...) -- WBR, Andrey Repin (anrdae...@freemail.ru) 15.09.2010, 21:21 Sorry for my terrible english... -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
Greetings, Al! I'm fairly certain, that the script is bugged in this specific case. It should be looking for python2.* instead. Minor version could have any length... potentially. (And yes, I know, there wouldn't be .10 for now) Definitly not. It would also find python2.6-config which is not wanted. It want's to find python2.x and nothing else. The script is a normal POSIX script and has no knowlege of Cygwins existance at all and any of it's special behaviour. You didn't read my reply to the end, but I accept your explanation. Still, that specific point of code is suspicious for my taste of fool-proof'ness. -- WBR, Andrey Repin (anrdae...@freemail.ru) 15.09.2010, 21:37 Sorry for my terrible english... -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded 2
You didn't read my reply to the end, but I accept your explanation. Still, that specific point of code is suspicious for my taste of fool-proof'ness. Sure you could reflect about the length of minor versions here. But does that address the original topic? :-) After python 2.7 there is 3.x AFAIK. Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded
On Sep 5 16:28, Al wrote: I came accross the following. These two files existed. /home/prefix/gentoo/bin/tr.exe /home/prefix/gentoo/usr/bin/tr - /home/prefix/gentoo.bin/tr.exe ^^^ dot, not slash? So we have a symblic link to an executable from a different directory. Perls configuration script detected /home/prefix/gentoo/usr/bin/tr and called it as /home/prefix/gentoo/usr/bin/tr.exe. That didn't work. Obviously the .exe magic does not work for symbolic links from a different directory. It does: $ cd tmp $ mkdir dir1 dir2 $ cp /bin/echo.exe dir1 $ ln -s `pwd`/dir1/echo.exe dir2/echo $ ls -l dir* dir1: total 52 -rwxr-xr-x 1 corinna vinschen 49166 2010-09-06 10:59 echo.exe dir2: total 1 lrwxrwxrwx 1 corinna vinschen 31 2010-09-06 11:00 echo - /home/corinna/tmp/dir1/echo.exe $ dir2/echo hello hello $ /home/corinna/tmp/dir2/echo hello hello I solved that by adding a second symbolic link /home/prefix/gentoo/usr/bin/tr.exe. What is the best way to go here? Find out what *really* has gone wrong. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded
It does not: It does: $ cd tmp $ mkdir dir1 dir2 $ cp /bin/echo.exe dir1 $ ln -s `pwd`/dir1/echo.exe dir2/echo $ ls -l dir* dir1: total 52 -rwxr-xr-x 1 corinna vinschen 49166 2010-09-06 10:59 echo.exe dir2: total 1 lrwxrwxrwx 1 corinna vinschen 31 2010-09-06 11:00 echo - /home/corinna/tmp/dir1/echo.exe $ dir2/echo hello hello $ /home/corinna/tmp/dir2/echo hello hello $ /home/corinna/tmp/dir2/echo.exe hello bash: /home/corinna/tmp/dir2/echo.exe: No such file or directory That's what Perls Configure does. Still the magic works only in the target directory, but not on the level of the symlink itself. Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded
On Sep 6 11:53, Al wrote: It does not: It does: $ cd tmp $ mkdir dir1 dir2 $ cp /bin/echo.exe dir1 $ ln -s `pwd`/dir1/echo.exe dir2/echo $ ls -l dir* dir1: total 52 -rwxr-xr-x 1 corinna vinschen 49166 2010-09-06 10:59 echo.exe dir2: total 1 lrwxrwxrwx 1 corinna vinschen 31 2010-09-06 11:00 echo - /home/corinna/tmp/dir1/echo.exe $ dir2/echo hello hello $ /home/corinna/tmp/dir2/echo hello hello $ /home/corinna/tmp/dir2/echo.exe hello bash: /home/corinna/tmp/dir2/echo.exe: No such file or directory That's what Perls Configure does. Still the magic works only in the target directory, but not on the level of the symlink itself. Uh, I see. That's a bug in perl's Configure. It shouldn't use the .exe suffix at all. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded
That's what Perls Configure does. Still the magic works only in the target directory, but not on the level of the symlink itself. Uh, I see. That's a bug in perl's Configure. It shouldn't use the .exe suffix at all. Right, Perl wants to be superschlau and adds the .exe suffix. That would work in Cygwins standard locations, where /bin and /usr/bin seems to be the same. Is this a Bug on the side of Perls Configure or rather a limitation in Cygwins .exe magic? As there is no official standard, how to deal with this, it remains a point of philosophy. So far it was the only case in 30 packages I compiled. Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded
On Sep 6 12:36, Al wrote: That's what Perls Configure does. Still the magic works only in the target directory, but not on the level of the symlink itself. Uh, I see. That's a bug in perl's Configure. It shouldn't use the .exe suffix at all. Right, Perl wants to be superschlau and adds the .exe suffix. That would work in Cygwins standard locations, where /bin and /usr/bin seems to be the same. Is this a Bug on the side of Perls Configure or rather a limitation in Cygwins .exe magic? As there is no official standard, how to deal with this, it remains a point of philosophy. So far it was the only case in 30 packages I compiled. It's definitely a bug in perl's Configure. If the name of the symlink is foo, there's not the faintest reason to assume that foo.exe should work at all. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded
It's definitely a bug in perl's Configure. If the name of the symlink is foo, there's not the faintest reason to assume that foo.exe should work at all. Corinna Magic is when it does the right thing magically. With your approach you don't need any magic at all. Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded
On Sep 6 14:56, Al wrote: It's definitely a bug in perl's Configure. If the name of the symlink is foo, there's not the faintest reason to assume that foo.exe should work at all. Corinna Magic is when it does the right thing magically. With your approach you don't need any magic at all. You don't seem to understand the magic here. The magic is to add the .exe suffix to a filename. If you have a file foo.exe and call foo, you get foo.exe. If you have a symlink foo-sym pointing to foo, and you call foo-sym, you also get foo.exe, since the exe magic still works after the symlink has been evaluated. However, if you call foo-syml.exe, you made a mistake. There is no file called foo-sym.exe, which could be opened, neither is there a symlink called foo-sym.exe. The magic is to *add* the .exe suffix automatically, not *removing* it when you specified it wrongly. If you think that further, you would also expect that I can open a file foo.txt by calling `vim foo.txt.exe'. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded
The magic is to *add* the .exe suffix automatically, not *removing* it Aaaahh! That is one point I missed. The magic is still more limited than I assumed. It felt to work bidirectional. I have tested this. The unidirectonal magic also works for symlinks, if the symlink has the .exe suffix itself. Back to the starting point. It follows the sysmlink should be: /home/prefix/gentoo/usr/bin/tr.exe - /home/prefix/gentoo/bin/tr.exe instead of /home/prefix/gentoo/usr/bin/tr - /home/prefix/gentoo/bin/tr.exe Then it would proxy all available .exe magic and even Perls Configure would work. This means that not only the Perl package but also my Coreutils package should be optimized. when you specified it wrongly. If you think that further, you would also expect that I can open a file foo.txt by calling `vim foo.txt.exe'. If foo.txt is not executable it would not be expanded. Thank you very much Corinna Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded
2010/9/6 Al: The magic is to *add* the .exe suffix automatically, not *removing* it Aaaahh! That is one point I missed. The magic is still more limited than I assumed. It felt to work bidirectional. I have tested this. The unidirectonal magic also works for symlinks, if the symlink has the .exe suffix itself. Back to the starting point. It follows the sysmlink should be: /home/prefix/gentoo/usr/bin/tr.exe - /home/prefix/gentoo/bin/tr.exe instead of /home/prefix/gentoo/usr/bin/tr - /home/prefix/gentoo/bin/tr.exe Then it would proxy all available .exe magic and even Perls Configure would work. I got a little bit confused now. Should I report now upstream at Perl that Configure has a problem by adding .exe, or is it just a problem with your layout? AFAIK perl does not symlink tr.exe, just its own files when using -Dmksymlinks. And failing to read a wrong tr.exe symlink does not look like perls fault. -- Reini Urban -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded
I got a little bit confused now. Should I report now upstream at Perl that Configure has a problem by adding .exe, or is it just a problem with your layout? AFAIK perl does not symlink tr.exe, just its own files when using -Dmksymlinks. And failing to read a wrong tr.exe symlink does not look like perls fault. I estimate it as a very low priority bug in Perls Configure script. * It doesn't matter outside Cygwin. * It doesn't matter for a standard Cygwin installation. * It only matters for installations on a prefixed location in Cygwin. My bottomline: It is not worth to report it. It can be patched downstream in the special situation. But to make Perls setup more perfect ... who knows! Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: .exe magic reloaded
I got a little bit confused now. Should I report now upstream at Perl that Configure has a problem by adding .exe, or is it just a problem with your layout? AFAIK perl does not symlink tr.exe, just its own files when using -Dmksymlinks. And failing to read a wrong tr.exe symlink does not look like perls fault. -- Reini Urban As you ask for bugs in Perl on Cygwin. I found a second issue in my Makefile, the all target: all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) miniperl $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make I think that is one miniperl to much. This did break, when I compiled with make -j3. The error was: make: *** No rule to make target `miniperl', needed by `all'. Stop. It's possible that this is already fixed in the Cygwin source. See: http://en.gentoo-wiki.com/wiki/Prefix/Cygwin#dev-lang.2Fperl:_No_rule_to_make_target_miniperl Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
.exe magic reloaded
I came accross the following. These two files existed. /home/prefix/gentoo/bin/tr.exe /home/prefix/gentoo/usr/bin/tr - /home/prefix/gentoo.bin/tr.exe So we have a symblic link to an executable from a different directory. Perls configuration script detected /home/prefix/gentoo/usr/bin/tr and called it as /home/prefix/gentoo/usr/bin/tr.exe. That didn't work. Obviously the .exe magic does not work for symbolic links from a different directory. I solved that by adding a second symbolic link /home/prefix/gentoo/usr/bin/tr.exe. What is the best way to go here? * Adapting all scripts that behave like Perls configuration. * Always adding both forms of symbolic links (program and program.exe) * Making .../bin and .../usr/bin the same directory by means of a hardlink. * Extending Cygwins .exe magic to work for that kind of symblic links. Al -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple