RFC: startup time - again
Robert Collins
robertc at robertcollins.net
Thu Sep 11 01:49:05 BST 2008
On Wed, 2008-09-10 at 14:21 +0200, Dennis Benzinger wrote:
> Hi!
>
> Am 10.09.2008 13:26, Adrian Wilkins schrieb:
> > [...]
> > For me, the real performance of Bazaar is not in whether it reports on a
> > `bzr st` before I've lifted my finger from the enter key. It's in all
> > the work it does for me. It's in the merging support. It's in the fact
> > that it's written in a language that I could pick up and hack on without
> > being terrified of what I'd do to it. (My C experience is limited).
>
> +1
> I
> want an easy to use, feature-rich, adaptable DVCS thats reasonably fast
> if it's doing real work.
Good - these sentiments are ones we felt when we decided to work on bzr
using pure python, rather than C/C++, which all the existing popular VCS
tools of the time used. There are limits to this though, and my thoughts
about C are due to us routinely hitting them in the very core code.
> >> C
> >
> > Please don't consider going to C for performance reasons.
> > [...]
>
> +1
>
> If you really want to do that please keep Bazaar usable only with Python
> and do not require C to run Bazaar if I don't really need the speed
> improvements.
We don't require C at all at the moment. Its *strongly* recommended.
(Diff is ten times faster with C, status similarly). In fact we have a
policy that all C extensions must be optional ones rather than required
- there must be a python implementation that is interface tested to
behave equivalently and is coded for clarity, which aids porting, and
adhoc use by users where binary packages are not available, or the C
extensions fail to build.
I've always been strongly behind this policy, and I still am. *IF* I
were to put forward a concrete plan to allow significantly deeper C
integration, I would definitely retain this policy, such that you can
always run bzr without C extensions. I think that that is a must.
> ... But if
> you start using C then probably some plugins also would need C and you
> would have to provide binaries for them too.
bzr-svn already needs C, because the python bindings for libsvn were
such a headache the author of bzr-svn wrote his own. I think plugins are
entirely unrelated to whether or not the core uses C (it already does) -
because plugins can choose to need, or not need C, themselves.
> That would open a can of
> worms of problems. For example on Windows it's difficult to combine
> precompiled libraries with Python if they don't use the same C compiler.
> That's already a problem for Python and some libraries.
Yup, and we're seeing bug reports for bzr-svn now, as it happens,
because its bundled with the bzr binaries for 1.6.
-Rob
--
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20080911/2464d6e4/attachment.pgp
More information about the bazaar
mailing list