Re: [Python-Dev] Nondeterministic long-to-float coercion

2006-10-19 Thread Bryan O'Sullivan
Raymond Hettinger wrote:
> My colleague got an odd result today that is reproducible on his build
> of Python (RedHat's distribution of Py2.4.2) but not any other builds
> I've checked (including an Ubuntu Py2.4.2 built with a later version of
> GCC).  I hypothesized that this was a bug in the underlying GCC
> libraries, but the magnitude of the error is so large that that seems
> implausible.

These errors are due to a bit or two being flipped in either the long or 
double representation of the number.  They could be due to a compiler 
bug, but other potential culprits include bad memory, a bum power supply 
introducing noise, or cooling problems.

Has your colleague run memtest86 or other load tests for a day on their box?

http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Switch statement

2006-06-23 Thread Bryan O'Sullivan
On Fri, 2006-06-23 at 16:16 -0400, Edward C. Jones wrote:

> Please keep Python simple.

+1 on this sentiment.

I use switch statements all the time in C, but I'd rather not see them
in Python - even though I'd use them if they were there! - purely to
keep the cognitive overhead low.

http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] On distributed vs centralised SCM for Python

2005-08-15 Thread Bryan O'Sullivan
Pardon me for coming a little late to the SCM discussion, but I thought
I would throw a few comments in.

A little background: I've used Perforce, CVS, Subversion and BitKeeper
for a number of years.  Currently, I hack on Mercurial
http://www.selenic.com/mercurial>.

However, I'm not here to try and specifically push Mercurial, but rather
to bring up a few points that I haven't seen made in the earlier
discussions.

The biggest distinguishing factor between centralised and decentralised
SCMs is the kinds of interaction they permit between the core developer
community and outsiders.

The centralised SCM tools all create a wall between core developers
(i.e. people with commit access to the central repository) and people
who are on the fringes.  Outsiders may be able to get anonymous
read-only access, but they are left up to their own devices if they want
to make changes that they would like to contribute back to the project.

With centralised tools, any revision control that outsiders do must be
ad-hoc in nature, and they cannot share their changes in a natural way
(i.e. preserving revision history) with anyone else.

I do not follow Python development closely, so I have no idea how open
Python typically is to contributions from people outside the core CVS
committers.

However, it's worth pointing out that with a distributed SCM - it
doesn't really matter which one you use - it is simple to put together a
workflow that operates in the same way as a centralised SCM.  You lose
nothing in the translation.  What you gain is several-fold:

  * Outsiders get to work according to the same terms, and with the
same tools, as core developers.
  * Everyone can perform whatever work they want (branch, commit,
diff, undo, etc) without being connected to the main repository
in any way.
  * Peer-level sharing of changes, for testing or evaluation, is
easy and doesn't clutter up the central server with short-lived
branches.
  * Speculative branching: it is cheap to create a local private
branch that contains some half-baked changes.  If they work out,
fold them back and commit them to the main repository.  If not,
blow the branch away and forget about it.

Regardless of what you may think of the Linux development model, it is
teling that there have been about 80 people able to commit changes to
Python since 1990 (I just checked the cvsroot tarball), whereas my
estimate is that about ten times as many used BitKeeper to contribute
changes to the Linux kernel just since the 2.5 tree began in 2002.  (The
total number of users who contributed changes was about 1600, 1300 of
whom used BK, while the remainder emailed plain old patches that someone
applied.)

It is, of course, not possible for me to tell which CVS commits were
really patches that originated with someone else, but my intent is to
show how the choice of tools affects the ability of people to contribute
in "natural" ways.  How much of the difference in numbers is due to the
respective popularity or accessibility of the projects is anyone's
guess.

With any luck, there's some food for thought above.

Regards,



___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] On distributed vs centralised SCM for Python

2005-08-15 Thread Bryan O'Sullivan
On Mon, 2005-08-15 at 23:29 +0200, "Martin v. Löwis" wrote:

> That may be off-topic for python-dev, but can you please explain how
> this works?

It's simple enough.  In place of a central server that hosts a set of
repositories and a number of branches, and to which only a few people
have access, you use a central server that hosts a number of
repositories, and you get the idea.

But the difference lies in the way you use it.  In the centralised
model, there's only one server, and only one repository, anywhere.  In
the distributed model, each developer has one or more repositories that
they keep in sync with the central ones they are interested in, pulling
and pushing changes as necessary.  The difference is that they get to
share changes horizontally if they wish, without going through the
central server.

> I'm using git on the kernel level. In what way am I at the same level
> as the core developers?

You can use the same tools to do the same things they can.  You can
communicate with them in terms of commits.  You may each have access to
different sets of servers from which other people can pull changes, but
if they want to take changes from you, you have the option of giving
them complete history of all the edits and merges you've done, with no
information loss.

> So how does that work? If I commit the changes to my local version of
> the repository, how do they get peer-level-shared? 

You have to do something to share them, but it's a lot simpler than
sending diffs to a mailing list, or attaching them to a bug tracking
system note.

> Hmm. The changes of these 800 people had to be approved by some core
> developers, or perhaps even all approved by Linus Torvalds, right?

True.

> I hear that, but I have a hard time believing it. People find the
> "cvs diff -u, send diff file for discussion to patches tracker"
> cycle quite natural.

People will find doing the same of anything, over and over for fifteen
years, quite natural :-)



___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com