1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-05 16:44:21 +03:00
inform7/docs/docs-src/webs.inweb
2020-03-19 00:11:25 +00:00

46 lines
2.6 KiB
Plaintext
Executable file

Title: Overview
Author: Graham Nelson
Purpose: A documentation page.
Language: C
@ This website holds human-readable, or "woven", forms of the source code for
the Inform programming language and its associated tools. To download and
build Inform, go to the repository's front page and follow the instructions
there. These pages are purely to help maintainers of Inform, or anyone
interested in looking under the hood, to see how it works.
This source code is platform-independent, and provides Inform as a set of
command-line utilities following Unix conventions. Most writers using
Inform do so through a user interface provided by an app, and those apps
have their own repositories holding source code which is very much not
platform-independent. But the tools here form the engine inside each of them.
@ The Inform software uses literate programming, a doctrine invented by Donald
Knuth. Under LP, a single program is called a "web", and can either be
"woven" for humans to read or "tangled" for computers to compile. You are
reading the woven form. There are around 30 webs in this repository,
though half of those make modules rather than stand-alone programs, so
the actual number of programs is smaller.
The |inweb| and |intest| repositories also contain webs, and have pages
similar to this one where they can be seen. In particular, |inweb| contains
a web of a module called |foundation| which is used by all of the command-line
tools associated with Inform, and which provides utility functions for
memory-management and the like, but contains none of the logic guiding how
a program should run or what it should do. For convenience, some of these
pages provide links to |foundation|.
@ The webs here are divided up as follows:
(a) The Inform 7 compiler reads in natural-language source text and writes out
a program for a conventional programming language, normally the C-like
Inform 6. Its three phases are each provided as stand-alone tools: |inbuild|,
the front end; |inform7|, the core; and |inter|, the back end.
(b) Other command-line tools are useful for building or working with Inform,
but do not involve compilation: |inblorb|, a packaging manager; |indoc|, to
format documentation; |inpolicy|, a lint-like tool for checking Inform's source
code; and |inrtps|, to format run-time problem messages.
(c) Wnenever Inform 7 runs, it also reads in an "extension" piece of source
text called |Basic Inform|, defining the language, and it often then also reads
another called |Standard Rules|, enabling it to be used for interactive
fiction. It also uses precompiled libraries of code called "kits".