caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Yoann Padioleau <padator@wanadoo.fr>
To: caml-list@inria.fr
Subject: [ANN] syncweb, literate programming meets unison
Date: Wed, 10 Jun 2009 14:21:06 -0500	[thread overview]
Message-ID: <874ounuc7x.fsf@aryx.cs.uiuc.edu> (raw)


Dear list,

I am pleased to announce the first public release of syncweb.
>From the introduction in the readme.txt:

syncweb is a command line tool enabling programmers to use the
literate programming[1] development methodology, using the noweb[2]
tool, while still being able to modify the generated files
from the literate document. syncweb provides a way to
"synchronize" the possibly modified original document with its
possibly modified views with an interface similar to unison[3]. In
addition, syncweb synchronizes data at a fine grained level by
computing and storing md5sum of the different chunks.

Note that literate programming is different from using javadoc, or
doxygen, or ocamlweb. Noweb, and syncweb, do not provide the same kind
of services. Literate programming allows programmers to explain their
code in the order they think the code will be better understood, and
allows among other things to explain code piece by piece with the
possiblity to present a high-level view first of the code. Moreover,
because noweb is essentially a macro-processing language, one can also
"program" at the noweb level, which can sometimes overcome some of the
limitations or the language of the documented program. For instance,
for OCaml programs, using noweb frees the programmer to declare the types both
in the .mli and .ml file, avoiding tedious copy-paste and maintenance
problems. One can also do some forms of Aspect-oriented Programming
at the noweb level.

The code is available here:

  http://aryx.kicks-ass.org/~pad/software/project-syncweb/syncweb-0.2.tgz

The documentation here:

  http://aryx.kicks-ass.org/~pad/software/project-syncweb/readme.txt

One can also see a demo of what it looks like to edit a noweb/syncweb file
and what kind of output noweb and syncweb produces:

The literate document: 
  http://aryx.kicks-ass.org/~pad/software/project-syncweb/demo/distribution.ml.nw.html
The generated but "synchronizable" ml code:
  http://aryx.kicks-ass.org/~pad/software/project-syncweb/demo/distribution.ml.html
The generated pdf:
  http://aryx.kicks-ass.org/~pad/software/project-syncweb/demo/distribution.pdf




[1] http://en.wikipedia.org/wiki/Literate_programming
[2] http://www.cs.tufts.edu/~nr/noweb/
[3] http://www.seas.upenn.edu/~bcpierce/unison/


                 reply	other threads:[~2009-06-10 19:20 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874ounuc7x.fsf@aryx.cs.uiuc.edu \
    --to=padator@wanadoo.fr \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).