On Tuesday, August 13, 2019 at 6:22:23 AM UTC-5, Edward K. Ream wrote:

Melding pyzo's config code with Leo's remains, by far, the most important 
> and challenging part of the pyzo-in-leo project.
>

*Status*

1. I added a call to callLater(pyzo.shells.addShell) at the end of 
make_all_docks.  This revealed several problems with the init code, 
including some *buglets* (undefined pyzo ivars) in the *pyzo *code when 
using the *plugin's *(slightly altered) startup logic.

2. Pyzo's config code continues to be a confounding factor in 
understanding, initing and executing the code.  The plugin uses the *real* 
pyzo's config.ssdf file, and that makes the startup code appear to be 
non-deterministic.  The value of command-line arguments (sys.argv) is 
another confounding factor.

3. Leo does not shut down properly when the pyzo_in_leo plugin is enabled.  
There is some unused code that does this.  I'll probably just have to put 
it back in place.  It's an easy monkey-patch to Leo itself.

Here are my next steps...

*Execute pyzo's startup code exactly as pyzo does*

Failure to do this may be causing subtle startup bugs, including the 
buglets described above.  I shall replace start_pyzo_in_leo with the 
following functions in the plugin:

- pyzo_start:  a copy of pyzo.start, with as few changes as possible.  It 
will call:
- pyzo_main_ctor: a copy of pyzo's MainWindow.__init__.py,which will call:
- pyzo_main_populate: a copy of pyzo's MainWindow._populate.

*De-fang pyzo.config*

This can't wait any longer.  pyzo.config is, in effect, a set of global 
vars that depend on the *real* pyzo's configuration.  It's way too 
confusing to continue to allow this coupling. The changed code will be an 
in-place shim. Traces in pyzo.config should be helpful in debugging.

*Create a dock for pyzo's main "Editors" window*

In the real pyzo this is the central widget, not a dock, but Leo already 
has a central widget :-) Making pyzo's editors visible will help with 
debugging, and *might* even remain in the final code.

*Summary*

I have begun debugging pyzo in the context of the pyzo_in_leo plugin.

Subtle differences in the plugin's startup logic are causing subtle, 
difficult-to-find, execution time errors.

pyzo.config must be made deterministic. This will start the process of 
melding pyzo's config system with Leo's.

For debugging (and longer?), I'll make pyzo's editors visible by putting 
them in a new Leo dock.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/31a0d439-f9f9-4c26-9d08-0c6c1a697527%40googlegroups.com.

Reply via email to