Bootstrappable Inweb fork
Find a file
2020-07-07 18:56:46 +01:00
Audio Added audio samples 2020-04-25 00:28:39 +01:00
Chapter 1 New file-system separator character convention, makefile includes foundation-test 2020-07-06 23:01:05 +01:00
Chapter 2 Migrated to clang 11 2020-06-27 23:03:14 +01:00
Chapter 3 Improved weaving of @default keyword 2020-06-28 15:48:23 +01:00
Chapter 4 New file-system separator character convention, makefile includes foundation-test 2020-07-06 23:01:05 +01:00
Chapter 5 Migrated to clang 11 2020-06-27 23:03:14 +01:00
Chapter 6 Migrated to clang 11 2020-06-27 23:03:14 +01:00
Dialects Improved extracts and testing for the painter 2020-04-07 00:53:26 +01:00
docs New file-system separator character convention, makefile includes foundation-test 2020-07-06 23:01:05 +01:00
docs-src Refactored the weaver considerably 2020-04-20 23:26:08 +01:00
Downloads Added example download 2020-05-06 00:30:57 +01:00
Examples Better cross-references to explicit URLs 2020-05-01 23:49:25 +01:00
Figures Added locale-setting at the command line 2020-07-04 20:28:54 +01:00
foundation-module Escape shell command line correctly on Windows 2020-07-07 17:36:10 +01:00
foundation-test New file-system separator character convention, makefile includes foundation-test 2020-07-06 23:01:05 +01:00
Languages Better colouring on Preform nonterminals used as function 2020-05-07 23:07:29 +01:00
Manual Added bulleted list items 2020-05-11 19:12:07 +01:00
Materials Add -Wno-extra-semi-stmt to compiler switches 2020-07-05 12:50:23 +01:00
Patterns Added Preform-weaving features 2020-05-07 19:11:08 +01:00
Preliminaries Completed rewrite of assets and plugins 2020-04-26 18:21:11 +01:00
scripts Corrected make dependency in foundation-test 2020-07-07 18:56:46 +01:00
Tangled New file-system separator character convention, makefile includes foundation-test 2020-07-06 23:01:05 +01:00
Tests Fixed sp test case 2020-07-05 09:23:55 +01:00
.gitignore Ignore Windows executable 2020-07-04 20:26:52 +01:00
build.txt Corrected make dependency in foundation-test 2020-07-07 18:56:46 +01:00
colony.txt Corrected cross-references to intest and inform 2020-05-03 01:22:50 +01:00
Contents.w Completed rewrite of assets and plugins 2020-04-26 18:21:11 +01:00
inweb.mk Corrected make dependency in foundation-test 2020-07-07 18:56:46 +01:00
README.md Corrected make dependency in foundation-test 2020-07-07 18:56:46 +01:00
versions.txt Translocation 2019-03-10 23:46:11 +00:00

Inweb 7

v7-alpha.1+1A54 'Escape to Danger' (7 July 2020)

About Inweb

Inweb offers a modern approach to literate programming. Unlike the original LP tools of the late 1970s, led by Donald Knuth, or of the 1990s revival, Inweb aims to serve programmers in the Github age. It scales to much larger programs than CWEB, and since 2004 has been the tool used by the Inform programming language project, where it manages a 300,000-line code base.

Literate programming is a methodology created by Donald Knuth in the late 1970s. A literate program, or "web", is written as a narrative intended to be readable by humans as well as by other programs. The human-readable form for Inweb (which is itself a web) is here: ★ inweb.

For the Inweb manual, see ★ inweb/Preliminaries.

Disclaimer. Because this is a private repository (until the next public release of Inform, when it will open), its GitHub pages server cannot be enabled yet. As a result links marked ★ lead only to raw HTML source, not to served web pages. They can in the mean time be browsed offline as static HTML files stored in "docs".

Licence

Except as noted, copyright in material in this repository (the "Package") is held by Graham Nelson (the "Author"), who retains copyright so that there is a single point of reference. As from the first date of this repository becoming public, the Package is placed under the Artistic License 2.0. This is a highly permissive licence, used by Perl among other notable projects, recognised by the Open Source Initiative as open and by the Free Software Foundation as free in both senses.

Build Instructions

Inweb is intentionally self-sufficient, with no dependencies on any other software beyond a modern C compiler. However, it does in a sense depend on itself: because Inweb is itself a web, you need Inweb to compile Inweb. Getting around that circularity means that the initial setup takes a few steps.

Make a directory in which to work: let's call this "work". Then:

  • Change the current directory to this: "cd work"
  • Clone Inweb: "git clone https://github.com/ganelson/inweb.git"
  • Run one of the following commands. Unix is for any generic version of Unix, non-Linux, non-MacOS: Solaris, for example. Android support is currently disabled, though only because its build settings are currently missing from the inweb distribution. The older macos32 platform won't build with the MacOS SDK from 10.14 onwards, and in any case 32-bit executables won't run from 10.15 onwards: so use the default macos unless you need to build for an old version of MacOS.
    • "make -f inweb/inweb.mk macos"
    • "make -f inweb/inweb.mk macos32"
    • "make -f inweb/inweb.mk linux"
    • "make -f inweb/inweb.mk windows"
    • "make -f inweb/inweb.mk unix"
    • "make -f inweb/inweb.mk android"
  • Perform the initial compilation: "make -f inweb/inweb.mk initial"
  • Test that all is well: "inweb/Tangled/inweb -help"

You should now have a working copy of Inweb. To build it again, no need to use "initial", and you should just: "make -f inweb/inweb.mk"

Also Included

Inweb contains a substantial library of code shared by a number of other programs, such as the Intest testing tool and the Inform compiler and related tools.

This library is called "Foundation", and has its own web here: ★ foundation-module.

A small executable for running unit tests against Foundation is also included: ★ foundation-test.

Testing Inweb

If you have also built Intest as "work/intest", then you can try these:

  • intest/Tangled/intest inweb all
  • intest/Tangled/intest inweb/foundation-test all

Colophon

This README.mk file was generated automatically by Inweb, and should not be edited. To make changes, edit scripts/READMEscript.txt and re-generate.