1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-16 23:30:44 +03:00

Inbuild now ignores candidate extensions whose filenames begin with "."

This commit is contained in:
Graham Nelson 2022-05-15 22:38:57 +01:00
parent 9bffe2a889
commit fce5a28aef
43 changed files with 299 additions and 299 deletions

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'BlockValues Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>BlockValues Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>BlockValues Template</b></li></ul></div>
<p class="purpose">Routines for copying, comparing, creating and destroying block values, and for reading and writing them as if they were arrays.</p>
<ul class="toc"><li><a href="S-blc.html#SP1">&#167;1. Overview</a></li><li><a href="S-blc.html#SP2">&#167;2. Short Block Format</a></li><li><a href="S-blc.html#SP3">&#167;3. Long Block Access</a></li><li><a href="S-blc.html#SP4">&#167;4. Weak Kind</a></li><li><a href="S-blc.html#SP5">&#167;5. Reference counting</a></li><li><a href="S-blc.html#SP6">&#167;6. Changing Reference Counts</a></li><li><a href="S-blc.html#SP7">&#167;7. Long Block Capacity</a></li><li><a href="S-blc.html#SP8">&#167;8. Long Block Array Access</a></li><li><a href="S-blc.html#SP9">&#167;9. First Zero Entry</a></li><li><a href="S-blc.html#SP10">&#167;10. Mass Copy Entries</a></li><li><a href="S-blc.html#SP11">&#167;11. Mass Copy From Array</a></li><li><a href="S-blc.html#SP12">&#167;12. KOVS Routines</a></li><li><a href="S-blc.html#SP13">&#167;13. Creation</a></li><li><a href="S-blc.html#SP14">&#167;14. Errors</a></li><li><a href="S-blc.html#SP15">&#167;15. Short Block Allocation</a></li><li><a href="S-blc.html#SP16">&#167;16. Block Values On Stack</a></li><li><a href="S-blc.html#SP17">&#167;17. Freeing</a></li><li><a href="S-blc.html#SP18">&#167;18. Quick Copy</a></li><li><a href="S-blc.html#SP19">&#167;19. Short Block Copy</a></li><li><a href="S-blc.html#SP20">&#167;20. Slow Copy</a></li><li><a href="S-blc.html#SP21">&#167;21. Copy</a></li><li><a href="S-blc.html#SP22">&#167;22. Destruction</a></li><li><a href="S-blc.html#SP23">&#167;23. Recycling</a></li><li><a href="S-blc.html#SP24">&#167;24. Mutability</a></li><li><a href="S-blc.html#SP25">&#167;25. Casting</a></li><li><a href="S-blc.html#SP26">&#167;26. Comparison</a></li><li><a href="S-blc.html#SP27">&#167;27. Hashing</a></li><li><a href="S-blc.html#SP28">&#167;28. Serialisation</a></li><li><a href="S-blc.html#SP29">&#167;29. Debugging</a></li><li><a href="S-blc.html#SP30">&#167;30. Printing Memory Addresses</a></li><li><a href="S-blc.html#SP31">&#167;31. Hexadecimal Printing</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Char Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Char Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Char Template</b></li></ul></div>
<p class="purpose">To decide whether letters are upper or lower case, and convert between the two.</p>
<ul class="toc"><li><a href="S-chr.html#SP1">&#167;1. Char Is Of Case</a></li><li><a href="S-chr.html#SP2">&#167;2. Char To Case</a></li><li><a href="S-chr.html#SP3">&#167;3. Reversing Case</a></li><li><a href="S-chr.html#SP4">&#167;4. DigitToValue</a></li><li><a href="S-chr.html#SP5">&#167;5. Testing</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Combinations Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Combinations Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Combinations Template</b></li></ul></div>
<p class="purpose">Code to support the combination kind of value constructor.</p>
<ul class="toc"><li><a href="S-cmb.html#SP1">&#167;1. Block Format</a></li><li><a href="S-cmb.html#SP2">&#167;2. KOV Support</a></li><li><a href="S-cmb.html#SP3">&#167;3. Creation</a></li><li><a href="S-cmb.html#SP4">&#167;4. Destruction</a></li><li><a href="S-cmb.html#SP5">&#167;5. Copying</a></li><li><a href="S-cmb.html#SP6">&#167;6. Comparison</a></li><li><a href="S-cmb.html#SP7">&#167;7. Hashing</a></li><li><a href="S-cmb.html#SP8">&#167;8. Printing</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Definitions Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Definitions Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Definitions Template</b></li></ul></div>
<p class="purpose">Miscellaneous constant definitions, usually providing symbolic names for otherwise inscrutable numbers, which are used throughout the template layer.</p>
<ul class="toc"><li><a href="S-dfn.html#SP1">&#167;1. Identification</a></li><li><a href="S-dfn.html#SP2">&#167;2. Z-Machine Definitions</a></li><li><a href="S-dfn.html#SP3">&#167;3. Glulx Definitions</a></li><li><a href="S-dfn.html#SP4">&#167;4. Nothing</a></li><li><a href="S-dfn.html#SP5">&#167;5. Powers of Two</a></li><li><a href="S-dfn.html#SP6">&#167;6. Text Styles</a></li><li><a href="S-dfn.html#SP7">&#167;7. Colour Numbers</a></li><li><a href="S-dfn.html#SP8">&#167;8. Window Numbers</a></li><li><a href="S-dfn.html#SP9">&#167;9. Paragraphing Flags</a></li><li><a href="S-dfn.html#SP10">&#167;10. Descriptors in the Language of Play</a></li><li><a href="S-dfn.html#SP11">&#167;11. Run-Time Problem Numbers</a></li><li><a href="S-dfn.html#SP12">&#167;12. Template Activities</a></li><li><a href="S-dfn.html#SP13">&#167;13. Template Rulebooks</a></li><li><a href="S-dfn.html#SP14">&#167;14. Scope Searching Reasons</a></li><li><a href="S-dfn.html#SP15">&#167;15. Token Types</a></li><li><a href="S-dfn.html#SP16">&#167;16. GPR Return Values</a></li><li><a href="S-dfn.html#SP17">&#167;17. List Styles</a></li><li><a href="S-dfn.html#SP18">&#167;18. Lengths Of Time</a></li><li><a href="S-dfn.html#SP19">&#167;19. Empty Text</a></li><li><a href="S-dfn.html#SP20">&#167;20. Empty Table</a></li><li><a href="S-dfn.html#SP21">&#167;21. Empty Set</a></li><li><a href="S-dfn.html#SP22">&#167;22. Template Attributes</a></li><li><a href="S-dfn.html#SP23">&#167;23. Template Properties</a></li><li><a href="S-dfn.html#SP24">&#167;24. Formal Parameters</a></li><li><a href="S-dfn.html#SP25">&#167;25. Template Configuration</a></li></ul><hr class="tocbar">

View file

@ -17,10 +17,10 @@
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -40,15 +40,15 @@
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'FileIO Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>FileIO Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>FileIO Template</b></li></ul></div>
<p class="purpose">Reading and writing external files, in the Glulx virtual machine only.</p>
<ul class="toc"><li><a href="S-fl.html#SP1">&#167;1. Structure</a></li><li><a href="S-fl.html#SP2">&#167;2. Instances</a></li><li><a href="S-fl.html#SP3">&#167;3. Errors</a></li><li><a href="S-fl.html#SP4">&#167;4. Glulx Material</a></li><li><a href="S-fl.html#SP5">&#167;5. Existence</a></li><li><a href="S-fl.html#SP6">&#167;6. Readiness</a></li><li><a href="S-fl.html#SP7">&#167;7. Open File</a></li><li><a href="S-fl.html#SP8">&#167;8. Close File</a></li><li><a href="S-fl.html#SP9">&#167;9. Get Character</a></li><li><a href="S-fl.html#SP10">&#167;10. Put Character</a></li><li><a href="S-fl.html#SP11">&#167;11. Print Line</a></li><li><a href="S-fl.html#SP12">&#167;12. Print Contents</a></li><li><a href="S-fl.html#SP13">&#167;13. Print Text</a></li><li><a href="S-fl.html#SP14">&#167;14. Serialising Tables</a></li><li><a href="S-fl.html#SP15">&#167;15. Z-Machine Stubs</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Flex Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Flex Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Flex Template</b></li></ul></div>
<p class="purpose">To allocate flexible-sized blocks of memory as needed to hold arbitrary-length strings of text, stored actions or other block values.</p>
<ul class="toc"><li><a href="S-flx.html#SP1">&#167;1. Blocks</a></li><li><a href="S-flx.html#SP2">&#167;2. Multiple Blocks</a></li><li><a href="S-flx.html#SP3">&#167;3. The Heap</a></li><li><a href="S-flx.html#SP4">&#167;4. Initialisation</a></li><li><a href="S-flx.html#SP5">&#167;5. Net Free Space</a></li><li><a href="S-flx.html#SP6">&#167;6. Make Space</a></li><li><a href="S-flx.html#SP7">&#167;7. Block Allocation</a></li><li><a href="S-flx.html#SP8">&#167;8. Errors</a></li><li><a href="S-flx.html#SP9">&#167;9. Merging</a></li><li><a href="S-flx.html#SP10">&#167;10. Recutting</a></li><li><a href="S-flx.html#SP11">&#167;11. Deallocation</a></li><li><a href="S-flx.html#SP12">&#167;12. Resizing</a></li><li><a href="S-flx.html#SP13">&#167;13. Block Size</a></li><li><a href="S-flx.html#SP14">&#167;14. Debugging Routines</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Glulx Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Glulx Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Glulx Template</b></li></ul></div>
<p class="purpose">To start up the Glk interface for the Glulx virtual machine, and provide Glulx-specific printing functions.</p>
<ul class="toc"><li><a href="S-gll.html#SP1">&#167;1. Begin Glulx-only matter</a></li><li><a href="S-gll.html#SP2">&#167;2. Summary</a></li><li><a href="S-gll.html#SP3">&#167;3. Variables and Arrays</a></li><li><a href="S-gll.html#SP4">&#167;4. Infglk</a></li><li><a href="S-gll.html#SP5">&#167;5. Rocks</a></li><li><a href="S-gll.html#SP6">&#167;6. Stubs</a></li><li><a href="S-gll.html#SP7">&#167;7. Starting Up</a></li><li><a href="S-gll.html#SP8">&#167;8. Release Number</a></li><li><a href="S-gll.html#SP9">&#167;9. Keyboard Input</a></li><li><a href="S-gll.html#SP10">&#167;10. Buffer Functions</a></li><li><a href="S-gll.html#SP11">&#167;11. Dictionary Functions</a></li><li><a href="S-gll.html#SP12">&#167;12. Command Tables</a></li><li><a href="S-gll.html#SP13">&#167;13. Random Number Generator</a></li><li><a href="S-gll.html#SP14">&#167;14. Memory Allocation</a></li><li><a href="S-gll.html#SP15">&#167;15. Audiovisual Resources</a></li><li><a href="S-gll.html#SP16">&#167;16. Typography</a></li><li><a href="S-gll.html#SP17">&#167;17. Character Casing</a></li><li><a href="S-gll.html#SP18">&#167;18. Glulx-Only Printing Routines</a></li><li><a href="S-gll.html#SP19">&#167;19. The Screen</a></li><li><a href="S-gll.html#SP20">&#167;20. Window Colours</a></li><li><a href="S-gll.html#SP21">&#167;21. Main Window</a></li><li><a href="S-gll.html#SP22">&#167;22. Status Line</a></li><li><a href="S-gll.html#SP23">&#167;23. Quotation Boxes</a></li><li><a href="S-gll.html#SP24">&#167;24. Veneer</a></li><li><a href="S-gll.html#SP25">&#167;25. End Glulx-only matter</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Lists Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Lists Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Lists Template</b></li></ul></div>
<p class="purpose">Code to support the list of... kind of value constructor.</p>
<ul class="toc"><li><a href="S-lst.html#SP1">&#167;1. Block Format</a></li><li><a href="S-lst.html#SP2">&#167;2. KOV Support</a></li><li><a href="S-lst.html#SP3">&#167;3. Creation</a></li><li><a href="S-lst.html#SP4">&#167;4. Destruction</a></li><li><a href="S-lst.html#SP5">&#167;5. Copying</a></li><li><a href="S-lst.html#SP6">&#167;6. Comparison</a></li><li><a href="S-lst.html#SP7">&#167;7. Hashing</a></li><li><a href="S-lst.html#SP8">&#167;8. Printing</a></li><li><a href="S-lst.html#SP9">&#167;9. List From Description</a></li><li><a href="S-lst.html#SP10">&#167;10. Find Item</a></li><li><a href="S-lst.html#SP11">&#167;11. Insert Item</a></li><li><a href="S-lst.html#SP12">&#167;12. Append List</a></li><li><a href="S-lst.html#SP13">&#167;13. Remove Value</a></li><li><a href="S-lst.html#SP14">&#167;14. Remove Item Range</a></li><li><a href="S-lst.html#SP15">&#167;15. Remove List</a></li><li><a href="S-lst.html#SP16">&#167;16. Get Length</a></li><li><a href="S-lst.html#SP17">&#167;17. Set Length</a></li><li><a href="S-lst.html#SP18">&#167;18. Get Item</a></li><li><a href="S-lst.html#SP19">&#167;19. Write Item</a></li><li><a href="S-lst.html#SP20">&#167;20. Put Item</a></li><li><a href="S-lst.html#SP21">&#167;21. Reversing</a></li><li><a href="S-lst.html#SP22">&#167;22. Rotation</a></li><li><a href="S-lst.html#SP23">&#167;23. Sorting</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'MStack Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>MStack Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>MStack Template</b></li></ul></div>
<p class="purpose">To allocate space on the memory stack for frames of variables to be used by rulebooks, activities and actions.</p>
<ul class="toc"><li><a href="S-mst.html#SP1">&#167;1. The Memory Stack</a></li><li><a href="S-mst.html#SP2">&#167;2. Create Frame</a></li><li><a href="S-mst.html#SP3">&#167;3. Destroy Frame</a></li><li><a href="S-mst.html#SP4">&#167;4. Seek Frame</a></li><li><a href="S-mst.html#SP5">&#167;5. Backtrace</a></li><li><a href="S-mst.html#SP6">&#167;6. Access to Variables</a></li><li><a href="S-mst.html#SP7">&#167;7. Access to Nonexistent Variables</a></li><li><a href="S-mst.html#SP8">&#167;8. Rulebook Variables</a></li><li><a href="S-mst.html#SP9">&#167;9. Activity Variables</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Mathematics Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Mathematics Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Mathematics Template</b></li></ul></div>
<p class="purpose">Mathematical functions, especially for real numbers.</p>
<ul class="toc"><li><a href="S-mth.html#SP1">&#167;1. Square Root</a></li><li><a href="S-mth.html#SP2">&#167;2. Cube Root</a></li><li><a href="S-mth.html#SP3">&#167;3. Absolute value</a></li><li><a href="S-mth.html#SP4">&#167;4. IntegerDivide</a></li><li><a href="S-mth.html#SP5">&#167;5. IntegerRemainder</a></li><li><a href="S-mth.html#SP6">&#167;6. UnsignedCompare</a></li><li><a href="S-mth.html#SP7">&#167;7. SignedCompare</a></li><li><a href="S-mth.html#SP8">&#167;8. Printing reals</a></li></ul><hr class="tocbar">

View file

@ -17,10 +17,10 @@
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -40,15 +40,15 @@
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Paragraphing' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Paragraphing</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Paragraphing</b></li></ul></div>
<p class="purpose">To manage the line skips which space paragraphs out.</p>
<ul class="toc"><li><a href="S-prg.html#SP1">&#167;1. Paragraph Control</a></li><li><a href="S-prg.html#SP2">&#167;2. State</a></li><li><a href="S-prg.html#SP3">&#167;3. Say Number</a></li><li><a href="S-prg.html#SP4">&#167;4. Print English Number</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'RegExp Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>RegExp Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>RegExp Template</b></li></ul></div>
<p class="purpose">Code to match and replace on regular expressions against indexed text strings.</p>
<ul class="toc"><li><a href="S-rgx.html#SP1">&#167;1. Debugging</a></li><li><a href="S-rgx.html#SP2">&#167;2. Algorithm</a></li><li><a href="S-rgx.html#SP3">&#167;3. Class Codes</a></li><li><a href="S-rgx.html#SP4">&#167;4. Packets</a></li><li><a href="S-rgx.html#SP5">&#167;5. Nodes</a></li><li><a href="S-rgx.html#SP6">&#167;6. Match Variables</a></li><li><a href="S-rgx.html#SP7">&#167;7. Markers</a></li><li><a href="S-rgx.html#SP8">&#167;8. Debugging</a></li><li><a href="S-rgx.html#SP9">&#167;9. Compiling Tree For Substring Search</a></li><li><a href="S-rgx.html#SP10">&#167;10. Compiling Tree For Regexp Search</a></li><li><a href="S-rgx.html#SP11">&#167;11. Parser</a></li><li><a href="S-rgx.html#SP12">&#167;12. Parse At Position</a></li><li><a href="S-rgx.html#SP13">&#167;13. Backtracking</a></li><li><a href="S-rgx.html#SP14">&#167;14. Fail Subexpressions</a></li><li><a href="S-rgx.html#SP15">&#167;15. Erasing Constraints</a></li><li><a href="S-rgx.html#SP16">&#167;16. Matching Literal Text</a></li><li><a href="S-rgx.html#SP17">&#167;17. Matching Character Range</a></li><li><a href="S-rgx.html#SP18">&#167;18. Search And Replace</a></li><li><a href="S-rgx.html#SP19">&#167;19. Concatenation</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Rulebooks Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Rulebooks Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Rulebooks Template</b></li></ul></div>
<p class="purpose">To work through the rules in a rulebook until a decision is made.</p>
<ul class="toc"><li><a href="S-rlb.html#SP1">&#167;1. Latest Rule Result</a></li><li><a href="S-rlb.html#SP2">&#167;2. Following</a></li><li><a href="S-rlb.html#SP3">&#167;3. Specifying Outcomes</a></li><li><a href="S-rlb.html#SP4">&#167;4. Discovering Outcomes</a></li><li><a href="S-rlb.html#SP5">&#167;5. Printing Rule Names</a></li><li><a href="S-rlb.html#SP6">&#167;6. Casting</a></li><li><a href="S-rlb.html#SP7">&#167;7. Debugging</a></li><li><a href="S-rlb.html#SP8">&#167;8. The Default Rule and Rulebook</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Relation Kind Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Relation Kind Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Relation Kind Template</b></li></ul></div>
<p class="purpose">Code to support the relation kind.</p>
<ul class="toc"><li><a href="S-rlt.html#SP1">&#167;1. Block Format</a></li><li><a href="S-rlt.html#SP2">&#167;2. KOV Support</a></li><li><a href="S-rlt.html#SP3">&#167;3. Other Definitions</a></li><li><a href="S-rlt.html#SP4">&#167;4. Tunable Parameters</a></li><li><a href="S-rlt.html#SP5">&#167;5. Abstract Relations</a></li><li><a href="S-rlt.html#SP6">&#167;6. Empty Relations</a></li><li><a href="S-rlt.html#SP7">&#167;7. Creation</a></li><li><a href="S-rlt.html#SP8">&#167;8. Destruction</a></li><li><a href="S-rlt.html#SP9">&#167;9. Copying</a></li><li><a href="S-rlt.html#SP10">&#167;10. Comparison</a></li><li><a href="S-rlt.html#SP11">&#167;11. Printing</a></li><li><a href="S-rlt.html#SP12">&#167;12. Naming</a></li><li><a href="S-rlt.html#SP13">&#167;13. Choose Relation Handler</a></li><li><a href="S-rlt.html#SP14">&#167;14. Valency</a></li><li><a href="S-rlt.html#SP15">&#167;15. Double Hash Set Relation Handler</a></li><li><a href="S-rlt.html#SP16">&#167;16. Hash List Relation Handler</a></li><li><a href="S-rlt.html#SP17">&#167;17. Hash Table Relation Handler</a></li><li><a href="S-rlt.html#SP18">&#167;18. Reversed Hash Table Relation Handler</a></li><li><a href="S-rlt.html#SP19">&#167;19. Symmetric Relation Handlers</a></li><li><a href="S-rlt.html#SP20">&#167;20. Hash Core Relation Handler</a></li><li><a href="S-rlt.html#SP21">&#167;21. Equivalence Hash Table Relation Handler</a></li><li><a href="S-rlt.html#SP22">&#167;22. Two-In-One Hash Table Relation Handler</a></li><li><a href="S-rlt.html#SP23">&#167;23. Empty</a></li></ul><hr class="tocbar">
@ -224,7 +224,7 @@ operations it does offer.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">RelationTest</span><span class="plain-syntax"> </span><span class="identifier-syntax">relation</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax"> </span><span class="identifier-syntax">Y</span><span class="plain-syntax"> </span><span class="identifier-syntax">handler</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">RelationTest</span><span class="plain-syntax"> </span><span class="identifier-syntax">relation</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax"> </span><span class="identifier-syntax">Y</span><span class="plain-syntax"> </span><span class="identifier-syntax">handler</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">handler</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RlnGetF</span><span class="plain-syntax">(</span><span class="identifier-syntax">relation</span><span class="plain-syntax">, </span><span class="identifier-syntax">RR_HANDLER</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">handler</span><span class="plain-syntax">(</span><span class="identifier-syntax">relation</span><span class="plain-syntax">, </span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">Y</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span>
@ -1016,7 +1016,7 @@ the existing pair \((X, Y)\).
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">fl</span><span class="plain-syntax"> &amp; </span><span class="identifier-syntax">RRF_USED</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">sym</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">, </span><span class="identifier-syntax">tmp</span><span class="plain-syntax"> + </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">fl</span><span class="plain-syntax"> &amp; </span><span class="identifier-syntax">RRF_SINGLE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">KOVIsBlockValue</span><span class="plain-syntax">(</span><span class="identifier-syntax">ky</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">KOVIsBlockValue</span><span class="plain-syntax">(</span><span class="identifier-syntax">kx</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">BlkValueCompare</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">sym</span><span class="plain-syntax">) ~= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">X</span><span class="plain-syntax"> ~= </span><span class="identifier-syntax">sym</span><span class="plain-syntax">) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
@ -1197,20 +1197,16 @@ the existing pair \((X, Y)\).
<span class="plain-syntax">];</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">HashCoreLookUp</span><span class="plain-syntax"> </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> </span><span class="identifier-syntax">kx</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax"> </span><span class="identifier-syntax">hashv</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">free</span><span class="plain-syntax"> </span><span class="identifier-syntax">mask</span><span class="plain-syntax"> </span><span class="identifier-syntax">perturb</span><span class="plain-syntax"> </span><span class="identifier-syntax">flags</span><span class="plain-syntax">;</span>
<span class="comment-syntax">rint "[HCLU rel=", rel, " kx=", kx, " X=", X, ": ";</span>
<span class="plain-syntax"> </span><span class="comment-syntax">calculate a hash value for the key</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">hashv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GetHashValue</span><span class="plain-syntax">(</span><span class="identifier-syntax">kx</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="comment-syntax">look in the first expected slot</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">mask</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">, </span><span class="identifier-syntax">RRV_STORAGE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hashv</span><span class="plain-syntax"> &amp; </span><span class="identifier-syntax">mask</span><span class="plain-syntax">;</span>
<span class="comment-syntax">rint "hv=", hashv, ", trying ", i;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">flags</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">, </span><span class="identifier-syntax">RRV_DATA_BASE</span><span class="plain-syntax"> + </span><span class="constant-syntax">3</span><span class="plain-syntax">*</span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">flags</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="comment-syntax">rint " - not found]^";</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> ~</span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">HashCoreEntryMatches</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">kx</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">)) {</span>
<span class="comment-syntax">rint " - found]^";</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="comment-syntax">not here, keep looking in sequence</span>
@ -1221,15 +1217,12 @@ the existing pair \((X, Y)\).
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (::) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">hashv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hashv</span><span class="plain-syntax">*5 + </span><span class="identifier-syntax">perturb</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hashv</span><span class="plain-syntax"> &amp; </span><span class="identifier-syntax">mask</span><span class="plain-syntax">;</span>
<span class="comment-syntax">rint ", ", i;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">flags</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">, </span><span class="identifier-syntax">RRV_DATA_BASE</span><span class="plain-syntax"> + </span><span class="constant-syntax">3</span><span class="plain-syntax">*</span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">flags</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="comment-syntax">rint " - not found]^";</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">free</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> ~</span><span class="identifier-syntax">free</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> ~</span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">HashCoreEntryMatches</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">kx</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">)) {</span>
<span class="comment-syntax">rint " - found]^";</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">free</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">flags</span><span class="plain-syntax"> &amp; </span><span class="identifier-syntax">RRF_DELETED</span><span class="plain-syntax">)) </span><span class="identifier-syntax">free</span><span class="plain-syntax"> = </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
@ -1259,7 +1252,7 @@ the existing pair \((X, Y)\).
<span class="plain-syntax"> </span><span class="identifier-syntax">BlkValueWrite</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">, </span><span class="identifier-syntax">RRV_DATA_BASE</span><span class="plain-syntax">+</span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="comment-syntax">copy entries back from temporary space</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kov</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">, </span><span class="identifier-syntax">RRV_KIND</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">KindBaseTerm</span><span class="plain-syntax">(</span><span class="identifier-syntax">kov</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">KindBaseTerm</span><span class="plain-syntax">(</span><span class="identifier-syntax">kov</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">); </span><span class="comment-syntax">Was 0</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0: </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">ext</span><span class="plain-syntax">: </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">temp</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">*</span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="reserved-syntax">true</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax"> || (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> &amp; </span><span class="identifier-syntax">RRF_DELETED</span><span class="plain-syntax">)) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Relations Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Relations Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Relations Template</b></li></ul></div>
<p class="purpose">To manage run-time storage for relations between objects, and to find routes through relations and the map.</p>
<ul class="toc"><li><a href="S-rlt2.html#SP1">&#167;1. Relation Records</a></li><li><a href="S-rlt2.html#SP2">&#167;2. Valency Adjectives</a></li><li><a href="S-rlt2.html#SP3">&#167;3. One To One Relations</a></li><li><a href="S-rlt2.html#SP4">&#167;4. Symmetric One To One Relations</a></li><li><a href="S-rlt2.html#SP5">&#167;5. Various To Various Relations</a></li><li><a href="S-rlt2.html#SP6">&#167;6. Equivalence Relations</a></li><li><a href="S-rlt2.html#SP7">&#167;7. Show Various to Various</a></li><li><a href="S-rlt2.html#SP8">&#167;8. Show One to One</a></li><li><a href="S-rlt2.html#SP9">&#167;9. Show Reversed One to One</a></li><li><a href="S-rlt2.html#SP10">&#167;10. Show Equivalence</a></li><li><a href="S-rlt2.html#SP11">&#167;11. Relation Emptying</a></li><li><a href="S-rlt2.html#SP12">&#167;12. Relation Route-Finding</a></li><li><a href="S-rlt2.html#SP13">&#167;13. One To Various Route-Finding</a></li><li><a href="S-rlt2.html#SP14">&#167;14. Various To One Route-Finding</a></li><li><a href="S-rlt2.html#SP15">&#167;15. Slow Various To Various Route-Finding</a></li><li><a href="S-rlt2.html#SP16">&#167;16. Fast Various To Various Route-Finding</a></li><li><a href="S-rlt2.html#SP17">&#167;17. Iterating Relations</a></li></ul><hr class="tocbar">

View file

@ -17,10 +17,10 @@
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -40,15 +40,15 @@
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'RTP Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>RTP Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>RTP Template</b></li></ul></div>
<p class="purpose">To issue run-time problem messages, and to perform some run-time type checking which may issue such messages.</p>
<ul class="toc"><li><a href="S-rtp.html#SP1">&#167;1. Reporting</a></li><li><a href="S-rtp.html#SP2">&#167;2. Low-Level Errors</a></li><li><a href="S-rtp.html#SP3">&#167;3. Argument Type Checking Failed</a></li><li><a href="S-rtp.html#SP4">&#167;4. Return Type Checking Failed</a></li><li><a href="S-rtp.html#SP5">&#167;5. Whether Provides</a></li><li><a href="S-rtp.html#SP6">&#167;6. Scan Property Metadata</a></li><li><a href="S-rtp.html#SP7">&#167;7. Read Property</a></li><li><a href="S-rtp.html#SP8">&#167;8. Write Property</a></li><li><a href="S-rtp.html#SP9">&#167;9. Printing Property Names</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Sort Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Sort Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Sort Template</b></li></ul></div>
<p class="purpose">To sort arrays.</p>
<ul class="toc"><li><a href="S-srt.html#SP1">&#167;1. Storage</a></li><li><a href="S-srt.html#SP2">&#167;2. Front End</a></li><li><a href="S-srt.html#SP3">&#167;3. Sort Range</a></li><li><a href="S-srt.html#SP4">&#167;4. Comparison and Exchange</a></li><li><a href="S-srt.html#SP5">&#167;5. 4W37 Sort</a></li><li><a href="S-srt.html#SP6">&#167;6. Insertion Sort</a></li><li><a href="S-srt.html#SP7">&#167;7. In-Place Mergesort</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Tables Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Tables Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Tables Template</b></li></ul></div>
<p class="purpose">To read, write, search and allocate rows in the Table data structure.</p>
<ul class="toc"><li><a href="S-tbl.html#SP1">&#167;1. Format</a></li><li><a href="S-tbl.html#SP2">&#167;2. Find Column</a></li><li><a href="S-tbl.html#SP3">&#167;3. Number of Rows</a></li><li><a href="S-tbl.html#SP4">&#167;4. Blanks</a></li><li><a href="S-tbl.html#SP5">&#167;5. Masks</a></li><li><a href="S-tbl.html#SP6">&#167;6. Testing Blankness</a></li><li><a href="S-tbl.html#SP7">&#167;7. Force Entry Blank</a></li><li><a href="S-tbl.html#SP8">&#167;8. Force Entry Non-Blank</a></li><li><a href="S-tbl.html#SP9">&#167;9. Swapping Blank Bits</a></li><li><a href="S-tbl.html#SP10">&#167;10. Moving Blank Bits Down</a></li><li><a href="S-tbl.html#SP11">&#167;11. Table Row Corresponding</a></li><li><a href="S-tbl.html#SP12">&#167;12. Table Look Up Corresponding Row</a></li><li><a href="S-tbl.html#SP13">&#167;13. Table Look Up Entry</a></li><li><a href="S-tbl.html#SP14">&#167;14. Blank Rows</a></li><li><a href="S-tbl.html#SP15">&#167;15. Random Row</a></li><li><a href="S-tbl.html#SP16">&#167;16. Swap Rows</a></li><li><a href="S-tbl.html#SP17">&#167;17. Compare Rows</a></li><li><a href="S-tbl.html#SP18">&#167;18. Move Row Down</a></li><li><a href="S-tbl.html#SP19">&#167;19. Shuffle</a></li><li><a href="S-tbl.html#SP20">&#167;20. Next Row</a></li><li><a href="S-tbl.html#SP21">&#167;21. Move Blanks to Back</a></li><li><a href="S-tbl.html#SP22">&#167;22. Sort</a></li><li><a href="S-tbl.html#SP23">&#167;23. Print Table to File</a></li><li><a href="S-tbl.html#SP24">&#167;24. Read Table from File</a></li><li><a href="S-tbl.html#SP25">&#167;25. Debugging</a></li></ul><hr class="tocbar">

View file

@ -17,10 +17,10 @@
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -40,15 +40,15 @@
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Text Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Text Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Text Template</b></li></ul></div>
<p class="purpose">Code to support the text kind of value.</p>
<ul class="toc"><li><a href="S-txt.html#SP1">&#167;1. Block Format</a></li><li><a href="S-txt.html#SP2">&#167;2. Extent Of Long Block</a></li><li><a href="S-txt.html#SP3">&#167;3. Character Set</a></li><li><a href="S-txt.html#SP4">&#167;4. KOV Support</a></li><li><a href="S-txt.html#SP5">&#167;5. Debugging</a></li><li><a href="S-txt.html#SP6">&#167;6. Creation</a></li><li><a href="S-txt.html#SP7">&#167;7. Copy Short Block</a></li><li><a href="S-txt.html#SP8">&#167;8. Transmutation</a></li><li><a href="S-txt.html#SP9">&#167;9. Mutability</a></li><li><a href="S-txt.html#SP10">&#167;10. Casting</a></li><li><a href="S-txt.html#SP11">&#167;11. Data Conversion</a></li><li><a href="S-txt.html#SP12">&#167;12. Z Version</a></li><li><a href="S-txt.html#SP13">&#167;13. Glulx Version</a></li><li><a href="S-txt.html#SP14">&#167;14. Comparison</a></li><li><a href="S-txt.html#SP15">&#167;15. Hashing</a></li><li><a href="S-txt.html#SP16">&#167;16. Printing</a></li><li><a href="S-txt.html#SP17">&#167;17. Capitalised printing</a></li><li><a href="S-txt.html#SP18">&#167;18. Serialisation</a></li><li><a href="S-txt.html#SP19">&#167;19. Unserialisation</a></li><li><a href="S-txt.html#SP20">&#167;20. Substitution</a></li><li><a href="S-txt.html#SP21">&#167;21. Perishability</a></li><li><a href="S-txt.html#SP22">&#167;22. Blobs</a></li><li><a href="S-txt.html#SP23">&#167;23. Blob Access</a></li><li><a href="S-txt.html#SP24">&#167;24. Get Blob</a></li><li><a href="S-txt.html#SP25">&#167;25. Replace Blob</a></li><li><a href="S-txt.html#SP26">&#167;26. Replace Text</a></li><li><a href="S-txt.html#SP27">&#167;27. Character Length</a></li><li><a href="S-txt.html#SP28">&#167;28. Get Character</a></li><li><a href="S-txt.html#SP29">&#167;29. Casing</a></li><li><a href="S-txt.html#SP30">&#167;30. Change Case</a></li><li><a href="S-txt.html#SP31">&#167;31. Concatenation</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'UnicodeData Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>UnicodeData Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>UnicodeData Template</b></li></ul></div>
<p class="purpose">To tabulate casings in the character set.</p>
<ul class="toc"><li><a href="S-unc.html#SP1">&#167;1. Source</a></li><li><a href="S-unc.html#SP2">&#167;2. ZSCII Casing Tables</a></li><li><a href="S-unc.html#SP3">&#167;3. Small Unicode Casing Tables</a></li><li><a href="S-unc.html#SP4">&#167;4. Large Unicode Casing Tables</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Utilities Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Utilities Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Utilities Template</b></li></ul></div>
<p class="purpose">Miscellaneous utility routines for some fundamental I6 needs.</p>
<ul class="toc"><li><a href="S-utl.html#SP1">&#167;1. Miscellany</a></li><li><a href="S-utl.html#SP2">&#167;2. Final Code Dependencies</a></li><li><a href="S-utl.html#SP3">&#167;3. Firebreak</a></li><li><a href="S-utl.html#SP4">&#167;4. Print Decimal Number</a></li><li><a href="S-utl.html#SP5">&#167;5. Print Text</a></li><li><a href="S-utl.html#SP6">&#167;6. Print Or Run</a></li><li><a href="S-utl.html#SP7">&#167;7. Saying Phrases</a></li><li><a href="S-utl.html#SP8">&#167;8. Kinds</a></li><li><a href="S-utl.html#SP9">&#167;9. GenerateRandomNumber</a></li><li><a href="S-utl.html#SP10">&#167;10. PrintSpaces</a></li><li><a href="S-utl.html#SP11">&#167;11. SwapWorkflags</a></li><li><a href="S-utl.html#SP12">&#167;12. TestUseOption</a></li><li><a href="S-utl.html#SP13">&#167;13. ZRegion</a></li><li><a href="S-utl.html#SP14">&#167;14. Memcpy</a></li><li><a href="S-utl.html#SP15">&#167;15. Arrcpy</a></li><li><a href="S-utl.html#SP16">&#167;16. Verbs as Values</a></li><li><a href="S-utl.html#SP17">&#167;17. Seed Random Number Generator Rule</a></li><li><a href="S-utl.html#SP18">&#167;18. Extracting Verb Numbers</a></li><li><a href="S-utl.html#SP19">&#167;19. Say One Of</a></li><li><a href="S-utl.html#SP20">&#167;20. Rounding</a></li></ul><hr class="tocbar">

View file

@ -31,10 +31,10 @@ MathJax = {
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -54,15 +54,15 @@ MathJax = {
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'ZMachine Template' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>ZMachine Template</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>ZMachine Template</b></li></ul></div>
<p class="purpose">To provide routines handling low-level Z-machine facilities.</p>
<ul class="toc"><li><a href="S-zmc.html#SP1">&#167;1. Begin Z-only matter</a></li><li><a href="S-zmc.html#SP2">&#167;2. Summary</a></li><li><a href="S-zmc.html#SP3">&#167;3. Variables and Arrays</a></li><li><a href="S-zmc.html#SP4">&#167;4. Release Number</a></li><li><a href="S-zmc.html#SP5">&#167;5. Keyboard Input</a></li><li><a href="S-zmc.html#SP6">&#167;6. Buffer Functions</a></li><li><a href="S-zmc.html#SP7">&#167;7. Dictionary Functions</a></li><li><a href="S-zmc.html#SP8">&#167;8. Command Tables</a></li><li><a href="S-zmc.html#SP9">&#167;9. RNG</a></li><li><a href="S-zmc.html#SP10">&#167;10. Memory Allocation</a></li><li><a href="S-zmc.html#SP11">&#167;11. Audiovisual Resources</a></li><li><a href="S-zmc.html#SP12">&#167;12. Typography</a></li><li><a href="S-zmc.html#SP13">&#167;13. Character Casing</a></li><li><a href="S-zmc.html#SP14">&#167;14. The Screen</a></li><li><a href="S-zmc.html#SP15">&#167;15. Window Colours</a></li><li><a href="S-zmc.html#SP16">&#167;16. Main Window</a></li><li><a href="S-zmc.html#SP17">&#167;17. Status Line</a></li><li><a href="S-zmc.html#SP18">&#167;18. Quotation Boxes</a></li><li><a href="S-zmc.html#SP19">&#167;19. Undo</a></li><li><a href="S-zmc.html#SP20">&#167;20. Veneer</a></li><li><a href="S-zmc.html#SP21">&#167;21. End Z-only matter</a></li></ul><hr class="tocbar">

View file

@ -15,10 +15,10 @@
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../overview.html">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../overview.html">home</a></li>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
@ -38,13 +38,13 @@
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<ul class="crumbs"><li><a href="../overview.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><b>BasicInformKit</b></li></ul>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><b>BasicInformKit</b></li></ul>
<p class="purpose">Inter-level support for the fundamentals of the Inform language. This is version 1.</p>
<hr>
<div class="contentspage">

View file

@ -362,10 +362,7 @@ group.
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP6" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_BogusExtension</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="string-syntax">"I can't find the extension requested by: %1. %P"</span>
<span class="plain-syntax"> </span><span class="string-syntax">"You can get hold of extensions which people have made public at "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"the Inform website, www.inform7.com, or by using the Public "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"Library in the Extensions panel."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="string-syntax">"I can't find the extension requested by: %1."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ExtVersionTooLow_SYNERROR:</span>
@ -375,10 +372,7 @@ group.
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP6" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_ExtVersionTooLow</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="string-syntax">"I can't find the right version of the extension requested by %1 - "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"I can only find %2. %P"</span>
<span class="plain-syntax"> </span><span class="string-syntax">"You can get hold of extensions which people have made public at "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"the Inform website, www.inform7.com, or by using the Public "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"Library in the Extensions panel."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="string-syntax">"I can only find %2."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ExtVersionMalformed_SYNERROR:</span>

View file

@ -331,7 +331,7 @@ the order in which filenames are read from a directory listing.
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Main::add_directory_contents_targets</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Main::add_directory_contents_targets</span></span>:<br/><a href="1-mn.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-drc.html#SP3" class="function-link"><span class="function-syntax">Directories::listing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-drc.html#SP4" class="function-link"><span class="function-syntax">Directories::listing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">entry</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">entry</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">FILENAME</span><span class="plain-syntax">)</span>

View file

@ -143,7 +143,7 @@ the software, but it's still helpful.
to other copies. It gives a systematic answer to the question "how do I
build or use this?". There are two kinds of arrows, use arrows and build
arrows. A use arrow from A to B means that you need to have B installed
in order to be able to use A. The above example, then, tells us that we
in order to be able to use A. The above example, then, tells us that we need
Menus in order to use Basic Help Menu, and we need Basic Screen Effects in
order to use Menus.
</p>

View file

@ -466,6 +466,9 @@ rather than <span class="extract"><span class="extract-syntax">core</span></span
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Main::bareword</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Main::bareword</span></span>:<br/><a href="1-mn.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">opt</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/4-sm.html#SP23" class="function-link"><span class="function-syntax">Str::is_whitespace</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_last_char</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">) == </span><span class="constant-syntax">FOLDER_SEPARATOR</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal_with_text</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="string-syntax">"to compile a project in a directory, use '-project %S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">opt</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../supervisor-module/1-ic.html#SP17" class="function-link"><span class="function-syntax">Supervisor::set_I7_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal_with_text</span></a><span class="plain-syntax">(</span><span class="string-syntax">"unknown command line argument: %S (see -help)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">opt</span><span class="plain-syntax">);</span>

View file

@ -70,34 +70,35 @@ which take more than 1/1000th of the total running time.
<pre class="undisplayed-code all-displayed-code code-font">
<span class="plain-syntax">100.0% in inform7 run</span>
<span class="plain-syntax"> 71.8% in compilation to Inter</span>
<span class="plain-syntax"> 51.2% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 4.6% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pre_pass</a>
<span class="plain-syntax"> 3.4% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
<span class="plain-syntax"> 71.1% in compilation to Inter</span>
<span class="plain-syntax"> 50.3% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 4.7% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pre_pass</a>
<span class="plain-syntax"> 3.5% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
<span class="plain-syntax"> 1.8% in </span><a href="../assertions-module/5-id.html#SP4" class="internal">ImperativeDefinitions::assess_all</a>
<span class="plain-syntax"> 1.8% in </span><a href="../runtime-module/6-pi.html#SP1" class="internal">RTPhrasebook::compile_entries</a>
<span class="plain-syntax"> 1.4% in </span><a href="../runtime-module/5-kc.html#SP10" class="internal">RTKindConstructors::compile</a>
<span class="plain-syntax"> 1.0% in </span><a href="../core-module/1-htc.html#SP12" class="internal">Sequence::lint_inter</a>
<span class="plain-syntax"> 0.6% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_2</a>
<span class="plain-syntax"> 0.6% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 0.6% in </span><a href="../knowledge-module/5-tmw.html#SP5" class="internal">World::stage_V</a>
<span class="plain-syntax"> 0.4% in </span><a href="../assertions-module/5-id.html#SP5" class="internal">ImperativeDefinitions::compile_first_block</a>
<span class="plain-syntax"> 0.4% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 0.4% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 0.2% in </span><a href="../runtime-module/3-cm.html#SP1" class="internal">CompletionModule::compile</a>
<span class="plain-syntax"> 0.2% in </span><a href="../knowledge-module/4-is.html#SP27" class="internal">InferenceSubjects::emit_all</a>
<span class="plain-syntax"> 0.2% in </span><a href="../runtime-module/5-kc.html#SP10_7" class="internal">RTKindConstructors::compile_permissions</a>
<span class="plain-syntax"> 3.4% not specifically accounted for</span>
<span class="plain-syntax"> 25.5% in running Inter pipeline</span>
<span class="plain-syntax"> 10.0% in step 14/15: generate inform6 -&gt; auto.inf</span>
<span class="plain-syntax"> 0.2% in </span><a href="../core-module/1-wtc.html#SP9" class="internal">Task::make_built_in_kind_constructors</a>
<span class="plain-syntax"> 3.0% not specifically accounted for</span>
<span class="plain-syntax"> 26.1% in running Inter pipeline</span>
<span class="plain-syntax"> 9.9% in step 14/15: generate inform6 -&gt; auto.inf</span>
<span class="plain-syntax"> 6.0% in step 6/15: make-synoptic-module</span>
<span class="plain-syntax"> 5.6% in step 5/15: load-binary-kits</span>
<span class="plain-syntax"> 5.4% in step 6/15: make-synoptic-module</span>
<span class="plain-syntax"> 1.4% in step 9/15: make-identifiers-unique</span>
<span class="plain-syntax"> 0.4% in step 12/15: eliminate-redundant-operations</span>
<span class="plain-syntax"> 0.4% in step 4/15: compile-splats</span>
<span class="plain-syntax"> 0.4% in step 7/15: shorten-wiring</span>
<span class="plain-syntax"> 0.4% in step 8/15: detect-indirect-calls</span>
<span class="plain-syntax"> 0.2% in step 11/15: eliminate-redundant-labels</span>
<span class="plain-syntax"> 1.3% not specifically accounted for</span>
<span class="plain-syntax"> 0.2% in step 8/15: detect-indirect-calls</span>
<span class="plain-syntax"> 1.4% not specifically accounted for</span>
<span class="plain-syntax"> 2.2% in supervisor</span>
<span class="plain-syntax"> 0.5% not specifically accounted for</span>
</pre>
@ -110,14 +111,14 @@ represent less than 1/1000th of the total.
<pre class="undisplayed-code all-displayed-code code-font">
<span class="plain-syntax">Total memory consumption was 123345K = 120 MB</span>
<span class="plain-syntax"> ---- was used for 2044307 objects, in 362626 frames in 0 x 800K = 0K = 0 MB:</span>
<span class="plain-syntax"> ---- was used for 2044504 objects, in 362823 frames in 0 x 800K = 0K = 0 MB:</span>
<span class="plain-syntax"> 33.1% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes</span>
<span class="plain-syntax"> 20.5% text_stream_array 4603 x 100 = 460300 objects, 25924096 bytes</span>
<span class="plain-syntax"> 19.2% linked_list 43446 objects, 24329760 bytes</span>
<span class="plain-syntax"> 11.1% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes</span>
<span class="plain-syntax"> 10.4% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes</span>
<span class="plain-syntax"> 8.2% parse_node 129721 objects, 10377680 bytes</span>
<span class="plain-syntax"> 8.2% parse_node 129720 objects, 10377600 bytes</span>
<span class="plain-syntax"> 5.8% verb_conjugation 160 objects, 7425280 bytes</span>
<span class="plain-syntax"> 4.3% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes</span>
<span class="plain-syntax"> 2.6% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes</span>
@ -131,6 +132,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> 1.1% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes</span>
<span class="plain-syntax"> 1.1% inter_symbols_table 26588 objects, 1488928 bytes</span>
<span class="plain-syntax"> 1.0% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes</span>
<span class="plain-syntax"> 1.0% scan_directory 314 objects, 1296192 bytes</span>
<span class="plain-syntax"> 1.0% inter_package 26588 objects, 1276224 bytes</span>
<span class="plain-syntax"> 0.8% map_data 670 objects, 1125600 bytes</span>
<span class="plain-syntax"> 0.8% id_body 942 objects, 1077648 bytes</span>
@ -142,7 +144,6 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> 0.6% individual_form 2562 objects, 860832 bytes</span>
<span class="plain-syntax"> 0.6% inter_schema_node 8920 objects, 856320 bytes</span>
<span class="plain-syntax"> 0.5% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes</span>
<span class="plain-syntax"> 0.3% scan_directory 116 objects, 478848 bytes</span>
<span class="plain-syntax"> 0.3% local_variable_array 47 x 100 = 4700 objects, 452704 bytes</span>
<span class="plain-syntax"> 0.3% verb_usage 1128 objects, 388032 bytes</span>
<span class="plain-syntax"> 0.2% rule 470 objects, 368480 bytes</span>
@ -347,7 +348,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax">100.0% was used for memory not allocated for objects:</span>
<span class="plain-syntax"> 57.7% text stream storage 72913024 bytes in 477844 claims</span>
<span class="plain-syntax"> 57.7% text stream storage 72912928 bytes in 477842 claims</span>
<span class="plain-syntax"> 4.1% dictionary storage 5227008 bytes in 7517 claims</span>
<span class="plain-syntax"> ---- sorting 1448 bytes in 149 claims</span>
<span class="plain-syntax"> 5.7% source text 7200000 bytes in 3 claims</span>
@ -365,7 +366,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- code generation workspace for objects 1336 bytes in 4 claims</span>
<span class="plain-syntax"> 0.2% emitter array storage 280032 bytes in 1997 claims</span>
<span class="plain-syntax">-145.-5% was overhead - -183807584 bytes = -179499K = -175 MB</span>
<span class="plain-syntax">-146.-1% was overhead - -184624848 bytes = -180297K = -176 MB</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Preform grammar. </b>The full annotated description of the Preform grammar (see <a href="../words-module/4-ap.html" class="internal">About Preform (in words)</a>),
with optimisation details and hit/miss statistics added, is also long: it's

View file

@ -4764,21 +4764,21 @@
{...}
constraint (none) extremes [1, infinity)
<optional-article> hits 83030/166060 nti 15 constraint (none) extremes [1, infinity)
<optional-article> hits 83029/166058 nti 15 constraint (none) extremes [1, infinity)
English:
<article> {...}
(hits 16068/47449) (matched long text) constraint (none) extremes [2, infinity)
(hits 16068/47448) (matched long text) constraint (none) extremes [2, infinity)
{...}
(hits 66962/66962) (matched long text) constraint (none) extremes [1, infinity)
(hits 66961/66961) (matched long text) constraint (none) extremes [1, infinity)
<compulsory-article> nti 16 constraint (none) extremes [2, infinity)
English:
<article> {...}
constraint (none) extremes [2, infinity)
<article> internal hits 16522/98958 nti r2 constraint (none) extremes [1, 1]
<article> internal hits 16522/98954 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 20353/236436 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 20353/236434 nti r2 constraint (none) extremes [1, 1]
<indefinite-article> internal hits 2350/41386 nti r2 constraint (none) extremes [1, 1]
@ -5055,7 +5055,7 @@
{...}
(hits 99/2082) (matched: '"(considering the first sixteen objects only)[command clarification break]" ( a )') constraint (none) extremes [1, infinity)
<if-not-cap> <indefinite-article> <np-unparsed>
(hits 322/1418) (matched long text) constraint (none) extremes [2, infinity)
(hits 322/1418) (matched: 'an action based rule producing nothing that varies') constraint (none) extremes [2, infinity)
<if-not-cap> <definite-article> <np-unparsed>
(hits 661/1096) (matched long text) constraint (none) extremes [2, infinity)
<np-unparsed>
@ -5185,16 +5185,16 @@
<np-nonrelative>
(hits 431/431) (matched long text) constraint (none) extremes [1, infinity)
<np-with-or-having-tail> hits 0/10194 nti 30 constraint DS = {30} extremes [2, infinity)
<np-with-or-having-tail> hits 0/10192 nti 30 constraint DS = {30} extremes [2, infinity)
English:
it with action {***}
(hits 0/3875) constraint DS = {30} extremes [3, infinity)
(hits 0/3874) constraint DS = {30} extremes [3, infinity)
{with/having} (/) {***}
(hits 0/4068) constraint DS = {30} extremes [2, infinity)
(hits 0/4067) constraint DS = {30} extremes [2, infinity)
{with/having} {...} ( <response-letter> )
(hits 0/3483) constraint DS = {30} extremes [5, infinity)
(hits 0/3482) constraint DS = {30} extremes [5, infinity)
{with/having} <np-new-property-list>
(hits 0/4068) constraint DS = {30} extremes [2, infinity)
(hits 0/4067) constraint DS = {30} extremes [2, infinity)
<np-new-property-list> nti 19 constraint (none) extremes [1, infinity)
English:
@ -5217,12 +5217,12 @@
{...}
constraint (none) extremes [1, infinity)
<np-and-tail> hits 174/3554 nti 6 constraint DS = {6} extremes [1, infinity)
<np-and-tail> hits 174/3552 nti 6 constraint DS = {6} extremes [1, infinity)
English:
, _{and} <np-operand>
(hits 8/1080) (matched: ', and didn't understand addressee's last name error') constraint DS = {6} extremes [2, infinity)
(hits 8/1079) (matched: ', and didn't understand addressee's last name error') constraint DS = {6} extremes [2, infinity)
_{,/and} <np-operand>
(hits 166/1278) (matched long text) constraint DS = {6} extremes [1, infinity)
(hits 166/1277) (matched long text) constraint DS = {6} extremes [1, infinity)
<np-kind-phrase> hits 30/516 nti 21 constraint DS = {7} extremes [1, infinity)
English:
@ -5267,7 +5267,7 @@
{...} called {...}
constraint DS = {12} extremes [3, infinity)
<np-x-of-y> hits 196/9062 nti 13 constraint DS = {13} extremes [2, infinity)
<np-x-of-y> hits 196/9056 nti 13 constraint DS = {13} extremes [2, infinity)
English:
of {...}
(hits 196/2552) (matched: 'of day -- documented at var_time --') constraint DS = {13} extremes [2, infinity)
@ -5285,7 +5285,7 @@
grammatical case
(hits 1/1) (matched: 'grammatical case') constraint CS = {14} extremes [2, 2]
<if-parsing-phrase-tokens> internal hits 2478/41948 nti 27 constraint (none) extremes [0, 0]
<if-parsing-phrase-tokens> internal hits 2478/41944 nti 27 constraint (none) extremes [0, 0]
<k-kind-prototype> internal hits 165/330 nti 28 constraint (none) extremes [1, infinity)
@ -5311,16 +5311,16 @@
<k-kind>
(hits 5/5) (matched: 'value of kind k') constraint (none) extremes [1, infinity)
<k-kind> hits 5803/103678 nti r5 constraint (none) extremes [1, infinity)
<k-kind> hits 5802/103676 nti r5 constraint (none) extremes [1, infinity)
English:
( <k-kind> )
(hits 0/2047) constraint DS = {r5} & CW = {r2, r5} extremes [3, infinity)
^<if-parsing-phrase-tokens> <k-kind-variable>
(hits 1592/11283) (matched: 'k') constraint CW = {r2, r5} extremes [1, infinity)
(hits 1592/11282) (matched: 'k') constraint CW = {r2, r5} extremes [1, infinity)
<if-parsing-phrase-tokens> <k-variable-definition>
(hits 201/9691) (matched: 'sayable value of kind k') constraint CW = {r2, r5} extremes [1, infinity)
(hits 201/9690) (matched: 'sayable value of kind k') constraint CW = {r2, r5} extremes [1, infinity)
<k-base-kind>
(hits 3649/9490) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity)
(hits 3648/9489) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity)
<k-irregular-kind-construction>
(hits 2/16024) (matched: 'object-based rulebook') constraint DS = {r5} extremes [2, infinity)
<k-kind-construction>
@ -5340,7 +5340,7 @@
<k-kind-of-kind> of kind <k-formal-variable>
(hits 81/315) (matched: 'sayable value of kind k') constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity)
<k-base-kind> internal hits 3649/18980 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
<k-base-kind> internal hits 3648/18978 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
<k-irregular-kind-construction> hits 2/32048 nti r5 constraint DS = {r5} extremes [2, infinity)
English:
@ -5387,13 +5387,13 @@
( <k-optional-term> )
(hits 0/21) constraint DS = {r5} extremes [3, infinity)
<article> <k-optional-term>
(hits 9/28) (matched: 'a value of kind k') constraint (none) extremes [2, infinity)
(hits 9/27) (matched: 'a value of kind k') constraint (none) extremes [2, infinity)
nothing
(hits 14/34) (matched: 'nothing') constraint CS = {r5} extremes [1, 1]
(hits 14/35) (matched: 'nothing') constraint CS = {r5} extremes [1, 1]
action
(hits 0/20) constraint CS = {r5} extremes [1, 1]
(hits 1/21) (matched: 'action') constraint CS = {r5} extremes [1, 1]
<k-kind>
(hits 39/39) (matched: 'value of kind k') constraint (none) extremes [1, infinity)
(hits 38/38) (matched: 'value of kind k') constraint (none) extremes [1, infinity)
<k-tupled-term> hits 15/30 nti r5 constraint (none) extremes [1, infinity)
English:
@ -5416,7 +5416,7 @@
<k-kind>
(hits 100/224) (matched: 'sayable value') constraint (none) extremes [1, infinity)
<k-kind-variable> internal hits 1592/20088 nti r5 constraint CW = {r2, r5} extremes [1, 1]
<k-kind-variable> internal hits 1592/20086 nti r5 constraint CW = {r2, r5} extremes [1, 1]
<k-formal-variable> internal hits 220/1418 nti r5 constraint CW = {r2, r5} extremes [1, 1]
@ -6677,7 +6677,7 @@
action of <s-explicit-action>
(hits 0/65) constraint DS = {24} extremes [3, infinity)
<s-descriptive-type-expression>
(hits 728/978) (matched: 'action name based rule producing nothing that varies') constraint (none) extremes [1, infinity)
(hits 728/978) (matched: 'action based rule producing nothing that varies') constraint (none) extremes [1, infinity)
<s-global-variable>
(hits 6/250) (matched: 'language of play') constraint (none) extremes [1, infinity)
@ -7969,7 +7969,7 @@
<s-variable-scope> variable/variables
(hits 2/350) (matched: 'text variables') constraint DS = {11} extremes [2, infinity)
<s-variable-scope> that/which vary/varies
(hits 59/287) (matched: 'action name based rule producing nothing that varies') constraint DS = {11} extremes [3, infinity)
(hits 59/287) (matched: 'action based rule producing nothing that varies') constraint DS = {11} extremes [3, infinity)
<k-kind>
(hits 2445/3832) (matched long text) constraint (none) extremes [1, infinity)
<s-literal>
@ -8009,12 +8009,12 @@
global <s-variable-contents>
(hits 0/4) constraint DS = {10} extremes [2, infinity)
<s-variable-contents>
(hits 61/62) (matched: 'action name based rule producing nothing') constraint (none) extremes [1, infinity)
(hits 61/62) (matched: 'action based rule producing nothing') constraint (none) extremes [1, infinity)
<s-variable-contents> hits 61/124 nti 18 constraint (none) extremes [1, infinity)
English:
<k-kind>
(hits 61/62) (matched: 'action name based rule producing nothing') constraint (none) extremes [1, infinity)
(hits 61/62) (matched: 'action based rule producing nothing') constraint (none) extremes [1, infinity)
<s-literal>
(hits 0/1) constraint (none) extremes [1, infinity)
<s-constant-value>
@ -9061,31 +9061,31 @@
waiting
(hits 1/20) (matched: 'waiting') constraint CS = {13} extremes [1, 1]
<new-action-sentence-object> hits 90/1036 nti 24 constraint DS = {14} extremes [1, infinity)
<new-action-sentence-object> hits 91/1036 nti 24 constraint DS = {14} extremes [1, infinity)
English:
<indefinite-article> <new-action-sentence-object-unarticled>
(hits 90/334) (matched long text) constraint DS = {14} extremes [2, infinity)
(hits 91/334) (matched long text) constraint DS = {14} extremes [2, infinity)
<new-action-sentence-object-unarticled>
(hits 0/244) constraint DS = {14} extremes [1, infinity)
(hits 0/243) constraint DS = {14} extremes [1, infinity)
<new-action-sentence-object-unarticled> hits 90/934 nti 14 constraint DS = {14} extremes [1, infinity)
<new-action-sentence-object-unarticled> hits 91/932 nti 14 constraint DS = {14} extremes [1, infinity)
English:
action based {...}
(hits 0/338) constraint DS = {14} extremes [3, infinity)
(hits 1/337) (matched: 'action based rule producing nothing that varies') constraint DS = {14} extremes [3, infinity)
action <nounphrase-actionable>
(hits 90/388) (matched long text) constraint DS = {14} extremes [1, infinity)
(hits 90/386) (matched long text) constraint DS = {14} extremes [1, infinity)
action
constraint CS = {14} extremes [1, 1]
<nounphrase-actionable> hits 90/182 nti 25 constraint (none) extremes [0, infinity)
<nounphrase-actionable> hits 90/180 nti 25 constraint (none) extremes [0, infinity)
English:
^<variable-creation-tail>
(hits 90/91) (matched long text) constraint (none) extremes [0, infinity)
(hits 90/90) (matched long text) constraint (none) extremes [0, infinity)
<variable-creation-tail> hits 1/182 nti 15 constraint DS = {15} extremes [1, infinity)
<variable-creation-tail> hits 0/180 nti 15 constraint DS = {15} extremes [1, infinity)
English:
{***} that/which vary/varies
(hits 1/91) (matched: 'name based rule producing nothing that varies') constraint DS = {15} extremes [2, infinity)
(hits 0/90) constraint DS = {15} extremes [2, infinity)
{***} variable
(hits 0/90) constraint DS = {15} extremes [1, infinity)

View file

@ -379,12 +379,12 @@ drawing up the index, and so on.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::get_variable_number</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Kinds::get_variable_number</span></span>:<br/><a href="2-knd.html#SP17">&#167;17</a>, <a href="2-knd.html#SP24">&#167;24</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP13">&#167;13</a>, <a href="2-tlok.html#SP13_6">&#167;13.6</a><br/>Describing Kinds - <a href="2-dk.html#SP24_1_2">&#167;24.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::get_variable_number</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Kinds::get_variable_number</span></span>:<br/><a href="2-knd.html#SP17">&#167;17</a>, <a href="2-knd.html#SP24">&#167;24</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP13">&#167;13</a>, <a href="2-tlok.html#SP13_7">&#167;13.7</a><br/>Describing Kinds - <a href="2-dk.html#SP24_1_2">&#167;24.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_KIND_VARIABLE</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_variable_number</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::get_variable_stipulation</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Kinds::get_variable_stipulation</span></span>:<br/>The Lattice of Kinds - <a href="2-tlok.html#SP13_6">&#167;13.6</a>, <a href="2-tlok.html#SP13_6_1">&#167;13.6.1</a><br/>Describing Kinds - <a href="2-dk.html#SP24_1_2">&#167;24.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::get_variable_stipulation</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Kinds::get_variable_stipulation</span></span>:<br/>The Lattice of Kinds - <a href="2-tlok.html#SP13_7">&#167;13.7</a>, <a href="2-tlok.html#SP13_7_1">&#167;13.7.1</a><br/>Describing Kinds - <a href="2-dk.html#SP24_1_2">&#167;24.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_KIND_VARIABLE</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[0];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -708,7 +708,7 @@ to the kind "number" even if that's the current value of X.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::eq</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Kinds::eq</span></span>:<br/><a href="2-knd.html#SP17">&#167;17</a>, <a href="2-knd.html#SP18">&#167;18</a>, <a href="2-knd.html#SP21">&#167;21</a>, <a href="2-knd.html#SP25">&#167;25</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP6">&#167;6</a>, <a href="2-tlok.html#SP7_1">&#167;7.1</a>, <a href="2-tlok.html#SP7_2">&#167;7.2</a>, <a href="2-tlok.html#SP13_1">&#167;13.1</a>, <a href="2-tlok.html#SP13_2">&#167;13.2</a>, <a href="2-tlok.html#SP13_5">&#167;13.5</a><br/>Describing Kinds - <a href="2-dk.html#SP24_1_2">&#167;24.1.2</a>, <a href="2-dk.html#SP24_2">&#167;24.2</a>, <a href="2-dk.html#SP24_3_1">&#167;24.3.1</a>, <a href="2-dk.html#SP24_3_2">&#167;24.3.2</a><br/>Using Kinds - <a href="2-uk.html#SP2">&#167;2</a>, <a href="2-uk.html#SP4">&#167;4</a><br/>Dimensions - <a href="3-dmn.html#SP15">&#167;15</a>, <a href="3-dmn.html#SP20">&#167;20</a>, <a href="3-dmn.html#SP21">&#167;21</a>, <a href="3-dmn.html#SP24">&#167;24</a>, <a href="3-dmn.html#SP29">&#167;29</a>, <a href="3-dmn.html#SP31_2">&#167;31.2</a><br/>Floating-Point Values - <a href="3-fv.html#SP1">&#167;1</a><br/>Star Templates - <a href="4-st.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K1</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K2</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::eq</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Kinds::eq</span></span>:<br/><a href="2-knd.html#SP17">&#167;17</a>, <a href="2-knd.html#SP18">&#167;18</a>, <a href="2-knd.html#SP21">&#167;21</a>, <a href="2-knd.html#SP25">&#167;25</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP6">&#167;6</a>, <a href="2-tlok.html#SP7_1">&#167;7.1</a>, <a href="2-tlok.html#SP7_2">&#167;7.2</a>, <a href="2-tlok.html#SP13_1">&#167;13.1</a>, <a href="2-tlok.html#SP13_2">&#167;13.2</a>, <a href="2-tlok.html#SP13_5">&#167;13.5</a>, <a href="2-tlok.html#SP13_6">&#167;13.6</a><br/>Describing Kinds - <a href="2-dk.html#SP24_1_2">&#167;24.1.2</a>, <a href="2-dk.html#SP24_2">&#167;24.2</a>, <a href="2-dk.html#SP24_3_1">&#167;24.3.1</a>, <a href="2-dk.html#SP24_3_2">&#167;24.3.2</a><br/>Using Kinds - <a href="2-uk.html#SP2">&#167;2</a>, <a href="2-uk.html#SP4">&#167;4</a><br/>Dimensions - <a href="3-dmn.html#SP15">&#167;15</a>, <a href="3-dmn.html#SP20">&#167;20</a>, <a href="3-dmn.html#SP21">&#167;21</a>, <a href="3-dmn.html#SP24">&#167;24</a>, <a href="3-dmn.html#SP29">&#167;29</a>, <a href="3-dmn.html#SP31_2">&#167;31.2</a><br/>Floating-Point Values - <a href="3-fv.html#SP1">&#167;1</a><br/>Star Templates - <a href="4-st.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K1</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K1</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> != </span><span class="identifier-syntax">K2</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -747,7 +747,6 @@ to the kind "number" even if that's the current value of X.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">ALWAYS_MATCH</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">KIND_CHECKING</span><span class="plain-syntax">, </span><span class="string-syntax">"(Is the kind %u compatible with %u?"</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><a href="2-tlok.html#SP13" class="function-link"><span class="function-syntax">Latticework::order_relation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">NEVER_MATCH:</span><span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">KIND_CHECKING</span><span class="plain-syntax">, </span><span class="string-syntax">" No)\n"</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">NEVER_MATCH</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ALWAYS_MATCH:</span><span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">KIND_CHECKING</span><span class="plain-syntax">, </span><span class="string-syntax">" Yes)\n"</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">ALWAYS_MATCH</span><span class="plain-syntax">;</span>

View file

@ -204,7 +204,7 @@ function is what tells us that the superkind of <span class="extract"><span clas
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Latticework::super</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Latticework::super</span></span>:<br/><a href="2-tlok.html#SP7">&#167;7</a>, <a href="2-tlok.html#SP13_5">&#167;13.5</a><br/>Kinds - <a href="2-knd.html#SP21">&#167;21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Latticework::super</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Latticework::super</span></span>:<br/><a href="2-tlok.html#SP7">&#167;7</a>, <a href="2-tlok.html#SP13_6">&#167;13.6</a><br/>Kinds - <a href="2-knd.html#SP21">&#167;21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_real_arithmetic_value</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_arithmetic_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_enumerated_value</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_understandable_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_arithmetic_value</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_understandable_value</span><span class="plain-syntax">;</span>
@ -453,14 +453,14 @@ as appropriate.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Latticework::order_relation</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Latticework::order_relation</span></span>:<br/><a href="2-tlok.html#SP13_1">&#167;13.1</a>, <a href="2-tlok.html#SP13_4">&#167;13.4</a>, <a href="2-tlok.html#SP13_6_1">&#167;13.6.1</a>, <a href="2-tlok.html#SP13_6_2">&#167;13.6.2</a><br/>Kinds - <a href="2-knd.html#SP25">&#167;25</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">allow_casts</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Latticework::order_relation</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Latticework::order_relation</span></span>:<br/><a href="2-tlok.html#SP13_1">&#167;13.1</a>, <a href="2-tlok.html#SP13_4">&#167;13.4</a>, <a href="2-tlok.html#SP13_7_1">&#167;13.7.1</a>, <a href="2-tlok.html#SP13_7_2">&#167;13.7.2</a><br/>Kinds - <a href="2-knd.html#SP25">&#167;25</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">allow_casts</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP12" class="function-link"><span class="function-syntax">Kinds::get_variable_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">to</span><span class="plain-syntax">, *</span><span class="identifier-syntax">other_k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">from</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tlok.html#SP13_6" class="named-paragraph-link"><span class="named-paragraph">Deal separately with matches against kind variables</span><span class="named-paragraph-number">13.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tlok.html#SP13_7" class="named-paragraph-link"><span class="named-paragraph">Deal separately with matches against kind variables</span><span class="named-paragraph-number">13.7</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP12" class="function-link"><span class="function-syntax">Kinds::get_variable_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">from</span><span class="plain-syntax">, *</span><span class="identifier-syntax">other_k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">to</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tlok.html#SP13_6" class="named-paragraph-link"><span class="named-paragraph">Deal separately with matches against kind variables</span><span class="named-paragraph-number">13.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tlok.html#SP13_7" class="named-paragraph-link"><span class="named-paragraph">Deal separately with matches against kind variables</span><span class="named-paragraph-number">13.7</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tlok.html#SP13_1" class="named-paragraph-link"><span class="named-paragraph">Deal separately with the sayability of lists</span><span class="named-paragraph-number">13.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tlok.html#SP13_2" class="named-paragraph-link"><span class="named-paragraph">Deal separately with the top and bottom of the lattice</span><span class="named-paragraph-number">13.2</span></a></span><span class="plain-syntax">;</span>
@ -513,9 +513,11 @@ and, of course, "value".
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">f_a</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">t_a</span><span class="plain-syntax">)?</span><span class="identifier-syntax">f_a:t_a</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">o</span><span class="plain-syntax"> = </span><span class="constant-syntax">ALWAYS_MATCH</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> != </span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">o</span><span class="plain-syntax"> = </span><a href="2-tlok.html#SP13_5" class="function-link"><span class="function-syntax">Latticework::construct_compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="identifier-syntax">allow_casts</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">o</span><span class="plain-syntax"> = </span><a href="2-tlok.html#SP13_6" class="function-link"><span class="function-syntax">Latticework::construct_compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="identifier-syntax">allow_casts</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">this_o</span><span class="plain-syntax"> = </span><span class="constant-syntax">NEVER_MATCH</span><span class="plain-syntax">, </span><span class="identifier-syntax">fallen</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">arity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-tlok.html#SP13_5" class="function-link"><span class="function-syntax">Latticework::vacuous</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">])) &amp;&amp; (</span><a href="2-tlok.html#SP13_5" class="function-link"><span class="function-syntax">Latticework::vacuous</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">])))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::variance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">) == </span><span class="constant-syntax">COVARIANT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">this_o</span><span class="plain-syntax"> = </span><a href="2-tlok.html#SP13" class="function-link"><span class="function-syntax">Latticework::order_relation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">allow_casts</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
@ -526,14 +528,22 @@ and, of course, "value".
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">SOMETIMES_MATCH:</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">o</span><span class="plain-syntax"> != </span><span class="constant-syntax">NEVER_MATCH</span><span class="plain-syntax">) { </span><span class="identifier-syntax">o</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_o</span><span class="plain-syntax">; </span><span class="identifier-syntax">fallen</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; } </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">o</span><span class="plain-syntax"> == </span><span class="identifier-syntax">fallen</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> != </span><span class="identifier-syntax">CON_list_of</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">NEVER_MATCH</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">fallen</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> != </span><span class="identifier-syntax">CON_list_of</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">NEVER_MATCH</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">o</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-tlok.html#SP13">&#167;13</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP13_5" class="paragraph-anchor"></a><b>&#167;13.5. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Latticework::construct_compatible</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Latticework::construct_compatible</span></span>:<br/><a href="2-tlok.html#SP13_4">&#167;13.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">allow_casts</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Latticework::vacuous</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Latticework::vacuous</span></span>:<br/><a href="2-tlok.html#SP13_4">&#167;13.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">)) || (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">))) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP13_6" class="paragraph-anchor"></a><b>&#167;13.6. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Latticework::construct_compatible</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Latticework::construct_compatible</span></span>:<br/><a href="2-tlok.html#SP13_4">&#167;13.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">allow_casts</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">from</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">ALWAYS_MATCH</span><span class="plain-syntax">;</span>
@ -557,7 +567,7 @@ and, of course, "value".
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">NEVER_MATCH</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP13_6" class="paragraph-anchor"></a><b>&#167;13.6. </b>Recall that kind variables are identified by a number in the range 1 ("A")
<p class="commentary firstcommentary"><a id="SP13_7" class="paragraph-anchor"></a><b>&#167;13.7. </b>Recall that kind variables are identified by a number in the range 1 ("A")
to 26 ("Z"), and that it is also possible to assign them a domain, or a
"declaration". This marks that they are free to take on a value, within
that domain. For example, in
@ -573,7 +583,7 @@ become any kind matching <span class="extract"><span class="extract-syntax">valu
more restrictive declaration like <span class="extract"><span class="extract-syntax">arithmetic value</span></span>.)
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Deal separately with matches against kind variables</span><span class="named-paragraph-number">13.6</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Deal separately with matches against kind variables</span><span class="named-paragraph-number">13.7</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -586,14 +596,14 @@ more restrictive declaration like <span class="extract"><span class="extract-syn
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">vn</span><span class="plain-syntax"> = </span><a href="2-knd.html#SP12" class="function-link"><span class="function-syntax">Kinds::get_variable_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">var_k</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP12" class="function-link"><span class="function-syntax">Kinds::get_variable_stipulation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">var_k</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tlok.html#SP13_6_1" class="named-paragraph-link"><span class="named-paragraph">Act on a declaration usage, where inference is allowed</span><span class="named-paragraph-number">13.6.1</span></a></span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tlok.html#SP13_7_1" class="named-paragraph-link"><span class="named-paragraph">Act on a declaration usage, where inference is allowed</span><span class="named-paragraph-number">13.7.1</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tlok.html#SP13_6_2" class="named-paragraph-link"><span class="named-paragraph">Act on an ordinary usage, where inference is not allowed</span><span class="named-paragraph-number">13.6.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tlok.html#SP13_7_2" class="named-paragraph-link"><span class="named-paragraph">Act on an ordinary usage, where inference is not allowed</span><span class="named-paragraph-number">13.7.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-tlok.html#SP13">&#167;13</a> (twice).</li></ul>
<p class="commentary firstcommentary"><a id="SP13_6_1" class="paragraph-anchor"></a><b>&#167;13.6.1. </b>When the specification matcher works on matching text such as
<p class="commentary firstcommentary"><a id="SP13_7_1" class="paragraph-anchor"></a><b>&#167;13.7.1. </b>When the specification matcher works on matching text such as
</p>
<blockquote>
@ -620,7 +630,7 @@ we verify that "23" is a <span class="extract"><span class="extract-syntax">K</s
a declaration usage of the variable <span class="extract"><span class="extract-syntax">K</span></span>.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on a declaration usage, where inference is allowed</span><span class="named-paragraph-number">13.6.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on a declaration usage, where inference is allowed</span><span class="named-paragraph-number">13.7.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -640,13 +650,13 @@ a declaration usage of the variable <span class="extract"><span class="extract-s
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">MATCH_KIND_VARIABLES_AS_VALUES:</span><span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">ALWAYS_MATCH</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-tlok.html#SP13_6">&#167;13.6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP13_6_2" class="paragraph-anchor"></a><b>&#167;13.6.2. </b>Whereas this is what happens when matching just <span class="extract"><span class="extract-syntax">K</span></span>. On the inference pass,
<ul class="endnotetexts"><li>This code is used in <a href="2-tlok.html#SP13_7">&#167;13.7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP13_7_2" class="paragraph-anchor"></a><b>&#167;13.7.2. </b>Whereas this is what happens when matching just <span class="extract"><span class="extract-syntax">K</span></span>. On the inference pass,
we always make a match, which is legitimate because we know we are going to
make a value-checking pass later.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on an ordinary usage, where inference is not allowed</span><span class="named-paragraph-number">13.6.2</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on an ordinary usage, where inference is not allowed</span><span class="named-paragraph-number">13.7.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -662,7 +672,7 @@ make a value-checking pass later.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">ALWAYS_MATCH</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-tlok.html#SP13_6">&#167;13.6</a>.</li></ul>
<ul class="endnotetexts"><li>This code is used in <a href="2-tlok.html#SP13_7">&#167;13.7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. </b>It's easy to confused when writing a type checker, especially with variables
getting in the way, so these logging functions can be helpful:
</p>

View file

@ -108,23 +108,22 @@ MathJax = {
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-knd.html#SP25" class="function-link"><span class="function-syntax">Kinds::conforms_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">)) &amp;&amp; (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-knd.html#SP25" class="function-link"><span class="function-syntax">Kinds::conforms_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-knd.html#SP25" class="function-link"><span class="function-syntax">Kinds::conforms_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">)) &amp;&amp; (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-knd.html#SP25" class="function-link"><span class="function-syntax">Kinds::conforms_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">)) &amp;&amp; (</span><a href="2-knd.html#SP25" class="function-link"><span class="function-syntax">Kinds::conforms_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -584,7 +584,7 @@ group) which it's an instance of: value, word value, arithmetic value, and so on
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::find_cast</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::find_cast</span></span>:<br/><a href="4-kc2.html#SP20">&#167;20</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP13_5">&#167;13.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::find_cast</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::find_cast</span></span>:<br/><a href="4-kc2.html#SP20">&#167;20</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP13_6">&#167;13.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_casting_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dtcr</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dtcr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">first_casting_rule</span><span class="plain-syntax">; </span><span class="identifier-syntax">dtcr</span><span class="plain-syntax">; </span><span class="identifier-syntax">dtcr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dtcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_casting_rule</span><span class="plain-syntax">) {</span>

View file

@ -188,14 +188,14 @@ number of successes.
<span class="plain-syntax"> 29 words have a middle list: longest belongs to to (with 4 meanings)</span>
<span class="plain-syntax"> 108 words have a subset list: longest belongs to street (with 4 meanings)</span>
<span class="plain-syntax">Number of attempts to retrieve: 106491</span>
<span class="plain-syntax">Number of attempts to retrieve: 106490</span>
<span class="plain-syntax"> of which unsuccessful: 88837</span>
<span class="plain-syntax"> of which successful: 17654</span>
<span class="plain-syntax"> of which successful: 17653</span>
<span class="plain-syntax">Total attempts to match against excerpt meanings: 260962</span>
<span class="plain-syntax"> of which, total with incorrect hash codes: 238885</span>
<span class="plain-syntax"> of which, total with correct hash codes: 22077</span>
<span class="plain-syntax"> of which, total which matched: 19336</span>
<span class="plain-syntax">Total attempts to match against excerpt meanings: 260959</span>
<span class="plain-syntax"> of which, total with incorrect hash codes: 238883</span>
<span class="plain-syntax"> of which, total with correct hash codes: 22076</span>
<span class="plain-syntax"> of which, total which matched: 19335</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprevoff">&#10094;</li><li class="progresscurrentchapter">P</li><li class="progresscurrent">wtmd</li><li class="progresssection"><a href="P-htitm.html">htitm</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-em.html">2</a></li><li class="progressnext"><a href="P-htitm.html">&#10095;</a></li></ul></div>

View file

@ -405,6 +405,9 @@ the directive type as 0.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Characters::is_whitespace</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I6_dir</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MYSTERY_PLM</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I6_dir</span><span class="plain-syntax"> == </span><span class="identifier-syntax">MYSTERY_PLM</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> (*(</span><span class="identifier-syntax">docket</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">error_callback</span><span class="plain-syntax">))(</span>
<span class="plain-syntax"> </span><span class="string-syntax">"this Inform 6 directive is not supported in kits or '(-' inclusions: '%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Regexp::dispose_of</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">mr</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-ps.html#SP6">&#167;6</a>.</li></ul>

View file

@ -447,7 +447,7 @@ as their meanings. See the test case <span class="extract"><span class="extract-
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin_unchecked</span></a><span class="plain-syntax">(</span><a href="5-rlt.html#SP4" class="function-link"><span class="function-syntax">RTRelations::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ExplicitRelations::stored_dynamically</span><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="constant-syntax">1</span><span class="plain-syntax">); </span><span class="comment-syntax"> meaning one entry, which is 0; to be filled in later</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><a href="2-th.html#SP6" class="function-link"><span class="function-syntax">TheHeap::emit_block_value_header</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">BinaryPredicates::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">8</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::null_entry</span></a><span class="plain-syntax">();</span>
@ -625,7 +625,6 @@ as their meanings. See the test case <span class="extract"><span class="extract-
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">Z4_lv</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">annotated_i6_schema</span><span class="plain-syntax"> </span><span class="identifier-syntax">asch</span><span class="plain-syntax">; </span><span class="identifier-syntax">i6_schema</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i6s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SWITCH_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">task_s</span><span class="plain-syntax">);</span>

View file

@ -72,7 +72,7 @@ for maintainers of Inform and may change at any time without notice.
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>In working out what the compiler is doing (or has just done), the debugging log
is always the first thing to investigate. This a text file like a running
journal of what the compiler is doing; if it halts partway, either with problem
messages or an internal error, then the log is still written up that point, and
messages or an internal error, then the log is still written up to that point, and
can be revealing. The log can be viewed in the Inform apps, but usually
only if an "advanced" preference setting has been ticked. Once that is done,
the log appears as one of the tabs in the Results pane after each compilation

View file

@ -141,7 +141,7 @@ meanings from sentence to sentence.
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">noun</span><span class="plain-syntax"> -- </span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_noun</span><span class="plain-syntax"> -- </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">object</span><span class="plain-syntax"> </span><span class="identifier-syntax">that</span><span class="plain-syntax"> </span><span class="identifier-syntax">varies</span><span class="plain-syntax">.</span>
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">second</span><span class="plain-syntax"> </span><span class="identifier-syntax">noun</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">object</span><span class="plain-syntax"> </span><span class="identifier-syntax">that</span><span class="plain-syntax"> </span><span class="identifier-syntax">varies</span><span class="plain-syntax">.</span>
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">person</span><span class="plain-syntax"> </span><span class="identifier-syntax">asked</span><span class="plain-syntax"> -- </span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_person_asked</span><span class="plain-syntax"> -- </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">object</span><span class="plain-syntax"> </span><span class="identifier-syntax">that</span><span class="plain-syntax"> </span><span class="identifier-syntax">varies</span><span class="plain-syntax">.</span>
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">reason</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">action</span><span class="plain-syntax"> </span><span class="identifier-syntax">failed</span><span class="plain-syntax"> -- </span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_reason</span><span class="plain-syntax"> -- </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">action</span><span class="plain-syntax"> </span><span class="identifier-syntax">name</span>
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">reason</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">action</span><span class="plain-syntax"> </span><span class="identifier-syntax">failed</span><span class="plain-syntax"> -- </span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_reason</span><span class="plain-syntax"> -- </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">action</span>
<span class="identifier-syntax">based</span><span class="plain-syntax"> </span><span class="identifier-syntax">rule</span><span class="plain-syntax"> </span><span class="identifier-syntax">producing</span><span class="plain-syntax"> </span><span class="identifier-syntax">nothing</span><span class="plain-syntax"> </span><span class="identifier-syntax">that</span><span class="plain-syntax"> </span><span class="identifier-syntax">varies</span><span class="plain-syntax">.</span>
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">item</span><span class="plain-syntax"> </span><span class="identifier-syntax">described</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">object</span><span class="plain-syntax"> </span><span class="identifier-syntax">that</span><span class="plain-syntax"> </span><span class="identifier-syntax">varies</span><span class="plain-syntax">.</span>

View file

@ -178,7 +178,8 @@ extension <span class="extract"><span class="extract-syntax">.i7x</span></span>.
drafts of inblorb allowed it too, but this caused problems with emacs backup
files (with filenames ending <span class="extract"><span class="extract-syntax">~</span></span>) being picked up instead of the extension
files they were backing up. So inblorb now recognises only <span class="extract"><span class="extract-syntax">.i7x</span></span> files as
extensions.
extensions. Similarly, another bad emacs habit is to write hidden symlinks,
with leafnames beginning <span class="extract"><span class="extract-syntax">.</span></span>, so we reject those too.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -226,7 +227,8 @@ extensions.
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">fext</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::write_extension</span><span class="plain-syntax">(</span><span class="identifier-syntax">fext</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_insensitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">fext</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".i7x"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::eq_insensitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">fext</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".i7x"</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::get_first_char</span><span class="plain-syntax">(</span><span class="identifier-syntax">Filenames::get_leafname</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">)) != </span><span class="character-syntax">'.'</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-em.html#SP5" class="function-link"><span class="function-syntax">ExtensionManager::claim_file_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">C</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-rqr.html#SP7" class="function-link"><span class="function-syntax">Requirements::meets</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><a href="2-nst.html#SP6" class="function-link"><span class="function-syntax">Nests::add_search_result</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>

View file

@ -113,7 +113,8 @@ extension |.i7x|. This was allowed in the early days of Inform 7, and early
drafts of inblorb allowed it too, but this caused problems with emacs backup
files (with filenames ending |~|) being picked up instead of the extension
files they were backing up. So inblorb now recognises only |.i7x| files as
extensions.
extensions. Similarly, another bad emacs habit is to write hidden symlinks,
with leafnames beginning |.|, so we reject those too.
=
void ExtensionManager::search_nest_for(inbuild_genre *gen, inbuild_nest *N,
@ -160,7 +161,8 @@ void ExtensionManager::search_nest_for_single_file(filename *F, inbuild_nest *N,
inbuild_requirement *req, linked_list *search_results) {
TEMPORARY_TEXT(fext)
Filenames::write_extension(fext, F);
if (Str::eq_insensitive(fext, I".i7x")) {
if ((Str::eq_insensitive(fext, I".i7x")) &&
(Str::get_first_char(Filenames::get_leafname(F)) != '.')) {
inbuild_copy *C = ExtensionManager::claim_file_as_copy(F);
if ((C) && (Requirements::meets(C->edition, req))) {
Nests::add_search_result(search_results, N, C, req);

View file

@ -4764,21 +4764,21 @@
{...}
constraint (none) extremes [1, infinity)
<optional-article> hits 83030/166060 nti 15 constraint (none) extremes [1, infinity)
<optional-article> hits 83029/166058 nti 15 constraint (none) extremes [1, infinity)
English:
<article> {...}
(hits 16068/47449) (matched long text) constraint (none) extremes [2, infinity)
(hits 16068/47448) (matched long text) constraint (none) extremes [2, infinity)
{...}
(hits 66962/66962) (matched long text) constraint (none) extremes [1, infinity)
(hits 66961/66961) (matched long text) constraint (none) extremes [1, infinity)
<compulsory-article> nti 16 constraint (none) extremes [2, infinity)
English:
<article> {...}
constraint (none) extremes [2, infinity)
<article> internal hits 16522/98958 nti r2 constraint (none) extremes [1, 1]
<article> internal hits 16522/98954 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 20353/236436 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 20353/236434 nti r2 constraint (none) extremes [1, 1]
<indefinite-article> internal hits 2350/41386 nti r2 constraint (none) extremes [1, 1]
@ -5055,7 +5055,7 @@
{...}
(hits 99/2082) (matched: '"(considering the first sixteen objects only)[command clarification break]" ( a )') constraint (none) extremes [1, infinity)
<if-not-cap> <indefinite-article> <np-unparsed>
(hits 322/1418) (matched long text) constraint (none) extremes [2, infinity)
(hits 322/1418) (matched: 'an action based rule producing nothing that varies') constraint (none) extremes [2, infinity)
<if-not-cap> <definite-article> <np-unparsed>
(hits 661/1096) (matched long text) constraint (none) extremes [2, infinity)
<np-unparsed>
@ -5185,16 +5185,16 @@
<np-nonrelative>
(hits 431/431) (matched long text) constraint (none) extremes [1, infinity)
<np-with-or-having-tail> hits 0/10194 nti 30 constraint DS = {30} extremes [2, infinity)
<np-with-or-having-tail> hits 0/10192 nti 30 constraint DS = {30} extremes [2, infinity)
English:
it with action {***}
(hits 0/3875) constraint DS = {30} extremes [3, infinity)
(hits 0/3874) constraint DS = {30} extremes [3, infinity)
{with/having} (/) {***}
(hits 0/4068) constraint DS = {30} extremes [2, infinity)
(hits 0/4067) constraint DS = {30} extremes [2, infinity)
{with/having} {...} ( <response-letter> )
(hits 0/3483) constraint DS = {30} extremes [5, infinity)
(hits 0/3482) constraint DS = {30} extremes [5, infinity)
{with/having} <np-new-property-list>
(hits 0/4068) constraint DS = {30} extremes [2, infinity)
(hits 0/4067) constraint DS = {30} extremes [2, infinity)
<np-new-property-list> nti 19 constraint (none) extremes [1, infinity)
English:
@ -5217,12 +5217,12 @@
{...}
constraint (none) extremes [1, infinity)
<np-and-tail> hits 174/3554 nti 6 constraint DS = {6} extremes [1, infinity)
<np-and-tail> hits 174/3552 nti 6 constraint DS = {6} extremes [1, infinity)
English:
, _{and} <np-operand>
(hits 8/1080) (matched: ', and didn't understand addressee's last name error') constraint DS = {6} extremes [2, infinity)
(hits 8/1079) (matched: ', and didn't understand addressee's last name error') constraint DS = {6} extremes [2, infinity)
_{,/and} <np-operand>
(hits 166/1278) (matched long text) constraint DS = {6} extremes [1, infinity)
(hits 166/1277) (matched long text) constraint DS = {6} extremes [1, infinity)
<np-kind-phrase> hits 30/516 nti 21 constraint DS = {7} extremes [1, infinity)
English:
@ -5267,7 +5267,7 @@
{...} called {...}
constraint DS = {12} extremes [3, infinity)
<np-x-of-y> hits 196/9062 nti 13 constraint DS = {13} extremes [2, infinity)
<np-x-of-y> hits 196/9056 nti 13 constraint DS = {13} extremes [2, infinity)
English:
of {...}
(hits 196/2552) (matched: 'of day -- documented at var_time --') constraint DS = {13} extremes [2, infinity)
@ -5285,7 +5285,7 @@
grammatical case
(hits 1/1) (matched: 'grammatical case') constraint CS = {14} extremes [2, 2]
<if-parsing-phrase-tokens> internal hits 2478/41948 nti 27 constraint (none) extremes [0, 0]
<if-parsing-phrase-tokens> internal hits 2478/41944 nti 27 constraint (none) extremes [0, 0]
<k-kind-prototype> internal hits 165/330 nti 28 constraint (none) extremes [1, infinity)
@ -5311,16 +5311,16 @@
<k-kind>
(hits 5/5) (matched: 'value of kind k') constraint (none) extremes [1, infinity)
<k-kind> hits 5803/103678 nti r5 constraint (none) extremes [1, infinity)
<k-kind> hits 5802/103676 nti r5 constraint (none) extremes [1, infinity)
English:
( <k-kind> )
(hits 0/2047) constraint DS = {r5} & CW = {r2, r5} extremes [3, infinity)
^<if-parsing-phrase-tokens> <k-kind-variable>
(hits 1592/11283) (matched: 'k') constraint CW = {r2, r5} extremes [1, infinity)
(hits 1592/11282) (matched: 'k') constraint CW = {r2, r5} extremes [1, infinity)
<if-parsing-phrase-tokens> <k-variable-definition>
(hits 201/9691) (matched: 'sayable value of kind k') constraint CW = {r2, r5} extremes [1, infinity)
(hits 201/9690) (matched: 'sayable value of kind k') constraint CW = {r2, r5} extremes [1, infinity)
<k-base-kind>
(hits 3649/9490) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity)
(hits 3648/9489) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity)
<k-irregular-kind-construction>
(hits 2/16024) (matched: 'object-based rulebook') constraint DS = {r5} extremes [2, infinity)
<k-kind-construction>
@ -5340,7 +5340,7 @@
<k-kind-of-kind> of kind <k-formal-variable>
(hits 81/315) (matched: 'sayable value of kind k') constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity)
<k-base-kind> internal hits 3649/18980 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
<k-base-kind> internal hits 3648/18978 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
<k-irregular-kind-construction> hits 2/32048 nti r5 constraint DS = {r5} extremes [2, infinity)
English:
@ -5387,13 +5387,13 @@
( <k-optional-term> )
(hits 0/21) constraint DS = {r5} extremes [3, infinity)
<article> <k-optional-term>
(hits 9/28) (matched: 'a value of kind k') constraint (none) extremes [2, infinity)
(hits 9/27) (matched: 'a value of kind k') constraint (none) extremes [2, infinity)
nothing
(hits 14/34) (matched: 'nothing') constraint CS = {r5} extremes [1, 1]
(hits 14/35) (matched: 'nothing') constraint CS = {r5} extremes [1, 1]
action
(hits 0/20) constraint CS = {r5} extremes [1, 1]
(hits 1/21) (matched: 'action') constraint CS = {r5} extremes [1, 1]
<k-kind>
(hits 39/39) (matched: 'value of kind k') constraint (none) extremes [1, infinity)
(hits 38/38) (matched: 'value of kind k') constraint (none) extremes [1, infinity)
<k-tupled-term> hits 15/30 nti r5 constraint (none) extremes [1, infinity)
English:
@ -5416,7 +5416,7 @@
<k-kind>
(hits 100/224) (matched: 'sayable value') constraint (none) extremes [1, infinity)
<k-kind-variable> internal hits 1592/20088 nti r5 constraint CW = {r2, r5} extremes [1, 1]
<k-kind-variable> internal hits 1592/20086 nti r5 constraint CW = {r2, r5} extremes [1, 1]
<k-formal-variable> internal hits 220/1418 nti r5 constraint CW = {r2, r5} extremes [1, 1]
@ -6677,7 +6677,7 @@
action of <s-explicit-action>
(hits 0/65) constraint DS = {24} extremes [3, infinity)
<s-descriptive-type-expression>
(hits 728/978) (matched: 'action name based rule producing nothing that varies') constraint (none) extremes [1, infinity)
(hits 728/978) (matched: 'action based rule producing nothing that varies') constraint (none) extremes [1, infinity)
<s-global-variable>
(hits 6/250) (matched: 'language of play') constraint (none) extremes [1, infinity)
@ -7969,7 +7969,7 @@
<s-variable-scope> variable/variables
(hits 2/350) (matched: 'text variables') constraint DS = {11} extremes [2, infinity)
<s-variable-scope> that/which vary/varies
(hits 59/287) (matched: 'action name based rule producing nothing that varies') constraint DS = {11} extremes [3, infinity)
(hits 59/287) (matched: 'action based rule producing nothing that varies') constraint DS = {11} extremes [3, infinity)
<k-kind>
(hits 2445/3832) (matched long text) constraint (none) extremes [1, infinity)
<s-literal>
@ -8009,12 +8009,12 @@
global <s-variable-contents>
(hits 0/4) constraint DS = {10} extremes [2, infinity)
<s-variable-contents>
(hits 61/62) (matched: 'action name based rule producing nothing') constraint (none) extremes [1, infinity)
(hits 61/62) (matched: 'action based rule producing nothing') constraint (none) extremes [1, infinity)
<s-variable-contents> hits 61/124 nti 18 constraint (none) extremes [1, infinity)
English:
<k-kind>
(hits 61/62) (matched: 'action name based rule producing nothing') constraint (none) extremes [1, infinity)
(hits 61/62) (matched: 'action based rule producing nothing') constraint (none) extremes [1, infinity)
<s-literal>
(hits 0/1) constraint (none) extremes [1, infinity)
<s-constant-value>
@ -9061,31 +9061,31 @@
waiting
(hits 1/20) (matched: 'waiting') constraint CS = {13} extremes [1, 1]
<new-action-sentence-object> hits 90/1036 nti 24 constraint DS = {14} extremes [1, infinity)
<new-action-sentence-object> hits 91/1036 nti 24 constraint DS = {14} extremes [1, infinity)
English:
<indefinite-article> <new-action-sentence-object-unarticled>
(hits 90/334) (matched long text) constraint DS = {14} extremes [2, infinity)
(hits 91/334) (matched long text) constraint DS = {14} extremes [2, infinity)
<new-action-sentence-object-unarticled>
(hits 0/244) constraint DS = {14} extremes [1, infinity)
(hits 0/243) constraint DS = {14} extremes [1, infinity)
<new-action-sentence-object-unarticled> hits 90/934 nti 14 constraint DS = {14} extremes [1, infinity)
<new-action-sentence-object-unarticled> hits 91/932 nti 14 constraint DS = {14} extremes [1, infinity)
English:
action based {...}
(hits 0/338) constraint DS = {14} extremes [3, infinity)
(hits 1/337) (matched: 'action based rule producing nothing that varies') constraint DS = {14} extremes [3, infinity)
action <nounphrase-actionable>
(hits 90/388) (matched long text) constraint DS = {14} extremes [1, infinity)
(hits 90/386) (matched long text) constraint DS = {14} extremes [1, infinity)
action
constraint CS = {14} extremes [1, 1]
<nounphrase-actionable> hits 90/182 nti 25 constraint (none) extremes [0, infinity)
<nounphrase-actionable> hits 90/180 nti 25 constraint (none) extremes [0, infinity)
English:
^<variable-creation-tail>
(hits 90/91) (matched long text) constraint (none) extremes [0, infinity)
(hits 90/90) (matched long text) constraint (none) extremes [0, infinity)
<variable-creation-tail> hits 1/182 nti 15 constraint DS = {15} extremes [1, infinity)
<variable-creation-tail> hits 0/180 nti 15 constraint DS = {15} extremes [1, infinity)
English:
{***} that/which vary/varies
(hits 1/91) (matched: 'name based rule producing nothing that varies') constraint DS = {15} extremes [2, infinity)
(hits 0/90) constraint DS = {15} extremes [2, infinity)
{***} variable
(hits 0/90) constraint DS = {15} extremes [1, infinity)

View file

@ -1,9 +1,9 @@
100.0% in inform7 run
71.1% in compilation to Inter
50.8% in //Sequence::undertake_queued_tasks//
4.8% in //MajorNodes::pre_pass//
3.2% in //MajorNodes::pass_1//
1.9% in //ImperativeDefinitions::assess_all//
50.3% in //Sequence::undertake_queued_tasks//
4.7% in //MajorNodes::pre_pass//
3.5% in //MajorNodes::pass_1//
1.8% in //ImperativeDefinitions::assess_all//
1.8% in //RTPhrasebook::compile_entries//
1.4% in //RTKindConstructors::compile//
1.0% in //Sequence::lint_inter//
@ -13,25 +13,20 @@
0.4% in //Sequence::undertake_queued_tasks//
0.4% in //Sequence::undertake_queued_tasks//
0.2% in //CompletionModule::compile//
0.2% in //InferenceSubjects::emit_all//
0.2% in //RTKindConstructors::compile_permissions//
0.1% in //InferenceSubjects::emit_all//
0.1% in //Task::make_built_in_kind_constructors//
0.1% in //Understand::traverse//
0.1% in //World::stages_II_and_III//
2.3% not specifically accounted for
0.2% in //Task::make_built_in_kind_constructors//
3.0% not specifically accounted for
26.1% in running Inter pipeline
10.0% in step 14/15: generate inform6 -> auto.inf
5.8% in step 5/15: load-binary-kits
5.8% in step 6/15: make-synoptic-module
1.5% in step 9/15: make-identifiers-unique
9.9% in step 14/15: generate inform6 -> auto.inf
6.0% in step 6/15: make-synoptic-module
5.6% in step 5/15: load-binary-kits
1.4% in step 9/15: make-identifiers-unique
0.4% in step 12/15: eliminate-redundant-operations
0.4% in step 4/15: compile-splats
0.3% in step 7/15: shorten-wiring
0.3% in step 8/15: detect-indirect-calls
0.4% in step 7/15: shorten-wiring
0.2% in step 11/15: eliminate-redundant-labels
0.1% in step 10/15: reconcile-verbs
0.1% in step 2/15: parse-insertions
0.1% in step 3/15: resolve-conditional-compilation
0.6% not specifically accounted for
2.3% in supervisor
0.4% not specifically accounted for
0.2% in step 8/15: detect-indirect-calls
1.4% not specifically accounted for
2.2% in supervisor
0.5% not specifically accounted for

View file

@ -5,11 +5,11 @@ Size of lexicon: 3101 excerpt meanings
29 words have a middle list: longest belongs to to (with 4 meanings)
108 words have a subset list: longest belongs to street (with 4 meanings)
Number of attempts to retrieve: 106491
Number of attempts to retrieve: 106490
of which unsuccessful: 88837
of which successful: 17654
of which successful: 17653
Total attempts to match against excerpt meanings: 260962
of which, total with incorrect hash codes: 238885
of which, total with correct hash codes: 22077
of which, total which matched: 19336
Total attempts to match against excerpt meanings: 260959
of which, total with incorrect hash codes: 238883
of which, total with correct hash codes: 22076
of which, total which matched: 19335