Greetings.

Section 4.5 of the Scribble docs, 'In-Source Documentation' refers to the 
file/gif.rkt source as a useful example of this practice.  However, probably 
due to version changes, that file now looks different from what's described in 
the section it purportedly exemplifies.

Namely (noting docs -> gif.rkt):

  * '#reader scribble/reader' -> '#lang at-exp scheme/base'

  * '(require/doc scribble/base scribble/manual)' -> '(require/doc scheme/base 
scribble/manual)'

----

Separately, the documentation for proc-doc/names shows the structure of the 
form as

    (proc-doc/names id contract ((arg-id ...) ((arg-id default-expr) ...)) 
desc-expr)

I read that as requiring two subforms within the third proc-doc/names argument, 
even if there are zero (arg-id default-expr) forms.  Thus this seems to suggest 
that a procedure with one mandatory and no optional arguments would be declared 
as 

    (proc-doc/names foo (-> type type) ((arg1) ()) @{Description})

I appreciate there isn't really a formal grammar here, but adding a further 
exemplar line without the default-expr forms might be clearer -- is there 
perhaps a missing template

    (proc-doc/names id contract (arg-id ...) desc-expr)

As it was, it took some grepping through collects/* before I worked out why I 
was getting errors with my first attempt (no tragedy, of course, but it slows 
one down...).

----

Separately (again), the discussion in section 4.5.2 might benefit from some 
attention.  The description of provide-extracted mentions that "the 
documentation is packaged and exported as exported, instead of left inline."  I 
think I can see the intention here, but the phrase 'exported as exported' seems 
terribly important without being at all transparent as to meaning.  This 
paragraph suggests that provide-extracted should go in the scribble file, while 
the next one seems to suggest that it should instead go in the module file.  
Then I look around and find framework/main.scrbl, which refers to 
main-extracts.ss, and ... I'm starting to get a bit confused.  I think I may 
now see which (third!) file the provide-extracted form should go into, but it's 
definitely getting a bit voodoo, now.

I can't just flail around and experiment, because the module I'm trying to 
document doesn't appear to work in an expected way with include-extracted.  In 
my scribble file I have 

% cat rdf.scrbl
#lang scribble/manual
@(require scribble/extract)
@title{The rdf library, wrapping librdf.org}
If you give a mouse a cookie, he's going to ask for a glass of milk.
@(include-extracted "../src/build/rdf.ss")
%

In the rdf.ss I have a line '(require "librdf-extn.rkt")', and in ../src/build 
I have rdf.ss and compiled/native/i386-macosx/3m/librdf-extn_rkt.dylib (ie, an 
extension, with no associated .rkt or .ss file).  Running scribble then gives:

% scribble --html rdf.scrbl
default-load-handler: cannot open input file: 
"/checkouts/me/code/plt-librdf/doc/librdf-extn.rkt" (No such file or directory; 
errno=2)

 === context ===
/Data/LocalApplications/Racket/Racket 
v5.0/collects/racket/private/map.rkt:18:11: map
/Data/LocalApplications/Racket/Racket v5.0/collects/scribble/run.rkt: [running 
body]
% pwd
/checkouts/me/code/plt-librdf/doc
%

That is, the processing of include-extracted seems to be searching for required 
modules in an unexpected way.

Thanks for any illumination.  Best wishes,

Norman


-- 
Norman Gray  :  http://nxg.me.uk



_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Reply via email to