X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: Juan Manuel Guerrero Newsgroups: comp.lang.perl.misc,comp.os.msdos.djgpp Subject: Re: Perldoc error: "Could not create temp file" Date: Fri, 18 Apr 2008 06:12:40 -0700 (PDT) Organization: http://groups.google.com Lines: 79 Message-ID: References: NNTP-Posting-Host: 88.68.52.22 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: posting.google.com 1208525064 8259 127.0.0.1 (18 Apr 2008 13:24:24 GMT) X-Complaints-To: groups-abuse AT google DOT com NNTP-Posting-Date: Fri, 18 Apr 2008 13:24:24 +0000 (UTC) Complaints-To: groups-abuse AT google DOT com Injection-Info: c58g2000hsc.googlegroups.com; posting-host=88.68.52.22; posting-account=OsAajgoAAADdKJnkJkmhzqP0jo6I_P_0 User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/48 (like Gecko) Safari/48,gzip(gfe),gzip(gfe) To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com OFYI: The error reported can not be reproduced by me on the systems that are available to me. The perl 5.8.8 port works flawlessly on the following operating systems: 1) MSDOS 6.22 (SFN) 2) Win98SE (SFN) 3) Win98SE (LFN) 4) WinXP (home) SP2 (LFN) It fails and will continue to failing in the future because I have no intentions to fix it: 1) WinXP (home) SP2 (SFN) The reason for this failure is that AFAIK there is no way to inhibit the generation of numeric tails for short file names. This means that a long file name like this: longfilename.extension has a short file name alias that looks like this: longfi~1.ext and this will not be found by perl or any other djgpp program. On Win98 there is always the possibility to disable the numeric tail generation so that: longfilename.extension is cleanly truncated to 8.3 and becomes: longfile.ext The OS will truncated in this way the long file name passed by the application (perl) and looks for the file with the truncated name and will find it. If the long file name is not truncated in this way to the 8.3 length but changed by the OS like this longfi~1.ext the application will never find the file. To be able to run djgpp applications with an OS that generates numeric tails for the SFN aliases almost the complete stdio of the application must be replaced and I have not the time to do that. IMHO there is no reason to use SFN where LFN support is available. In conclusion; *no one* of the ports I have produced is able to run in SFN environments that use numeric tails. I have never added djgpp specific code that is able to handle SFN with numeric tails and that is started if the file can not be found using the long file name. Anyway all this does not explain the failure that has been reported. On my WinXP box I have set LFN=n in djgpp.env and started bash. I started the command: perldoc perl and got the following output: perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = (unset), LANG = "de" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). Can't locate File/Spec/Functions.pm in @INC (@INC contains: /dev/env/ DJDIR/lib/perl5 /dev/env/DJDIR/lib/perl5/site /dev/env/DJDIR/lib/perl5/ site /dev/env/DJDIR/lib/perl5/site .) at /dev/env/DJDIR/lib/perl5/Pod/ Perldoc.pm line 10. BEGIN failed--compilation aborted at /dev/env/DJDIR/lib/perl5/Pod/ Perldoc.pm line 10. Compilation failed in require at c:/djgpp/bin/perldoc line 9. BEGIN failed--compilation aborted at c:/djgpp/bin/perldoc line 9. The application fails before it reaches the point where the temporary file is created. The applications is not even capable to start because it can not load the required modules. This is due the numeric tails in the file and directory names. Regards, Juan M. Guerrero