HN user

durin42

1,662 karma

Version control hacker. Amateur musician.

raf <at> durin42 <dot> com

[ my public key: https://keybase.io/durin42; my proof: https://keybase.io/durin42/sigs/bWQCMC2edYlAMpNHJiF2tPTXnHNm1TllOYQGaDDS8as ]

Posts28
Comments263
View on HN
sandstorm.io 12y ago

Sandstorm Personal Cloud Platform

durin42
148pts72
www.bonkersworld.net 14y ago

Marketing Styles (comic)

durin42
1pts0
clang.llvm.org 15y ago

Objective-C Automatic Reference Counting

durin42
11pts0
dabeaz.blogspot.com 15y ago

Python Deadlock Avoidance

durin42
1pts0
www.voidspace.org.uk 15y ago

Python -me: clever but useful command line hack

durin42
10pts3
queue.acm.org 15y ago

The Case Against Data Lock-in

durin42
6pts2
code.google.com 15y ago

Google Application Utilities for Python

durin42
2pts0
libdispatch.macosforge.org 16y ago

Experimental libdispatch mpm for Apache

durin42
1pts0
code.google.com 16y ago

Scalr - automatic scaling for ec2

durin42
18pts1
permalink.gmane.org 16y ago

FreeBSD built with clang now selfhosting - testers wanted

durin42
87pts20
google-opensource.blogspot.com 16y ago

Google Annotations Gallery

durin42
7pts1
googlecode.blogspot.com 16y ago

Google Code Announces Faster Subversion Servers

durin42
1pts0
jerde.net 16y ago

Webapp for using a deck of cards for steganography

durin42
2pts0
wiki.videolan.org 16y ago

Death of OS X VLC Exaggerated

durin42
39pts4
zfs.macosforge.org 16y ago

Apple Pulls the Plug Completely on ZFS

durin42
103pts47
googlecode.blogspot.com 16y ago

Google Code Now Supports User Clones for Mercurial

durin42
24pts5
learn.github.com 16y ago

Learn.GitHub: A Compilation of the Best Git Resources

durin42
39pts1
www.youtube.com 17y ago

National Debt as a Roadtrip

durin42
3pts1
bitbucket.org 17y ago

Blatter: Publish Static Sites Using Templates

durin42
1pts0
news.zdnet.com 17y ago

OpenSSH Design Flaw Discovered

durin42
20pts7
eurocrypt2009rump.cr.yp.to 17y ago

SHA1 collisions down to 2^52 [pdf]

durin42
40pts23
google-code-updates.blogspot.com 17y ago

Google Code now supports Mercurial

durin42
118pts31
blip.tv 17y ago

Abstraction as Leverage (PyCon 2009 Talk)

durin42
8pts0
vimeo.com 17y ago

Dingus - Clever Python Mock Library

durin42
1pts0
code.google.com 17y ago

Unladen Swallow: Making CPython Faster Using LLVM

durin42
105pts15
pybrain.org 17y ago

PyBrain: Machine Learning Toolkit for Python

durin42
53pts4
www.heise-online.co.uk 17y ago

IE's MIME Sniffing Allows Execution of Images

durin42
18pts5
whybzrisbetterthanx.com 17y ago

Why bzr is better than X

durin42
4pts1

How long ago was this? And what OS? I know we're faster than unzip on some platforms, but IIRC we just found a pretty awful performance issue on...linux? I think?... that meant our parallelized approach to writing files was burning a ton of time in the kernel filesystem locks or something.

rewrite a large part of hg in Rust

That's not really the right story. The motivating factor is that we'd like to write /less C/, not /less Python/. It's likely in the long-term that parts of the code that are performance sensitive will move out of Python, but we've been doing that for years, and we just keep finding new things to optimize as the scale of Mercurial repositories keeps increasing.

Last I knew it worked fine, but hg doesn't tend to run long enough for the JIT to warm up enough and be an unambiguous win. Fijal complemented us on how good our C was.

I think it does work if you do chg with a commandserver in pypy.

Go isn't really a huge win for hg, and it doesn't support being used as a shared library, so we couldn't easily use it as a replacement for C for native extensions. main() has to be in Go, and even then you've got two GCs in the mix which is not great.

There's pretty broad consensus that we'd like to do Rust and not C for future extension work, but the current plan is that a pure-Python hg will also be something we support. The "rust binary that embeds Python" approach looks like a straightforward win on Windows, where we have a native .exe that embeds Python anyway. I'm not sure if that'll make sense on non-Windows, but we'll see.

I've done some poking around with milksnake, which seems extremely promising for writing native speedups.

All the communities I know that are centered around diff-in-email patch review are quite frustrated by the available GUI tools (most of them are only good for one patch at a time, or treat an entire stack of patches as one change). If you get somewhere with this, let me know? We might be interested in testing it on Mercurial depending on how it integrates with the email side...