[IronPython] Expression printing in interactive mode

Dino Viehland dinov at microsoft.com
Wed Apr 29 20:19:20 CEST 2009


Actually now that I think about it more than one \n isn't right 
either because that will change how we parse multi-line statements
at the REPL.  Maybe this should just be undone.

> -----Original Message-----
> From: users-bounces at lists.ironpython.com [mailto:users-
> bounces at lists.ironpython.com] On Behalf Of Dino Viehland
> Sent: Wednesday, April 29, 2009 11:13 AM
> To: Discussion of IronPython
> Subject: Re: [IronPython] Expression printing in interactive mode
> 
> There was some internal work going on w/ running a remote console
> and it looks like this change was related to that.  In
> Microsoft.Scripting.Hosting.Shell there's a comment added to its
> RunOneInteraction w/ the same change:
> 
>         /// We check if the code read is an interactive command or
> statements is by checking for NewLine
>         /// If the code contains NewLine, it's a set of statements
> (most probably from SendToConsole)
>         /// If the code does not contain a NewLine, it's an interactive
> command typed by the user at the prompt
> 
> Looking at the code thought I'm guessing this is totally broken on
> Unix because in ReadStatement we append a newline, with a
> wonderful comment there:
> 
>                 // Note that this does not use Environment.NewLine
> because some languages (eg. Python) only
>                 // recognize \n as a line terminator.
>                 b.Append("\n");
> 
> So this just happens to do the right thing on Windows due to the
> mismatches between the new lines being used.
> 
> I guess we should actually be checking for more than one "\n".
> 
> > -----Original Message-----
> > From: users-bounces at lists.ironpython.com [mailto:users-
> > bounces at lists.ironpython.com] On Behalf Of Seo Sanghyeon
> > Sent: Wednesday, April 29, 2009 10:48 AM
> > To: Discussion of IronPython
> > Subject: [IronPython] Expression printing in interactive mode
> >
> > In changeset 42603, a change was made to
> > IronPython.Hosting.PythonCommandLine.RunOneInteraction,
> >
> > - SourceUnit su = Language.CreateSnippet(s, "<stdin>",
> > SourceCodeKind.InteractiveCode);
> > + SourceUnit su = Language.CreateSnippet(s, "<stdin>",
> > (s.Contains(Environment.NewLine))? SourceCodeKind.Statements :
> > SourceCodeKind.InteractiveCode);
> >
> > Why is this? It seems to me that s always contains newline, so its
> net
> > effect is making all interactive code non-interactive. In Python,
> this
> > means no expression is printed in interactive mode.
> >
> > --
> > Seo Sanghyeon
> > _______________________________________________
> > Users mailing list
> > Users at lists.ironpython.com
> > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> 
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com




More information about the Ironpython-users mailing list