Thursday, January 8, 2015

Digest for comp.lang.c++@googlegroups.com - 10 updates in 3 topics

Bo Persson <bop@gmb.dk>: Jan 08 05:36PM +0100

On 2015-01-08 02:44, Stefan Ram wrote:
> features«. I am sure that friends of gcc might dispute whether
> Clang has better support for modern C++, but this shows that
> Google cares to use modern C++.
 
One major difference is that Clang 3.5 is released, while gcc 5.0 is not.
 
 
Bo Persson
woodbrian77@gmail.com: Jan 08 09:33AM -0800

On Thursday, January 8, 2015 at 10:36:58 AM UTC-6, Bo Persson wrote:
> > Clang has better support for modern C++, but this shows that
> > Google cares to use modern C++.
 
> One major difference is that Clang 3.5 is released, while gcc 5.0 is not.
 
I think it would be interesting to know if the idea for the
switch was from people working on Chrome or Clang. It may
have just been a nuisance the Chrome people couldn't fend off.
 
Brian
Ebenezer Enterprises - In G-d we trust.
http://webEbenezer.net
Melzzzzz <mel@zzzzz.com>: Jan 08 07:46PM +0100

On Thu, 08 Jan 2015 17:36:37 +0100
> > Google cares to use modern C++.
 
> One major difference is that Clang 3.5 is released, while gcc 5.0 is
> not.
 
clang develops pretty fast, it is big competition to gcc, but gcc
has better optimizer last time I checked.
[bmaxa@maxa-pc sci]$ g++-trunk -Wall -Ofast -march=native *.c -o scimath2gcc -lm
[bmaxa@maxa-pc sci]$ ./scimath2gcc
** **
** SciMark2 Numeric Benchmark, see http://math.nist.gov/scimark **
** for details. (Results can be submitted to pozo@nist.gov) **
** **
Using 2.00 seconds min time per kenel.
Composite Score: 2290.40
FFT Mflops: 2139.58 (N=1024)
SOR Mflops: 2442.17 (100 x 100)
MonteCarlo: Mflops: 672.62
Sparse matmult Mflops: 2175.19 (N=1000, nz=5000)
LU Mflops: 4022.46 (M=100, N=100)
[bmaxa@maxa-pc sci]$ clang -Wall -Ofast -march=native *.c -o scimath2clang -lm
[bmaxa@maxa-pc sci]$ ./scimath2clang
** **
** SciMark2 Numeric Benchmark, see http://math.nist.gov/scimark **
** for details. (Results can be submitted to pozo@nist.gov) **
** **
Using 2.00 seconds min time per kenel.
Composite Score: 2679.03
FFT Mflops: 1811.36 (N=1024)
SOR Mflops: 2425.46 (100 x 100)
MonteCarlo: Mflops: 649.38
Sparse matmult Mflops: 1624.94 (N=1000, nz=5000)
LU Mflops: 6884.02 (M=100, N=100)
 
g++ 5.0 has regression in comparison to 4.9...
 
Chris Vine <chris@cvine--nospam--.freeserve.co.uk>: Jan 08 09:17PM

On 8 Jan 2015 01:44:09 GMT
> features«. I am sure that friends of gcc might dispute whether
> Clang has better support for modern C++, but this shows that
> Google cares to use modern C++.
 
Big deal. Google are significantly involved in (that is, employ some of
the developers of) llvm and clang. Presumably they have some commercial
interest in getting a greater stake in one particular compiler chain.
That may, or may not, be connected with the fact that gcc is GPL (with
exception for compiled code) whereas llvm is not. gcc and clang are
more or less equivalent in C++11/14 support.
 
Google's code doesn't even use exceptions let alone "modern C++".
 
Chris
Bo Persson <bop@gmb.dk>: Jan 09 12:03AM +0100

On 2015-01-08 19:46, Melzzzzz wrote:
>> not.
 
> clang develops pretty fast, it is big competition to gcc, but gcc
> has better optimizer last time I checked.
 
The thing here was that both of them claim to support the full C++14
language. One already being released, and the other one available "real
soon now".
 
 
 
Bo Persson
woodbrian77@gmail.com: Jan 08 10:05AM -0800

Below I've posted my front tier. It's only sixty some lines long.
It generates a request and uses UDP to send the request to the
middle tier. Then it waits for a reply. If it doesn't get a
reply, it generates another request and waits again.
 
One thing I've been thinking about is this line:
 
SendBuffer sendbuf(udp_packet_max);
 
That does a heap allocation of udp_packet_max bytes.
For the receive buffer I use the stack. I've thought
about changing the line above to be something like this:
 
::std::array<char, udp_packet_max> ar;
SendBufferStack(ar);
 
I've coded that, but haven't tested to see what the
performance is like. Anyway, I have some time to
work on these things and would like to get ideas on
how to improve this program or the rest of the code
and documentation on my site.

#include <platforms.hh>
 
#include <ErrorWords.hh>
#include <getaddrinfo_wrapper.hh>
#include <poll_wrapper.hh>
#include <ReceiveBufferUDP.hh>
#include <SendBuffer.hh>
#include <stdio.h>
#include <stdlib.h> // exit strtol
#include <syslog_wrapper.hh>
#include <udp_stuff.hh>
#include <zz.front_messages_middle.hh>
 
using namespace ::cmw;
 
int main (int argc,char** argv)
{
try{
if(argc<3 || argc>5){
printf("Usage: %s account-number config-file-path [node] [port]\n"
,argv[0]);
return EXIT_FAILURE;
}
 
#ifndef CMW_WINDOWS
::openlog(argv[0],LOG_NDELAY,LOG_USER);

No comments: