[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Axiom-developer] Re: noweb

From: Page, Bill
Subject: RE: [Axiom-developer] Re: noweb
Date: Thu, 4 May 2006 00:28:58 -0400


On Wednesday, May 03, 2006 11:57 PM you wrote:
> ... 
> three points:
> 1) perl, python, asp, javascript, etc are all part of any standard
> linux distribution ...
> as a policy i favor minimizing the number of languages used.
> adding sed (1 language), awk (a second), clever bash shell
> scripts (a third), java (a fourth), auto* (a fifth), simply
> reduces the number of people who can reliably maintain the system
> and increases the work required to port, possibly to the point
> of being impossible.
The reality is that as soon as you write 'lisp' you have already
very drastically reduced the number of possible maintainers. In
comparison requiring a knowledge of 'sed', 'awk', 'bash', and
'java' barely has any impact on the current generation of open
source developers.

> 2) sed and awk are NOT standard parts of a windows distribution.
> again as a matter of policy we need to reduce the requirements
> so we can work across a larger number of systems.

Actually 'sed' and 'awk' are standard tools in all of the open
source development environments for windows (but of course are
not part of the Microsoft windows "distribution"). Specifically
they are part of the MSYS/MinGW environment that is currently
used to build GCL and Axiom.

> ideally all of axiom would run in common lisp and porting
> becomes a copy operation. C is only slightly more problematic.

I think porting applications written in "common lisp" between
linux and Windows is at least as problematic as those written
in C as our experience with the AxiomUI code written by Kai
Kaminski showed. Kai wrote in Clisp which runs on both linux
and windows but the code was not automatically portable.

> in fact, the key reason that axiom does not currently run on
> the mac is breakage caused by C. awk/sed/autoconf all seriously
> complicate the port issue.

I don't think this is any more complicated than the porting of
any other open source linux application.

> frankly i'd much rather see the tools devolve into lisp 
> implementations. gcl, sbcl and clisp generate native exe
> files on windows and  executables on linux. given that lisp
> is a full programming language and is integral to axiom why
> don't we write code that is trivial to port rather than
> add requirements that are certain to make axiom unportable?

I don't believe that it is trivial to port lisp applications.
We still require some windows specific patches to the Axiom
lisp sources before it will compile under gcl on windows.

> ... 
> 3) in fact i'm making every attempt to explain the lisp programs
> as you'll see in the eventual bookvol5.pamphlet file. it is
> NOT necessary to explain the language idioms but it IS necessary
> to explain what is happening in a block of code.
> the noweb script will be sitting in a standalone pamphlet in 
> src/scripts. it will not appear as an integral part of anything
> to a future maintainer. so the future maintainer can reasonably
> expect to have a (possibly redundant) explanation of why this
> script exists, what it does, what data it expect to work on, etc.
> this is NOT the same as explaining the awk language constructs.

How this script works was explained by Norman Ramsey in his
original post:

Write an awk script that copies all lines to stdout, and in the
process, identifies each @use that has no corresponding @defn.
For each such @use emit this code chunk:

@begin code
@defn this is my text
@text <<this is my text>>
@end code
> i would argue that literate programming is a fundamental change in
> mindset that requires you to explain to some future maintainer how
> and why any new code works. he should be able to read the paragraph
> and know where this code fits as well as what it is trying to 
> accomplish.
> that's NOT the same as explaining the awk/sed language. but it
> IS the whole point of literate programming.

I agree that Norman Ramsey's description of this awk script should
be included in the associated pamphlet file.

Bill Page.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]