From owner-freebsd-doc Wed Apr 18 3: 3:57 2001 Delivered-To: freebsd-doc@freebsd.org Received: from dfw-smtpout1.email.verio.net (dfw-smtpout1.email.verio.net [129.250.36.41]) by hub.freebsd.org (Postfix) with ESMTP id 9E50637B423 for ; Wed, 18 Apr 2001 03:03:52 -0700 (PDT) (envelope-from bokr@accessone.com) Received: from [129.250.38.64] (helo=dfw-mmp4.email.verio.net) by dfw-smtpout1.email.verio.net with esmtp id 14pooS-00023i-00 for freebsd-doc@freebsd.org; Wed, 18 Apr 2001 10:03:52 +0000 Received: from [63.183.7.123] (helo=gazelle.accessone.com) by dfw-mmp4.email.verio.net with esmtp id 14pooQ-0000qV-00 for freebsd-doc@freebsd.org; Wed, 18 Apr 2001 10:03:51 +0000 Message-Id: <5.0.2.1.1.20010418005646.00aef0d0@mail.accessone.com> X-Sender: bokr@mail.accessone.com X-Mailer: QUALCOMM Windows Eudora Version 5.0.2 Date: Wed, 18 Apr 2001 03:03:57 -0700 To: freebsd-doc@freebsd.org From: Bengt Richter Subject: Re: Programmers Documentation Project In-Reply-To: <002101c0c7c4$dabada50$0200000a@satan> References: <001901c0c769$e2282870$0200000a@satan> <20010417144932C.jkh@osd.bsdi.com> <000701c0c78f$de88ec60$0200000a@satan> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Sender: owner-freebsd-doc@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org At 00:03 2001-04-18 -0500, you (Daryl Chance) wrote: >So does anyone see a use for this type of documentation? I would >like to know before I start work on this :). > >Jordan? > > > so basically, if you want to do it, heres your straight-jacket > > and path to your favorite editor eh? :) > > > > I really would like to do this, but I don't want to do it alone :). > > What I eventually want, is understanding enough of the code to be > > able to commit code back to the FBSD community and I figured that > > commenting code would be an easy way to get in there, tinker with > > code, without actually breaking anything. > > > > Btw, I did check the info you gave me Murray, and it's not what I > > was looking for :). What I'm lookin for is something like this: > > http://www.blur.com/blurbeta/Beta/source/maxclasslib/docs/html/index.html > > > > and AFAIK, it doesn't exists for FBSD. To any of the commiters > > to FreeBSD, does this seem useful? Or just wasted time? > > > > If it doesn't seem like wasted time to people, I start on it :). My feeling is that there are multiple separate issues involved: 1) Making pleasant-to-the-eye renderings of the information (e.g. doxygen) 1a) Making alternate "views" of the info available to zoom in/out, etc. 2) Making program data per se available. It seems to me that even with hints in the comments, a (quite-)pretty printer can only go so far. I would ultimately like to tap into the kind of information the compiler supplies as symbolic debug info, and in its warnings, and to reflect conditional choices exercised during a make. IOW, I see automated program documentation as a logical extension of symbolic debug options and listing options for compilers. It might be best to output an intermediate form of the info, rather than generate a particular documentation format directly. 3) Making semantic information available. That's where human commentary comes in. And some kind of standardized tagging syntax can make it possible to integrate it usefully with automated program data. If a big-time effort were to be started, this kind of enhancement to compilers is where I'd personally like to see it go. In combination with a standardized comment-tagging methodology, nicely commented set/use tables, data flow diagrams (think pdf a la circuit diagrams?), etc., could be possible, representing, e.g., the kernel you actually generated, instead of a mass of ill-separated possibilities. As always, refining the concept and checking history before jumping into coding is probably a good idea. There is at least partial precedent in cygnus' source navigator and something called global, as well as doxygen, and I'm sure others, but AFAIK nothing that would reflect conditionals in a make, and exclude (or at least grey out) what's not included (and also dead code?). Enumerating template instantiations and somehow showing hidden object temporaries created and destroyed as a side effect of expression evaluation or parameter passing/result returning could be nice too. Automatically marking pure (no side effects) functions as such might be nice too. And to include compiler-emitted truncation warnings and such via automatically generated comment patches could be useful, if concise. One possibility I see as helping humans document, would be an optional output that could be a series of HTML forms asking for missing information. E.g., if it were standard to specify units for variables in tagged comments, a form would be spit out asking about the item, with a slot for data entry, if no tagged comment were found for the item. Served by Apache with a little CGI scripting to process the inputs, the CGI might even be able to generate directly usable patches to insert comments into the code source. The HTML forms just have to carry enough context-linking info to return back to the CGI script/program. I could envision code documentation collaboration over the net using this kind of mechanism for standard semantic info such as for data, objects, methods, execution control conditions, etc. Of course, manuals and such are still pretty much human labor. Thank you for your time. Regards, Bengt Richter To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-doc" in the body of the message