From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29470 invoked by alias); 29 Mar 2008 13:44:56 -0000 Received: (qmail 29450 invoked by uid 22791); 29 Mar 2008 13:44:54 -0000 X-Spam-Check-By: sourceware.org Received: from mail1.physik.fu-berlin.de (HELO mail1.physik.fu-berlin.de) (160.45.35.12) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 29 Mar 2008 13:44:35 +0000 Received: from ith.physik.fu-berlin.de ([160.45.32.115]) by mail1.physik.fu-berlin.de with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.63) (envelope-from ) id 1JfbMD-0003vJ-IQ; Sat, 29 Mar 2008 14:44:31 +0100 Received: from tburnus by ith.physik.fu-berlin.de with local (Exim 4.63 #1 (Debian)) id 1JfbMD-0004Ol-8O; Sat, 29 Mar 2008 14:44:29 +0100 Date: Sat, 29 Mar 2008 17:45:00 -0000 From: Tobias Burnus To: Jerry DeLisle , fortran@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: Re: [patch, fortran]PR25829 Add support for F2003 I/O features Message-ID: <20080329134426.GA15883@physik.fu-berlin.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.13 (2006-08-11) X-ZEDV-Virus-Scanned: No viruses found. [ClamAV 0.92/6462/Sat Mar 29 14:14:09 2008] X-ZEDV-Spam-Level: / X-ZEDV-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on zs01.physik.fu-berlin.de X-ZEDV-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_00,FAKE_REPLY_C autolearn=no version=3.2.3 X-ZEDV-Spam-Report: * -2.6 BAYES_00 BODY: Bayesian spam probability is 0 to 1% * [score: 0.0000] * 2.0 FAKE_REPLY_C FAKE_REPLY_C Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2008-03/txt/msg01842.txt.bz2 > - the matchers and checks for asynchronous, decimal, encoding, > pending, round, sign, size, id for OPEN, READ, WRITE, and INQUIRE. > - New WAIT statement. Remarks regarding diagnostics in the front end (Might go beyond your patch and might also regarding unimplemented things.) You should add checks which reject those with -std=f95: Both WAIT and DECIMAL= etc. are accepted with -std=f95. You should add checks for the arguments, the following is not rejected: write(99,asynchronous='yesS') (They are checked for OPEN not for READ/WRITE) The following is invalid. Asynchronous I/O is only allowed if io-unit is a file-unit-number (C925): character(10) :: aa WRITE(aa,'(a)',asynchronous='yes') The following is rejected because the ID= is not recognized: WRITE(99,asynchronous='no',id=j) (It should be rejected since ID= is invalid for asynchronous='NO') The following is invalid: WRITE(99,decimal="comma") The reasons is that only formatted I/O (including namelists) are allowed when DECIMAL=, BLANK= (blank is actually not recognized!), PAD=, SIGN= or ROUND= appear. (C928). For completeness: WRITE(99,'(a)',delim="zero") this is rejected since DELIM= does not seem to be recognized, but the example is also wrong: DELIM= is only valid for * or namelists. > - implements the DECIMAL= feature. It would be great if (e.g. in a follow up patch) you could also support DP and DC: write(*,'(DP,e12.4,DC,e12.4)') 1.2, 1.3 (currently, they are already rejected by the front end) > - implements a do nothing stub for the WAIT statement. (The Fortran 2003 permits the use of synchronous I/O thus this is OK; but it should be in the release notes. Unless, your full implementation is almost ready to go in.) I'm inclined to having encoding=, round=, size= rejected with a not- implemented message (e.g. using sorry() of toplev.h or eith gfc_error). The rest looked ok, though I have only skimmed over the libgfortran part. Tobias