1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-08 10:04:21 +03:00
inform7/docs/runtime-module/index.html
2021-05-03 23:49:40 +01:00

470 lines
21 KiB
HTML

<html>
<head>
<title>runtime</title>
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
<meta name="viewport" content="width=device-width initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-gb">
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../compiler.html">compiler tools</a></li>
<li><a href="../other.html">other tools</a></li>
<li><a href="../extensions.html">extensions and kits</a></li>
<li><a href="../units.html">unit test tools</a></li>
</ul><h2>Compiler Webs</h2><ul>
<li><a href="../inbuild/index.html">inbuild</a></li>
<li><a href="../inform7/index.html">inform7</a></li>
<li><a href="../inter/index.html">inter</a></li>
</ul><h2>Inbuild Modules</h2><ul>
<li><a href="../supervisor-module/index.html">supervisor</a></li>
</ul><h2>Inform7 Modules</h2><ul>
<li><a href="../core-module/index.html">core</a></li>
<li><a href="../assertions-module/index.html">assertions</a></li>
<li><a href="../values-module/index.html">values</a></li>
<li><a href="../knowledge-module/index.html">knowledge</a></li>
<li><a href="../imperative-module/index.html">imperative</a></li>
<li><span class="unlink">runtime</span></li>
<li><a href="../if-module/index.html">if</a></li>
<li><a href="../multimedia-module/index.html">multimedia</a></li>
<li><a href="../index-module/index.html">index</a></li>
</ul><h2>Inter Modules</h2><ul>
<li><a href="../bytecode-module/index.html">bytecode</a></li>
<li><a href="../building-module/index.html">building</a></li>
<li><a href="../codegen-module/index.html">codegen</a></li>
</ul><h2>Services</h2><ul>
<li><a href="../arch-module/index.html">arch</a></li>
<li><a href="../calculus-module/index.html">calculus</a></li>
<li><a href="../html-module/index.html">html</a></li>
<li><a href="../inflections-module/index.html">inflections</a></li>
<li><a href="../kinds-module/index.html">kinds</a></li>
<li><a href="../linguistics-module/index.html">linguistics</a></li>
<li><a href="../problems-module/index.html">problems</a></li>
<li><a href="../syntax-module/index.html">syntax</a></li>
<li><a href="../words-module/index.html">words</a></li>
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
</ul>
</nav>
<main role="main">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><b>runtime</b></li></ul>
<p class="purpose">Generating runtime support code for resources needed in Inform texts. This is version 1.</p>
<hr>
<div class="contentspage">
<ul class="chapterlist">
<li>
<p class="chapterentry"><a name="P"></a>
<span class="chaptertitle">Preliminaries</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="P-wtmd.html">
<spon class="sectiontitle">What This Module Does</span></a> -
<span class="sectionpurpose">An overview of the runtime module's role and abilities.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="1"></a>
<span class="chaptertitle">Chapter 1: Configuration and Control</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="1-rm.html">
<spon class="sectiontitle">Runtime Module</span></a> -
<span class="sectionpurpose">Setting up the use of this module.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="2"></a>
<span class="chaptertitle">Chapter 2: Emission</span></p>
<p class="chapterpurpose">Emitting Inter code ready for the code-generator.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="2-hrr.html">
<spon class="sectiontitle">Hierarchy</span></a> -
<span class="sectionpurpose">To provide an enforced structure and set of naming conventions for packages and names in the Inter code we generate.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-cu.html">
<spon class="sectiontitle">Compilation Units</span></a> -
<span class="sectionpurpose">The source text is divided into compilation units, and the material they lead to is similarly divided up.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-emt.html">
<spon class="sectiontitle">Emit</span></a> -
<span class="sectionpurpose">"Emitting" is the process of generating Inter bytecode, and this section provides a comprehensive API for the runtime and imperative modules to do that.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-ec.html">
<spon class="sectiontitle">Emit Code</span></a> -
<span class="sectionpurpose">Here is how bytecode for instructions inside functions is emitted.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-ea.html">
<spon class="sectiontitle">Emit Arrays</span></a> -
<span class="sectionpurpose">Here is how bytecode to create ready-initialised arrays of Inter data is emitted.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-int.html">
<spon class="sectiontitle">Interventions</span></a> -
<span class="sectionpurpose">Material written in low-level Inform 6 notation can be emitted for later linking, a distasteful process called "intervening".</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="3"></a>
<span class="chaptertitle">Chapter 3: Basics</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="3-gm.html">
<spon class="sectiontitle">Generic Module</span></a> -
<span class="sectionpurpose">Inter constants for, say, extremal number values, which depend only on the target we are compiling to, and are generally low-level in nature.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-cm.html">
<spon class="sectiontitle">Completion Module</span></a> -
<span class="sectionpurpose">The completion module contains material turning the collection of resources into a playable work.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-uo.html">
<spon class="sectiontitle">Use Options</span></a> -
<span class="sectionpurpose">To give use options a presence at run-time.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-ext.html">
<spon class="sectiontitle">Extensions</span></a> -
<span class="sectionpurpose">To compile the credits functions.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="4"></a>
<span class="chaptertitle">Chapter 4: Enclosed Resources</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="4-enc.html">
<spon class="sectiontitle">Enclosures</span></a> -
<span class="sectionpurpose">Packages which contain all the resources any of their subpackages will need are called "enclosures".</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-ll.html">
<spon class="sectiontitle">List Literals</span></a> -
<span class="sectionpurpose">Each enclosure contains the literal lists needed by its functions.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-tl.html">
<spon class="sectiontitle">Text Literals</span></a> -
<span class="sectionpurpose">In this section we compile text constants.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-ts.html">
<spon class="sectiontitle">Text Substitutions</span></a> -
<span class="sectionpurpose">In this section we compile text with substitutions.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-rsp.html">
<spon class="sectiontitle">Responses</span></a> -
<span class="sectionpurpose">In this section we keep track of response texts.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-bq.html">
<spon class="sectiontitle">Box Quotations</span></a> -
<span class="sectionpurpose">In this section we compile text constants.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-rl.html">
<spon class="sectiontitle">Relation Literals</span></a> -
<span class="sectionpurpose">In fact there is only one literal relation: the empty one, used as a default value.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-sal.html">
<spon class="sectiontitle">Stored Action Literals</span></a> -
<span class="sectionpurpose">Explicit actions stored in memory as literals.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-gt.html">
<spon class="sectiontitle">Group Together</span></a> -
<span class="sectionpurpose">The "group together" phrase in the Standard Rules needs support functions, which are compiled within the user's enclosure.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="5"></a>
<span class="chaptertitle">Chapter 5: Miscellany</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="5-rls.html">
<spon class="sectiontitle">Rules</span></a> -
<span class="sectionpurpose">To compile run-time support for rules.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-act.html">
<spon class="sectiontitle">Activities</span></a> -
<span class="sectionpurpose">To write support code for activities.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-rsfk.html">
<spon class="sectiontitle">Runtime Support for Kinds</span></a> -
<span class="sectionpurpose">To compile I6 material needed at runtime to enable kinds to function as they should.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-lpart.html">
<spon class="sectiontitle">Literal Patterns at Run Time</span></a> -
<span class="sectionpurpose">Compiled code to print and parse values expressed as literals.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-es.html">
<spon class="sectiontitle">Equations Support</span></a> -
<span class="sectionpurpose">To compile unique identifiers for equations.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-tv.html">
<spon class="sectiontitle">Temporary Variables</span></a> -
<span class="sectionpurpose">When the run-time code needs to borrow a global variable for a while.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-vrb.html">
<spon class="sectiontitle">Variables</span></a> -
<span class="sectionpurpose">To compile run-time support for nonlocal variables.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-prp.html">
<spon class="sectiontitle">Properties</span></a> -
<span class="sectionpurpose">To compile run-time support for properties.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-msr.html">
<spon class="sectiontitle">Measurements</span></a> -
<span class="sectionpurpose">To compile run-time support for measurement adjectives.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-epv.html">
<spon class="sectiontitle">Emit Property Values</span></a> -
<span class="sectionpurpose">To feed the hierarchy of instances and their property values into Inter.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-ins.html">
<spon class="sectiontitle">Instances</span></a> -
<span class="sectionpurpose">To compile run-time support for instances.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-ic.html">
<spon class="sectiontitle">Instance Counting</span></a> -
<span class="sectionpurpose">A plugin which maintains run-time-accessible linked lists of instances of kinds, in order to speed up loops; and instance counts within kinds, in order to speed up relation storage; and the object-kind hierarchy, in order to speed up run-time checking of the type safety of property usage.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-adj.html">
<spon class="sectiontitle">Adjectives</span></a> -
<span class="sectionpurpose">To compile run-time support for adjective definitions.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-ni.html">
<spon class="sectiontitle">Noun Identifiers</span></a> -
<span class="sectionpurpose">Nametags provide for a more contextual parsing of nouns, allowing them to be given in an inexact verbal form.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-vart.html">
<spon class="sectiontitle">Verbs at Run Time</span></a> -
<span class="sectionpurpose">To provide run-time access to verbs and their conjugations.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-rart.html">
<spon class="sectiontitle">Relations at Run Time</span></a> -
<span class="sectionpurpose">Relations need both storage and support code at runtime.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-rsft.html">
<spon class="sectiontitle">Runtime Support for Tables</span></a> -
<span class="sectionpurpose">To compile run-time data structures holding tables.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-chr.html">
<spon class="sectiontitle">Chronology</span></a> -
<span class="sectionpurpose">To keep track of the state of things so that it will be possible in future to ask questions concerning the past.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="6"></a>
<span class="chaptertitle">Chapter 6: World Model</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="6-nmn.html">
<spon class="sectiontitle">Naming</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-bd.html">
<spon class="sectiontitle">Bibliographic Data</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-spt.html">
<spon class="sectiontitle">Spatial</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-tp.html">
<spon class="sectiontitle">The Player</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-bck.html">
<spon class="sectiontitle">Backdrops</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-rgn.html">
<spon class="sectiontitle">Regions</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-tm.html">
<spon class="sectiontitle">The Map</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ts.html">
<spon class="sectiontitle">The Score</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-tr.html">
<spon class="sectiontitle">Timed Rules</span></a> -
<span class="sectionpurpose">Code to support rules like "At 12:03AM: ...".</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-scn.html">
<spon class="sectiontitle">Scenes</span></a> -
<span class="sectionpurpose">Compiling code to manage scene changes at run-time.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="7"></a>
<span class="chaptertitle">Chapter 7: Actions</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="7-act.html">
<spon class="sectiontitle">Actions</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="7-nap.html">
<spon class="sectiontitle">Named Action Patterns</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="7-ap.html">
<spon class="sectiontitle">Action Patterns</span></a> -
<span class="sectionpurpose">Compiling APs.</span></p>
</li>
<li>
<p class="sectionentry"><a href="7-gng.html">
<spon class="sectiontitle">Going</span></a> -
<span class="sectionpurpose">Tweaks to compiling APs for the going action.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="8"></a>
<span class="chaptertitle">Chapter 8: Command Parser</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="8-prs.html">
<spon class="sectiontitle">Parsing</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="8-cg.html">
<spon class="sectiontitle">Command Grammars</span></a> -
<span class="sectionpurpose">Runtime support for CGs.</span></p>
</li>
<li>
<p class="sectionentry"><a href="8-cgl.html">
<spon class="sectiontitle">Command Grammar Lines</span></a> -
<span class="sectionpurpose">Runtime support for CGLs.</span></p>
</li>
<li>
<p class="sectionentry"><a href="8-nft.html">
<spon class="sectiontitle">Noun Filter Tokens</span></a> -
<span class="sectionpurpose">Filters are used to require nouns to have specific kinds or attributes, or to have specific scoping rules: they correspond to Inform 6's |noun=Routine| and |scope=Routine| tokens. Though these are quite different concepts in I6, their common handling seems natural in I7.</span></p>
</li>
<li>
<p class="sectionentry"><a href="8-tpv.html">
<spon class="sectiontitle">Tokens Parsing Values</span></a> -
<span class="sectionpurpose">In the argot of Inform 6, GPR stands for General Parsing Routine, and I7 makes heavy use of GPR tokens to achieve its ends. This section is where the necessary I6 routines are compiled.</span></p>
</li>
<li>
<p class="sectionentry"><a href="8-gpr.html">
<spon class="sectiontitle">General Parsing Routines</span></a> -
<span class="sectionpurpose">To compile I6 general parsing routines (GPRs) and/or |parse_name| properties as required by the I7 grammar.</span></p>
</li>
<li>
<p class="sectionentry"><a href="8-los.html">
<spon class="sectiontitle">Looping Over Scope</span></a> -
<span class="sectionpurpose">To compile routines capable of being passed as arguments to the I6 library routine for looping over parser scope at run-time, and so to provide an implementation for conditions such as "in the presence of Mrs Dalloway".</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="9"></a>
<span class="chaptertitle">Chapter 9: Multimedia</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="9-fgr.html">
<spon class="sectiontitle">Figures</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="9-se.html">
<spon class="sectiontitle">Sound Effects</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="9-ef.html">
<spon class="sectiontitle">External Files</span></a> -
<span class="sectionpurpose"></span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="10"></a>
<span class="chaptertitle">Chapter 10: Testing</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="10-sc.html">
<spon class="sectiontitle">Showme Command</span></a> -
<span class="sectionpurpose">A plugin to provide some support for the SHOWME testing command.</span></p>
</li>
<li>
<p class="sectionentry"><a href="10-ts.html">
<spon class="sectiontitle">Test Scripts</span></a> -
<span class="sectionpurpose">A rudimentary but useful testing system built in to IF produced by Inform, allowing short sequences of commands to be concisely noted in the source text and tried out in the Inform application using the TEST command.</span></p>
</li>
<li>
<p class="sectionentry"><a href="10-itc.html">
<spon class="sectiontitle">Internal Test Cases</span></a> -
<span class="sectionpurpose">Handling requests to compile internal tests.</span></p>
</li>
</ul>
</li>
</ul>
</div>
<hr>
<p class="purpose">Powered by <a href="https://github.com/ganelson/inweb">Inweb</a>.</p>
</main>
</body>
</html>