Sivakumar Shanmugasundaram wrote:
>
> Enhancing Ruby with DTrace probes.

Hi,
Some comments below...

>       This case seeks Micro Release Binding.

'micro' isn't really used in Solaris world, so just say Minor here.

>       /usr/ruby/1.8/bin/ruby
>       /usr/ruby/1.8/lib/libruby.so.1

Those files aren't being delivered by this case so no need to mention
them.

>       /usr/ruby/1.8/lib/ruby/1.8/i386-solaris2.11/dtrace.h

Who is the consumer for this one?

> 2.2.    Versioning
> 
>       The DTrace interfaces for Ruby are based on subversion trunk version
>       501. The interfaces are evolving, and it is unknown whether they will
>       remain stable across releases.

Given this info, it sounds like this is not very mature yet.  Is it
yet time to call them Uncommitted interfaces?  While Uncommitted is
more desirable, if they truly are so immature as the above paragraph
seems to suggest, perhaps they need to be Volatile?

> 3.      DTrace Probe dependencies.
> 
>       The DTrace probes depends on the DTrace packages in Solaris SUNWdtrc
>       and SUNWdtrp, Ruby packages SUNWruby18u and SUNWruby18r.

The ruby dtrace probes will be delivered in the ruby packages, so it's
not right to say it depends on them. 

> 5.      Ruby DTrace Documentation.
>       The documentation for DTrace probes is available from Joyent's Ruby
>       DTrace page [6]. The documentation covers the available probes, their
>       arguments and usage examples.

Since these are [will be] now in OpenSolaris, there should be some
level of documentation available without having to go to an external
site to get it.

>       The man page for Ruby will be suitably modified as well, to indicate
>       the addition of DTrace probes in the interpretor.

I suggest adding the list of probe names and the table documenting
their arguments into the manpage itself, since it is only a couple
dozen lines of info.

> 6.      Interfaces
> 
>         6.1.    Imported Interfaces.
> 
>         NAME                          STABILITY                       NOTES
>       Ruby language implementation    Uncommitted             PSARC/2007/600

>       SUNWruby18u                     Uncommitted             PSARC/2007/600
>       SUNWruby18r                     Uncommitted             PSARC/2007/600

What exactly is the dtrace code importing from the package names
SUNWruby18u, SUNWruby18r? The first import of the ruby language makes
sense since the dtrace project patches ruby, but the package name
imports seem unnecessary.

>       SUNWdtrc                        Uncommitted             PSARC/2001/466
>       SUNWdtrp                        Uncommitted             PSARC/2001/466

Here I realize you probably used the package names as a shortcut for
stating the dtrace patches make use of the APIs from dtrace for adding
application probes, but that's not the best way to express an imported
interface reference. Instead, call out the actual dtrace API names(s)
being used.

>       6.2.    Exported Interfaces.

>       More details about the probes, their decription, the arguments can be
>       found in Joyents web site [6]

Please include the probe descriptions & arguments here (as well as in
the man page) since it is vital info to being able to do anything with
these probes.


> Appendix 1: Ruby man page changes
> 
> FEATURES
> ...
>     DTrace Probes
>       Ruby has a bunch of DTrace probes that can be used to debug a running

"a bunch of" isn't quite the formal language one expects in a man page.. ;-)
Please clean up the language a bit.

>       Ruby/Rails application. NOTE: This is on x86/x64 platform only.

Please add a section earlier in the functional spec document
explaining the reasons why there is a difference between
platforms. That's key info that needs to be documented, not just
mentioned in a footnote.


-- 
Jyri J. Virkki - jyri.virkki at sun.com - Sun Microsystems

Reply via email to