comp.lang.ada
 help / color / mirror / Atom feed
From: "David C. Hoos" <david.c.hoos.sr@ada95.com>
To: "Robert Spooner" <rls19@psu.edu>, <comp.lang.ada@ada.eu.org>
Subject: Re: Computer Language Shootout
Date: Fri, 18 Jul 2003 13:48:31 -0500
Date: 2003-07-18T13:48:31-05:00	[thread overview]
Message-ID: <mailman.20.1058554141.24167.comp.lang.ada@ada.eu.org> (raw)
In-Reply-To: bf9crp$18rg$1@f04n12.cac.psu.edu

Interesting... It looks like a GNAT bug to me.  With 3.15p, the message
about line 8 occurs twice, apparently meaning that it couldn't decide on a
call to Get_Line with or without an actual parameter.

I say this, because without the default parameter declaration (i.e., always
requiring a parameter, there is no ambiguity;

Also, changing your conditional doce to the following also removes the
ambiguity, as far as GNAT is concerned:

       if Last < Buffer'Last then
          return Buffer(1..Last);
       else
          declare
             Temp : String := Get_Line (2*Buffer_Size);
          begin
             return Buffer & Temp;
          end;
       end if;

This should be reported to GNAT as a bug.

----- Original Message ----- 
From: "Robert Spooner" <rls19@psu.edu>
Newsgroups: comp.lang.ada
To: <comp.lang.ada@ada.eu.org>
Sent: Friday, July 18, 2003 1:04 PM
Subject: Re: Computer Language Shootout


> Robert A Duff wrote:
> > "Jean-Pierre Rosen" <rosen@adalog.fr> writes:
> >
> >
> >>This one reads a line with no length limit:
> >>
> >>function Get_Line return String is
> >>   Buffer : String (1..500); -- or whatever
> >>   Last : Natural;
> >>begin
> >>   Get_Line (Buffer, Last);
> >>   if Last < Buffer'Last then
> >>      return Buffer (1..Last);
> >>   else
> >>      return Buffer & Get_Line;
> >>   end if;
> >>end Get_Line;
> >>
> >>In most cases, there will be only one call, while having no upper limit.
> >>The size of the buffer is just a matter of optimization.
> >
> >
> > This is a nice trick, but I suggest you grow the buffer exponentially,
> > in case lines are very long.  Like, double it on each recursion level.
> >
> > Too bad this was not included in Text_IO itself.  It would save
> > beginners a lot of trouble.  Sigh.
> >
> > - Bob
> I tried this using the following program and gnat version 3.13p on
> windows professional 2000 with the following result:
>
> with Ada.Text_IO;
>
> procedure No_String_Length_Limit_Test is
>
>     package Tio renames Ada.Text_IO;
>
>
>     function Get_Line (Buffer_Size : Positive := 1) return String is
>        Buffer : String (1..Buffer_Size);
>        Last   : Natural;
>     begin
>        Tio.Get_Line (Buffer, Last);
>        if Last < Buffer'Last then
>           return Buffer(1..Last);
>        else
>           return Buffer & Get_Line (2*Buffer_Size);
>        end if;
>     end Get_Line;
>
>
> begin -- No_String_Length_Limit_Test
>
>     loop
>        Tio.Put ("Enter a message, <Return> to exit: ");
>        declare
>           The_Message : String := Get_Line;
>        begin
>           exit when The_Message'Length = 0;
>           Tio.Put_Line ("The message is " & The_Message);
>        end;
>     end loop;
>
> end No_String_Length_Limit_Test;
>
> no_string_length_limit_test.adb:16:26: ambiguous operand for concatenation
> no_string_length_limit_test.adb:16:26: possible interpretation at line 8
> Done--error detected.
>
> Can someone tell me why the operand is ambiguous?
>
> Bob
> -- 
>                              Robert L. Spooner
>                       Registered Professional Engineer
>                         Associate Research Engineer
>                    Intelligent Control Systems Department
>
>           Applied Research Laboratory        Phone: (814) 863-4120
>           The Pennsylvania State University  FAX:   (814) 863-7841
>           P. O. Box 30
>           State College, PA 16804-0030       rls19@psu.edu
>
> _______________________________________________
> comp.lang.ada mailing list
> comp.lang.ada@ada.eu.org
> http://ada.eu.org/mailman/listinfo/comp.lang.ada
>




  reply	other threads:[~2003-07-18 18:48 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-11 12:05 Computer Language Shootout Craig Carey
2003-07-11 12:18 ` Preben Randhol
2003-07-11 12:50 ` Preben Randhol
2003-07-15 15:15   ` Matthew Heaney
2003-07-15 23:46     ` Robert I. Eachus
2003-07-16  4:37       ` Matthew Heaney
2003-07-16 18:01         ` Robert I. Eachus
2003-07-16 21:35           ` Matthew Heaney
2003-07-17  9:38           ` Preben Randhol
2003-07-17 16:29             ` Wesley Groleau
2003-07-17 17:36               ` Jean-Pierre Rosen
2003-07-17 20:56                 ` Preben Randhol
2003-07-17 21:47                 ` Robert A Duff
2003-07-18 18:04                   ` Robert Spooner
2003-07-18 18:48                     ` David C. Hoos [this message]
2003-07-19  9:51                     ` Preben Randhol
2003-07-21  7:21                     ` Jean-Pierre Rosen
2003-07-23 20:34                       ` Robert Spooner
2003-07-23 22:22                         ` Robert I. Eachus
2003-07-18 21:22                   ` Pascal Obry
2003-07-19 19:04                     ` Robert A Duff
2003-07-19 21:29                       ` Pascal Obry
2003-07-19 23:14                       ` Samuel Tardieu
2003-07-20  0:26                         ` Robert I. Eachus
2003-07-20  8:44                           ` Samuel Tardieu
2003-07-20 13:28                             ` Robert I. Eachus
2003-07-20 17:10                               ` Samuel Tardieu
2003-07-20 22:43                                 ` Robert I. Eachus
2003-07-21  8:31                                   ` Samuel Tardieu
2003-07-21 14:39                                     ` Hyman Rosen
2003-07-21 15:23                                       ` Samuel Tardieu
2003-07-21 15:46                                         ` Hyman Rosen
2003-07-21 16:09                                           ` tmoran
2003-07-21 17:52                                             ` Hyman Rosen
2003-07-21 16:14                                           ` Samuel Tardieu
2003-07-21 17:55                                             ` Hyman Rosen
2003-07-22  9:07                                           ` Preben Randhol
2003-07-22 13:21                                             ` Hyman Rosen
2003-07-23  9:28                                               ` Preben Randhol
2003-07-23  9:42                                                 ` Vinzent Hoefler
2003-07-23 10:35                                                   ` Preben Randhol
2003-07-23 22:19                                                     ` Randy Brukardt
2003-07-21  8:53                     ` Dmitry A. Kazakov
2003-07-21 11:00                       ` Jeffrey Creem
2003-07-21 13:39                         ` Dmitry A. Kazakov
2003-07-17 23:32                 ` Wesley Groleau
2003-07-18  7:36                 ` Dmitry A. Kazakov
2003-07-18  8:05                   ` Thomas Wolf
2003-07-18  9:11                   ` Jean-Pierre Rosen
2003-07-18 17:31                   ` Matthew Heaney
2003-07-17 20:53               ` Preben Randhol
2003-07-17 23:36                 ` Wesley Groleau
2003-07-16  7:11     ` Preben Randhol
2003-07-11 21:58 ` Matthew Heaney
2003-07-14 18:46   ` Matthew Heaney
2003-07-14 23:08   ` Matthew Heaney
2003-07-16  3:20     ` Isaac Gouy
2003-07-16  4:42       ` Matthew Heaney
2003-07-16 15:27         ` Isaac Gouy
  -- strict thread matches above, loose matches on Subject: below --
2001-11-03  4:15 Using "with function" Mark Lundquist
2001-11-03  5:11 ` Computer Language Shootout Eric Merritt
2001-11-03  6:50   ` tmoran
2001-11-03  7:15     ` Al Christians
2001-11-03  8:52   ` martin.m.dowie
2001-11-03 14:04     ` Ted Dennison
2001-11-03 14:24       ` martin.m.dowie
2001-11-03 14:49       ` Larry Kilgallen
2001-11-03 23:03         ` research@ijs.co.nz
2001-11-04  6:39           ` tmoran
2001-11-04 13:44             ` Larry Kilgallen
2001-11-05  0:59               ` Adrian Hoe
2001-11-05  8:04               ` David Brown
2001-11-06  6:36             ` AG
2001-11-06  8:05               ` tmoran
2001-11-07  8:58                 ` AG
2001-11-06 12:07               ` Larry Kilgallen
2001-11-07  6:19               ` Richard Riehle
2001-11-04 15:59     ` Preben Randhol
2001-11-04 20:04       ` martin.m.dowie
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox