most ddoc examples not runnable; Edit is buggy; DDOC generates wrong Example tag

timotheecour timothee.cour2 at gmail.com
Tue Mar 12 21:34:05 PDT 2013


Is there any short term plan to make examples in ddoc runnable?
right now, the only one that runs is the one on the home page 
dlang.org.

Example: in http://dlang.org/phobos/std_path.html:
the 1st code sample (under baseName)

when you click on run:
/home/c318/c110.d(2): Error: Declaration expected, not 'assert'

when you click on Edit and wrap the code sample in this:
----
import std.path;
void main(){
...
}
----

now it runs fine.

I propose:

A)
the examples should be runnable by default (at least a majority 
of them, in the meantime)

B)
we can do this either by requesting user code to write runnable 
examples (would require a lot of changes in documentation, maybe 
not so good and verbose), or by implicitly wrapping each example 
inside a main function, with proper import declarations (ala rdmd 
--eval, which imports all phobos). That may be overkill and 
produce name clashes (std.file.write,std.stdio.write,..). Maybe 
just import current module implicitly, all else requires the user 
to explicitly import.

C)
to keep examples in sync (I just made a pull request that fixes a 
wrong syntax in std.random), there should be an autotester that 
does just that, at least verifying stuff compiles, if not runs 
without breaking asserts.

D)
will that be obsoleted by unittests appearing in ddoc?

E)
right now Edit button in those examples is buggy:
try clicking on Edit in second example box in baseName's example: 
the code is replaced by something different from example above.

F)
The DDOC generates extraneous "Example:" tag in almost all cases 
(see for example in dirName: you have Examples: ... (ok) and then 
Exampe: (empty)


More information about the Digitalmars-d-learn mailing list