[PATCH] set/show python dont-write-bytecode fixes

Kevin Buettner kevinb@redhat.com
Sat Jul 23 21:30:25 GMT 2022


On Sat, 23 Jul 2022 09:54:33 +0300
Eli Zaretskii <eliz@gnu.org> wrote:

> > Date: Fri, 22 Jul 2022 18:37:22 -0700
> > From: Kevin Buettner <kevinb@redhat.com>
> > 
> > My understanding of things is that in order to effectively use 'set
> > python dont-write-bytecode', it must be placed in an early
> > initialization file, i.e. those run via the --early-init-eval-command
> > or -eix options.  If the command were placed in some other
> > initialization file, it might well be run before the embedded Python
> > interpreter is run for the first time, yet still not take effect due
> > to the command being executed after Python initialization.
> > 
> > Another way to make sure that the command takes effect is to
> > use one of the following options on the GDB command line:
> > 
> >   --early-init-eval-command 'set python dont-write-bytecode on'
> > 
> > or:
> > 
> >   -eiex 'set python dont-write-bytecode on'  
> 
> Maybe we should say in the doc string that these are the only ways of
> changing this setting so it has effect?

Done.

> > > Finally should we mention the PYTHONDONTWRITEBYTECODE environment
> > > variable?  
> > 
> > It is already documented in the GDB manual.  Should it also be
> > mentioned in the help text?  
> 
> That was my question.
> 
> > Another fly in the ointment is that the 'python ignore-environment'
> > setting also affects how dont-write-bytecode behaves when it's set to
> > 'auto'.  If ignore-environment is 'on', then PYTHONDONTWRITEBYTECODE
> > is ignored.
> > 
> > This seems like a lot of detail to place in the help text.  
> 
> Maybe we should try saying all that, and then decide whether the
> resulting text is too long?

Done, though hopefully in a concise manner.
 
> > I just noticed that, regarding the "auto" setting, the GDB manual says
> > "... in this mode Python will check the environment variable
> > PYTHONDONTWRITEBYTECODE to see if it should write out byte-code or
> > not."  What it doesn't say is what settings the environment variable
> > must have in order to cause byte-code compilation to be suppressed.
> > It turns out that any value other than non-existence or the
> > empty string will enable the supression of byte-code compilation.
> > I.e. using "PYTHONDONTWRITEBYTECODE=no" might not do what the user
> > expects.  So, it seems to me that we might update the manual to
> > make this clear.  (I can include that in the v2 patch if you agree.)  
> 
> I agree.  Thanks.

I've made some changes to the GDB manual too.

These changes, including the ones you asked for in your earlier email,
are in the v2 patch.  See:

https://sourceware.org/pipermail/gdb-patches/2022-July/191030.html

Kevin



More information about the Gdb-patches mailing list