[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