Things to be done for noweb 3

Last serious update: July, 2000

Noweb 3 is almost ready to come out of alpha and become beta software. The essential things are to get new manual pages and better configuration.

To volunteer for one of these tasks, or for something else you think needs doing, send mail to The tasks are in rough order of priority.

Top-priority items
manWrite man pages, especially documenting new options and filters.
configImprove configuration. Ideally, bundle scripts in binary.
winmakeCome up with Makefiles that work on Windows.
portWrite porting instructions.
MacDo a Mac port.
DOSDo a DOS port.
Win32Do a Win32 port (Windows 95/98/NT).
sortCome up with a sorting method that is consistent with noweb 2.9
Medium-priority items
untangleincompleteReplace nw2 nountangle script with docs2comments filter in Lua, taking ideas from unreleased Icon docs2comments filter. Begun but not finished.
autodefsRewrite the autodefs machinery in Lua, plus a couple of language-specific filters.
RatN. RamseyWrite rationale and overview for Hacker's Guide.
IntsDocument Lua interfaces for pipeline, buffer. How to use interfaces to build a pipeline. How to use interfaces to write a stage.
StagesDocument Lua functions for standard stages.
countRewrite nocount in Lua to serve as an example for Hacker's Guide (also for distribution).
stdfilDevelop an army of standard filters, to include, e.g., nocond, nwdate, the stupid C header trick, etc.
Low-priority items
orderNRughGet the order of arguments for stages straight once and for all. Closure args should come last so they can be optional.
McombMerge markup.nw into markparse.nw. Trim redundant code. Try to control mutation so that strsave is not needed. (possibly use Str or Atom)
unmarkupTest the converted unmarkup pipeline stage.
Lua+nwDocument the case and globmatch extensions to Lua 2.5
BasisDocument the ``initial basis'' of stuff available for people writing Lua code for noweb (lists, environments, others...).
filmanWrite man page for users of noweb filters (as opposed to Hacker's Guide). For example, a filter should replace the nountangle command.
sysFigure out how to reorganize the C code to minimize and isolate system dependencies.
cleanFind ways to rationalize, reorganize, and reduce the code. Figure out how to exploit the presence of CII.
stripStrip exceptions out of CII.
perfDo performance studies and figure out how to make things run blazingly fast.
manRevise the Version 2 man pages. Look for features to eliminate.
fileglobFind a way of doing globbing expansion of file names (need a list of files in a given directory). (Needed to support -showautodefs). NR has some old Unix code from a course he taught years ago.
ifdefUse the new stupid noweb trick to insert #ifdef in headers automatically.
StrCreate Lua bindings for Hanson's string scanning, which should simplify porting old Icon code.

Things that have actually been done

PipenrDONE!Eliminate source and sink types from MPipe, IPipe (but keeping dynamic type distinction for Lua code). Seek dramatic reduction in sizes of implementations.
totexnrdone Convert totex from Icon to Lua.
tohtmlNRdoneConvert tohtml from Icon to Lua.
noidxNRdoneConvert noidx from Icon to Lua.