From owner-freebsd-current@FreeBSD.ORG Fri Jan 9 13:32:05 2009 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 75C31106566C for ; Fri, 9 Jan 2009 13:32:05 +0000 (UTC) (envelope-from christoph.mallon@gmx.de) Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by mx1.freebsd.org (Postfix) with SMTP id D0E588FC18 for ; Fri, 9 Jan 2009 13:32:04 +0000 (UTC) (envelope-from christoph.mallon@gmx.de) Received: (qmail invoked by alias); 09 Jan 2009 13:32:02 -0000 Received: from p54A3E499.dip.t-dialin.net (EHLO tron.homeunix.org) [84.163.228.153] by mail.gmx.net (mp006) with SMTP; 09 Jan 2009 14:32:02 +0100 X-Authenticated: #1673122 X-Provags-ID: V01U2FsdGVkX1+xYIVlWTmxYEPLtU9nqpPFd9OfqiAscj02NN5f6E DkZspg4VYNvHq1 Message-ID: <496751D1.20605@gmx.de> Date: Fri, 09 Jan 2009 14:32:01 +0100 From: Christoph Mallon User-Agent: Thunderbird 2.0.0.19 (X11/20090103) MIME-Version: 1.0 To: Roman Divacky References: <49668763.8020705@mail.zedat.fu-berlin.de> <20090108233311.GA69883@keltia.freenix.fr> <20090109031147.GB44317@duncan.reilly.home> <49672189.5060109@gmx.de> <20090109110508.GA12123@freebsd.org> In-Reply-To: <20090109110508.GA12123@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-FuHaFi: 0.57 Cc: Andrew Reilly , freebsd-current@freebsd.org, Ollivier Robert Subject: Re: gcc 4.3: when will it become standard compiler? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jan 2009 13:32:06 -0000 Roman Divacky schrieb: >> I'm not saying it's wrong to look for alternatives, but you cannot just >> change your system compiler like you change underwear. > > well... the first step is imho starting to compile world with C99... > that might reveal some bugs, note that as of a few months ago > 8-current compiles cleanly with C99, that does not mean that it's > working when you run those programs correctly :) One step in the right direction is embracing the nice features modern C offers you. For example declaring a variable right were you need it instead of dozens of lines away is one such nice thing which improves readability. Designated initializers improve readability, too. But I'm not exactly sure what you mean by "compile world with C99". C99 is pretty much backwards compatible to C89. >> PCC cannot seriously be considered. Its design is stuck in the >> seventies. From the point of view of compiler construction it is plain >> plain out of question. I especially was amused by the statement of the >> author who claimed PCC supports SSA - except for phi-functions. > > what's wrong with design stuck in 70's when it compiles the whole world/kernel? > > I would not use it for default compilation of releases but it might be > useful when you are developing - because of its fast compilation times If you want a real speed devil, try TCC. > btw.. are you sure the design is stuck in the 70's? the author claims > to have rewritten almost the whole thing. have you looked at the recent > code? It's still a simple tree based approach. From point of view of optimisations this often gets in the way. For example you need temporary variables as helper construct which just complicates things (yes, there are intermediate representations which do not have temporary variables at all). Much has happend in compiler land in the last 30 years. Now we have stuff like SSA and some are even doing code generation in this form. I can go into more details, but this is not the right place. > another question - how is libfirm/cparser? last time I tried it didnt > support much of the gcc options (-Wsomething -f-something etc.) so > it could not be used as a direct drop-in The next release will support several more switches for GCC compatibility. Here's the latest manpage: http://tron.homeunix.org/cparser.1 - you can view it with "nroff -man cparser.1". Switches like -Wl, and -Wp, are supported. Many bugs have been resolved. More warning options have been added - many similar to what GCC does, some doing a better job. We plan to make a new release Really Soon Now(TM).