Re: Clang now builds world and kernel, on i386 and amd64

From: Renato Botelho <rbgarga_at_gmail.com>
Date: Wed, 29 Sep 2010 14:41:17 -0300
On Wed, Sep 29, 2010 at 2:31 PM, Roman Divacky <rdivacky_at_freebsd.org> wrote:
> On Wed, Sep 29, 2010 at 11:56:59AM -0400, Derek Tattersall wrote:
>> * Dimitry Andric <dim_at_freebsd.org> [100929 08:55]:
>> > On 2010-09-29 13:23, Renato Botelho wrote:
>> > > #!/usr/bin/perl
>> > >
>> > > use File::Temp;
>> > >
>> > > my ( $fh, $filename ) = File::Temp::tempfile();
>> > > print "$filename\n";
>> >
>> > For me it works perfectly, though I am using perl 5.10:
>> >
>> > $ cat foo.pl
>> > #!/usr/bin/perl
>> >
>> > use File::Temp;
>> >
>> > my ( $fh, $filename ) = File::Temp::tempfile();
>> > print "$filename\n";
>> > $ perl -v
>> >
>> > This is perl, v5.10.1 (*) built for i386-freebsd-64int
>> >
>> > Copyright 1987-2009, Larry Wall
>> >
>> > Perl may be copied only under the terms of either the Artistic License or the
>> > GNU General Public License, which may be found in the Perl 5 source kit.
>> >
>> > Complete documentation for Perl, including FAQ lists, should be found on
>> > this system using "man perl" or "perldoc perl".  If you have access to the
>> > Internet, point your browser at http://www.perl.org/, the Perl Home Page.
>> >
>> > $ perl foo.pl
>> > /tmp/tv25CPnWhF
>> > $ perl foo.pl
>> > /tmp/L2UJQ5_JJs
>> > $ perl foo.pl
>> > /tmp/6ynQYvWIc1
>> > $ perl foo.pl
>> > /tmp/Tdpf7PKBMg
>> > $ perl foo.pl
>> > /tmp/76ir2i1ici
>> > $ perl foo.pl
>> > /tmp/LhfD0eZgd8
>> >
>> > I'll try building perl 5.12 and try it again.
>> >
>> > Btw, I assume you did *not* rebuild perl with clang, so your perl is
>> > still compiled with gcc?
>> > _______________________________________________
>> > freebsd-current_at_freebsd.org mailing list
>> > http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> > To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>> I built a test case using perl 5.12 and demonstrated that calling int(rand())
>> in perl returns NAN, as does calling rand() by itself.  A "C" program
>> that calls libc's rand() does return differing integers.  The perl
>> documentation claims that perl's rand() calls "C"s rand() and srand() if
>> necessary.  I think this effectively demonstrates that the problem lies
>> with the perl function rand() and it's interface to libc's rand() as
>> provided by clang.
>>
>> On a recent stable system, perl's mktemp works fine.  The only real
>> difference is that libc on stable is built with gcc and libc on current
>> is built with clang.
>
> what does this show with clang libc?
>
> perl -e 'print int(rand(60)) . " \n" foreach (1 .. 10)'
>
> I guess it returns all 0, as the $CHAR[0] is 'A', can you test that?
>

root_at_botelhor:/usr/src/lib/libc# perl -e 'print int(rand(60)) . " \n"
foreach (1 .. 10)'
nan
nan
nan
nan
nan
nan
nan
nan
nan
nan

-- 
Renato Botelho
Received on Wed Sep 29 2010 - 15:41:42 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:07 UTC