More about my issues with DTrace's languageJune 29, 2012
In his comment on my entry about why we haven't taken to DTrace, Brendan Gregg wrote in part:
I don't think that this is the case. In fact I think it works the other way around; I doubt very much that people can go from D's limitations to any real understanding how the system is traced, but if you know how DTrace is implemented you can see the bones of this implementation underneath some of D's oddities. To start with, I will agree that making some things clear is useful and
even important. For example, I think that access to kernel data and
variables should look different than access to user level data (and in
a way that makes access to user level data look more expensive). What
I object to is things that D makes pointlessly difficult, things where
it doesn't support the obvious simple way of doing whatever and forces
you to be indirect. The shining example of this is conditionals. D does
not have any form of an The story I remember hearing about why this limitation exists is that
the DTrace implementation doesn't want to be dynamically allocating
output buffer space as a probe action executes; it wants to allocate the
space once, before the probe's action starts. Well, fine, but if this
is the reason you can deal with it in (You can argue that it saves users from themselves under some circumstances, for example if a rare condition requires a bunch more buffer space than the common ones. But this is an optimization and generally a premature one.) Now, this story is clearly not the complete explanation given that
DTrace has plenty of things that certainly look like they create
variable sized output (including an outright ternary Comments on this page:
From 67.188.160.90 at 2012-06-29 06:22:43:
By cks at 2012-06-29 11:15:22:
|
These are my WanderingThoughts GettingAround This is part of CSpace, and is written by ChrisSiebenmann. * * * Atom feeds are available; see the bottom of most pages. Categories: links, linux, programming, python, snark, solaris, spam, sysadmin, tech, unix, web |