[erlang-questions] Trace-Driven Development

Michael Turner <>
Mon Jun 4 09:52:08 CEST 2012

"(Lamport published his paper in 1978, the same year that the first
digital AXE was taken into service), ...."

Leaving publication delays aside: as with so many ideas that get named
after a single person, Lamport clocks (in the sense of the
counter-pairs used in seq_trace) are at least partially credited to
the earlier efforts of others, by Lamport himself, in the original
paper, and here:


In particular, he credits the authors of an RFC submitted in 1975:


> See e.g. http://es.scribd.com/mobile/doc/83784121, starting at page 109.

Yes, I've been pointed to this claim before in a previous "actually
Ericsson invented that" discussion. Looking at the section  closely,
however, I don't see how either Forlopp Identity Registers or Forlopp
Identity itself correspond to Lamport clocks. All I see is something
that vaguely corresponds to seq_trace's "contamination" algorithm,
together with an "error intensity count" that doesn't seem to have
anything to do with Lamport clocks.

Regardless of who first invented this technique, I think my point
stands: the seq_trace documentation should call what it does by its
proper name. Hardly anybody knows what forlopp means, whereas
Lamport's paper won the "2000 PODC Influential Paper Award (later
renamed the Edsger W. Dijkstra Prize in Distributed Computing)," and
the "ACM SIGOPS Hall of Fame Award in 2007."

So there's a classic distributed-systems paper that gives the
technique its name, yet somehow, even though Kenneth Lundin agreed,
all the way back in 2007, that seq_trace implements Lamport clocks


this fact somehow hasn't made it into the documentation. Everybody has
to rediscover it. This is not just a waste of their time, there's also
the opportunity cost for Erlang/OTP (and Ericsson) in people *not*
discovering it because it's not named as such at www.erlang.org.
Tracing tools building on seq_trace, exploiting the formal properties
that were elucidated by Lamport and elaborated on by others, might
considerably improve on what's available now. But as far as I can
tell, seq_trace isn't the foundation for *anything* in OTP.

-michael turner

On Mon, Jun 4, 2012 at 3:52 PM, Ulf Wiger <> wrote:
> 4 jun 2012 kl. 06:52 skrev Michael Turner <>:
>> I'm a little embarrassed to be doing a "reply all" on this message,
>> because I'm (still) such a stop-start Erlang newbie. What compensates
>> for the mortification, however, is passages like the following, which
>> suggest I'm hardly the only one who should be embarrassed:
>> "Erlang tracing is a seething pile of pain that involves reasonably
>> complex knowledge of clever ports, tracing return formats, and
>> specialized tracing MatchSpecs (which are really their own special
>> kind of hell). The tracing mechanism is very powerful indeed, but it
>> can be hard to grasp."
>> Obviously, that kind of statement has no place in the official
>> documentation of a professional product.
> You are absolutely right about that.
>> I started using seq_trace. It has its own documentation problems, of
>> course. For example: since seq_trace is an implementation of Lamport
>> clocks, you should *say* somewhere (like, in the first paragraph,
>> maybe?) that it's an implementation of Lamport clocks. Don't make it
>> sound like your own invention.
> Actually, I believe it is more correct to say that it's based on the "forlopp trace" thst exists in Ericsson's AXE switches (using the proprietary language PLEX). Whether forlopp trace was based on Lamport clocks, I couldn't say. I don't know when it was introduced in the AXE (Lamport published his paper in 1978, the same year that the first digital AXE was taken into service), and to what extent it was informed by Lamport's work.
> Anyway, not noting in the docs that sequence trace mimicks AXE's forlopp trace seems forgiveable, since very few people would know what that is. :)
> See e.g. http://es.scribd.com/mobile/doc/83784121, starting at page 109.
> BR,
> Ulf W

More information about the erlang-questions mailing list