[Zope3-dev] Re: Google SoC Project

Tres Seaver tseaver at palladion.com
Tue May 9 11:34:21 EDT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jim Fulton wrote:
> whit wrote:
> 
>> Adam Groszer wrote:
>>
>>> I personally am tired of restarting z3 each time I made an error even
>>> if it is just one char mistype. I'm doing now a wx based app, and the
>>> problem is the same... made an error, restart, click 10 times...
>>> It would be also a way to have a developer version which might run
>>> slower.
>>>
>>
>> amen...   In the plone community, we have several influential
>> developers who don't use z3 tech I suspect because developing with
>> pythonscript is *still faster* than writing views and adapters because
>> one doesn't have to reload to see minor code changes.
>>
>> also, in z2 land, refreshing a product loses all the related z3
>> registrations.
>>
>> being able to dynamically reload without restart would be a huge
>> fricking win.
> 
> 
> I guess we need to make this a priority for the next release.
> 
> Python simply does not support a general robust reload, other than
> restart.
> 
> I think that there are 2 ways we can make progress in this area:
> 
> - Speed up restart.  I think there are a lot of ways that restarts
>   can be made faster:
> 
>   o Optimizae what we're doing now.  I suspect that there are some
>     opportunuties here.
> 
>   o Load less.  A Zope 3 application that only loads what it actually
>     uses will load much more quickly than a full Zope 3 checkout.
> 
>     The Zope 3 checkout has as much as it does to provide a
>     way to test a range of applications when we modify Zope 3.
>     We need to have a better way of solving this problem without
>     such a bloated checkout configuration.
> 
>     Also, we need to make progress with packaging, to make
>     it easier for people to get just the components they need.
>     I wanted to switch to eggs for the 3.3 release, but, sadly,
>     there wasn't enough time.  I think switching to package-based
>     distributions and installation should be a top priority for
>     3.4.
> 
>     Finally, there's a lot of interest in generating configuration
>     actions in Python, rather than ZCML.  I suspect that avoiding
>     XML processing, conversion, and validation might speed startup
>     quite a bit.

If we modified the validation to defer checking things like dotted name
resolution until *after* all files have been parsed, then we could make
it a requirement that configuration handlers have *no* side effects;  at
that point, we could save a pickle of the actions list, and restart by
loading the pickle instead of parsing.  We would need to "remember"
things like file name and line number for the "dotted name" references,
so that we could report them property in the "deferred" check (after all
actions have run).

> - Look at opprtunities for limited robust reload.  Perhaps we could
>   define reloadable modules, especially for defining adapters,
>   with restrictions on their definitions and exports in a way
>   that allows robust reload.  This would probably be based on the
>   persistent-module experiments.  This is a fair bit of deep work
>   though and I'm not sure who has the interest and ability to make
>   it happen.
> 
> I'm really not interested in a reload faclity, like the one commonly
> used in Zope 2, that is not robust.  I've wasted too many hours
> helping people debug problems that were caused by reload misshaps.

Amen.


- --
===================================================================
Tres Seaver          +1 202-558-7113          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFEYLZ9+gerLs4ltQ4RApytAJ0fi8XBcnlt3aR5mM1L9MgdGSZ3DACgtGSj
igZb17loQ69PYA8be5KR3jg=
=CGBI
-----END PGP SIGNATURE-----



More information about the Zope3-dev mailing list