-
Notifications
You must be signed in to change notification settings - Fork 2
nrnrnr/noweb3
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is Noweb 3. Noweb 3 is a reimplementation of Noweb using a customized version of Lua 2.5. Noweb 3 was conceived and implemented in 1996 to solve two problems: - Noweb 2 was hard to install. - Without Icon, Noweb 2 can slow and hard to extend. Advances in software and hardware have made these problems irrelevant: Linux distributions and OSX ports have shifted installation costs from the end user to the distribution maintainers, and those same distributions have made it easy to build on fast Icon code instead of slow Awk code. Noweb 3 retains some value; it is more flexible and easier to extend than Noweb 2, but in Fall 2015, as these words are being written, maintaining Noweb 3 makes no sense. In a just world, Noweb 3 would be completely rewritten using Lua 5. But that won't happen. I have used Noweb 3 in production for some years, but I continue to call this distribution "alpha quality." Alpha versions are numbered by date; for example, the first version to tangle and weave itself was alpha980616. This alpha version is made available from github (nrnrnr/noweb3) so that those who wish to play with Noweb 3 can do so. To get some idea of what is going on with Noweb 3, look at the revised Hacker's Guide. To build Noweb 3, you need a working Noweb 2, plus a C compiler. For Noweb 2 see http://www.cs.tufts.edu/~nr/noweb. The distribution includes: lua-2.5+nw Lua-2.5+nw, a modified Lua 2.5 (from PUC-Rio, Brasil) cii CII, from Dave Hanson, stripped down to Noweb's needs only. c C source code for Noweb lua Lua source code for Noweb commands and pipeline stages nocond A filter to help build Noweb 3 from sources. xdoc Documentation, especially the revised Hacker's Guide Lua-2.5+nw and CII are used by permission. To build Noweb 3: 1) Edit lua-2.5/config according to the directions. 2) Get nocond onto your path. 3) Set these variables in the Makefile: CC the name of an ANSI C compiler MAXALIGN as is for Linux (Slackware 3.3), otherwise see cii/install.html for more info (this is a wart) And define the following directories: BIN on $PATH, will hold no LIB2 where Noweb 2 put markup, nt, noxref, ... LIB3 where Noweb 3 Lua code will go BIN and LIB3 are *outputs*, where noweb will place binaries and scripts that are customized for your installation. Therefore you should: - make sure you have write permission to these directories. - refrain from making them point into the noweb source distribution. LIB2 is an input, so version 3 can find the pieces from version 2 that it needs to bootstrap itself. 3bis) If you know a full pathname for test, put it in lua/config.nw 4) Fasten your seat belt and type `make all install'. The system should build with only these warnings: - whining about parser.c in the Lua sources - whining about const in c/util.nw It takes under two minutes on my 133MHz Linux box. 5) You can clean up by typing `make clean', or more likely, `make clobber'. Noweb 3 uses a new style of invocation no weave ... no tangle ... Noweb 3 would not have been possible without the efforts of Garret Prestwood. Norman Ramsey
About
Noweb, a simple literate-programming tool: the never-released, alpha, Lua-based version
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published