On Sep 21, 10:53 pm, Michael Foord <[EMAIL PROTECTED]> wrote: > Hello Dino, > > I think I've got it. With this flag set, the compile function will > return None *if* an indented line would be valid. > > This allows the interactive interpreter to decide which prompt to > present the user with (and whether to execute the code it has buffered > or to wait for more input). > > For example (from CPython): > > PyCF_DONT_IMPLY_DEDENT = 0x200 > def _compile(source, filename, symbol): > return compile(source, filename, symbol, PyCF_DONT_IMPLY_DEDENT) > > source = 'def x():\n print x' > print _compile(source, 'test', 'single') > None
I *swear* I got this result when I was experimenting on Friday. Actually as far as I can tell 'compile' never returns None - it is one of the functions in the codeop module that does this. I've just written up what I think is the real difference in my blog (with the flag set compile throws a SyntaxError for the source above that isn't newline terminated). Sorry for the misdirection - but I still think we've basically got the meaning of the flag nailed. Michael > > Without the flag set returns a code object. > > There is similar code in the DLRConsole but it uses > "Microsoft.Scripting.SourceCodeUnit" which isn't present in 2.0a4. > > All the best, > > Michaelhttp://www.ironpython.info/ > > > > Dino Viehland wrote: > > Ok, I closed 12908 as a dup. If there's no info on it we can always try > > reverse engineering it (or see if test_codeop fails when we just ignore the > > flag instead of throwing - that might be the simplest thing to do). > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael Foord > > Sent: Friday, September 21, 2007 1:23 PM > > To: Discussion of IronPython > > Subject: Re: [IronPython] [python] Re: Missing Compiler Flag > > > Dino Viehland wrote: > > >> Strangely it doesn't seem to be in the documentation for compile() either > >> :( > > >> Do you know what this option does by any chance :) ? > > >> I've opened bug #12908 > > > Great - it can go with 12907. :-) > > > It is something to do with dedenting. ;-) > > > I can't find much about it on the intarwebz. It is defined in > > pythonrun.h and seems to be used in pythonrun.c and it is involved with > > parsing which makes sense. > > > I'll try asking around. *sigh* > > > Michael Foord > >http://www.manning.com/foord > > >> (http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=12908) > >> so we at least have it tracked... > > >> -----Original Message----- > >> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael > >> Foord > >> Sent: Friday, September 21, 2007 12:57 PM > >> To: Discussion of IronPython > >> Subject: [IronPython] Missing Compiler Flag > > >> Hello all, > > >> There's another problem with the interactive interpreter in IronPython > >> (it affects the ability to use the code standard library module). > > >> The PyCF_DONT_IMPLY_DEDENT compiler flag is not recognised in IronPython. > > >> The flag is defined in the 'codeop' standard library module: > > >> PyCF_DONT_IMPLY_DEDENT = 0x200 # Matches pythonrun.h > > >> Attempting to use this in IronPython: > > >> >>> compile('print x', 'test', 'single', 0x200, 1) > >> Traceback (most recent call last): > >> File , line 0, in <stdin>##1 > >> File , line 0, in Compile##4 > >> ValueError: unrecognized flags > > >> Without this flag the code module can't recognize blocks of code with > >> several indented lines. :-( > > >> All the best, > > >> Michael Foord > >>http://www.manning.com/foord > >> _______________________________________________ > >> Users mailing list > >> [EMAIL PROTECTED] > >>http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > >> _______________________________________________ > >> Users mailing list > >> [EMAIL PROTECTED] > >>http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > > _______________________________________________ > > Users mailing list > > [EMAIL PROTECTED] > >http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > _______________________________________________ > > Users mailing list > > [EMAIL PROTECTED] > >http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > _______________________________________________ > Users mailing list > [EMAIL PROTECTED]://lists.ironpython.com/listinfo.cgi/users-ironpython.com _______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
